`head -n 9 ChangeLog`
[mono.git] / mcs / class / Microsoft.JScript / Microsoft.JScript / ChangeLog
index a4bccd9d94af94aa8df341d6072266b3b616548e..63b5b78f38a7ff842a23eaa45ef3144d5b91d07c 100644 (file)
@@ -1,9 +1,225 @@
+2005-05-07  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * MethodInvoker.cs, ScriptObject.cs, BitwiseBinary.cs,
+       ActivationObject.cs, PostOrPrefixOperator, StackFrame.cs,
+       NumericUnary.cs, JSConstructor.cs, Equality.cs, NumericBinary.cs,
+       Convert.cs, LateBinding.cs, Plus.cs, BitwiseBinary.cs,
+       JSMethodInfo.cs, Relational.cs, ScriptFunction.cs : Add missing
+       debugger attributes.
+
+2005-05-06  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Binding.cs: add missing methods and fields.
+
+2005-05-03  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * ReturnOutOfFinally.cs, SyntaxErrorObject.cs, TypeReflector.cs,
+       JSPrototypeObject.cs, ReferenceErrorObject.cs, Namespace.cs,
+       expression.cs (Unary class), Binding.cs, ArrayWrapper.cs,
+       CmdLineOptionParser.cs, TypeErrorObject.cs, JSConstructor.cs,
+       TypedArray.cs, FunctionWrapper.cs, SuperTypeMembersSorter.cs,
+       ContinueOutOfFinally.cs, BlockScope.cs,
+       AssemblyCustomAttributeList.cs, VersionableAttribute.cs,
+       SimpleHashtable.cs, ResInfo.cs, Import.cs,
+       NotRecommendedAttribute.cs, CmdLineException.cs, DebugBreak.cs,
+       VBArrayObject.cs, CmdLineError.cs, TODOAttribute.cs,
+       RegExpMatch.cs, JScriptCodeProvider.cs, RangeErrorObject.cs,: Fixes for API compliance.
+
+2005-04-28  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * BinaryOp.cs, ActivationObject.cs, expression.cs (Args),
+       ArrayLiteral.cs, ArrayObject.cs, IRedirectOutput.cs, ASTList.cs,
+       IVsaScriptScope.cs, ast.cs (AST), BinaryOp.cs,
+       EnumeratorObject.cs, BreakOutOfFinally.cs, Enum.cs,
+       FormalParameterList.cs, FunctionDeclaration.cs, Equality.cs,
+       Closure.cs, Block.cs, Statement.cs, BooleanObject.cs,
+       LenientBooleanPrototype.cs, GlobalObject.cs, BooleanPrototype.cs,
+       CodeGenerator.cs, LenientDateConstructor.cs,
+       LenientGlobalObject.cs, JSToken.cs, MethodInvoker.cs,
+       LenientRegExpPrototype.cs, NumericUnary.cs,
+       LenientArrayPrototype.cs, JSParser.cs, JSPropertyInfo.cs,
+       LenientVBArrayPrototype.cs, LenientStringPrototype.cs,
+       LenientObjectPrototype.cs, With.cs, ScriptBlock.cs, Expando.cs,
+       JSScanner.cs, LenientEnumeratorPrototype.cs, EvalErrorObject.cs,
+       VariableDeclaration.cs, Print.cs, LenientErrorPrototype.cs,
+       LenientBooleanPrototype.cs, LenientFunctionPrototype.cs, Literal.cs,
+       LenientMathObject.cs, LenientDatePrototype.cs,  Relational.cs,
+       Parser.cs, Throw.cs, VariableStatement.cs, RegExpObject.cs, Eval.cs,
+       SemanticAnalizer.cs, LenientStringConstructor.cs,
+       LenientNumberPrototype.cs, FieldAccessor.cs : Changes for MS API
+       compliance. 
+
+2005-04-18  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Parser.cs: Build a StrictEquality object instead of a Equality
+       object, when we have === and !=== as operator.
+       * CodeGenerator.cs: (ft_emit_equality, fall_true) Take into account the
+       strict cases of equality. 
+       * StrictEquality.cs: Add parent, left and right params to default
+       ctr. Implement Resolve and Emit.
+
+2005-04-15  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Statement.cs: make internal the builders.
+       * expression.cs: (Identifier.Emit) Take into account if its
+       binding is of type Catch.
+
+2005-04-14  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalizer.cs: Added a Hashtable that indicates which
+       methods need to generate proper code for handling the local vars
+       in the StackFrame. Added method AddMethodWithEval, MethodContainsEval.
+
+       * Eval.cs: Back to M.J.
+
+       * ast.cs: locals from abstract class Function is now an array of
+       objects not just AST's.
+
+       * CodeGenerator.cs: Clean up fall_true, better using recursion :)
+       Added static method load_local_vars. At method ft_emit_equality do
+       Emit the code of the ast. Added method load_local_vars.
+
+       * FunctionDeclaration.cs: Update call to TypeManager methods to
+       new API. Added a check for invocations to 'eval' inside functions
+       so StackFrame IL code gets generated. Build the function's closure
+       take the need for the StackFrame into account.
+       
+       * TypeManager.cs: renamed IdentificationTable locals to
+       local_script_functions, AddLocal to AddLocalScriptFunction,
+       GetLocal to GetLocalScriptFunction. Added method CurrentLocals.
+
+       * IdentificationTable.cs: Method CurrentLocals now returns
+       an array of object's not AST's.
+
+       * expression.cs: (class Call) Check if we have a call to 'eval',
+       if so we must keep up the StackFrame which contains the local
+       vars. We generate special code that handles the StackFrame with
+       the local vars in order to keep them in sync. When a function
+       contains an invocation to 'eval' even when such function is a
+       function declared in the code we do not perform a direct method
+       call to it when invoked instead a call through late binding gets
+       performed. Added methods IsEval, set_local_vars. Implement 'eval'
+       from JScript!
+
+2005-04-10  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * StackTrace.cs: Back to M.J namespace.
+
+2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * Literal.cs: fix the build and broke something else ;-).
+
+2005-04-08  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Literal.cs: Implement the construction of regular expression literal.
+       * Parser.cs: Pass the proper parent to RegExpLiteral.
+
+2005-03-30  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * TypeOf.cs: take into account Objects.
+       * ArrayConstructor.cs: Implement CreateInstance.
+       * LateBinding.cs: Initial implementatio of CallValue and
+       SetIndexedPropertyValueStatic.
+       * JSFieldInfo.cs: Implement GetValue and SetValue.
+       * ArrayObject.cs: Implement length, add three ctrs.
+       * JScriptException.cs: Add error_number field. Implement
+       ctr. ErrorNumber, Message and StackTrace.
+       * ArrayPrototype.cs: Implement join and toString.       
+       * JSObject.cs: Remove the ChainHash, we use a simple hashtable
+       now, the one inherited from ScriptObject.
+       * ScriptObject.cs: Add a Hashtable here.
+
+2005-03-29  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * GlobalScope.cs: Set parent and engine in ctr. Return 'this' for
+       GetDefaultThisObject.
+       * ScriptObject.cs: Added protected 'parent' field of type
+       GlobalScope.
+
+2005-03-16  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * FunctionExpression.cs: Update to TypeManager new API.
+
+       * TypeManager.cs: Keep both MethodBuilder and LocalBuilder around.
+
+       * FunctionDeclaration.cs: In some contexts we need the
+       MethodBuilder and LocalBuilder, so we must keep both around.
+
+       * expression.cs: (load_script_func) Take care if bounded variable
+       was declared in a nested context. (emit_create_instance) Handle
+       the FunctionConstructor case.
+
+2005-02-28  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * ForIn.cs: Initial implementation of ForIn stm.
+
+2005-02-27  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * VariableStatement.cs (PopulateContext): Do not add the symbol to
+       the context if already defined in current context.
+
+       * CodeGenerator.cs: Renamed VariableDefined to variable_defined_in_current_scope.
+
+       * TypeManager.cs: Reimplemented it, We use an IdentificationTable
+       instead of a simple Hashtable so we can handle scopes
+       properly. Cleaner api.
+
+       * VariableDeclaration.cs: Use new CodeGenerator api. (EmitDecl)
+       Add the builders to the TypeManager.
+
+       * Block.cs: Use new TypeManager api.
+
+       * FunctionDeclaration.cs: Use new TypeManager api. Take care of
+       scopes in the TypeManger on Emit.
+
+       * IdentificationTable.cs: (Binder) Changed the type of value from
+       AST to object so I can use this symbol table
+       anywhere. (IdentificationTable) Add current_locals stack and added
+       method InCurrentScope. 
+
+       * expression.cs: Use new api from TypeManager, Add casts where neeeded.
+
+       This solves an infinite loop we were falling into when calling
+       IdentificationTable.CurrentLocals when repeated declarations where
+       inside function declarations.
+       
+       * ast.cs: Added protected field ig to class Function.
+       * Block.cs: Emit function's body in a later phase since free
+       ocurrences of functions - at the same level of it - can be handled
+       properly, since they must be defined and inited to the correct values.
+       * FunctionDeclaration.cs: Renamed Emit to create_closure. And make
+       Emit only generate the code of the body.
+
+       Fixes #73078.
+
+2005-02-22  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Block.cs: Report error JS5040. Reopened #72674, see last comment of it.
+
+       * CodeGenerator.cs: Added method VariableDefined.
+       
+       * TypeManager.cs: Added method SetMethod.
+       
+       * VariableDeclaration.cs (EmitDecl): Added logic to allow multiple
+       declarations of the same var. Fixes #72674.
+       
+       * Block.cs: Added hashtable ocurrences. It holds the index of the
+       previous declaration which after encountering another one with the
+       same name gets nuked.
+
+       * FunctionDeclaration.cs: Added logic for allowing multiple
+       declaration of methods with the same name. Fixes #72674.        
+
+       * expression.cs (Args): Added field func. Holds a reference to the
+       Function which to the args are being passed. Use it to track the
+       proper number of arguments for the call. 
+
 2005-02-20  Cesar Lopez Nataren  <cnataren@novell.com>
 
        * expression.cs (Args.Emit): check if num_of_args is -1.
        * ast.cs (Function.NumOfArgs): avoid using a null pointer. In the
        code generation phase if num_of_args is -1 means the actual
-       arguments are the desired number of args.
+       arguments are the desired number of args. Fixes #72697.
 
        * Parser.cs: Pass proper parent.
        * CodeGenerator.cs: added emit_get_default_this.