+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.