X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FMicrosoft.JScript%2FMicrosoft.JScript%2FChangeLog;h=63b5b78f38a7ff842a23eaa45ef3144d5b91d07c;hb=efe3970b93b7d68fd0bd19484321978a7bc523f7;hp=4aa5860bd6e69a3fa348369634e29f52ef064130;hpb=17a1919a27709e7bfd90e53299ef8633abd1bd1d;p=mono.git diff --git a/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog b/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog index 4aa5860bd6e..63b5b78f38a 100644 --- a/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog +++ b/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog @@ -1,5 +1,446 @@ +2005-05-07 Cesar Lopez Nataren + + * 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 + + * Binding.cs: add missing methods and fields. + +2005-05-03 Cesar Lopez Nataren + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * StackTrace.cs: Back to M.J namespace. + +2005-04-08 Gonzalo Paniagua Javier + + * Literal.cs: fix the build and broke something else ;-). + +2005-04-08 Cesar Lopez Nataren + + * Literal.cs: Implement the construction of regular expression literal. + * Parser.cs: Pass the proper parent to RegExpLiteral. + +2005-03-30 Cesar Lopez Nataren + + * TypeOf.cs: take into account Objects. + * ArrayConstructor.cs: Implement CreateInstance. + * LateBinding.cs: Initial implementatio of CallValue and + SetIndexedPropertyValueStatic. + * JSFieldInfo.cs: Implement GetValue and SetValue. + * ArrayObject.cs: Implement length, add three ctrs. + * JScriptException.cs: Add error_number field. Implement + ctr. ErrorNumber, Message and StackTrace. + * ArrayPrototype.cs: Implement join and toString. + * JSObject.cs: Remove the ChainHash, we use a simple hashtable + now, the one inherited from ScriptObject. + * ScriptObject.cs: Add a Hashtable here. + +2005-03-29 Cesar Lopez Nataren + + * GlobalScope.cs: Set parent and engine in ctr. Return 'this' for + GetDefaultThisObject. + * ScriptObject.cs: Added protected 'parent' field of type + GlobalScope. + +2005-03-16 Cesar Lopez Nataren + + * FunctionExpression.cs: Update to TypeManager new API. + + * TypeManager.cs: Keep both MethodBuilder and LocalBuilder around. + + * FunctionDeclaration.cs: In some contexts we need the + MethodBuilder and LocalBuilder, so we must keep both around. + + * expression.cs: (load_script_func) Take care if bounded variable + was declared in a nested context. (emit_create_instance) Handle + the FunctionConstructor case. + +2005-02-28 Cesar Lopez Nataren + + * ForIn.cs: Initial implementation of ForIn stm. + +2005-02-27 Cesar Lopez Nataren + + * VariableStatement.cs (PopulateContext): Do not add the symbol to + the context if already defined in current context. + + * CodeGenerator.cs: Renamed VariableDefined to variable_defined_in_current_scope. + + * TypeManager.cs: Reimplemented it, We use an IdentificationTable + instead of a simple Hashtable so we can handle scopes + properly. Cleaner api. + + * VariableDeclaration.cs: Use new CodeGenerator api. (EmitDecl) + Add the builders to the TypeManager. + + * Block.cs: Use new TypeManager api. + + * FunctionDeclaration.cs: Use new TypeManager api. Take care of + scopes in the TypeManger on Emit. + + * IdentificationTable.cs: (Binder) Changed the type of value from + AST to object so I can use this symbol table + anywhere. (IdentificationTable) Add current_locals stack and added + method InCurrentScope. + + * expression.cs: Use new api from TypeManager, Add casts where neeeded. + + This solves an infinite loop we were falling into when calling + IdentificationTable.CurrentLocals when repeated declarations where + inside function declarations. + + * ast.cs: Added protected field ig to class Function. + * Block.cs: Emit function's body in a later phase since free + ocurrences of functions - at the same level of it - can be handled + properly, since they must be defined and inited to the correct values. + * FunctionDeclaration.cs: Renamed Emit to create_closure. And make + Emit only generate the code of the body. + + Fixes #73078. + +2005-02-22 Cesar Lopez Nataren + + * Block.cs: Report error JS5040. Reopened #72674, see last comment of it. + + * CodeGenerator.cs: Added method VariableDefined. + + * TypeManager.cs: Added method SetMethod. + + * VariableDeclaration.cs (EmitDecl): Added logic to allow multiple + declarations of the same var. Fixes #72674. + + * Block.cs: Added hashtable ocurrences. It holds the index of the + previous declaration which after encountering another one with the + same name gets nuked. + + * FunctionDeclaration.cs: Added logic for allowing multiple + declaration of methods with the same name. Fixes #72674. + + * expression.cs (Args): Added field func. Holds a reference to the + Function which to the args are being passed. Use it to track the + proper number of arguments for the call. + +2005-02-20 Cesar Lopez Nataren + + * expression.cs (Args.Emit): check if num_of_args is -1. + * ast.cs (Function.NumOfArgs): avoid using a null pointer. In the + code generation phase if num_of_args is -1 means the actual + arguments are the desired number of args. Fixes #72697. + + * Parser.cs: Pass proper parent. + * CodeGenerator.cs: added emit_get_default_this. + * Literal.cs (This) : Resolve and Emit implemented. Fixes #72477 + * expression.cs: (emit_late_get_or_set) use + load_engine. (load_script_func) Ensure that TypeManager has a ref + to the local otherwise it's a field. (New.Resolve) Check if late + binding is needed. (New.Emit) Generate proper IL that make use of + late binding when the id of the constructor it's not part of the + build in objects. + +2005-02-14 Cesar Lopez Nataren + + * Token.cs, TokenStream.cs, Parser.cs: make this classes internal. + + * Context.cs: delete wrongly exposed ctr. + +2005-02-10 Cesar Lopez Nataren + + * expression.cs: use InFuntion in proper places. + + * Parser.cs: Add parameter that indicates if it's a prefix + operator. When building the MemberExprTail set to proper parent. + * PostOrPrefixOperator.cs: Partial implementation of ++ and --, + prefix and suffix, we assume that the operand is a variable. + +2005-02-09 Cesar Lopez Nataren + + * expression.cs: Added method EmitStore and EmitLoad to Identifier + class. Implemented op= operators. Fixes 72393. + +2005-02-08 Cesar Lopez Nataren + + * expression.cs (Identifier.Emit): Handle case where we are + assigning to a formal parameter. Fixes #72333. + +2005-02-06 Cesar Lopez Nataren + + * expression.cs: (load_script_func) Load localbuilder in an + invocation when needed, this let us have higher order functions, + which is lovely (Fixes #71129). Update calls to load_engine to new signature. + * FunctionDeclaration.cs: Add LocalBuilder to TypeManager.locals + * Statement.cs: Changed ctr to Init, so we can track correctly the + parent hierarchy when building the ast of the program. + * TypeManager.cs: Added field locals. Factored code for + handling the tables. Added enums ManagedType and Operation. + * Parser.cs: Track correctly the parent of return. + * ast.cs (class Function): add ScriptBlock as possible parent of a + global expression. + * CodeGenerator.cs: change signature of load_engine. Instead of a + AST a boolean. So we can call it with InFunction as parameter. + +2005-02-05 Cesar Lopez Nataren + + * expression.cs: rework the late binding algorithm, we directly + call an object's method if it's a static method of it. Added field + late_bind, properties AccessField and Binding, renamed emit_access + to emit_array_access to class Binary. Added fields params_info, + late_bind and var_args to Class Args; also methods has_var_args, + force_strong_type, reworked its Emit code, we take care of methods + which have variable number of arguments, take care of needed + conversions and boxing when the call has specific strong types as + formal parameters. Added method IsPrint and property Parameters to + class BuiltIn. + * IdentificationTable.cs: Better implementation of jscript's + environments semantics. Added classes Symbol and Binder. + * SymbolTable.cs: Nuked. + * Block.cs: Fix the semantic of semantic analysis and code + generatipo process, we now allow forward declarations of variables + and functions. + * FunctionDeclaration.cs: Added default ctr and Init method. Fix + the semantics of the Resolve and Emit process, we can have forward + declaration of variables and functions. Fix order in which + JSLocalField's get build. + * FunctionExpression.cs: Fix order in which JSLocalField's get build. + * VariableStatement.cs: Added methods EmitVariableDecls and PopulateContext. + * VariableDeclaration.cs: Added method EmitDecl. Delay the Resolve + and Emit process until the second phase. + * Statement.cs: Resolve process of For class take care of + VariableStatements for populating the environment in advance. + * TypeManager.cs: Make GetMethod return a MethodBuilder. + * ast.cs: Added field locals, property NumOfArgs, method GetName + to abstract class Function. + * SemanticAnalyser.cs: unified global environment and the stack of + contexts. Added field global_obj, adapt methods to new + IdentificationTable api. Delete method ObjectSystemContains. Added + method contains, is_js_object, object_contains_method, map_to_ctr, + get_member. + * Try.cs: Update to new IdentificationTable api. + * ScriptObject.cs, JSPropertyInfo.cs, FormalParameterList.cs, + JSFieldInfo.cs, JSMethodInfo.cs, JSLocalField.cs, + ScriptFunction.cs: use full namespace name for Binder. + +2005-01-17 Cesar Lopez Nataren + + * CodeGenerator.cs: Added load_engine. + * expression.cs (emit_func_call), FunctionDeclaration.cs: Fix + computation of VsaEngine. + +2005-01-11 Cesar Lopez Nataren + + * StringConstructor.cs: implement CreateInstance. + +2005-01-10 Cesar Lopez Nataren + + * BooleanPrototype.cs: update to assert_type. + * SemanticAnalizer.cs: move BooleanPrototype.AssertType here, rename it to assert_type. + +2005-01-06 Cesar Lopez Nataren + + * BooleanObject.cs: implement ctr's. + * BooleanPrototype.cs: back to M.J namespace. Implement contructor + property, toString and valueOf, add AssertType. + + * Convert.cs: add ToString overload and implement. + + * JSFieldInfo.cs, JSLocalField.cs: Add conditional NET_2_0 or BOOTSTRAP_NET_2_0 's + Mono_GetGenericFieldDefinition. + + * StringObject.cs: add ctrs. + +2005-01-05 Cesar Lopez Nataren + + * ObjectPrototype.cs: Add internal ctr. Implement hasOwnProperty. + * ObjectConstructor.cs: implemented CreateInstance. + * expression.cs (emit_create_instance): add Boolean case. + * Try.cs, Statement.cs (EmitStms), Literal.cs + (ObjectLiteralItem.Emit), CodeGenerator.cs (fall_false): delete + unused variables. + +2004-12-15 Cesar Lopez Nataren + + * CodeGenerator.cs: add support for compiling not only from cwd. + +2004-12-13 Cesar Lopez Nataren + + * expression.cs: emit code for null literal. + +2004-12-06 Cesar Lopez Nataren + + * expression.cs: added StringConstructor case. + + * MemberInfoList.cs: added internal classes Node, ListIter, + ChainHash and implement MemberInfoList. + * JSObject.cs: implement AddField, AddProperty, AddMethod, + GetMembers, RemoveMember, GetEnumerator, add ChainHash's ext + field. + + +2004-11-30 Cesar Lopez Nataren + + * *Prototype.cs: return constructor. + +2004-11-25 Cesar Lopez Nataren + + * GlobalObject.cs: return the different kinds of object's + constructors. + * DateConstructor.cs, StringConstructor.cs, ObjectConstructor.cs, + NumberConstructor.cs, VBArrayConstructor.cs, + FunctionConstructor.cs, EnumeratorConstructor.cs, + BooleanConstructor.cs, ArrayConstructor.cs, RegExpConstructor.cs, + ActiveXObjectConstructor.cs : added default constructor and static + contructor field. + * ErrorConstructor.cs: added default and discriminatory ctrs. Let + us know which type of error we are. + * DateObject.cs: add field that hold the millisecond representation of date. + * JSError.cs, JScriptException.cs: back to Microsoft.JScript namespace. + * DatePrototype.cs: add default ctr. + + * MathObject.cs: implement its methods. + +2004-11-24 Cesar Lopez Nataren + + * DateConstructor.cs: runtime support, ported parse method from Rhino. + +2004-11-22 Cesar Lopez Nataren + + * CodeGenerator.cs: (ff_emit_relational) receive a full + EmitContext as parameter. Added + ff_emit_equality_cond. (fall_false) take where of the case where + an expression is received. + + * Parser.cs: use ToJSToken for building the Relational + object. Map relational Token's to JSToken's. + * expression.cs: Added Size property to class + Expression. (emit_create_instance): Added Number code generation. + + * Relational.cs (Emit): fix typo, emit boxing to boolean. + +2004-11-19 Cesar Lopez Nataren + + * NumericBinary.cs: implement EvaluateNumericBinary. + +2004-11-15 Cesar Lopez Nataren + + * CodeGenerator.cs: factor code for fall_true/fall_false (add + emit_default_case, ft_binary_recursion, ft_emit_equality, + ff_emit_relational, ff_binary_recursion). Fix + trouble with logical ops code generation. + +2004-11-12 Cesar Lopez Nataren + + * TypeOf.cs, Plus.cs, Equality.cs: implementation of + JScriptTypeOf, EvaluatePlus, EvaluateEquality. + * Convert.cs (ToString): use the IConvertible/TypeCode approach + for convertions. Add GetTypeCode. + + * Parser.cs, expression.cs: discriminate among =, +=, -=, etc. Add overload of + ToJSToken. + +2004-11-10 Cesar Lopez Nataren + + * expression.cs (emit_late_call): Pop after Call or CallValue when + needed. (New.Emit) add emit_create_instance. + + 2004-11-08 Cesar Lopez Nataren + * expression.cs (class New): add new operator support. Add + emit_args, implemented Emit. + * expression.cs: emit unary operator code. * TypeOf.cs: back to Microsoft.JScript namespace. fix typo. * Literal.cs: constrain more the case of negative numeric literal.