igor%mir2.org
b8bfe43a65
Move getObjectIndex/setObjectIndex that take double as index from optimizer/OptRuntime to ScriptRuntime and use it in the Interpreter to avoid code duplication.
2004-09-24 16:27:27 +00:00
igor%mir2.org
3f3a80499c
Revert wrong commit of build.properties with temporary changes
2004-09-24 16:19:26 +00:00
igor%mir2.org
7523c5c791
Added few methods to redirect calls from main to DebugGui for compatibility.
2004-09-24 16:14:02 +00:00
igor%mir2.org
4a1d88a604
Use single function, Kit.xDigitToInt, to convert character representing hex digit to number. The function replaces duplicated code in TokenStream/NativeGlobal/NativeRegExp.
2004-09-24 13:14:01 +00:00
igor%mir2.org
511eb6c0fc
Code reorganisation to shrink the size of JVM class files.
2004-09-24 13:11:02 +00:00
igor%mir2.org
49a53cd5e9
Resolving bug 261278: strict mode implementation
2004-09-23 21:34:22 +00:00
igor%mir2.org
81fcf9bcdf
Preparations for RC2 for 1.6R1
2004-09-22 10:59:39 +00:00
igor%mir2.org
ea6f7ae6b8
Added some information about experimental support for continuations
2004-09-22 10:43:52 +00:00
igor%mir2.org
21f0e29bbd
1. Extend index and offset jump limits to 2^16 - 1 from 2^15 - 1 using unsigned indexes.
...
2. Use linked list of read-only REPogState to implement state stack instead of array of struct. It fixes bug 258417 while making creation of back track stack data much cheaper since there is no need to copy read-only structures.
2004-09-22 09:48:17 +00:00
igor%mir2.org
bfc17d4124
In NativeRegExp.executeREBytecode I moved code to manipulate regexp program
...
stack to separated pushProgStack|popProgStack methods to localize changes to
for the following patch to use linked list for state stack.
2004-09-21 18:38:46 +00:00
igor%mir2.org
86848a99b8
I merged REMatchState into REGlobalData and replaced all REMatchState usages as function return type by boolean. It simplified matching code while reducing code bloat.
2004-09-21 15:00:43 +00:00
igor%mir2.org
cc4eeda146
1. Use direct reference to backTraceStack top to save/restore backTraceStack reference when matching REOP_ASSERT/REOP_ASSERT_NOT
...
2. Coalesce duplicated code in NativeRegExp.executeREBytecode
2004-09-20 22:44:51 +00:00
igor%mir2.org
ed81e19108
Resolving bug 258844: implementation of continuation support for Rhino interpret
...
er inspired by Christopher Oliver work for custom Rhino version for cocoon.apach
e.org.
2004-09-16 19:04:34 +00:00
igor%mir2.org
c4916822f7
Resolving bug 258844: implementation of continuation support for Rhino interpreter inspired by Christopher Oliver work for custom Rhino version for cocoon.apache.org.
2004-09-16 18:27:42 +00:00
igor%mir2.org
12828edc5e
Replacing back track array in RegExp matching code by linked list to address bug 258419.
2004-09-16 17:30:01 +00:00
igor%mir2.org
a30abea90c
1. Using explicit ShellContextFactory in shell to avoid interference from changes in global ContextFactory.
...
2. Initializing global scope before the first execution to allow to customize ShellContextFactory before calls to Context.initStandardObjects()
2004-09-15 16:00:30 +00:00
igor%mir2.org
91f7a07a68
1. Call contextData.pushFrame(this) from StackFrame.onEnter and not from StackFrame.constructor to allow multiple invocations of enter/exit per single debug frame. The continuation support will use it.
...
2. Expand tabs
2004-09-15 14:59:36 +00:00
igor%mir2.org
b92c21f853
1. Ignoring recursive invocation of Dim.interrupted on event thread: when Gui
...
processes breakpoint hit and another breakpoint is met during event processing,
then on Linux recursive invocations of EventQueue.getNextEvent()/dispatchEvent
lead to eventual GUI deadlock. It is easy to observe when the break on function
enter is enabled and a JS function is called that is attached to an action
handler of some button. With recursive bahaviour repeated clicks lead to deeper
and deeper invocation of EventQueue.getNextEvent() and GUI deadlock on Linux.
So to improve debugger stubility I modify Dim.interrupted to ignore calls from
event thread when another invocation of Dim.interrupted already waits for GUI
result.
2. To decrease class and jar bloat I merges various implementations of Runnable
and and other interfaces to single class with switch dispatch. It saved about
6K from js.jar.
2004-09-15 14:45:10 +00:00
igor%mir2.org
bef182034b
1. Using UniqueTag.DOUBLE_MARK in interpreter instaed of Object instance to mark double values on stack for better debug printouts.
...
2. In parse tree use Node instances, not Node.Target to denote target nodes as later just leads to code bloat without safty benefits.
2004-09-15 13:51:19 +00:00
igor%mir2.org
4f61cba96e
Added UniqueTag.DOUBLE_MARK for better debug printouts in interpreter and potential support for serialization of Interpreter.CallFrame.
2004-09-15 13:42:26 +00:00
igor%mir2.org
c72dbebee7
1. Marking NativeCall.parentActivationCall transient so serialization would not see it.
...
2. Removal of never used NativeCall.thisObj field and code to initialize it.
3. Renaming NativeCall.funObj to NativeCall.function for better readability.
2004-09-14 14:59:21 +00:00
igor%mir2.org
5ebef36b9a
1. Allow to monitor from application top script or function calls: now they go through ContextFactory.doTopCall which can be overridden.
...
2. Context.observeInstructionCount now calls ContxtFactory.observeInstructionCount so it can overridden without extra Context class.
2004-09-13 13:19:17 +00:00
igor%mir2.org
4b0e5313bd
My take on the patch from Attila Szegedi <szegedia@freemail.hu> to resolve 258959.
2004-09-12 16:41:04 +00:00
igor%mir2.org
9d46a01a21
Patch from Attila Szegedi <szegedia@freemail.hu> to fix bug 258958
2004-09-12 16:39:39 +00:00
igor%mir2.org
7c625d6b56
Added ContextFactory.hasExplicitGlobal to verify if ContextFactory.initGlobal was already called.
2004-09-12 16:37:59 +00:00
igor%mir2.org
66fd0127ec
Few changes from continuation patch in bug 258844 that are useful on its own:
...
1. Fix to pass to debugger wrapped frame.resultDbl if frame.result is DBL_MARK
2. Change Interpreter.interpret to return the properly wrapped result instead of the final frame.
3. Use Object for throwable variable in Interpreter.interpret to avoid multiple casts to Throwable
2004-09-12 13:05:34 +00:00
igor%mir2.org
006a1dcfc1
Fixing recent bad typo in exception handler search that caused to ignore finally handlers and check only catch blocks with finally-only exceptions.
2004-09-12 00:36:46 +00:00
igor%mir2.org
ea82bb7ab5
Consistently use ScriptRuntime.(wrapNumber|wrapBoolean) to wrap Java double and boolean values to the corresponding JS primitive types.
2004-09-10 19:54:43 +00:00
igor%mir2.org
985134c0ed
1. Replacing IdScriptableObject.wrap_* methods by their ScriptRuntime.wrap* counterparts since the wrap methods are useful not only for subclasses of IdScriptableObject.
...
2. Reorganizing execIdCall in few classes inherited from IdScriptableObject to shrink code size.
2004-09-10 18:02:06 +00:00
igor%mir2.org
5eff6a3a6f
Removal of unnecessary cast to (String) during getter/setter enumeration.
2004-09-10 17:56:13 +00:00
igor%mir2.org
cae5f15434
Removal of package-private setter methods in FunctionNode in favor of package-private (not private) fields: that just was just adding unnecessary code bloat.
2004-09-10 17:54:13 +00:00
igor%mir2.org
a70c59fa3a
More work for bug 244492: I deprecated ClassDefinitionException modified
...
ScriptableObject to use EvaluatorException instead.
For greater compatibility I also changed ClassDefinitionException to extend
from RuntimeException, not Exception so compilers would not complain about
"catch (ClassDefinitionException ex)" when no ClassDefinitionException is present in the called code.
2004-09-10 17:50:05 +00:00
igor%mir2.org
0aa318e581
XMLLib.escapeXMLAttribute is required to add " arround the text to simplify code generation.
2004-09-10 17:40:59 +00:00
igor%mir2.org
ef2adbe0e4
1. Fixing a race in implementation of date.prototype.setYear where NativeDate.date was updated several times with temporary values.
...
2. Reorganizing NativeDate.execIdCall to shrink code size
2004-09-10 17:36:49 +00:00
igor%mir2.org
7ddb76cbaf
RegExpProxy.(search|find|match) was replaced by the single action taking additional actionType argument: this is how the methods were implemented in RegExpImpl in any case and talking to implementation directly saved code.
2004-09-10 07:51:16 +00:00
igor%mir2.org
ef60132dfa
Inlining back code that were moved recently to do_call/do_new: if continuation support materializes, it would be much easier to transfer control to appropriate part of interpretation loop from the inlined code then to pass the necessary information from do_call.
2004-09-10 07:48:00 +00:00
igor%mir2.org
3047c478e0
1. Interpreter.interpret no longer tracks "with" statement nesting and instead use local register to save/restore scope during exception handling. It allowed to simplify exception handling and move it back to Interpreter.interpret to avoid issues with hypothetical stack overflow exceptions during exception catching.
...
2. local registers are cleared with null after use to allow to GC no longer used objects.
2004-09-09 17:40:48 +00:00
igor%mir2.org
db8822eccc
Removal of "throws JavaSriptException" declaration:
...
JavaSriptException now inherits from RhinoException which inherits from RuntimeException and as such it does not necessary to declare it.
Moreover, it is wrong to use it for the documentation purpose since a script can also throw EcmaError and WrappedException and a proper documentation would require to document those exceptions as well. But since almost all Rhino functions can potentially execute script code it means that wast majority of functions would bear the declarations, not only code overriding or calling explicitly Function.call/construct. And then the throw declarations would bring no information if it always would be "throws RhinoException". Thus it is better not to litter sources with the declarations at all.
2004-09-08 12:29:59 +00:00
igor%mir2.org
30e63c4179
Fixing bug 258144: my take on patch patch from Andrew Madigan <andymadigan@yahoo.com> to add class compiler option controlling which class will be used for main method implementation.
2004-09-07 19:11:39 +00:00
igor%mir2.org
d29f6cb477
Inline small functions used for code generation to produce intepreter or JVM bytecode for particular parser tree node: they just add to jar file size without readability benefits.
2004-09-07 09:08:31 +00:00
igor%mir2.org
b1162d3958
Refactoring of catch code generation to address bug 258183 and bug 258207.
2004-09-06 20:05:55 +00:00
igor%mir2.org
faab99c5dd
Print exception trace inside Kit.codeBug() to have it even if the execption is shadowed by another one
2004-09-06 19:08:11 +00:00
igor%mir2.org
8f793c397e
Resolving bug 255891: new approach to dynamic scoping
2004-09-01 14:17:00 +00:00
igor%mir2.org
df590d4933
Fixing bug 257425: Context.toObject now works even without Context.iniStandardLibrary
2004-08-30 14:57:25 +00:00
igor%mir2.org
614804384d
Fixing bug 257423: the code generation was not updated to use ScriptRuntime.getObjedctProp instead of OptRuntime.thisGet.
2004-08-30 14:48:23 +00:00
igor%mir2.org
ef89c5d451
Renaming Interpreter.State to Interpreter.CallFrame to better reflect class semantics
2004-08-28 19:19:30 +00:00
igor%mir2.org
1e75534222
Changes to make Interpreter to recover from exceptions during execution of ScriptRuntime.getCatchObject() and during initState and do not leave runtime in inconsitent o even corrupt state.
2004-08-28 17:29:50 +00:00
igor%mir2.org
8eb18ba2ca
Implementing 257128: tail call optimization
2004-08-28 00:42:38 +00:00
igor%mir2.org
1c4a403de2
Removal of ScriptRuntime.getThis() : it was used by nested functions or
...
functions declared inside with statements to ensure that their thisObj
is not with or call scope as required by ECMA-262.
But due the changes to support E4X extensions such situation can only happen
when function is accessed as expression like in
var f = function() { }
...
f()
and typically it is exactly nested the functions that are accessed in this way.
So the patch adds optimized code that always check for proper thisObj to
ScriptRuntime.getValueFunctionAndThis and removes getThis and corresponding parsing/code generation code.
In this way when nested functions are accessed as name or property no checks are done for them and Rhino code slightly shrinks.
2004-08-27 11:37:17 +00:00
igor%mir2.org
397ed39869
Link to E4X example
2004-08-25 19:26:56 +00:00
igor%mir2.org
d3a2da86ba
Fixing bug 256865: changing ByteCode constants to int from byte so switches over them would not crash widely installed versions of GCJ like GCJ 3.3.*.
2004-08-25 17:22:02 +00:00
igor%mir2.org
95799991f8
Interpreter optimization: use state.resultDbl to store double result accross calls of interpreted functions to avoid creation of Double instance.
2004-08-25 15:19:22 +00:00
igor%mir2.org
835abeb4b1
Optimizing name access: since top scope can not be NativeWith or NativeCall, it is possible to avoid thisObj checks for name-as-function access and "with" statement and XML object checks.
2004-08-25 09:50:32 +00:00
igor%mir2.org
00faaf6ab8
Fixing bug 256691: forcing XML.hasSimpleContent() to return true for atributes and text.
2004-08-24 11:38:59 +00:00
igor%mir2.org
eea0a0a79d
More parser/scanner changes under the name of bug 256575 :
...
Do not scan regexp literals in TokenStream.getToken(). Instead parser will call explicit TokenStream.readRegExp() after it gets / or /= as primary expression. In this way there is no need to use any explicit regexp flags which rather error prone.
2004-08-24 11:23:13 +00:00
igor%mir2.org
877212964d
Fixing bug 256621: throw \n 1 is not allowed per ECMA 262
2004-08-23 23:01:00 +00:00
igor%mir2.org
4407874e10
Context.hasFeature now calls ContextFactory.hasFeature so application would need to override only one class for common customization.
2004-08-23 22:46:58 +00:00
igor%mir2.org
69135dd38a
Addressing 256575: refactoring of parser/scanner iteraction to address bugs in eol/semicolon handling
2004-08-23 19:06:45 +00:00
igor%mir2.org
347734a288
Resolving bug 256387: XML objects got toSource implementation
2004-08-21 12:26:43 +00:00
igor%mir2.org
1e0a67d725
Fixing bug 256389: working CompilerEnvirons.isXmlAvailable() etc.
2004-08-21 11:10:24 +00:00
igor%mir2.org
a12cf376ae
Added notes about addressed bug 256339
2004-08-20 23:01:28 +00:00
igor%mir2.org
199b043221
Resolving bug 256339: interpreter does not recurse across calls to interpreted functions and scripts and instead uses explicit State object to store JS frame information. It removes the limit on maximum recursion depth in scripts.
2004-08-20 22:50:36 +00:00
igor%mir2.org
91951930f8
Fixing bug 256321: IdScriptableObject can be serialized again
2004-08-20 18:25:20 +00:00
igor%mir2.org
e056c6cd39
Resolving bug 256318: for consistancy with XMLObject.addValues ScriptableObject.equivalentValues also uses NOT_FOUND to indicate no operation available.
2004-08-20 18:05:50 +00:00
igor%mir2.org
26c18b6cfb
Fixing bug 256317: report about invalid references during parsing, not runtime.
2004-08-20 17:43:24 +00:00
igor%mir2.org
0689482587
Fixing bug 255891: just without throwing exceptions about non-js values for compatibility.
2004-08-17 18:33:38 +00:00
igor%mir2.org
09701f4359
Removal of bogus comments about parser usage.
2004-08-17 17:23:44 +00:00
igor%mir2.org
bef500ee34
Making most of TokenStream methods package-private: the class can not be made package-private itself as regexps implementation needs TokenStream.isJSLineTerminator().
2004-08-17 17:18:14 +00:00
igor%mir2.org
20f6aade13
Moving IFGlue internal class of JavaAdapter into separated source file and renaming it to InterfaceAdapter to have more manageable code.
2004-08-16 17:14:24 +00:00
igor%mir2.org
93887dc7c3
Fixing regression caused by new JavaImporter, see bug 245882.
2004-08-16 16:11:27 +00:00
igor%mir2.org
4deb4c2996
More E4X credits
2004-08-16 14:19:44 +00:00
igor%mir2.org
2b2decb7d3
Fixing regression caused by the committed patch under bug 255595
2004-08-16 09:57:15 +00:00
igor%mir2.org
5f3d7d50b3
Credits to BEA for E4X implementation.
2004-08-15 09:05:30 +00:00
igor%mir2.org
a480374b2f
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
c7b18deb40
Deprecating PropertyException as a part of common exception root changes, see 244492.
2004-08-14 16:45:30 +00:00
igor%mir2.org
eed65b7987
Using Kit.initCause to wrap the original exception preventing creation of SecurityController class.
2004-08-14 16:42:33 +00:00
igor%mir2.org
e1db421213
Documenting ClassFactory usage
2004-08-14 15:17:40 +00:00
igor%mir2.org
82fc688a4b
Fixing compatibility issue caused by introduction of ContextFactory. See bug 255595 .
2004-08-14 15:12:38 +00:00
igor%mir2.org
5f819fdbb3
Fixing JavaDoc
2004-08-14 15:08:32 +00:00
igor%mir2.org
8899a6261b
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
0f600362d0
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
d5de09d352
NativeScript no longer implements Script interface which was kept only f
...
or compatibility.
2004-08-14 10:29:09 +00:00
igor%mir2.org
b33cc857e0
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
406e4ecd31
More JavaDoc comments including Context customization example
2004-08-14 09:01:26 +00:00
igor%mir2.org
fb9b2ea140
Fixing broken HTML markup in JavaDoc comments.
2004-08-14 06:44:39 +00:00
igor%mir2.org
83a55815ca
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
3a68eb5402
Fixing bug 255549: proper resolution of overloaded methods.
2004-08-13 19:31:32 +00:00
nboyd%atg.com
2268b493bb
Prepare release candidate for 1.6R1.
2004-08-12 02:00:09 +00:00
igor%mir2.org
98d50120c7
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
e4d1c4896b
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
771b98446a
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
31ff23cd2e
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
ca75e5c0c8
Fixing bug 254915: proper name lookup etc.
2004-08-09 16:57:06 +00:00
igor%mir2.org
5f71fe6973
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
792304a2a9
Fixing bug 254778: proper treatment of labels
2004-08-08 13:45:09 +00:00
igor%mir2.org
c70ca4f034
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
0426521c68
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
4731a8f0f9
Switch parsing cleanup including reporting syntax error on duplicated default label
2004-08-07 15:39:55 +00:00
igor%mir2.org
87d0f3525d
Preparations for 1.6R1
2004-08-06 16:05:40 +00:00
igor%mir2.org
8bcaa1a262
Class-Path entry for Rhino: xmlbean.jar
2004-08-06 15:49:25 +00:00
igor%mir2.org
0d8bd6fe39
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
11ce08544d
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
743dad92a4
GeneratedClassLoader is API class and should be listed in apiClasses.properties
2004-08-05 06:06:30 +00:00
igor%mir2.org
0cf7fb3e59
Restoring ScriptRuntime.call: BSF uses it!
2004-08-04 17:42:56 +00:00
igor%mir2.org
53e6af4c84
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
ec4ab45708
Preparations for Rhino 1.6R1 RC1
2004-08-04 17:28:11 +00:00
igor%mir2.org
4a8da93dda
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
35ca775423
Preparations for 1.6R1 RC1
2004-08-03 17:13:40 +00:00
igor%mir2.org
b73081a5a8
Cosmetics: untabify
2004-08-02 17:49:04 +00:00
igor%mir2.org
73d09ce2c9
Added runtime support to allow custom wrapping of XML objects
2004-08-02 14:46:33 +00:00
igor%mir2.org
81e82296c8
Use ScriptRuntime.notAFunction to report bad ScriptableObject.callMethod arguments
2004-08-02 14:44:03 +00:00
igor%mir2.org
e32e12b401
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
49d1f565ca
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
52f9db3360
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
1502b14734
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
6cc1245e38
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
df2c699cd7
Calling proper ScriptRuntime.call taking scope argument instead of eprectaed old form.
2004-07-29 22:44:45 +00:00
igor%mir2.org
b6ed88ed6d
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
1bd4e8e9db
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
2bf6166f45
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
8a6fdf912e
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
47eb21b587
Fixing under allocation of ids array while enumerating properties.
2004-07-29 12:46:46 +00:00
igor%mir2.org
c62ea82d3d
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
43d1beb31a
Renaming StringIdMap to Main and ipdating documentation
2004-07-29 10:44:59 +00:00
igor%mir2.org
7f304859c1
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
88a3913994
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
0659e0b714
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
ef41e24058
Added ScriptableObject.equivalentValues to allow for custom equality operator support.
2004-07-28 15:23:11 +00:00
igor%mir2.org
d3d45e59da
Added Reference.has() for future use.
2004-07-28 15:21:02 +00:00
igor%mir2.org
8799f9f62b
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
e47e67719d
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
cf9b20185b
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
f02c491af8
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
a87bb4edcd
Making ScriptRuntime.typeError* public
2004-07-28 09:51:02 +00:00
igor%mir2.org
9ad83535e6
Allow to subclass NativeWith
2004-07-28 09:50:07 +00:00
igor%mir2.org
cbb0e19a28
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
5207d03135
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
1a1653605f
Context.getArrayElements implementation is moved to ScriptRuntime which also defined now isArrayObject
2004-07-28 07:06:35 +00:00
igor%mir2.org
fa889e8215
Making next release to be 1.6 release 1
2004-07-12 14:26:30 +00:00
igor%mir2.org
2c3f8b4844
Renaming ObjArray.setReadOnly() to ObjArray.seal() to follow the rest of Rhino code.
2004-07-09 13:28:48 +00:00
igor%mir2.org
fe6620df87
Fixing comments text to reflect real state of code
2004-07-07 14:47:46 +00:00
igor%mir2.org
faa2cc87fe
Almost reverting the prevois commit: it was too preliminary.
2004-07-07 14:46:58 +00:00
igor%mir2.org
4588cccd39
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
80b96958c9
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
3ffab68246
Removal of no-longer applicable comments refering to SM code
2004-07-05 15:07:25 +00:00
igor%mir2.org
cfec98bb95
Removal of Token.DOT in NodeTransformer: it is always processed in IRFactory.
2004-07-05 15:06:18 +00:00
igor%mir2.org
b0e98cbca8
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
a084aaa65f
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
15426336fd
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
53864e64b8
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