* Makefile: Build the make-map.exe in Mono.Unix.Native; add /nowarn:0618 to
[mono.git] / mcs / class / Microsoft.JScript / Microsoft.JScript / ChangeLog
index 2f3f4cd117612f51ad7693fcf60e6e959a636c6a..00d040cb0bfa83113f6ea6d4ad899f8b786478b2 100644 (file)
@@ -1,3 +1,203 @@
+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