+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