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