igor%mir2.org
153e664477
Build modifications to make Context.getImplementationVersion() to return string defined in build property files with automatic timestamping.
2004-08-14 22:44:22 +00:00
igor%mir2.org
ddaa32365c
Deprecating PropertyException as a part of common exception root changes, see 244492.
2004-08-14 16:45:30 +00:00
igor%mir2.org
cb08a88e11
Using Kit.initCause to wrap the original exception preventing creation of SecurityController class.
2004-08-14 16:42:33 +00:00
igor%mir2.org
43681e3c83
Documenting ClassFactory usage
2004-08-14 15:17:40 +00:00
igor%mir2.org
8bf8eabe05
Fixing compatibility issue caused by introduction of ContextFactory. See bug 255595 .
2004-08-14 15:12:38 +00:00
igor%mir2.org
b9c1cdf776
Fixing JavaDoc
2004-08-14 15:08:32 +00:00
igor%mir2.org
f0b2a92e18
Changing Kit.initCause to take and return RuntimeException: this is how it is supposed to be used, that is wrap checkable exceptions into uncheckable RuntimeExceptions.
2004-08-14 15:07:50 +00:00
igor%mir2.org
682b343169
Use common API to extract value associated with top scope prototype chain
...
not to duplicate code
2004-08-14 13:57:39 +00:00
igor%mir2.org
b198395e8d
NativeScript no longer implements Script interface which was kept only f
...
or compatibility.
2004-08-14 10:29:09 +00:00
igor%mir2.org
961c643892
The scope argument is removed from Context.decompileScript() since
...
decompilation does not depends on scope.
For compatibility the old signature is preserved as a deprecated method.
2004-08-14 10:28:15 +00:00
igor%mir2.org
30d891f64a
More JavaDoc comments including Context customization example
2004-08-14 09:01:26 +00:00
igor%mir2.org
f51deade8e
Fixing broken HTML markup in JavaDoc comments.
2004-08-14 06:44:39 +00:00
igor%mir2.org
9451768f5b
Renaming Kit.initCauseOrNull into simple Kit.initCause and making it to
...
return the passed exception to allow usage like:
throw Kit.initCause(new RuntimeException("WRAPPED"), origException);
2004-08-13 23:45:52 +00:00
igor%mir2.org
c407d06dc1
Fixing bug 255549: proper resolution of overloaded methods.
2004-08-13 19:31:32 +00:00
nboyd%atg.com
49823e0c7b
Prepare release candidate for 1.6R1.
2004-08-12 02:00:09 +00:00
igor%mir2.org
412251e336
Using explicit JavaImporter constructor to make namespace for swing and using it later with the "with" statement to get access to Java classes.
...
In this way the example can be used in an application that does not use ImporterTopLevel.
2004-08-10 16:11:13 +00:00
igor%mir2.org
f8da42c9d2
1. Separating compilation into bytecode and wrapping it into Script and Function instances both for the interpreter and class compiler. It is possible now to serialize the compiled interpreter bytecode and then wrap it in proper security context.
...
The change required to move security domain information form InterpreterData to its Scriptable wrappers. To simplify it and to make the interpreted functions to behave exactly as class compiled I merged InterpretedScript into InterpretedFunction which allowed to remove many casts and discrepancies when handling script and function instances.
2. Explicitly passing Interpreter instances to Context.compile... functions to avoid changing optimization level even temporarily.
3. Uniform initialization of class compiled and interpreted functions and scripts to avoid code duplication.
2004-08-10 16:06:56 +00:00
igor%mir2.org
1cb0255478
In JavaAdapter.currentFactory() do not assume that there is always active Context available and fallback to ContextFactory.getGlobal() in that case.
2004-08-10 15:52:19 +00:00
igor%mir2.org
89769e9a85
Simpler SyntxError handling:
...
Since changes to fix bug 254778 made the parser the sole source of syntax error reports, it removed the need to check for errors after tree transformation.
The patch removes those checks and moves all reporting about syntax errors into omj/Parser.java.
2004-08-09 18:04:18 +00:00
igor%mir2.org
d0628043b9
Fixing bug 254915: proper name lookup etc.
2004-08-09 16:57:06 +00:00
igor%mir2.org
caf00e67ee
Top call scope tracking changes:
...
Since E4X implementation needs to know the activation scope for tracking of default namespaces, previously an elaborated schema was added to set/restore the activation scope which relied on the fact that scrip and function with activation record should always call special entry/exit functions.
But that does not work for functions without activation records since they never call any special entry/exit pairs. So if application call such function directly, the function would not store its top scope anywhere and the E4X subsystem would not be able to get E4X library object.
The patch fixes with introduction of 2 functions, hasTopCall and doTopCall to ScriptRuntime and adding the following code prefix to each implementation of Callable.call that can start execution of script code:
public Object call(Context cx, Scriptable scope,
Scriptable thisObj, Object[] args)
throws JavaScriptException
{
// Prefix start
if (!ScriptRuntime.hasTopCall(cx)) {
return ScriptRuntime.doTopCall(this, cx, scope, thisObj, args);
}
// Prefix end
...
In this way there is always registered top scope during script execution and the previous elaborated schema became unnecessary so I reverted that part to almost pre-E4x state.
2004-08-09 11:00:47 +00:00
igor%mir2.org
d65a74793c
Fixing bug 254778: proper treatment of labels
2004-08-08 13:45:09 +00:00
igor%mir2.org
06080a4162
More switch parsing/code generation cleanups: now IRFactory constructs the proper parsed tree for the switch statement which removed the need for tree mutations in NodeTransformer and during code generation.
2004-08-07 20:08:38 +00:00
igor%mir2.org
c436b86043
Cleanup for code generation in interpreter: store itsICodeTop as instance variable to avoid clattering code with explicit passing of iCodeTop,
2004-08-07 15:42:13 +00:00
igor%mir2.org
1835a4776d
Switch parsing cleanup including reporting syntax error on duplicated default label
2004-08-07 15:39:55 +00:00
igor%mir2.org
72cfb14c71
Preparations for 1.6R1
2004-08-06 16:05:40 +00:00
igor%mir2.org
473f76a50f
Class-Path entry for Rhino: xmlbean.jar
2004-08-06 15:49:25 +00:00
igor%mir2.org
dc693719f5
Cleanup of call code generation: now it is split into separated functions for optimized/standard function calls.
2004-08-06 15:08:38 +00:00
igor%mir2.org
3811cf183e
Removal of no longer used debug name index in Token.CALL/Token.REF_CALL: ScriptRuntime.get(Elem|Prop|Name|Value)FunctionAndThis takes care about debugging themselves.
2004-08-06 15:02:48 +00:00
igor%mir2.org
09de001da9
GeneratedClassLoader is API class and should be listed in apiClasses.properties
2004-08-05 06:06:30 +00:00
igor%mir2.org
5f54cd264e
Restoring ScriptRuntime.call: BSF uses it!
2004-08-04 17:42:56 +00:00
igor%mir2.org
686ca051d2
Allow to pass JS-wrapped instances of org.apache.xmlbeans.XmlCursor and org.apache.xmlbeans.XmlObject to XML constructor to make proper XML objects from them.
2004-08-04 17:32:48 +00:00
igor%mir2.org
d7cab8295c
Preparations for Rhino 1.6R1 RC1
2004-08-04 17:28:11 +00:00
igor%mir2.org
5c76a0f4fa
1. Recently introduced ScriptableObject.default(Prototype|ParentScope)() methods had problems with serialization and are removed now. XML code explicitly sets parent/prototype. To simplify that ScriptableObject now contains a special constructor taking scope and prototype arguments.
...
2. xml/XMLObject do not define lib() method and instead defines few abstract methods to create "with" proxies and perform addition.
3. XMLLib implementation is stored in the scope using ScriptableObject.associateValue() and does not depend on presence of proper XML object.
2004-08-04 12:54:03 +00:00
igor%mir2.org
552d49a5ae
Preparations for 1.6R1 RC1
2004-08-03 17:13:40 +00:00
igor%mir2.org
d09a0eee9c
Cosmetics: untabify
2004-08-02 17:49:04 +00:00
igor%mir2.org
5a5e402b85
Added runtime support to allow custom wrapping of XML objects
2004-08-02 14:46:33 +00:00
igor%mir2.org
c65e9b8450
Use ScriptRuntime.notAFunction to report bad ScriptableObject.callMethod arguments
2004-08-02 14:44:03 +00:00
igor%mir2.org
0875b1550b
Explicit ScriptRuntime methods to get function and function this for all cases of method calls:
...
ScriptRuntime.get(Name|Prop|Elem|Value)FunctionAndThis provides uniform way to get function object and its this during function calls. It allowed to simplify handling of method calls both in interpreter and optimizer and opened a way to implement independent processing of function and property namespaces.
2004-08-01 23:21:17 +00:00
igor%mir2.org
061a717577
More compatibility renames: to simplify life for applications that use old IdScriptable/IdFunction/IdFunctionMaster I farther renamed:
...
IdFunction -> IdFunctionObject
IdFunctionMaster -> IdFunctionCall
2004-07-30 13:18:30 +00:00
igor%mir2.org
ed22b8d5bc
Compatibility rename: due to changes in IdScrittable any code that sublasses
...
it has to be updated. This is done for Rhino classes and since IdScriptable
is not a part of public API, it should not matter. But in reality someone can
subclass IdScriptable in application code.
To help with upgrade in such cases I renamed IdScriptable into
IdScriptableObject. In this way the application using IdScriptable code can add
old IdScriptable class to its CLASSPATH and be able to run again without the
need to recompile/change anything in the source.
2004-07-30 10:31:00 +00:00
igor%mir2.org
f8ca6bb144
The previous patch introduced regression: it is posible for slots array to be filled with slot objects and REMOVED tags. Thus getSlotPosition can loop through the whole table. This patch restores the old and proper state of affairs.
2004-07-30 07:52:30 +00:00
igor%mir2.org
88d3ceb9eb
Using single ScriptRuntime.toStringIdOrIndex to convert object id to string of index key instead of multiple calls to getStringId/getIntId.
2004-07-29 22:47:05 +00:00
igor%mir2.org
457b3cac9a
Calling proper ScriptRuntime.call taking scope argument instead of eprectaed old form.
2004-07-29 22:44:45 +00:00
igor%mir2.org
594bb52734
New "scratch" field for int indexes to allow to return more then one result from index parsing functions.
2004-07-29 22:42:50 +00:00
igor%mir2.org
61b4dfe136
Explicitly throw IllegalStateException to indicate code bug when hashtable scan end up in infinite loop.
2004-07-29 22:40:47 +00:00
igor%mir2.org
6c33ddde1a
Adding E4X example contributed by John Schneider from AgileDelta, Inc., http://www.agiledelta.com/ .
2004-07-29 15:55:41 +00:00
igor%mir2.org
7727f9784c
Fixing missed context wrapping in debugger/Dim and proper button enable/dosable in debugger/DebugGui
2004-07-29 12:51:35 +00:00
igor%mir2.org
f8d44cc5d9
Fixing under allocation of ids array while enumerating properties.
2004-07-29 12:46:46 +00:00
igor%mir2.org
80101fd2cf
Better error propagation from failed class loading: RuntimeError instances are rethrown while ClassNotFound, LinkageError etc. are caught.
2004-07-29 12:45:55 +00:00
igor%mir2.org
0f6d41a084
Renaming StringIdMap to Main and ipdating documentation
2004-07-29 10:44:59 +00:00
igor%mir2.org
0e32e1807e
Cleanup patch from Mario Cormier <mcormier@miranda.com> to fix bug 253323:
...
Parser contained useless this.decompiler = decompiler assignment.
2004-07-29 08:28:42 +00:00
igor%mir2.org
e9d84b06aa
Committing E4X runtime implementation: see enhancement report 242805.
...
This is based on code contributed to Rhino by AgileDelta, Inc, www.agiledelta.com and in particular by
Ethan Hugg
Terry Lucas
Milen Nankov
John Schneider
Thanks!
2004-07-28 23:43:17 +00:00
igor%mir2.org
575e8a64ff
Committing E4X parser and runtime proxies: see enhancement report 242805.
...
This is based on code contributed to Rhino by AgileDelta, Inc, www.agiledelta.com and in particular by
Ethan Hugg
Terry Lucas
Milen Nankov
John Schneider
Thanks!
2004-07-28 21:11:02 +00:00
igor%mir2.org
104a577692
Added ScriptableObject.equivalentValues to allow for custom equality operator support.
2004-07-28 15:23:11 +00:00
igor%mir2.org
eca6887020
Added Reference.has() for future use.
2004-07-28 15:21:02 +00:00
igor%mir2.org
a41b3ec13e
Ignore any exception during script class initialization unless it is an instance of RhinoException. In this way lazily class loading or incompatible with the current JVMs jars will simply hide the script variables.
2004-07-28 15:20:08 +00:00
igor%mir2.org
fa3b4a39aa
Always call Scriptable.has(name, start) as obj.has(name, obj) since the start argument is useless in Scriptable.has and in this way it is possible to add temporary assertions to the code checking this.
2004-07-28 13:27:39 +00:00
igor%mir2.org
02ca5d7471
Redesigning IdScriptable implementation.
...
The new logic introduces 2 independent id namespaces, instance ids and prototype ids. Typically there are very few instance properties and instance ids corresponds exactly to them. The prototype ids allows to define functions and other constant objects that typically found in prototype objects.
The new implementation takes advantage of this difference to provide very different API to implement fast mapping both for instance and prototype ids.
2004-07-28 11:40:38 +00:00
igor%mir2.org
26e2f979e9
Introduction of defaultParentScope and defaultPrototype in ScriptableObject for lazily initialization of scope and prototype.
2004-07-28 09:52:29 +00:00
igor%mir2.org
26bde72dd8
Making ScriptRuntime.typeError* public
2004-07-28 09:51:02 +00:00
igor%mir2.org
8684cd21de
Allow to subclass NativeWith
2004-07-28 09:50:07 +00:00
igor%mir2.org
a9e5ef9c3b
Favour same type converssions during LiveConnect for better support of java methods taking instances of Scriptable
2004-07-28 09:49:19 +00:00
igor%mir2.org
a17d812303
1. Optimizing getClassPrototype and getDefaultValue in ScriptableObject.
...
2. Start of the changes for simpler to use IdScriptable implementation: new utility functions in IdFunction and removal of Context argument from IdScriptable.fillConstructorProperties.
2004-07-28 07:12:46 +00:00
igor%mir2.org
d8725eb93f
Context.getArrayElements implementation is moved to ScriptRuntime which also defined now isArrayObject
2004-07-28 07:06:35 +00:00
igor%mir2.org
0b43005efc
Making next release to be 1.6 release 1
2004-07-12 14:26:30 +00:00
igor%mir2.org
6e592d434b
Renaming ObjArray.setReadOnly() to ObjArray.seal() to follow the rest of Rhino code.
2004-07-09 13:28:48 +00:00
igor%mir2.org
6c54cdec60
Fixing comments text to reflect real state of code
2004-07-07 14:47:46 +00:00
igor%mir2.org
4ada0b6a37
Almost reverting the prevois commit: it was too preliminary.
2004-07-07 14:46:58 +00:00
igor%mir2.org
943eb8493c
Changing the way Java getter and setter are stored: a new special class ComplexValue is used to indicate a controllable value that may have associated getter/setter methods. In this way getter can be added after slot creation without the need to replace slots.
2004-07-06 14:37:56 +00:00
igor%mir2.org
3ae6fdf9db
Token.ZERO and Token.ONE are used only by interpreter and moved to Interpreter as corresponding icode constants.
2004-07-05 15:08:34 +00:00
igor%mir2.org
3c5cccc01d
Removal of no-longer applicable comments refering to SM code
2004-07-05 15:07:25 +00:00
igor%mir2.org
22e375a6d4
Removal of Token.DOT in NodeTransformer: it is always processed in IRFactory.
2004-07-05 15:06:18 +00:00
igor%mir2.org
8791bc23b5
When support for Context.FEATURE_MEMBER_EXPR_AS_FUNCTION_NAME is enables,
...
decompiler now does not turn them into assignment statements but keeps
original code with extension when printing function source. It allows for
better emulation of this JScript extension
2004-07-04 17:26:50 +00:00
igor%mir2.org
428facfffa
Simplified handling of function expression statements: parser no longer
...
generate synthetic expression statement nodes for them.
2004-07-04 14:13:47 +00:00
igor%mir2.org
d49fff6560
Normilizing numeration of Token constants after removal of few no longer used
...
constants in the previous patches
2004-07-04 14:12:01 +00:00
igor%mir2.org
ed8b5cf4bf
Splitting code generation in interpreter and class compiler into separated statement-only and expression only cases to add more checks.
2004-07-02 15:36:13 +00:00
igor%mir2.org
c001992635
Replacing generic Token.EXPRSTMT by Token.EXPR_VOID and Token.EXPR_RESULT and removal of Token.POP and Token.POPV. Now parser creates appropriate expression statements itself so there is no need to replace the time in NodeTransformer.
2004-07-02 13:11:06 +00:00
igor%mir2.org
19a3f8f1df
Fixing bug 249471:
...
Fixing parseFloat logic and Context usage cleanup.
I changed number start detection code in parseFloat to check properly for lone
+/- while making the code IMO more redable.
In addtion patch removes unused Context parameter from various functions in
NativeGlobal including parseFloat which was remainder from pre IdFunction
code.
2004-07-02 06:55:21 +00:00
igor%mir2.org
f07023b676
Removal of Tiken.UNDEFINED: it was not used outside Interpreter
2004-07-01 16:40:44 +00:00
igor%mir2.org
6cda148128
Replacing state flags in TokenStream by separated boolean values to simplify
...
code and to remove flags that were set/cleared but never queried.
2004-07-01 14:52:22 +00:00
igor%mir2.org
860281245c
Change IRFactory to return/accept Node, not Object as the type for parse tree
...
nodes. Parser already assumes in a few places that such Node and it is not
worth to pretend otherwise.
2004-07-01 10:39:28 +00:00
igor%mir2.org
8c09378b4d
Fixing JavaDoc: the previous changes removed Context(ContextFactory)
...
constructor as factory is associated automatically with Context but JavaDoc
continied to refer to this constructor form.
2004-06-30 15:28:04 +00:00
igor%mir2.org
03fd126f9f
Deprecation of ContextListener in favour of ContextFactory.Listener:
...
the later is stored in the factory and not in static variables.
For compatibility an instance of ContextFactory stored in static variables
is used to provide support for old Context.addContextListener etc. API.
The static instance of the factory is also used by Context.enter to create
Context instances providing simple way to customize Context: one just need
to initialize the global static factory.
2004-06-30 15:23:39 +00:00
igor%mir2.org
b7d599a40f
Fix menu enable/disable misbehavior.
2004-06-30 13:29:41 +00:00
igor%mir2.org
0943483fa1
Fixing JDK 1.3 compatibility: TableModel.getRot() should not return null there.
2004-06-30 09:38:54 +00:00
igor%mir2.org
49d3ea3724
Fixing scope problems with IdFunction when IdScriptable is top scope itself:
...
scope for IdFunction instances is determined through getTopScope,
not getParentScope() which can be null.
To prevent null scope initialization problems in future IdFunction constructor
now throws an exception if scope argument is null.
2004-06-29 15:43:01 +00:00
igor%mir2.org
9c694e01db
Make EvaluatorException(String) public for compatibility
2004-06-15 04:42:59 +00:00
igor%mir2.org
7b30a5de99
Fixing regression after previous commit for bug 245882: when used as top scope ImporterTopLevel should not define constructor property not to hide Object.prototype.constructor.
2004-06-09 17:01:01 +00:00
igor%mir2.org
a8ca02b455
1. IdFunction.methodId is no longer public as some old Java compilers have troubles with it and accessor method has to be used instead.
...
2. IdFunction constructor now takes scope argument as well to prevent initialization bugs.
2004-06-09 12:54:04 +00:00
igor%mir2.org
89f5fdbbf7
The last commit made Rhino uncompilable! Fixing that.
2004-06-09 08:25:59 +00:00
igor%mir2.org
7bc79c031f
Implementing bug 245882: now ImporterTopLevel can be constructed from JavaScript using JavaImporter to allow to have class and package collections without namespace polluting.
2004-06-09 07:36:31 +00:00
igor%mir2.org
49246d9273
Work on bug 245882: check that scope is not this when setting scope chain
...
to prevent scope chain loops.
2004-06-08 23:30:30 +00:00
igor%mir2.org
bdfcefdff8
Default implemetation of toSource now lives in ScriptRuntime to allow its
...
reuse in othr objects.
2004-06-08 23:28:32 +00:00
igor%mir2.org
e565588063
Yet another change in IdFunction: now its constructor takes arity argument
...
which removes the need to have separated methodArity in IdFunctionMaster
intertface. The method, however, has to be preseved in IdScriptable since it
is used to find which arity should be used during IdFunction construction.
2004-06-08 22:25:57 +00:00
igor%mir2.org
7be4658c39
Using IdFunction in place of JIFunction in NativeJavaTopPackage
2004-06-08 15:29:34 +00:00
igor%mir2.org
4ab02a8202
Changin IdFunction/IdFunctionMaster iteraction:
...
1. execMethod and methodArity in IdFunctionMaster do not receive methodId explicitly but rather through the IdFunction instance. To ensure fastest access to method id it is made pubic final field.
2. IdFunction allows to associate an internal tag with itself that allows not to worry about id clashes and simply check for object tag before doing method dispatch.
2004-06-08 14:23:35 +00:00
igor%mir2.org
9409fd1750
JIFunction was wrong idea at the end: it is better to stick with IdFunction and teach it missed functionality. The patch changes JavaAdapter to use IdFunction for its constructor call.
2004-06-08 12:38:20 +00:00
igor%mir2.org
87e6a1e09c
API to set global SecurityController is moved to SecurityController not to clatter Context.
2004-06-08 11:09:40 +00:00
igor%mir2.org
f3d3d1d14a
Work on bug 244492: RhinoException is the new common base class for all exceptions.
2004-06-07 16:40:28 +00:00
igor%mir2.org
78729bc8b9
Switch to using Context.javaToJS instead of Context.toObject
2004-06-07 10:35:22 +00:00
igor%mir2.org
8404a66bdf
setGlobalSecurityController should be static
2004-06-07 10:34:22 +00:00
igor%mir2.org
a58e08501c
Introduction of ContextAction interface as a safe alternative for Context.enter/Context.exit. All usages of Context.enter/Context.exit in Rhino are replaced by
...
Context.call(new ContextAction() {
public Object run(Context cx) { ... }
});
or similar alternatives.
It prevents bugs with missed Context.exit and provides room for optimization of Context association with current thread and simplify implementation of safe environment for execution of untrusted applets and scripts.
In addition, Rhino now supports global SecurityController that take precedence over any per/Context controllers so the application can setup the controller once and for all.
2004-06-06 15:33:59 +00:00
igor%mir2.org
08117caf7c
ContextFactory is a new API class
2004-06-06 09:28:18 +00:00
igor%mir2.org
60c0074729
added ContextFactory which is used to create Context instances in JavaAdapter when there is no Context associated with the current thread.
2004-06-04 17:54:42 +00:00
igor%mir2.org
ca73e6aad1
Better JavaDoc comments for FEATURE_ constants
2004-06-04 17:51:27 +00:00
igor%mir2.org
46aea95d99
Allow to disable special treatment of __proto__ and __parent__ via overriding Context.hasFeature().
2004-06-04 14:57:31 +00:00
igor%mir2.org
29355807c9
Use consistent naming for property manipulation functions in ScriptRuntime and drop no longer used scope argument for ScriptRuntime.setProp that acts on strings.
2004-06-04 06:58:03 +00:00
igor%mir2.org
5a88756821
Code to create references to manipulate with __proto__ and __parent__ is moved to ScriptRuntime.specialReference not to expose too much implementation details
2004-06-02 14:56:25 +00:00
igor%mir2.org
a5438d7003
Changing Refrence.set(Object) to return Object to return the real stored value.
2004-06-02 11:33:09 +00:00
igor%mir2.org
4db86ff03e
Pass __proto__ and __parent__ special properties to code generation as strings to allow to support application-specific special properties without altering code generation.
2004-06-02 09:13:12 +00:00
igor%mir2.org
2c7e977b7e
Allow Rhino embeddings to support function as left-hand-side extension via overriding BaseFunction.specialCall().
2004-06-01 16:04:18 +00:00
igor%mir2.org
ef83ead18b
Making invalid left hand of assignment runtime reference error instead of syntax error as dictated by ECMAScript. Now interpreter/class compiler generates code that calls ScriptRuntime.genericReference() that in turn throws the error.
2004-05-31 15:49:19 +00:00
igor%mir2.org
2361dfc4fe
Work on bug 243057:
...
Introduction of support for calling function in reference context so with native functions code like f(args) = something or x.y(args)++ would be allowed.
The changes added necessary changes to parser and code generation but at runtime currently any such usage would throw an exception.
2004-05-31 14:51:20 +00:00
igor%mir2.org
a3039484fe
For prefix and postfix ++/-- use mask flags instead of enumeration to denote postfix/prefix and ++/-- operation.
2004-05-31 13:03:16 +00:00
igor%mir2.org
991ba5a998
Optimize ++name and --name similarly to name++ and name-- via special runtime support
2004-05-31 12:09:39 +00:00
igor%mir2.org
dbadb64388
Optimizing ++x.y and --x.y in the same way as x.y++ and x.y-- via special runtime support
2004-05-31 08:18:38 +00:00
igor%mir2.org
047a15067a
Introduction of generic Reference class to support latter constructions like f(args) = y and f(args)++. For now it is used to implement __proto__ and __parent__ special properties so x.__proto__++ now works
2004-05-31 07:18:52 +00:00
igor%mir2.org
067167b599
++x[y] is optimized in the same way as x[y]++ via special runtime support
2004-05-30 15:54:21 +00:00
igor%mir2.org
b79f99d123
Using negative nimbers for interpreter-specific tokens to allow for 256 bytecodes without using 0xFF & conversion
2004-05-30 14:21:07 +00:00
igor%mir2.org
0b398922b2
Added JavaDocs for Kit.initCauseOrIgnore
2004-05-29 09:37:48 +00:00
igor%mir2.org
bf11211950
Make code to call Throwable.initCause via reflection previously located in WrappedException publically available in Kit.java
2004-05-29 08:55:41 +00:00
igor%mir2.org
13742bf7e3
Follow conventinal code practics of throwing IllegalArgumentException, IllegalStateException directly instead of using additional helper methods for it.
2004-05-29 08:54:24 +00:00
igor%mir2.org
b32204397b
Patch from Merten Schumman <Merten.Schumman@asg.com> to add Main.mainEmbedded(String) which is a version of Main.main without System.in/err/out redirection. It simplifies life for embeddings.
2004-05-28 14:19:11 +00:00
igor%mir2.org
745d21a64a
Final implementation of GUI/debug implementation internals separation. Now the newly introduced Dim.java (Dim: Debug IMplementation) depends only on GuiCallback and contains all iteractions with Rhino.
2004-05-27 11:26:59 +00:00
igor%mir2.org
376d1c704f
exitAction is moved to DebugGui
2004-05-27 10:34:44 +00:00
igor%mir2.org
a33c5804bd
Prepare to remove dependancy of core debugger implementation on GUI: introduction of GuiCallback interface that DebugGui implements.
2004-05-27 10:21:24 +00:00
igor%mir2.org
8ebd78d480
Work on 244492: JavaScriptException extends RuntimeException
2004-05-26 11:54:10 +00:00
igor%mir2.org
2859645f27
Make sure that Context.getSourcePositionFromStack never returns negative numbers and uses 0 to indicate absence of line information. It accounts for differences between JVMs when dealing with incomplete debug information.
2004-05-26 11:03:03 +00:00
igor%mir2.org
d5073b98f0
In JavaScriptException constructor do not call ScriptableObjec.toString(value) since it may potentially trigger script execution for objects defining toString method which in turn may throw exceptions.
...
Instead for Scriptable arguments prints their [Object className] form which is provided by the new ScriptRuntime.defaultObjectToString(Scriptable) method.
2004-05-25 15:39:28 +00:00
igor%mir2.org
5951c62a93
Added JavaDoc link to a better way of wrapping exceptions then using WrappedException constructor
2004-05-24 10:11:23 +00:00
igor%mir2.org
1b43332683
Restoring public constructor for WrappedException for compatibility with Batik.
2004-05-24 07:53:06 +00:00
igor%mir2.org
34ab13be2a
Change Arguments.getIds to include argument indexes when getAll is true. It allows not to have a tailored getIds in the debugger.
2004-05-23 17:34:44 +00:00
igor%mir2.org
6e88856ae7
Fixing JavaDoc comments
2004-05-23 17:32:32 +00:00
igor%mir2.org
72e2855e0d
1. Reorganize debugger to move all code that interacts with the engine into Main.java while all GUI logic now presents in DebugGui
...
2. Move downloaded files for swing tree table into downloaded directory and adjust build files accordingly.
2004-05-23 16:15:09 +00:00
igor%mir2.org
52e39ba59a
Make sure that for Rhino-generated exceptions Throwable.getMessage() contains script file and line information.
2004-05-23 14:32:07 +00:00
igor%mir2.org
35bdebcd32
Make EcmaError to follow the same pattern as JavaScriptException
...
and EvaluatorException for getMessage() methods: it provides error message
with script source/line information.
2004-05-23 09:50:20 +00:00
igor%mir2.org
df54b03026
Switch to line info extraction through single top script processing
2004-05-22 23:19:56 +00:00
igor%mir2.org
7d46eb7a55
Splitting Main.java into Main.java and GUI-related DebugGui.java
2004-05-21 15:06:36 +00:00
igor%mir2.org
5655ee2688
Split Main class into Main and DebugGui to have better debugger/gui separation
2004-05-21 14:25:21 +00:00
igor%mir2.org
7515cd34c9
Move all logic to open source window at the end of compilation to single update action.
2004-05-21 12:04:47 +00:00
igor%mir2.org
3ed08b1008
1. Fixing reporting for calls to undefined: stringReg is not suitable for function names if function contains arguments. So Token.NEW/Token.CALL comes with index of potential function name.
...
2. If debug information is not generated, Context.interpreterLineIndex could contain garbage from previous function invocation leading to ArrayIndexOfBound. Now Context.interpreterLineIndex is initialized at the interpreter entrance and getSourcePositionFromStack checks against absent line numbers.
2004-05-21 11:43:38 +00:00
igor%mir2.org
f368c16d77
Move logic to show exception dialog into EnterInterrupt action
2004-05-21 11:27:59 +00:00
igor%mir2.org
d88a5e1d65
Test file
2004-05-21 10:53:19 +00:00
igor%mir2.org
1cffb3a028
I changed StackFrame.onLineChange to access breakFlag directly which allowed to remove global context hashtable
2004-05-21 01:20:48 +00:00
igor%mir2.org
2e4ae80a06
Merge various GUI initializations during breakpoint hit into single action
2004-05-21 01:10:04 +00:00
igor%mir2.org
8ae85161c4
Removal of manThread: breakFlag can do its job just fine
2004-05-21 00:17:45 +00:00
igor%mir2.org
fbaa640d80
Replace Context switching during eval for interrupted threads by thread communication so all evals happens on the original thread.
2004-05-21 00:11:24 +00:00
igor%mir2.org
05210d03cd
To make variable access faster the form of getvar/setvar with var index
...
encoded in bytecode is reintroduced.
2004-05-18 22:33:41 +00:00
igor%mir2.org
8bc0a7f9ea
Added more fast index load instructions and removed 0xFF & when extracting bytecode as all byte codes are less then 128.
2004-05-18 15:02:26 +00:00
igor%mir2.org
738378172f
In the interpreter loop comparision operations are represented by separated optimized do_cmp.
2004-05-18 12:19:25 +00:00
igor%mir2.org
9fd2427028
To make loading of strings into string register faster I added Icode_REG_STR_C[01023] that directly loads the string at the given index.
2004-05-18 11:19:30 +00:00
igor%mir2.org
86c9c1fc8c
Removal of 32K restriction on the length of the maximum jump offset.
...
Now interpreter uses UintMap to store jump targets spanning more then 32K
of bytecode.
2004-05-17 21:36:47 +00:00
igor%mir2.org
e2a31f83bc
Reorganization in jumping code to make the following patch to drop 32K
...
jump length restriction smaller
2004-05-17 19:19:18 +00:00
igor%mir2.org
e89f165b2a
Remove 256 limit on number of variable using index prefix for all variable
...
operations. To offset small performance loss for variable access new
index prefixes operation REG_IND_C[0123] are added to load 0,1,2,3 as index
value with one bytecode.
2004-05-17 17:57:43 +00:00
igor%mir2.org
b566c7d2db
For GETPROP/SETPROP use explicit name prefix to load property name instead
...
of pusshing property to stack
2004-05-17 17:29:12 +00:00
igor%mir2.org
41c7c76181
Remove 256 limit on number of local slots using REG_IND* prefixes to load the
...
slot index
2004-05-17 16:27:39 +00:00
igor%mir2.org
2f55f98a05
Splitting name_and_this bytecode into name_fast_this and name_slow_this to
...
avoid flag reading during simple function calls
2004-05-17 15:58:48 +00:00
igor%mir2.org
95e0a08f17
Use the same of specal index prefix byte code for [] and {} literals
2004-05-17 14:55:45 +00:00
igor%mir2.org
322032e9bd
Elimination of 64K restriction limit for various index-based opcodes. Now
...
they are prefixed with special Icode_REG_IND* that load the index of proper
size.
2004-05-17 14:34:29 +00:00
igor%mir2.org
4af6590fd5
Removal of 64K limit of total number of strings per script/function: now
...
string operands are preloaded with special LOAD_STR opcodes that handles full
int indexes
2004-05-17 13:07:49 +00:00
igor%mir2.org
5f6be5d271
In the interpreter loop avoid code duplication for calling instruction
...
observer after each jump: now all tsuch code blocks are merged into generic
code that follows the interpreter switch
2004-05-17 11:44:42 +00:00
igor%mir2.org
43cae3f598
Another small modifications to Interpreter to make the following patches
...
smaller: replacing all brek in the main switch of the interpreter with
"continue Loop"
2004-05-16 21:01:00 +00:00
igor%mir2.org
849ab4f57e
In the interpreter loop increment pc immediately after icode read to avoid
...
ever adding +1 in post byte codes with arguments
2004-05-16 14:02:26 +00:00
igor%mir2.org
3414a5d0bf
Inside the interpreter loop merger many almost identical icode
...
implementations into common block that use additional ifs to distinguish
between icode. It allows to shrink the ever growing Interpreter.interpret()
2004-05-16 13:30:53 +00:00
igor%mir2.org
056ad2e0d8
New implementation of ARRAYLIT and OBJECTLIT that does not requires stack
...
space to hold all literals values before they are copied to a temporary array
to pass to ScriptRuntime functions. The new code populates array during values
calculations.
2004-05-15 17:28:22 +00:00
igor%mir2.org
aa3b4192c7
Quote property names in object literals produced by toSource() if they
...
coincide with reserved keywords.
2004-05-15 17:23:06 +00:00
igor%mir2.org
61f8b426d6
Use special parse nodes for array and object literals to generate more compact
...
bytecode both for interpreter and compiler to have faster [] and {} literals.
It also fixes the bug of accessing local variables Array/Object for the
literals instead of top-scope objects.
2004-05-14 22:47:44 +00:00
igor%mir2.org
de3ba2521a
Use code similar to optimizer when generating call sequences to avoid tree mutations during code generation
2004-05-12 22:39:40 +00:00
igor%mir2.org
3afab15941
1. Fixing bug of forgotten updates to itsWithNesting
...
2. Optimization for calls like name() which similar to the optimizer code
2004-05-12 20:03:23 +00:00
igor%mir2.org
e175972a27
New function ScriptRuntime.notFoundError to throw error on missed properties
...
instead of scattered duplicated code
2004-05-12 19:59:57 +00:00
igor%mir2.org
46cd4fd5b5
Removal of Token.GETBASE, Token.GETTHIS, Token.PARENT, Token.NEWTEMP, Token.USETEMP, Node.TEMP_PROP, Node.FIXUPS_PROP, Node.USES_PROP constants which are no longer used after the last changes
2004-05-12 15:00:41 +00:00
igor%mir2.org
05139b4bdc
Instead of transforming parser tree to apply special treatment for call nodes, do that only during code generation .
2004-05-12 13:02:40 +00:00
igor%mir2.org
97e2293d87
Refactoring Codegen.visitCall: preprae for the following switch to generate call without transformer modifications
2004-05-12 10:34:46 +00:00
igor%mir2.org
36506b6d8f
Improve error messages for the optimizer when accessing undefined values
2004-05-11 10:06:51 +00:00
igor%mir2.org
48a87534dc
Cleanup of hasVarsInRegs
2004-05-10 16:45:02 +00:00
igor%mir2.org
68438dbe11
Apply direct call optimization only for functions that do not need activation.
2004-05-10 15:28:32 +00:00
igor%mir2.org
7b2dbf7fe4
Determine functions that require activation during parsing and not in NodeTransformer
2004-05-10 13:39:14 +00:00
igor%mir2.org
7f4cc16750
Removal of checks for unitialized lVal.getJRegister(): the registers are always initialized in prelude.
2004-05-10 05:24:29 +00:00
igor%mir2.org
7d090a52e4
Removal of JavaVariable interface in favor of simple method in ClassFileWriter. It allowed to shrink OptLocalVariable and made other code simpler.
2004-05-09 22:09:03 +00:00
igor%mir2.org
a6a43f6660
Clenup the usage of getJRegister/assignJRegister
2004-05-09 21:07:08 +00:00
igor%mir2.org
f68eda4ed6
Move all logic regarding establishing type of variable into Block.java
2004-05-09 21:06:20 +00:00
igor%mir2.org
834c918c5b
Removal of no longer used LASTUSE property and corresponding optimizer code
2004-05-09 12:38:45 +00:00
igor%mir2.org
fcf8a09a72
Remove code for CSE optimisation: it was used only to merger this.property calls but this optimisation changes program semantic if property is controlled by native getter.
2004-05-09 10:14:01 +00:00
igor%mir2.org
c8f630ac9c
OptLocalVariable cleanup: under optimization GETVAR/SETVAR nodes always has a reference to them
2004-05-08 22:24:02 +00:00
igor%mir2.org
1969c19d54
Remove markLiveAcrossCall functionality that was never used for any optimizations
2004-05-08 21:05:00 +00:00
igor%mir2.org
2bf943fd1f
Merge addToken/addString into single addString
2004-05-08 19:21:37 +00:00
igor%mir2.org
c8c34c5baa
Optimization of ++/-- and merge separated postIncrement/postDecrement to single postIncrDecr to remove too much code duplication
2004-05-07 15:05:11 +00:00
igor%mir2.org
73e79d7653
FatBlock is moved to Block as a private class
2004-05-07 15:03:39 +00:00
igor%mir2.org
605d32ffea
Added addPush(boolean)
2004-05-07 15:00:17 +00:00
igor%mir2.org
bb8d328be9
Extend optimization ==, !=, ===, !== against null to check null presence on any side of the test.
2004-04-21 12:00:27 +00:00
igor%mir2.org
388341c850
Fix max stack calculations in dcpLoadAsObject/dcpLoadAsNunber and optimize visitIfJumpRelOp to take advantage of the fact that left and right numerical operands force numeric context.
2004-04-20 13:00:08 +00:00
igor%mir2.org
b4bb88c434
Reuse code to generate optimized if jumps for boolean operations that return Boolean instance
2004-04-18 20:29:41 +00:00
igor%mir2.org
86dc2db1c0
Cleanups:
...
1. Added addObjectToDouble() to replace explicit code generation for object to double convertion.
2. nodeIsDirectCallParameter returns dcp register to avoid double look up of OptVariable
2004-04-18 16:29:12 +00:00
igor%mir2.org
fafc53aace
Layout cosmetics
2004-04-18 16:26:32 +00:00
igor%mir2.org
09018e0533
Trust JVM to implement "<=" and "<" according to JVM specs and replace code like
...
d1 == d1 && d2 == d2 && d1 < d2
with simple
d1 < d2
That in turn allows to simplify code generation and remove OptRuntime.cmp_ functions.
2004-04-18 14:53:34 +00:00
igor%mir2.org
719bb92768
Trust JVM to implement "<=" and "<" according to JVM specs and replace code like
...
d1 == d1 && d2 == d2 && d1 < d2
with simple
d1 < d2
2004-04-18 14:52:22 +00:00
igor%mir2.org
2e97a7df33
Remove commented out code to treat integer specially: it is not applicable any longer in any case.
2004-04-18 14:49:50 +00:00
igor%mir2.org
d79eb6342f
Work on bug 238649: no more support for ClassNameHelper and friends
2004-04-18 12:15:07 +00:00
igor%mir2.org
aee55ce695
Worj on bug 238649: removal of NotAFunctionException
2004-04-18 09:30:30 +00:00
igor%mir2.org
3c290b16dd
1. Change cmp_* functions to return boolean, not int, to simplify code.
...
2. Move optimizer-only functions from ScriptRuntime.java to optimizer/OptRuntime.java
3. Add ScriptRuntime.wrapBoolean to wrap boolean value and use it in the optimizer
2004-04-16 07:38:20 +00:00
igor%mir2.org
0adf35e44c
1. Throw IllegalArgumentException instead of EvaluatorException when argument does not belong to JS runtime types.
...
2. Optimize eq and shallowEq in ScriptRuntime to share code with optimized versions in Interpreter.
2004-04-14 14:50:24 +00:00
igor%mir2.org
9b208813a2
Layout cosmetics
2004-04-14 14:46:58 +00:00
igor%mir2.org
3b157b025b
Support for Date.now()
2004-04-14 11:04:55 +00:00
igor%mir2.org
31c7e1f54c
Fixing bug 58118 : long overdue commit of patch from Mike McCabe, mike+mozilla@meer.net
2004-03-30 12:48:29 +00:00
igor%mir2.org
023446d6c0
Since new x in Java never returns null, the check for null in date_format was redundant.
2004-03-30 10:35:42 +00:00
igor%mir2.org
0a8394388f
Faster implementation of MonthFromTime and DateFromTime:
...
1. Use day / 30 as month estimate with the following adjustment via switch()
2. Reuse year from day calculations in IsLeapYear
2004-03-29 15:19:04 +00:00
igor%mir2.org
7c417cd5e9
Fixing bug 239068: proper initialization of parent scope for functions of constructors.
2004-03-29 15:15:34 +00:00
igor%mir2.org
2306ff9f68
DaysInYear is replaced by IsLeapYear since the former was used only to determine if a particular was leap or not
2004-03-29 14:16:23 +00:00
igor%mir2.org
f394ba49d0
Cosmetics: layout fixes
2004-03-29 12:30:24 +00:00
igor%mir2.org
cd59bcde60
Starting 1.5R5.1 development
2004-03-29 12:29:11 +00:00
igor%mir2.org
03828224aa
Fixing 238823 : throw explicit IllegalArgumentException when JS source for Context.compileFunction does not contain single JS function statement instead of producing silent empty functions or throwing obscure NullPointerExceptions
2004-03-27 09:35:22 +00:00
igor%mir2.org
d48d5df72a
Better formating
2004-03-26 13:01:17 +00:00
igor%mir2.org
5c2d316845
Fixing bug 238699 : refactoring to expose simpler code generation API caused to select wrong code path when compiling functions
2004-03-26 12:42:00 +00:00
igor%mir2.org
e1c579fdb8
Explicit date in Context.getImplementationVersion() for 1.5R5 release
2004-03-25 20:37:32 +00:00
igor%mir2.org
1ac053c5c4
Reflecting 1.5R5 release
2004-03-25 19:45:56 +00:00
igor%mir2.org
de1e1ac301
Starting 1.5R6
2004-03-25 17:58:03 +00:00
igor%mir2.org
60759708f4
Removal of macbuild support: its Mac OS X time after all
2004-03-25 17:39:21 +00:00
igor%mir2.org
1174d12c74
Info about commercial support
2004-03-25 15:46:40 +00:00
igor%mir2.org
71ca64f861
*** empty log message ***
2004-03-25 11:04:04 +00:00
igor%mir2.org
e1e41ac43c
Preparations for 1.5R5
2004-03-24 15:52:55 +00:00
igor%mir2.org
732c7ab109
Updates to reflect new extension to allow to pass function to Java method expecting interface: now interface with multiple methods are allowed as long as all methods has the same signature
2004-03-24 15:44:19 +00:00
igor%mir2.org
6311b232ca
Finalizing 223435 : function can be converted to Java interface with more then one method as long as all methods has the same signature.
2004-03-24 14:15:37 +00:00
igor%mir2.org
27c2350055
More work on bug 223435 : pass method name for the interface as the last parameter to JS function so it can use for debug purposes
2004-03-23 16:24:32 +00:00
igor%mir2.org
9c0a6e0861
Making BaseFunction.decompile package private: any new public function will always find its users even if the usage is broken. It was public to allow calls from debugger but simple call to Context.toString() would do the same job.
2004-03-18 13:37:29 +00:00
igor%mir2.org
4c26393708
RUnit Software now includes a link on their page about JS (Declaimer: I work there!)
2004-03-18 13:32:52 +00:00
igor%mir2.org
6b102cf976
Added RUnit Software
2004-03-17 18:36:57 +00:00
igor%mir2.org
50cd6c7c8c
Fixing bug 237771 : allow to transfer toSource implementation to different objects
2004-03-17 18:36:39 +00:00
igor%mir2.org
209e4801b3
Documenting new Context seal API and fixing obvious English mistakes.
2004-03-09 23:34:30 +00:00
igor%mir2.org
e47574df7e
Updated file with license info from Eugene Aresteanu :
...
> Hi,
>
> Does it look right now?
>
> Regards,
> Eugene
>
> -----Original Message-----
> From: Igor Bukanov [mailto:igor@fastmail.fm]
> Sent: Friday, March 05, 2004 10:07 AM
> To: eugene aresteanu
> Subject: Re: Rhino and license for Messages_fr.properties
>
>
> eugene aresteanu wrote:
>
>>Hello,
>>
>>Here it is. I hope it is right.
>>Why do you say the default Messages.properties lacks notices?
>>I used the header of Messages.properties as a template.
>
>
> Sorry for not been clear, but what I wanted to say is that did not have
> triple MPL/GPL/LGPL but rather the old NPL/GPL pair. Could you update
> the file one more time using
> http://www.mozilla.org/MPL/boilerplate-1.1/mpl-tri-license-sh as template?
>
> Regards, Igor
2004-03-05 19:17:43 +00:00
igor%mir2.org
2cac059a8a
Resolving bug 236117 : new API to seal Context
2004-03-03 19:59:25 +00:00
igor%mir2.org
6a15c2b2bb
Resolving bug 236193: require enetered Context for compilation
2004-03-03 11:20:33 +00:00
igor%mir2.org
7cc3ebfd9c
Making javaToJS static to match the rest of API
2004-03-01 19:19:47 +00:00
igor%mir2.org
cf09991901
Fixing JavaDoc
2004-02-24 07:20:49 +00:00
igor%mir2.org
d02a51ad4c
Making NativeScript package private: if this will be controversial, then the public status can be restored
2004-02-24 07:19:56 +00:00
nboyd%atg.com
07d97e2bfb
Remove "pre" from a candidate build.
2004-02-18 17:28:40 +00:00
igor%mir2.org
765d9c1f9e
Preparations for 1.5R5
2004-02-18 12:24:27 +00:00
igor%mir2.org
b796a6fb8d
Preparations for 15R5 release.
2004-02-13 18:50:51 +00:00
igor%mir2.org
0bdc147fa8
Fixing NativeGlobal.encode: it was broken for chars beyond 0xFFFF as it sb.setLength(k) was called after k was increased to consume the second char from UTF-16 encoding to build UCS-4.
2004-02-12 19:05:47 +00:00
igor%mir2.org
52f8463b7d
Preparations for 1.5R5
2004-02-12 18:13:00 +00:00
igor%mir2.org
83ea5840cf
Fixing bug 233274: for/in loop goes through array elements in wrong order
...
Fix: populate ids array in NativeArray with dense indexes first
Since array literals in Rhino creates instances of NativeArray with the
internal dense array containing literal elements, the patch changes
NativeArray.getIds to return ids array with dense indexes coming first and
indexes for elements added later after that.
2004-02-06 20:16:36 +00:00
igor%mir2.org
d51a78039d
Adding backward compatibility to SecurityController so it can be used with Rhino 1.5R4.1 subclasses
2004-02-05 15:10:52 +00:00
igor%mir2.org
2c61e81ef1
Fixing bug 210605 again: for now re-throw Error instances as is without wrapping them into WrappedException so scripts would not be able to catch them.
2004-01-29 17:04:31 +00:00
igor%mir2.org
a8722e4591
Removal support for deprecated getTargetClassFileName/setTargetClassFileName: they throw exception instead of calling a special proxy to avoid having probably unused any more class. If this is not true, then the methods should be restored.
2004-01-18 21:26:34 +00:00
igor%mir2.org
14b2b0415b
Fixing JavaDoc comments
2004-01-18 21:23:53 +00:00
igor%mir2.org
e9111c411d
EvaluatorException and WrappedException are public API now
2004-01-18 21:21:41 +00:00
igor%mir2.org
197d8abe67
Deprecating ClassNameHelper and ClassRepository in favor of new optimizer/ClassCompiler.
2004-01-17 21:52:30 +00:00
igor%mir2.org
9ab50b8455
optimizer.ClassCompiler provides new simple API for generating of class files from scripts that does not require to create Context instances.
...
The jsc tool is updated to use the new interface instead of using ClassNamehelper and friends.
2004-01-17 21:02:32 +00:00
igor%mir2.org
3077885e6a
1. optimizer/Codegen now just generates byte code classes, the instantiation of classes is done in a separated class optimizer/ClassCompiler. This is done to provide in future a simple interface to generate class files instead of complicated ClassNameHelper and friends implementation.
...
2. Parser now stores TokenStream instance in its field instead of having it present in each and every method signature. It allowed to simplify interaction between Parser and IRFactory where the later now uses Parser.reportError so parser van recover from syntax errors and provide better error reporting.
2004-01-16 18:20:22 +00:00
igor%mir2.org
81a158c7f7
Added setters for properties of CompilerEnvirons.java so it can be initialized
...
without having Context object.
2004-01-16 16:09:07 +00:00
igor%mir2.org
621907e4db
Renaming Context.hrowAsUncheckedException to Context.throwAsScriptRuntimeEx to better reflect its purpose, providing better documentation and making sure it throws only instances of EcmaError and EvaluatorException.
2004-01-16 15:14:25 +00:00
igor%mir2.org
4449f64a14
Fixing bug 228336 :
...
This is a Rhino version of Brandan's patch from attachment 138844, bug 228087
plus code to fix overflow problem reported in bug 230216.
2004-01-16 15:11:31 +00:00
igor%mir2.org
8c221d45d5
throwAsUncheckedException is moved from ScriptRuntime to Context as a useful API to use in external applications.
2004-01-15 20:41:57 +00:00
igor%mir2.org
f1a0d67e37
Fixing typo in comments
2004-01-15 20:40:56 +00:00
igor%mir2.org
b6b301b603
Patch from Alex Bitney to fix bug 230883
2004-01-15 20:10:54 +00:00
igor%mir2.org
5422230263
Fixing bug 229571 : code refactoring for speed optimization
2004-01-06 13:35:51 +00:00
igor%mir2.org
dfe5836b42
Move details of parsing/code generation from Context to interpreter/optimizer to allow more pluggable compilation interface.
2004-01-05 13:22:40 +00:00
igor%mir2.org
34be2a53ad
Cosmetics: removal of tabs left by the previous commit
2003-12-27 21:36:00 +00:00
igor%mir2.org
a00caa1df4
Decompling parsing from code generation: compiler instances are created only when parsing tree is build.
2003-12-27 21:32:35 +00:00
igor%mir2.org
44815cf659
Initial patch to separate parsing from code generation: changing IRFactory so it can be created in Context.
2003-12-27 09:53:57 +00:00
igor%mir2.org
c33fda9fe0
Renaming Kit.badArg() -> Kit.argBug() for consistency with Kit.codeBug()
2003-12-27 09:38:57 +00:00
igor%mir2.org
907cfb3edd
Moving parsing code from FunctionNode.finishParsing to IRFactory to have better overview of parsing code. The optimizer now calls explicitly OptFunctionNode initialization instead of overriding FunctionNode.finishParsing in OptFunctionNode.
2003-12-26 17:17:21 +00:00
igor%mir2.org
9df6ce9622
Functions to report synatx errors are moved from TokenStream to Interpreter to remove dependancy on TokenStream in NodeTransformer.
2003-12-26 14:01:21 +00:00
igor%mir2.org
b95d0b49fc
Dropping scope argument from Context.compileString/compileReader since it is no longer used as Script instances are scope independent.
...
For compatibility the old form of Context.compileReader is preserved but marked as deprecated.
2003-12-25 22:37:57 +00:00
nboyd%atg.com
e6f3918cce
Contribution from earestea@scanpak.com.
2003-12-18 20:55:30 +00:00
nboyd%atg.com
bf80b55723
Add Aviva info.
2003-12-18 16:53:32 +00:00
igor%mir2.org
db872e25ca
Message about overcapacity
2003-12-09 19:23:25 +00:00
igor%mir2.org
c595d35c2c
Cosmetics: removal of tabs
2003-12-09 19:22:58 +00:00
igor%mir2.org
941efb0ba0
To avoid bad performance when joining array with few small strings, js_join precalculate the resulting string size.
2003-12-09 19:22:11 +00:00
igor%mir2.org
46332c00f3
Replacing custom buffer management in replace code with the standard StringBuffer
2003-12-08 17:10:23 +00:00
igor%mir2.org
60ad0a0479
Inlining LabelTable into Interpreter and ClassFileWriter: to support jumps spanning over 64K in Interpreter in future LabelTable should be modified significantly and complexity of shared code would not justify it. In addition such inlining actually decrese total code size.
2003-12-08 14:16:53 +00:00
igor%mir2.org
78da35a9b1
Merger ReplaceData and MatchData helper classes into GlobData to reduce code size and rename helper methods to follow SpiderMonkey closely.
2003-12-08 13:24:49 +00:00
igor%mir2.org
fb1fe49783
Fixing missed cleanup of old values stored in RegExpImpl.parens: now it has type SubString[] and reinitialized after running regexps and see bug 220367.
2003-12-07 21:56:29 +00:00
igor%mir2.org
ca014a7d90
Patch to fix bug 223451 :
...
Check for unbalanced ) and fix for ArrayIndexOutOfBoundsException
Check for unbalanced ')' is done differently then in SM since rhino uses
recursive version of SM code while fix for ArrayIndexOutOfBoundsException is
just a variation of my patch for bug 227705 in SM.
2003-12-07 16:00:38 +00:00
igor%mir2.org
95222003f7
Fixing bug 225926 : patch from Roger Lawrence
2003-12-07 15:35:40 +00:00
igor%mir2.org
7e44cf82d2
Fixing bug 225366 : port of SM patch
2003-12-05 23:22:10 +00:00
igor%mir2.org
83c4281829
In Object.toSource implementation if property is not valid Java identifier, print it as 'escaped_property' so the property will read as proper Java string.
2003-12-04 15:47:03 +00:00
igor%mir2.org
0c0de954e0
Fixing bug 225831 : use before_225831_merge to get code before the far reaching fix
2003-12-04 14:41:22 +00:00
igor%mir2.org
a6a8326e8e
Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=226045 :
...
(new RegExp).toString/toSource() now gives /(?:)/ instead of // which is comments and does not work with uneval.
2003-11-24 15:51:44 +00:00
igor%mir2.org
b1b179e241
Fixing debug printout of icode: CALLSPECIAL prinout was not updated to reflect proper value of only 6 additional bytes for bytecode.
2003-11-17 18:31:55 +00:00
igor%mir2.org
b27a94884b
To mark special properties __proto__ and __parent__ in parse tree use integer ids instead of strings so it is easier to check tree consitency.
2003-11-17 17:39:43 +00:00
igor%mir2.org
e6d6ac22c0
Finalizing toSource() support: do not put () arround {} for source representation of objects that are part of recursive toSource call.
...
For details, see http://bugzilla.mozilla.org/show_bug.cgi?id=225465
2003-11-17 17:37:21 +00:00
igor%mir2.org
910736ea5d
Changing wrapping of caught Java exceptions: now they are constructed with JavaException constructor, have fileName, lineNumber defined to point to script line that executed Java code triggering exception and have javaException property pointing to the wrapped exception object.
...
For details, see http://bugzilla.mozilla.org/show_bug.cgi?id=225817
2003-11-17 11:04:29 +00:00
igor%mir2.org
b5a9ce9cef
Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=225817 :
...
Proper support for fileName and lineNumber in Error objects.
2003-11-17 09:45:01 +00:00
igor%mir2.org
0b06306238
Allow for scripts to catch instances of EvaluatorException
2003-11-14 20:38:06 +00:00
igor%mir2.org
25d8b12206
Transform StackOverflow during parsing into runtime exception so script can detect too deep recursion during parsing.
2003-11-14 20:33:43 +00:00
igor%mir2.org
c9206ad473
Splitting Token.ASSIGN into Token.ASSIGN and Token.ASSIGNOP where the former represents only = while ASSIGNOP is used to denote +=, -= etc. Parse tree for the 2 operations is rather different and split allowed to simplify IRFactory code.
2003-11-14 16:03:31 +00:00
igor%mir2.org
5a212182d3
Implementing uneval/toSource functionality of SpiderMonkey. Foe details, see http://bugzilla.mozilla.org/show_bug.cgi?id=225465 .
2003-11-13 17:15:31 +00:00
igor%mir2.org
1abb22cbea
Passing to decompiler information about function type so it can use it to customize its output in future.
2003-11-12 15:47:50 +00:00
igor%mir2.org
fa80cda516
Changing Decompiler.decompile to take just encoded source, flag argument controlling output format and property table so it would be possible to add more options to decompiler without changing the rest of code.
2003-11-12 12:22:12 +00:00
igor%mir2.org
86b7ac3792
Changing return type of NativeFunction.getEncodedSource() to String from Object since the idea of having anything else but String would require changes in API in any case.
2003-11-12 10:23:53 +00:00
igor%mir2.org
5d88d5ee75
In ClassFileWriter.addPush(double) use DNEG to generate more compact code for -0.0 and -1.0
2003-11-11 20:31:36 +00:00
igor%mir2.org
f725ff1f29
Changing just introduced CodeBlock into Callable that define call method with exactly the same signature as Function.call and changing Function to extend Callable.
...
Now Context defines new method "call" that provide optimized version of the following code:
Context cx = Context.enter()
try {
callable.call(cx, scope, thisObj, args);
} finally {
Context.exit();
}
Since Function extends Callable, it can be passed to this method directly thus simplifying ScriptableObject.call method and Java adapter code.
The new interface is used in SecurityController implementation which allows to pass interpreted functions there directly as well removing the need to have intermediate class in Interpreter.
2003-11-11 20:30:08 +00:00
igor%mir2.org
58376ed098
Extend constant folding to cover few unary operations
2003-11-11 20:18:34 +00:00
igor%mir2.org
2c6037d9bd
1. Make sure that -0.0 from parser are treated properly: new constant folding code there may produce it.
...
2. Instead of generating code to call Double constructor use the new method OptRuntime.wrapDouble() that allows to cut amount of produced byte code.
2003-11-11 20:04:38 +00:00
igor%mir2.org
6e1ba2e3df
Patch from Dave Russo to wrap arguments array properly: the code has to allocate new Object[] array since Context.newObject needs instances of Object[], not SomeObjectSubclass[], to work properly.
2003-11-10 02:18:11 +00:00
igor%mir2.org
a972b38a3a
Check in Context.newArray(Scriptable scope, Object[] elements) that elements is instance of Object[] and not SomeObjectSubclass[] to expose broken usage of newArray as soon as possible.
2003-11-10 02:14:37 +00:00
igor%mir2.org
a96da1a17f
Changes in Security API: using CodeBlock interface instead of reusing Script to represent code that should be executed with different domain.
2003-11-07 22:29:59 +00:00
igor%mir2.org
d3c70a3cd8
New interface to refer to code executed with a particular context and arguments.
2003-11-07 22:28:22 +00:00
igor%mir2.org
9fe0c80278
1. Removal of very recently introduced hideFromContextListeners: it was a wrong solution to the problem of running scripts under independent Context instances on the same thread.
...
2. Optimization of Context.enter()/Context.exit() when ThreadLocal is available:
Store Context[1], not Context in the variable so Context.enter()/Context.exit() would need to access ThreadVar only once and then update the reference.
2003-11-07 22:24:53 +00:00
igor%mir2.org
0a9166fe3a
Added setDouble, setString that are used in IRFactory during constant folding
2003-11-07 22:18:49 +00:00
igor%mir2.org
7d5922f48f
Move all contant folding logic to IRFactory where it simpler to do and possible to reuse tree nodes during folding.
2003-11-07 22:17:54 +00:00
igor%mir2.org
2be95ba6cd
Do constant folding during parsing since it is cheap to do that at this stage then in optimizer during separated phase so even the interpreter will take advantage of the folding.
2003-11-07 15:58:57 +00:00
igor%mir2.org
fd70d98f29
ClassRepository is removed from list of API classes to allow to replace it in future by direct access to optimizer.
2003-11-04 14:55:58 +00:00
igor%mir2.org
ecad46eb8f
Adjusting examples not to assume that Context.initStandardObjects(ScriptableObject) returns ScriptableObject since that was changed back to Scriptable for compatibility.
2003-11-04 14:54:43 +00:00
igor%mir2.org
56959e7696
Removal of initStandardObjects(boolean) not to proliferate versions of initStandardObjects: if Rhino would support recursive object sealing, it would not be necessary to call initStandardObjects with sealed flag at all.
2003-11-04 14:52:48 +00:00
igor%mir2.org
0e92e06301
JavaDoc @link fixes
2003-11-04 14:49:20 +00:00
igor%mir2.org
56cd62465f
Return type of Context.initStandardObject(ScriptableObject) is changed back to Scriptable for binary compatibility.
2003-11-03 20:42:32 +00:00
igor%mir2.org
011d5fcfd1
Removal of possibility to alter JavaAdapter through an external property as such functionality is redundant and can be emulated with altering JavaAdapter in the scope object after Context.initStandardObjects returns.
2003-11-03 19:58:17 +00:00
igor%mir2.org
8844a1f96b
Use reflection to access JavaAdapter to allow to use NativeJavaObject with JavaAdapter classes absent.
2003-11-03 19:55:37 +00:00
igor%mir2.org
0bbeb14dff
When converting function to Java interface and checking for the previous wrapping, do not use key stored in ClassCache.javaAdapterIFGlueMasters as it can be thrown away when caches are emptied and instead construct a key object from the passed class and uniqueness tag.
2003-11-03 18:15:00 +00:00
igor%mir2.org
6a865fc062
In NativeJavaClass.constructSpecific use passed scope, not function pointer as scope source so shared system scope with custom top scope and custom wrap factory would work.
2003-11-03 18:06:49 +00:00
igor%mir2.org
d2c27acd1a
Added Kit.makeHashKeyFromPair to make combined key for hashtables from 2 objects
2003-11-03 18:04:27 +00:00
igor%mir2.org
f9931a4665
Added Context.javaToJS as a convenient way to get JS values from Java objects and Context.emptyArgs so documentation does not need to refer to ScriptRuntime.emptyArgs.
2003-11-02 21:15:14 +00:00
igor%mir2.org
970fe84f50
In WrapFactory.wrap use String.valueOf(charValue) instead of new String(new char[] { charValue }) to get string from character.
2003-11-02 21:12:08 +00:00
igor%mir2.org
ea9b76f64c
Deprecation of get/setAttributes forms that take start argument. It was never used to pass anything but this object.
2003-11-01 20:23:28 +00:00
igor%mir2.org
4c360b0900
Since Undefined inherits from Scriptable, not ScriptableObject, it does not need to override get/setAttributes()
2003-11-01 20:21:28 +00:00
igor%mir2.org
2102257103
Removal of completely unnecessary getSlotToSet as its implementation repeated already unsuccessfully search done by getSlot. The put methods now call addSlot directly.
...
In addition, shared code in has and get to check/update lastAccess cache is moved to common method getNamedSlot.
2003-11-01 19:40:24 +00:00
igor%mir2.org
5294159feb
GlobalScope is removed as its introduction had to serious consequences with compatibility and usage. Instead a special purpose class ClassCache is introduces to hold various caches. The class binds itself to an arbitrary object by using new SciptableObject.associateValue method so arbitrary ScriptableObject can be used as a scope without performance penalties.
2003-11-01 15:34:23 +00:00
igor%mir2.org
15fc231809
parent and prototype fields are made privatenot to allow to mess with them from subclasses. Althoygh setter and getter can be used still to do that, at least some sanity checks can be added there.
2003-10-30 16:40:43 +00:00
igor%mir2.org
e12e6f2269
Use getPrototype instead of explicit reference to this.prototype
2003-10-30 16:40:42 +00:00
igor%mir2.org
a123fd228b
passing Context instance to NativeJavaMethod.findMethod not to call Context.getContext() id some form of API to override method selection will surface
2003-10-30 16:40:41 +00:00
igor%mir2.org
ea873cadc1
Added readReader
2003-10-30 16:40:40 +00:00
igor%mir2.org
c0c59dd572
Not to call Context.getContext() in TokenStrea/IRFactory, an explicit Context instance is passed to TokenStream constructor
2003-10-30 16:40:39 +00:00
igor%mir2.org
e0c6b113b2
Use passed scope instead of the object parent scope
2003-10-30 16:39:46 +00:00
igor%mir2.org
22d09dcc14
First part of resolving http://bugzilla.mozilla.org/show_bug.cgi?id=223435 :
...
Allow to pass JS function to Java method accepting interface with single method. The function will be called when interface method will be called.
2003-10-28 08:37:30 +00:00
igor%mir2.org
db926bd850
Added getAssociatedValue()/associateValue() to allow to connect arbitrary application-specific object with ScriptableObject.
2003-10-27 19:19:50 +00:00
igor%mir2.org
7a27515d50
Added initHash which would put value into hashtable only if it is first. This is usable to ensure proper synchronization with lazy initialization.
2003-10-27 18:45:39 +00:00
igor%mir2.org
69200530cc
If invoker master throws RuntimeException during creation of invoker, then disable invokerOptimization. It fixes regression when SecurityManager prevents InvokerMaster from creation of class loader.
2003-10-27 18:42:39 +00:00
igor%mir2.org
0ed88eb6e1
Added addPush version taking long argument.
2003-10-27 15:47:05 +00:00
igor%mir2.org
ff9cd1a75d
Common logic to create and cache adapter class on demand is moved to the new method getAdapterClass
2003-10-25 11:46:18 +00:00
igor%mir2.org
f75ab50572
In getApplicationClassLoader cache result of Thread.getContextClassLoader if it coincides with the loader that loaded Context class.
2003-10-25 11:42:34 +00:00
igor%mir2.org
e8f46e37c1
Added information on shared scopes
2003-10-23 21:49:23 +00:00
igor%mir2.org
f28c2bb83d
Updated to remove NotAFunction exception handler which is not generated any more and was deprecated.
2003-10-23 21:48:45 +00:00
igor%mir2.org
b0cc0c620a
The class is no longer used.
2003-10-22 08:02:37 +00:00
igor%mir2.org
f828aace6b
1. Added Context.hideFromContextListeners() which makes invisible for listeners.
...
2. Made sure that ContextListener.contextCreated is called only once. After a resent change to call the method from Context.enter, not from Context constructor the method would be called each time on first enter which broke the debugger.
3. Using new listener utilities from Kit instead of ListenerArray methods that would create a special storage object only if there is more then one listener.
2003-10-22 08:01:46 +00:00
igor%mir2.org
dd0cf32131
Added JavaDoc for listener utilities
2003-10-22 07:57:49 +00:00
igor%mir2.org
7ca1f5cb7d
Introduction of org.mozilla.javascript.Kit to contain generic support utilities.
2003-10-21 13:43:22 +00:00
igor%mir2.org
6aac95c7d1
Use getPrototype instead of explicit reference to this.prototype
2003-10-21 13:43:21 +00:00
igor%mir2.org
6c99cceb21
Added readUrl method to shell
2003-10-21 09:13:59 +00:00
igor%mir2.org
0e344eacac
Reuse results of method.getParameterTypes() and better hash code for javaAdapterSignature.
2003-10-20 14:11:08 +00:00
igor%mir2.org
1ff42561c8
Count syntax error in TokenStream directly instead of going through Context object so it would be possible to use TokenStream without instantiating Context.
2003-10-20 14:06:12 +00:00
igor%mir2.org
d77c60cb02
Cosmetics: indentation fixes
2003-10-20 14:02:53 +00:00
igor%mir2.org
91d08bfaf5
1. Static hash table in JavaAdapter is replaced by a non-static fields in GlobalScope.
...
2. NativeObject implements just Serializable, not Externalizable interface to simplify serialization.
2003-10-19 09:59:52 +00:00
igor%mir2.org
8d96213e1b
Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=222635 :
...
Now activation is always properly removed under the debugger.
2003-10-17 18:24:29 +00:00
igor%mir2.org
cb7cd3ec6f
I changed FunctionObject and ScriptableObject to use MemberBox wrapper for native methods, getters and setters that allowed to get following:
...
1. Method serialization code in MemberBox takes care of all serialization so ScriptableObject and FunctionObject does not need anything on its own.
2. Invoker optimization is extended to getters and setters in ScriptableObject.
3. Recovery from IllegalAccessException is extended to all cases of method invocation via reflection.
4. All error wrapping happens in a single class so FunctionObject and ScriptableObject does not need to wary about it.
2003-10-16 14:27:53 +00:00
igor%mir2.org
84f91c674b
Updated ftp links to the download files due ftp server reorganization
2003-10-15 18:13:33 +00:00
igor%mir2.org
fc7c0bf413
Code to create invoker master instance is placed into Invoker itself since FunctionObject does not need to know which classes stays behind the implementation.
2003-10-13 16:04:20 +00:00
igor%mir2.org
93a6e530db
FunctionObject.convertArg is split into FunctionObject.getTypeTag() and FunctionObject.convertArg version taking that tag for better error reporting and performance since the tag can be cached and an expensive sequence of if and instanceof to check for the type would be replaced by a simple switch.
2003-10-13 16:02:35 +00:00
igor%mir2.org
4e0f4b2130
Run ContextListener.contextCreated from Context.enter(), not Context constructor. In this way listeners will not be invoked for Context that are never associated with a thread and contextCreated will be more symmetric with Context.contextReleased.
2003-10-13 15:57:18 +00:00