`head -n 9 ChangeLog`
[mono.git] / mcs / class / Microsoft.JScript / Microsoft.JScript / ChangeLog
index 5866b9252b4ea203cc54eff226221932eb4524f1..63b5b78f38a7ff842a23eaa45ef3144d5b91d07c 100644 (file)
@@ -1,3 +1,635 @@
+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. Fixes #72697.
+
+       * Parser.cs: Pass proper parent.
+       * CodeGenerator.cs: added emit_get_default_this.
+       * Literal.cs (This) : Resolve and Emit implemented. Fixes #72477
+       * expression.cs: (emit_late_get_or_set) use
+       load_engine. (load_script_func) Ensure that TypeManager has a ref
+       to the local otherwise it's a field. (New.Resolve) Check if late
+       binding is needed. (New.Emit) Generate proper IL that make use of
+       late binding  when the id of the constructor it's not part of the
+       build in objects.
+
+2005-02-14  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Token.cs, TokenStream.cs, Parser.cs: make this classes internal.
+
+       * Context.cs: delete wrongly exposed ctr.
+
+2005-02-10  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs: use InFuntion in proper places.
+
+       * Parser.cs: Add parameter that indicates if it's a prefix
+       operator. When building the MemberExprTail set to proper parent.
+       * PostOrPrefixOperator.cs: Partial implementation of ++ and --,
+       prefix and suffix, we assume that the operand is a variable.
+
+2005-02-09  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs: Added method EmitStore and EmitLoad to Identifier
+       class. Implemented op= operators. Fixes 72393.
+
+2005-02-08  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs (Identifier.Emit): Handle case where we are
+       assigning to a formal parameter. Fixes #72333.
+
+2005-02-06  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs: (load_script_func) Load localbuilder in an
+       invocation when needed, this let us have higher order functions,
+       which is lovely (Fixes #71129). Update calls to load_engine to new signature. 
+       * FunctionDeclaration.cs: Add LocalBuilder to TypeManager.locals
+       * Statement.cs: Changed ctr to Init, so we can track correctly the
+       parent hierarchy when building the ast of the program.
+       * TypeManager.cs: Added field locals. Factored code for
+       handling the tables. Added enums ManagedType and Operation.
+       * Parser.cs: Track correctly the parent of return.
+       * ast.cs (class Function): add ScriptBlock as possible parent of a
+       global expression.
+       * CodeGenerator.cs: change signature of load_engine. Instead of a
+       AST a boolean. So we can call it with InFunction as parameter.
+
+2005-02-05  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs: rework the late binding algorithm, we directly
+       call an object's method if it's a static method of it. Added field
+       late_bind, properties AccessField and Binding, renamed emit_access
+       to emit_array_access to class Binary. Added fields params_info,
+       late_bind and var_args to Class Args; also methods has_var_args,
+       force_strong_type, reworked its Emit code, we take care of methods
+       which have variable number of arguments, take care of needed
+       conversions and boxing when the call has specific strong types as
+       formal parameters. Added method IsPrint and property Parameters to
+       class BuiltIn.
+       * IdentificationTable.cs: Better implementation of jscript's
+       environments semantics. Added classes Symbol and Binder.
+       * SymbolTable.cs: Nuked.
+       * Block.cs: Fix the semantic of semantic analysis and code
+       generatipo process, we now allow forward declarations of variables
+       and functions.
+       * FunctionDeclaration.cs: Added default ctr and Init method. Fix
+       the semantics of the Resolve and Emit process, we can have forward
+       declaration of variables and functions. Fix order in which
+       JSLocalField's get build.
+       * FunctionExpression.cs: Fix order in which JSLocalField's get build. 
+       * VariableStatement.cs: Added methods EmitVariableDecls and PopulateContext.
+       * VariableDeclaration.cs: Added method EmitDecl. Delay the Resolve
+       and Emit process until the second phase.
+       * Statement.cs: Resolve process of For class take care of
+       VariableStatements for populating the environment in advance.
+       * TypeManager.cs: Make GetMethod return a MethodBuilder.
+       * ast.cs: Added field locals, property NumOfArgs, method GetName
+       to abstract class Function.
+       * SemanticAnalyser.cs: unified global environment and the stack of
+       contexts. Added field global_obj, adapt methods to new
+       IdentificationTable api. Delete method ObjectSystemContains. Added
+       method contains, is_js_object, object_contains_method, map_to_ctr,
+       get_member.
+       * Try.cs: Update to new IdentificationTable api.
+       * ScriptObject.cs, JSPropertyInfo.cs, FormalParameterList.cs,
+       JSFieldInfo.cs, JSMethodInfo.cs, JSLocalField.cs,
+       ScriptFunction.cs: use full namespace name for Binder.
+
+2005-01-17  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * CodeGenerator.cs: Added load_engine.
+       * expression.cs (emit_func_call), FunctionDeclaration.cs: Fix
+       computation of VsaEngine.
+
+2005-01-11  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * StringConstructor.cs: implement CreateInstance.
+
+2005-01-10  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * BooleanPrototype.cs: update to assert_type.
+       * SemanticAnalizer.cs: move BooleanPrototype.AssertType here, rename it to assert_type.
+
+2005-01-06  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * BooleanObject.cs: implement ctr's.
+       * BooleanPrototype.cs: back to M.J namespace. Implement contructor
+       property, toString and valueOf, add AssertType.
+
+       * Convert.cs: add ToString overload and implement.
+
+       * JSFieldInfo.cs, JSLocalField.cs: Add conditional NET_2_0 or BOOTSTRAP_NET_2_0 's
+       Mono_GetGenericFieldDefinition.
+
+       * StringObject.cs: add ctrs.
+
+2005-01-05  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * ObjectPrototype.cs: Add internal ctr. Implement hasOwnProperty.
+       * ObjectConstructor.cs: implemented CreateInstance.
+       * expression.cs (emit_create_instance): add Boolean case.
+       * Try.cs, Statement.cs (EmitStms), Literal.cs
+       (ObjectLiteralItem.Emit), CodeGenerator.cs (fall_false): delete
+       unused variables.
+
+2004-12-15  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * CodeGenerator.cs: add support for compiling not only from cwd.
+
+2004-12-13  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: emit code for null literal.
+
+2004-12-06  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: added StringConstructor case.
+
+       * MemberInfoList.cs: added internal classes Node, ListIter,
+       ChainHash and implement MemberInfoList.
+       * JSObject.cs: implement AddField, AddProperty, AddMethod,
+       GetMembers, RemoveMember, GetEnumerator, add ChainHash's ext
+       field.
+       
+
+2004-11-30  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * *Prototype.cs: return constructor.
+
+2004-11-25  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * GlobalObject.cs: return the different kinds of object's
+       constructors.
+       * DateConstructor.cs, StringConstructor.cs, ObjectConstructor.cs,
+       NumberConstructor.cs, VBArrayConstructor.cs,
+       FunctionConstructor.cs, EnumeratorConstructor.cs,
+       BooleanConstructor.cs, ArrayConstructor.cs, RegExpConstructor.cs,
+       ActiveXObjectConstructor.cs : added default constructor and static
+       contructor field.       
+       * ErrorConstructor.cs: added default and discriminatory ctrs. Let
+       us know which type of error we are.
+       * DateObject.cs: add field that hold the millisecond representation of date.
+       * JSError.cs, JScriptException.cs: back to Microsoft.JScript namespace.
+       * DatePrototype.cs: add default ctr.
+       
+       * MathObject.cs: implement its methods.
+
+2004-11-24  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * DateConstructor.cs: runtime support, ported parse method from Rhino.
+
+2004-11-22  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * CodeGenerator.cs: (ff_emit_relational) receive a full
+       EmitContext as parameter. Added
+       ff_emit_equality_cond. (fall_false) take where of the case where
+       an expression is received.
+       
+       * Parser.cs: use ToJSToken for building the Relational
+       object. Map relational Token's to JSToken's.
+       * expression.cs: Added Size property to class
+       Expression. (emit_create_instance): Added Number code generation. 
+
+       * Relational.cs (Emit): fix typo, emit boxing to boolean.
+
+2004-11-19  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * NumericBinary.cs: implement EvaluateNumericBinary.
+
+2004-11-15  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * CodeGenerator.cs: factor code for fall_true/fall_false (add
+       emit_default_case, ft_binary_recursion, ft_emit_equality,
+       ff_emit_relational, ff_binary_recursion). Fix
+       trouble with logical ops code generation.       
+
+2004-11-12  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * TypeOf.cs, Plus.cs, Equality.cs:  implementation of
+       JScriptTypeOf, EvaluatePlus, EvaluateEquality.
+       * Convert.cs (ToString): use the IConvertible/TypeCode approach
+       for convertions. Add GetTypeCode.
+
+       * Parser.cs, expression.cs: discriminate among =, +=, -=, etc. Add overload of
+       ToJSToken.
+
+2004-11-10  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs (emit_late_call): Pop after Call or CallValue when
+       needed. (New.Emit) add emit_create_instance.
+       
+
+2004-11-08  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs (class New): add new operator support. Add
+       emit_args, implemented Emit.
+
+       * expression.cs: emit unary operator code.
+       * TypeOf.cs: back to Microsoft.JScript namespace. fix typo.
+       * Literal.cs: constrain more the case of negative numeric literal.
+
+       * expression.cs (emit_func_call): pop if function's return type is
+       non-void and has no effect. 
+
+2004-11-07  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * BinaryOp.cs: added constructor for instantiating derived classes.
+       * BitwiseBinary.cs, Equality.cs, In.cs, InstanceOf.cs,
+       NumericBinary.cs, Plus.cs, Relational.cs, StrictEquality.cs,
+       expression.cs (classes Binary, Assign): use inherited constructor. 
+       * BitwiseBinary.cs, Equality.cs: deleted public constructor which carried the context.  
+
+2004-10-25  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * StringObject.cs: add value field
+
+       * expression.cs: implement LateBinding. Added methods:
+       emit_late_binding, init_late_binding, emit_late_get_or_set,
+       get_global_scope_or_this, setup_late_call_args, load_script_func, emit_late_call
+       * Convert.cs: implement CheckIfDoubleIsInteger and CheckIfSingleIsInteger
+
+2004-10-20  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * ast.cs (Function): added method emit_return_local_field, if
+       there's a return stm inside a function we must allocate a
+       JSLocalField indicating the return type of the function.
+       * FunctionDeclaration.cs, FunctionExpression.cs: generate the
+       extra JSLocalField if needed
+
+2004-10-19  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * Parser.cs: set the operator properly.
+
+2004-10-11  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * GlobalObject.cs: ported encodeURI, encodeURIComponent,
+       decodeURI, decodeURIComponent from Rhino's codebase. Added methods encode and decode.
+       
+       * expression.cs (Call.Emit): implement IsConstructorProperty.
+
+2004-10-06  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: added support for function calls. Handle case of
+       print where no args are supplied.       
+
+2004-10-05  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * ast.cs: added GetContainerFunction property.
+       * Statement.cs: added class NotVoidReturnEventArgs and delegate
+       NotVoidReturnEventHandler, throw an event in case we find a
+       return, the enclosing function object takes care of changing the
+       return type of the function.
+       * FunctionDeclaration.cs, FunctionExpression.cs: take care of
+       return's inside functions.
+
+2004-09-22  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: Binary, use ResolveFieldAccess only in case the operator is JSToken.AccessField.
+
+       * Parser.cs: use ToJSToken to set the operator properly.
+       * FunctionDeclaration.cs: delete spaces.
+
+2004-09-21  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * FunctionDeclaration.cs: check for parent being a ScriptBlock.
+
+2004-09-20  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: added semantic analysis for accessing fields on
+       class Binary. Semantic Analysis for Calls it takes care of
+       constructors and methods, added invocation code for built in
+       methods. Added interface IAccesible that let us resolve the '.'
+       operator. Class Args handles missing or surplus arguments. Added
+       class BuiltIn which will take care of all builtins of ECMAScript.
+       * ast.cs: added check for parent equal to ScriptBlock.
+       * SymbolTable.cs: added method Remove.
+       * Statement.cs: Added abstract class Jump of which Continue and
+       Break inherit, checks the label stuff. Added checks for Label
+       stuff to Continue and Break classes. Added method Init for
+       DoWhile. Fixes for loops statements in order to be able for have
+       nested loops. Initial support for Label statements.
+       * SemanticAnalizer.cs: added hash global_env and
+       IdentificationTable label_set for keeping track of global methods and
+       label sets. Added static constructor, method BuildGlobalEnv,
+       ImplementationName, ObjectSystemContains, AddLabel, ContainsLabel,
+       GetLabel, RemoveLabel.  
+       * Relational.cs: added code generation for ops instanceof and
+       in. Fixes for usual relational ops.
+       * Parser.cs:fixes to keep track of the inheritance chain.
+       * MathObject.cs: added internal constructor.
+       * JSFunctionAttribute.cs: added fields value and built_in_function
+       so we can decide when a method is really a built in.
+       * IdentificationTable.cs: added method Remove.
+       * CodeGenerator.cs: fixes for fall_true & fall_false for taking care of ast when is a Expression.
+
+2004-08-25  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: made Binary is IAssignable, added fields assign
+       and right_side, added method ResolveAssign (which now receives an
+       extra parameter, being the right side of the assigment). Take care of being
+       inside a function for array indexing. Take care of lvalue case
+       too. Assign.Emit just calls left.Emit since left knows everything
+       about the right side of the assigment after Resolve process.
+       * BitwiseBinary.cs, CodeGenerator.cs, Equality.cs, NumericBinary.cs, : updates for BinaryOp change.
+       * BinaryOp.cs: renamed current_op to op as with the new
+       parser we no longer need to keep track of the old_op.
+
+2004-08-24  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: do not pass the operand as a parameter to the
+       constructor as it gets after the parent gets constructed, same
+       with binary. Added code generation for array index access.
+       * Parser.cs: added ToJStoken which converts Token to JSToken,
+       factored the code for creation the Unary nodes. Take care of
+       parent relationship.
+       * LateBinding.cs: back to Microsoft.JScript namespace.
+       
+
+2004-08-23  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * Parser.cs: pass the skip_count to ArrayLiteral constructor.
+       * Missing.cs: back to Microsoft.JScript namespace.
+       * ArrayLiteral.cs: added field skip_count, it tells us if this is
+       a spaced-arrayliteral, in which case we add a null value in the
+       list, added null check in the resolve and code generation process.
+
+2004-08-21  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * expression.cs: added interface ICallable and and function AddArg
+       to class Call. Added class New.
+       * driver.cs: made it use the new lexer and parser.
+       * ast.cs: added field line_number, added property InFunction,
+       added class Function that factores all the code shared between
+       FunctionDeclaration and FunctionExpression.
+       * With.cs: constructor receives line number.
+       * VariableStatement.cs: constructor receives line number.       
+       * VariableDeclaration.cs: Added check for parent being
+       FunctionDeclaration and FunctionExpression.
+       * Try.cs: Moved the code that used to take care of the catch to
+       Catch class. Constructor receives forming elements and line
+       number. Removed mangle_id.
+       * Throw.cs: constructor receives line number.
+       * Statement.cs: If, DoWhile, Return  constructor receives line number. Renamed
+       identifier to label in Continue and Break class, its constructor now
+       receives the label and line number. For class, constructor
+       receives its forming parts. Switch class, constructor receives
+       line number, added function AddClause and AddStm. Added class
+       Catch. Added class Labelled.
+       * SemanticAnalyser.cs: Added field anon_method_counter, properties
+       NextAnonymousMethod and CurrentAnonymousMethod.
+       * Parser.cs: function ArgumentList receives a ICallable list
+       instead of a AST. Now we add the arguments of a callable. Build
+       Call's ast.
+       * Literal.cs: added constructor for 'this' literal and
+       ObjectLiteral constructor. Added RegExpLiteral class, will take
+       care of regular expressions semantic analysis and code generation.
+       * JSScanner.cs: use no more the antlr based lexer. Fix typo.
+       * JSParser.cs: make it use the new port of Rhino's Parser.
+       * FunctionObject.cs: Added constructor that receives the function name.
+       * FunctionExpression.cs: made it inherit from Function class. Added
+       constructor. Factored the code that used to set the prefix to
+       Function.set_prefix (it's shared with FunctionDeclaration). Added
+       fields local_script_func and field. Implemented Resolve and Emit
+       (now we can do: var x = function (this, method, is, anonymous) {... };).        
+       * FunctionDeclaration.cs: made it inherit from Function class in
+       order to share code with FunctionExpression. Added new
+       constructor. Moved the code that used to built the prefix to
+       Function inside function set_prefix. When building the closure
+       added check for  setting the type of a FunctionExpression. Moved
+       set_function_type and set_custom_attr to class Function. 
+       * ForIn.cs: added constructor and fields lhs, obj and body.
+       * Block.cs: added default constructor and line number based
+       constructor. Check for elems not being null before adding.
+       * ArrayLiteral.cs: set elements in constructor.
+       
+2004-07-29  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * Parser.cs: Added ClauseType enum. Added all the statements to current_script_or_fn,
+       building the other block was not needed. Build the ast's for the
+       expressions and statements, keep track of the parent relationship.
+
+2004-07-19  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
+
+       * Added Token.cs, TokenStream.cs, Parser.cs which are the port of
+       Mozilla/Rhino's  parser.
+
 2004-06-24  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>
 
        * jscript-lexer-parser.g: added ast building for object_literal,