* Makefile: Build the make-map.exe in Mono.Unix.Native; add /nowarn:0618 to
[mono.git] / mcs / class / Microsoft.JScript / Microsoft.JScript / ChangeLog
index 980ea9bc467cccb2c1cc56420f4484d8e6f0ec89..00d040cb0bfa83113f6ea6d4ad899f8b786478b2 100644 (file)
@@ -1,3 +1,719 @@
+2005-09-13  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalyser.cs: Add field assemblies. Run now receives the
+       assembly's array, add method ComputeNamespaces,
+       * Parser.cs: Add support for the 'import' statement. Add field
+       code_items, new constructor, methods ParseAll and Import.
+       * Import.cs: Implement Resolve and Emit methods.
+       * ScriptBlock.cs: Add default ctr.
+
+2005-09-11  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs (Identifier::emit_undeclared_assignment): Fix
+       small regression related to the value/refs patch. All works again
+       for undeclared variables.
+
+2005-09-09  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalyser.cs, expression.cs (Unary): Fixes for delete
+       operator.
+
+2005-09-08  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Relational.cs: The loading of true or false it's generated by
+       EmitRelationalComp not in Relational.Emit as is not always needed.
+       * CodeGenerator.cs: Add EmitRelationalComp.
+       * expression.cs (Args.Emit, emit_default_args_case): take care of
+       Relational operator case.
+
+2005-09-06  Florian Gross  <flgr@ccan.de>
+
+       * ObjectPrototype.cs: Implemented better working hasOwnProperty
+       * In.cs: Implemented JScriptIn
+       * LateBinding.cs: Added LateBinding.Delete, HasObjectProperty,
+       DirectHasObjectProperty
+
+2005-09-06  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * CodeGenerator.cs (GetBoxType): Take into account the case where
+       the type is relational whose operator is In.
+
+2005-09-02  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalyser.cs: Added IsDeletable, check if a property is
+       in an object's constructor.
+       * CodeGenerator.cs: Added JSToken.Delete to GetBoxType.
+       * expression.cs: (Unary) Added field deletable. Take care of the
+       case when the property that we are trying to delete is not
+       deletable, we use late binding's method Delete for that. (Binary)
+       Added property IsDeletable. (Args) Do not pop the values of
+       arguments which implement Exp.
+
+2005-08-28  Florian Gross  <flgr@ccan.de>
+
+       * Try.cs: Implemented JScriptExceptionValue
+       * DateConstructor.cs: Adjusted rounding of date values
+       * RegExpPrototype.cs: Truncates lastIndex before using it
+       * With.cs: Implemented JScriptWith -- can't test this yet because
+       of compiler bugs
+       * ErrorPrototype.cs: Adjusted toString (no ClassName)
+       * JScriptCodeGenerator.cs: Implemented CreateEscapedIdentifier,
+       CreateValidIdentifier, GenerateAssignStatement, GenerateComment,
+       GenerateConditionStatement, GenerateMethodReturnStatement,
+       GenerateThisReferenceExpression, GenerateThrowExceptionStatement,
+       GenerateVariableDeclarationStatement, IsValidIdentifier,
+       QuoteSnippetString. Added dont_write_semicolon, GetSafeName,
+       FillKeywordTable, keywords. Most of this is very similar to the
+       implementation of the C# CodeGenerator
+       * DatePrototype.cs: prototype's time value is NaN, not 0
+       * Closure.cs: Sets _prototype from func
+       * FunctionObject.cs: Changed prototype of user functions 
+       * ErrorObject.cs: Added GetDefaultValue
+       * GlobalObject.cs: parseFloat handles whitespace correctly.
+       Various bug fixes for parseInt
+       * RegExpObject.cs: lastindex changed to double (was int)
+
+2005-08-19  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalyser.cs: Added ArrayLiteral, StringLiteral,
+       BooleanConstant, ByteConstant, ShortConstant, IntConstant,
+       LongConstant, FloatConstant, DoubleConstant to the
+       prototypes. Added methods IsNumericConstant, NeedsToBoolean.
+
+       * Parser.cs: Added methods InRangeOf, HasNoDecimals which help on
+       building the property AST node depending on how big and precise
+       the number is.
+
+       * CodeGenerator.cs: (emit_get_default_this) Receives an extra
+       argument which indicates if we are inside a method, use
+       load_engine. Added method EmitBox, EmitConv, GetBoxType
+
+       * Literal.cs: Add abstract class Constant. Renamed BooleanLiteral
+       to BooleanConstant. Delete NumericLiteral, handle the number code
+       generation properly categorizing in ByteConstant, ShortConstant,
+       IntConstant, LongConstant, FloatConstant and DoubleConstant which
+       inherit from NumericConstant. (ObjectLiteral) Handle boxing issue.
+
+       * Statement.cs, Relational.cs: (If) Handle boxing issue.
+
+       * VariableDeclaration.cs: Handle the boxing issue when
+       we have initializers.
+
+       * Equality.cs, StrictEquality.cs: Handle the boxing issue before invoking
+       EvaluateEquality, JScriptStrictEquals.
+
+       * ArrayLiteral.cs: Implement ICanLookupPrototype so we can
+       optimize access to methods through the prototype and not
+       generating IL code that uses late binding. Handle the boxing
+       issue.
+
+       * expression.cs: (Unary.Emit) Nuke emit_unary_op. Take care of
+       properly boxing the operands of methods that evaluate the unary
+       operators at runtime. Fix the minus logic for IL generation, add
+       method emit_non_numeric_unary. Optimize the numeric
+       cases. (Binary) Add LateBinding internal
+       property. (Binary.emit_late_get_or_set, emit_array_access,
+       Conditional.Emit, Call.Emit, emit_print_stm, emit_late_call,
+       setup_late_call_args, EmitBuiltInArgs, Identifier.Emit, Args.Emit,
+       Expression.Emit, Assign.Emit, New.Emit)
+       Take care of properly boxing the built in .NET
+       values. (force_strong_type) Change the type from ParameterInfo to
+       object, take care specifically. (Expression) Add Last internal
+       property. In general, the point is that value types like integers,
+       booleans, etc... do not have to generate a box operation, the user
+       of the arg must handle that.
+
+2005-08-17  Florian Gross  <flgr@ccan.de>
+
+       * ScriptObject.cs: Added settable _proto for __proto__. This isn't
+       currently exposed to JScript, but set by
+       FunctionConstructor.CreateInstance. Moved AddField, ClassName,
+       proper_array_index up from JSObject
+       * Constructors: Added _length
+       * JSObject.cs: Moved AddField, ClassName, proper_array_index up to
+       ScriptObject. Added precaching of prototype fields
+       * PostOrPrefixOperator.cs: EvaluatePostOrPrefix correctly promotoes
+       old value to number. Implemented ++obj.a and obj["a"]--
+       * ActivationObject.cs: Added GetMemberValue
+       * expression.cs: Added logic for undeclared variables from cesar and
+       got it to work
+       * ObjectPrototype.cs: toString works on ScriptObjects now
+       * JScriptException.cs: Added extra_data for adding details to the
+       built-in messages
+       * IdentificationTable.cs: Adjusted internal name mapping logic
+       * Bindings.cs: Added stubbed IsMissing
+       * JSFieldInfo.cs: Added SetValue with Binder and CultureInfo stub
+       * Convert.cs: Added IsBoolean, implemented ToString for GlobalScope
+       * LateBindings.cs: Added name, obj constructor. Heavily refactored
+       by adding GetObjectProperty, TryDirectGetObjectProperty,
+       TryGetNativeProperty, DirectSetObjectProperty, TrySetNativeProperty
+       and changed methods to use them. We now do prototypes correctly in
+       general which also slows us down. MapToInternalName does
+       substituation of $ to dollar_. Implemented a simple property cache
+       * BooleanPrototype.cs: Better implementations of toString, valueOf
+       * Parser.cs: Fixed parsing of "in" keyword in argument lists
+       * FunctionPrototype.cs: Works with all ScriptFunctions
+       * RegExpObject.cs: Added extra data to RegExpSyntax exception
+       * GlobalScope.cs: Initializes elems, removed redundant AddField
+       override and implemented stub GetField with lex level
+       * ScriptFunctions.cs: Correctly sets __proto__ on result
+
+2005-08-13  Florian Gross  <flgr@ccan.de>
+
+       * DateConstructor.cs, StringConstructor.cs, ObjectConstructor.cs,
+       NumberConstructor.cs, FunctionConstructor.cs, BooleanConstructor.cs,
+       ArrayConstructor.cs, RegExpConstructor.cs, ErrorConstructor.cs:
+       Added name
+       * ScriptObject.cs: Added HasMethod, CallMethod uses
+       SemanticAnalyser.map_to_prototype and forwards engine
+       * ArrayPrototype.cs: Implemented sort, added SortHelper
+       * expression.cs: Implemented delete operator code generation
+       * NumericUnary.cs: Implemented EvaluateUnary (currently unused)
+       * ObjectPrototype.cs: smartToString falls back to toString instead
+       of duplicated code
+       * StringPrototype.cs: Fixed replace logic for replacement functions
+       * FunctionDeclaration.cs: More user function infrastructure
+       * FunctionObject.cs: Implemented ToString for user functions. Moved
+       name, return_type, parameters, ToString up to ScriptFunction.
+       Constructors set _prototype
+       * Closure.cs: More user function infrastructure
+       * Convert.cs: ToString Uses smartToString if no custom toString
+       exists
+       * BooleanObject.cs: Constructor now uses Convert.ToBoolean
+       * LateBindings.cs: GetMethodFlags logic for anonymous functions.
+       Initial implementation of DeleteMember. Implemented constructor
+       cases in Call and CallValue
+       * Relational.cs: Implemented EvaluateRelational, JScriptCompare
+       * Parser.cs: Fixed bugs in decompiler calls so that the decompiled
+       source code matches the original one
+       * FunctionPrototype.cs: Fixed toString function check
+       * Decompiler.cs: Adjusted indent properties. Made AddEOL not add
+       semicolons to lines which already end with one. Implemented double
+       literal logic
+       * SemanticAnalyser.cs: Added more prototype mappings
+       * ErrorConstructor.cs: Added ErrorTypeToName
+       * FunctionExpression.cs: More user function infrastructure
+       * ScriptFunction.cs: Added vsa_engine. Moved name, return_type,
+       parameters, encodedSource, ToString up from FunctionObject.
+       Implemented CreateInstance. Added initial setter for prototype.
+       Added GetDefaultValue
+
+2005-08-09  Florian Gross  <flgr@ccan.de>
+
+       * BitwiseBinary.cs: Implement LeftShift, RightShift and
+       UnsignedRightShift evaluation. Add method UnsignedRightShift.
+       * Token.cs: Added field PrintNames, Add flag ignore_error to
+       method Name.
+       * Decompiler.cs: Fixes for >>> implementation. Clean up the port.
+       
+2005-08-09  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Parser.cs: Added infrastructure for closure construction support
+       per Florian Gross and Miguel request ;-)
+       * Decompiler.cs: Added to the repository.
+
+2005-08-04  Jb Evain  <jbevain@gmail.com>
+
+       * CodeGenerator.cs: write a valid RequestAttribute on the assembly
+
+2005-08-03  Florian Gross  <flgr@ccan.de>
+
+       * ScriptObject.cs: Renamed __proto__ to proto for 1.1 compatibility
+       * expression.cs: Uses LateBinding.MapToInternalName to map __proto__
+       to proto
+       * StringPrototype.cs: replace doesn't use anonymous delegate anymore
+       for 1.1 compatibility
+       * JScriptException.cs: Added another case to ErrorMessage.
+       * IdentificationTable.cs: Uses LateBinding.MapToInternalName to map
+       __proto__ to proto
+       * LateBinding.cs: Added MapToInternalName and changed code to use it.
+       Fixed type mapping with varargs. Unwraps Closure objects to
+       FunctionObjects. Fixed bug in SetField logic
+       * JSObject.cs: Added ClassName for RegExpObject
+       * ArrayPrototype.cs: More uint / int fixes for concat, splice,
+       unshift
+       * StringConstructor.cs: String() ought to be "undefined"
+       * JScriptException.cs: Added code for user exceptions (eg. throw "x")
+       * FunctionObject.cs: Implemented length for user functions
+       * Convert.cs: uint / uint fix for Convert.ToNativeArray
+       * Throw.cs: Implemented JScriptThrow
+       * FunctionPrototype.cs: Correctly throws JSError.FunctionExpected
+       instead of NotImplementedException
+       * ScriptFunction.cs: Added arity as an alias for length (Mozilla)
+
+2005-08-02  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * TokenStream.cs: Display source name and line number.
+       * SemanticAnalizer.cs: Added StringLiteral to prototypes.
+       * Parser.cs: Added Location class, which tracks the SourceName and
+       line number. Build every node from the AST tree with location info.
+       * CodeGenerator.cs: Add emit_default_value.
+       * expression.cs: (Binary.Resolve) Fix for calling directly the
+       method from the prototype if the lhs binary expression is a
+       literal, added ICanLookupPrototype interface. Display the source
+       file name and line number in the errors. (Call) Added field
+       need_this, simplify the logic infering the exact number of
+       parameters from the called method. Added NeedThis. Re-implement
+       Resolve and Emit from Args, delete DesiredNumOfArgs, IsPrint,
+       has_var_args. Added Size, emit_default_args_case. Added location
+       field to FunctionObject. StringLiteral implements ICanLookupPrototype.
+       Fix typo from IAccessible :).
+
+       * All classes that inherit from abstract class AST: Use
+       constructor from AST that stores the parent and the new info from
+       Location.       
+
+2005-08-01  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Statement.cs (Catch.Emit): Fix for properly emit code for
+       loading the script engine.
+
+2005-07-29  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * All files at current dir: set svn:eol-style to native.
+
+2005-07-28  Florian Gross  <flgr@ccan.de>
+
+       * DateConstructor.cs: Sets _prototype. Added DateMod. MakeDay,
+       IsLeapYear, DaysInYear, WeekDay, HourFromTime, MinFromTime,
+       SecFromTime, msFromTime use DateMod (important for negative date
+       values!)
+       * ScriptObject.cs: Added implementation of proprietary __proto__
+       * JSObject.cs: Added more ClassName cases and fixed old ones.
+       GetDefaultValue uses smartToString instead of toString
+       * ArrayPrototype.cs: Added Proto. Switched indices and length values
+       to use uint instead of int so we can represent the full Array size
+       range from ECMA-262
+       * StringConstructor.cs: Sets _prototype
+       * ObjectConstructor.cs: Sets _prototype
+       * RegExpPrototype.cs: Added Proto. Uses uint instead of int for
+       RegExpMatch length and indices
+       * NumberConstructor.cs: Sets _prototype
+       * expression.cs: force_strong_type always uses ToNumber (fixes
+       broken arguments for Math.pow and so on)
+       * ObjectPrototype.cs: Added Proto. toString is dumb and will output
+       [object Array] when called on an Array instead of using
+       ArrayPrototype.toString. Added smartToString which does the old
+       behavior
+       * StringPrototype.cs: Added Proto. Uses uint instead of int for
+       arrays
+       * JScriptException.cs: Added more cases to Message
+       * ArrayObject.cs: Switched to uint for indices and length
+       * FunctionConstructor.cs: Sets _prototype
+       * Equality.cs: Rewrote equality logic. More cases covered, less code
+       * DatePrototype.cs: Added Proto
+       * Convert.cs: Added ToUint32. ToNumber with Arrays switched to uint
+       * StrictEquality.cs: Added logic for function equality
+       * StringObject.cs: Initializes value to "". Implemented Equals
+       * LateBinding.cs: More cases covered. Added logic for converting
+       arguments to match the signature. Added SetArrayLength. Refactored
+       to use SetArrayLength
+       * BooleanPrototype.cs: Added Proto and empty implementation of
+       constructor
+       * BooleanConstructor.cs: Sets _prototype
+       * FunctionPrototype.cs: Added Proto
+       * NumberPrototype.cs: Added Proto
+       * ArrayConstructor.cs: Sets _prototype
+       * SemanticAnalizer.cs: Added constructor and prototype information
+       to prototypes lookup table
+       * RegExpConstructor.cs: Sets _prototype
+       * ScriptFunction.cs: Added _prototype and implemented prototype
+       using it. Implemented Equals for built-in functions
+
+2005-07-28  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs (emit_access): Take into account that __proto__
+       property (Mozilla extension) is contained in ScriptObject.
+
+2005-07-27  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalizer.cs: Added Boolean/BooleanConstructor and
+       Function/FunctionConstructor. Delete method Dump.
+       
+2005-07-25  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalizer.cs: Added Object/ObjectConstructor to the obj_ctrs.
+       * expression.cs: Fixes error for cases like Constructor.Property.
+       * SemanticAnalizer.cs: Added Array/ArrayConstructor to the ctrs.
+
+2005-07-25  Marek Safar  <marek.safar@seznam.cz>
+
+       * IdentificationTable.cs: Fixed build.
+
+2005-07-24  Florian Gross  <flgr@ccan.de>
+
+       * DateConstructor.cs: CreateInstance handles Infinity, NaN and double
+       with decimal places correctly and won't fail when trying to get the
+       timezone offset for invalid values anymore. LocalTime keeps the date
+       in the correct timezone
+       * ScriptObject.cs: Moved GetField from JSObject.cs. CallMethod can be
+       used to call ObjectPrototype methods on objects of derived prototypes.
+       * JSObject.cs: Implemented SetMemberValue2, more cases for ClassName,
+       added avoid_toString argument to GetDefaultValue to avoid infinite
+       recursion from ObjectPrototype:toString
+       * ArrayPrototype.cs: Fixed pop, shift to work with the auto-popping
+       ArrayObject:length setter. Implemented toLocaleString
+       * ObjectConstructor.cs: Refactored to use Convert.ToObject. Invoke
+       works with null / undefined argument
+       * StringConstructor.cs: Handles Object []
+       * RegexpPrototype.cs: exec made aware of $_ and UpdateLastMatch
+       * JScriptInstanceOf.cs: Implemented JScriptInstanceof
+       * NumberConstructor.cs: Handles Object []
+       * ObjectPrototype.cs: toString uses GetDefaultValue if available
+       * StringPrototype.cs: match uses UpdateLastMatch, replace works with
+       replacement function, split handles max_count correctly in all cases
+       and calls UpdateLastMatch and handles no match case correctly
+       * IdentificationTable.cs: CreateSymbol mangles "$" to "dollar_" so
+       we can support RegExp.$1, Enter handles case where symbol exists
+       already so that  function foo (a, b, a) { }  works
+       * ArrayObject.cs: length setter pops elements if new size < old size
+       * ErrorPrototype.cs: Implemented constructor, toString
+       * JSFieldInfo.cs: Implemented Name
+       * DatePrototype.cs: Made toDateString, toLocaleDateString,
+       toLocaleString, toLocaleTimeString, toString, toUTCString handle
+       invalid date value cases
+       * NumericBinary.cs: Refactored to use Convert.ToNumber
+       * Convert.cs: Refactored ToBoolean, ToInt32, ToNumber, ToObject to
+       use IsNumberTypeCode. Added more object cases to ToNumber. ToNumber
+       with string correctly choses parseInt or parseFloat instead of always
+       using parseFloat. Implemented ToNativeArray. Added more cases to
+       ToObject. Fixed ToString with double to be more standards conform
+       * StringObject.cs: Implemented length getter
+       * LateBinding.cs: Added GetMethodFlags, GetRequiredArgumentCount.
+       Made assemble_args ignore trailing unneeded arguments and handle
+       methods that don't have a thisObj argument. Added Invoke logic for
+       Closure, FunctionObject and RegExpObject. Made GetNonMissingValue
+       work correctly for GlobalScope. Correctly sets length when adding
+       index properties to ArrayObjects. Implemented SetValue
+       * GlobalObject.cs: Implemented escape, Function, unescape. Made
+       parseFloat ignore some leading / trailing garbage
+       * FunctionPrototype.cs: Implemented apply, call
+       * RegExpObject.cs: ToString handles empty RegExp case correctly.
+       Initialize made aware of $*. Implemented GetDefaultValue
+       * TokenStream.cs: Handle overflows from float literals
+       * ErrorConstructor.cs: Added ErrorTypeToClass, implemented
+       CreateInstance
+       * RegExpConstructor.cs: RegExpConstructor adds fields for $_,
+       $&, $+, $`, $', $*. Added UpdateLastMatch. Invoke handles zero
+       argument case. Added getters for $1 to $9. Implemented input,
+       lastMatch, lastParen, leftContext, rightContext, multiline
+       * ScriptFunction.cs: Implemented length getter and setter
+
+       * SyntaxErrorObject.cs, ReferenceErrorObject.cs,
+       TypeErrorObject.cs, ErrorObject.cs, EvalErrorObject.cs,
+       RangeErrorObject.cs, URIErrorObject.cs: Added new ctr, which is used at
+       ErrorConstructor::CreateInstance.
+       
+       * expression.cs: Use Missing.Value for missed parameters in method
+       invocations.
+       
+2005-07-17  Florian Gross  <flgr@ccan.de>
+
+       * DateConstructor.cs: Implemented UTC
+       * ScriptObject.cs: Implemented GetMethod, CallMethod
+       * JSObject.cs: Implemented fallback ToString, more ClassName cases and
+       fallback GetDefaultValue
+       * ArrayPrototype.cs: Fixed concat, join and added splice
+       * RegExpPrototype.cs: Implemented compile, exec, test
+       * expression.cs: Emit JS undef instead of JS null for missing args.
+       * StringPrototype.cs: changed lastIndexOf to be compatible with JSC.
+       Implemented match, replace (no replacement closure), search, split.
+       No longer uses assert_type for ensuring right type of thisObj
+       * ArrayObject.cs: Better length argument handling in constructor. Added
+       SpliceSlowly
+       * DatePrototype.cs: Added setDate, setFullYear, setHours, setMinutes,
+       setMilliseconds, setMonth, setSeconds, setTime, setUTCDate,
+       setUTCFullYear, setUTCHours, setUTCMinutes, setUTCMilliseconds,
+       setUTCMonth, setUTCSeconds, setYear
+       * FunctionObject.cs: Moved MethodAttributes to ScriptFunction. Added
+       MethodInfo-taking constructor
+       * Convert.cs: Added IsNumber, IsString, ToRegExp. More cases in
+       ToNumber. Refactored ToString
+       * ScriptEquality.cs: More cases
+       * LateBindings.cs: Big refactoring. Introduced assemble_args. Handles
+       missing arguments. build_args can pass null as engine. More CallValue,
+       GetNonMissingValue cases
+       * Plus.cs: Heavily refactored EvaluatePlus from 90 to 12 lines
+       * GlobalObject.cs: Added CollectGarbage
+       * NumberPrototype.cs: No longer uses assert_type for unsuring right
+       type of thisObj
+       * RegExpObject: Added lastIndex, Initialize, stores compiled Regex
+       * SemanticAnalizer: Added missing prototypes. Made assert_type work
+       with derived types
+       * ScriptFunction.cs: Moved MethodAttributes from FunctionObject. Added
+       MethodInfo. Implemented Invoke for built-in functions.
+
+2005-07-07  Florian Gross  <flgr@ccan.de>
+
+       * MathObject.cs: Implemented max and min (untested)
+       * ObjectConstructor.cs: Implemented Invoke
+       * StringConstructor.cs: Implemented Invoke and fromCharCode
+       * PostOrPrefixOperator.cs: Implemented EvaluatePostOrPrefix
+       * NumberConstructor: Implemented CreateInstance and Invoke
+       * expression.cs: Implemented unary operators void, +, -, !, ~ and !
+       * ArrayPrototype.cs: Implemented concat, push and unshift
+       * DatePrototype.cs: Implemented getDate, getDay, getFullYear, getHours,
+       getMilliseconds, getMinutes, getMonth, getSeconds, getTime,
+       getTimezoneOffset, getUTCDate, getUTCDay, getUTCFullYear, getUTCHours,
+       getUTCMilliseconds, getUTCMinutes, getUTCMonth, getUTCSeconds,
+       getVarDate, getYear, toDateString, toGMTString, toLocaleDateString,
+       toLocaleString, toLocaleTimeString, toString, toTimeString,
+       toUTCString and valueOf
+       * ObjectPrototype.cs: Implemented toLocaleString and valueOf
+       * StringPrototype.cs: Implemented substr and concat
+       * Convert.cs: Implemented ToPrimitive, ToBoolean and ToUint16. Added
+       more cases to IsNumberTypeCode, IsFloatTypeCode and ToInt32. Fixed
+       ToString with doubles
+       * Plus.cs: Added more cases. Fixed endless loop for unknown types via
+       ugly goto
+       * ArrayObject.cs: Added GetDefaultValue
+       * NumberObject.cs: Added GetDefaultValue
+       * StringObject.cs: Added GetDefaultValue
+       * BooleanObject.cs: Added GetDefaultValue
+       * GlobalObject.cs: Fixed parseFloat. Added parseInt and ScriptEngine*
+       functions
+       * JSObject.cs: Implemented abstract GetDefaultValue
+       * BitwiseBinary.cs: Implemented &, ^ and | operators
+       * BooleanConstructor.cs: Implemented Invoke
+       * DateConstructor.cs: Implemented infrastructure for DatePrototype.
+       Note: YearFromTime is ported from Rhino. Also implemented Invoke and
+       CreateInstance.
+       * NumberPrototype.cs: Implemented toFixed, toLocaleString and toString
+       * TokenStream.cs: Fixed locale dependant float parsing
+       * LateBinding.cs: Added proper support for varargs passing
+
+2005-07-06  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * FunctionExpression.cs (build_closure): Use CodeGenerator.load_engine.
+
+       * Parser.cs: Restore pn as the parent.
+       * expression.cs: Added is_dynamic_function field to class
+       Call. It's not enough knowing if the parent is a
+       FunctionExpression/FunctionDeclaration, we must assure that we
+       are really inside a FunctionExpression/FunctionDeclaration in
+       order to know in which place is the engine. setup_late_call_args
+       and get_global_scope_or_this used the new field for loading the
+       engine.
+
+2005-07-05  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * LateBinding.cs (CallValue): throw a NotImplementedException
+       instead of a returning null.
+
+       Fixes bug #75442
+       * FunctionExpression.cs (Emit): use InFunction instead of testing by hand.
+       * Parser.cs (MemberExpr): pass parent as the parameter not pn.
+       * expression.cs (get_global_scope_or_this): use
+       CodeGenerator.load_engine for loading the engine, and invoke
+       GetGlobalScope when the member_exp is a function expression.
+
+2005-07-04  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       Fixes bug #75440
+       * expression.cs (emit_late_get_or_set, emit_late_call): Take care the case where
+       the left hand side of a late bound expression is a literal.
+       * SemanticAnalizer.cs: Added IsLiteral method.
+
+2005-07-02  Florian Gross  <flgr@ccan.de>
+
+       * ArrayPrototype.cs: Implemented pop, reverse, shift and slice
+       * StringPrototype.cs: Implemented anchor, big, blink, bold, charAt,
+       charCodeAt, fixed, fontcolor, fontsize, indexOf, italics, lastIndexOf,
+       link, localeCompare, slice, small, strike, substring, sup,
+       toLocaleLowerCase, toLocaleUpperCase, toLowerCase, toString, toUpperCase
+       and valueOf
+       * ArrayObject.cs: ArrayObject-ctor works correctly when first argument
+       isn't length and first element gets assigned to 0 slot correctly
+       * NumberObject.cs: Basic constructor / double value made internal
+       * Equality.cs: Added basic logic for TypeCode.Empty, DBNull, Boolean and
+       Char
+       * FunctionObject.cs: ToString matches that of MS JS.NET for internal
+       functions
+       * Convert.cs: IsNumberTypeCode and IsFloatTypeCode utility methods, basic
+       implementation of ToInt32 and ToNumber, more cases for ToString
+       * StrictEquality.cs: Initial working implementation
+       * LateBindings.cs: Call works for Methods that don't have HasEngine and
+       support for getting methods (as in "foo".link) in GetNonMissingValue
+       * Plus.cs: Added support for more types
+       * GlobalObject.cs: Implemented isNaN, isFinite and parseFloat
+       * FunctionPrototype.cs: Implemented toString
+       * NumberPrototype.cs: Implemented valueOf
+       * Globals.cs: Implemented ConstructArrayLiteral
+       * TypeOf.cs: Added more cases
+
+2005-06-10  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * LateBinding.cs: Added field right_hand_side. Initial
+       implementation of Call. Added build_args method. Initial
+       implementation of GetNonMissingValue.
+       * Convert.cs (ToObject): Add return values for TypeCode.String,
+       TypeCode.Boolean, and TypeCode.Object.
+       * RegExpPrototype.cs (toString): Implemented.
+       * RegExpObject.cs: Implemented.
+       * RegExpConstructor.cs: Implement Construct, CreateInstance, and Invoke.
+
+2005-06-06  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * expression.cs (emit_access): We can now access the properties
+       from the Global RegExp object, they were not being accesible
+       because they are properties not fields.
+
+2005-05-31  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalizer.cs: Add the global, non-constructable RegExp
+       constructor object to obj_ctrs so we can type-check its property
+       access as well as fixing the break showed at #74681 now the raise
+       the proper error code. Renamed method object_contains_method to
+       object_contains, and now we filter on instance members too.
+       * expression.cs: use new API from SemanticAnalizer.
+
+2005-05-30  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Literal.cs: (RegExpLiteral.Emit): Take care of attributes. "g" is
+       global, "i" is case-insensitive and "m" is multi-line.
+
+2005-05-19  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Parser.cs: Throw NotImplementedException for function
+       declarations that appear inside other statements
+       (FunctionType.ExpressionStatement declarations). Fix the
+       NullReferenceException from #74970. But now exposes #75002.
+
+2005-05-18  Marek Safar  <marek.safar@seznam.cz>
+
+       * JScriptCodeGenerator.cs: Stubbed.
+       
+       * JScriptCodeProvider.cs: Implemented.
+
+2005-05-17  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * SemanticAnalizer.cs: Add methods_with_outter_scope_refs and
+       methods_with_vars_used_nested hashtables.
+       AddMethodReferenceOutterScopeVar,  AddMethodVarsUsedNested,
+       MethodReferenceOutterScopeVar. OutterScopeVar,
+       MethodVarsUsedNested and VarUsedNested.
+       * CodeGenerator.cs: Add locals_to_stack_frame method and emit_parents.
+       * TypeManager.cs: Add LocalsAtDepth.
+       * VariableDeclaration.cs: keep track of the lexical depth of
+       current declaration.
+       * FunctionDeclaration.cs: take care of outter scope variables uses.
+       * IdentificationTable.cs: keep track of Catch statement opened blocks.
+       * expression.cs: take care of eval's Net_1_0 and greater
+       versions. Implement the use of variables in nested scopes. For it,
+       we track the variable's scope level and we compare it with the
+       level in which appears if there's a difference supperior to one
+       and the variables wasn't not declared in the global scope we
+       proceed to generate the code that keep tracks of the state of the
+       variables through a StackFrame, in which we copy the local vars
+       prior to the invocation to the nested method which uses a outter
+       scope variable, then we copy back the variables in the StackFrame
+       into de local vars when the invocation finishes.
+       
+       * Try.cs: open a scope indicating that's for a catch block.
+
+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.