Граф коммитов

1954 Коммитов

Автор SHA1 Сообщение Дата
igor%mir2.org 3aaa416d55 Fixing bug 262447: bad implementation of trying-hard-to-avoid-map-allocation idea in ScriptableObject.getPropertyIds 2004-10-01 14:59:45 +00:00
igor%mir2.org 59af2f367b More Reference clenups: Reference.delete now returns boolean to follow JS semantic clother and Reference implementation for __proto__|__parent__ is moved to a separated file SpecialRef. 2004-10-01 13:32:14 +00:00
igor%mir2.org e048fa7512 Replacing calls to XMLLib to construct special name objects to represent qulified names, attributes and descendants by calls to object to get Reference based on name type. It allowed to implement proper namespace resolution in qulified name without forcing activation creation and simplified code.
In addition XMLName is no longer leaked to interpretation stack which would allow to remove unnecessary casts to XMLName in future.
2004-09-30 22:52:40 +00:00
igor%mir2.org 9f63611ce1 1. Reference cleanup:
Signatures in Reference are changed to include Context and reference-related methods in ScriptRuntime accept/return explicit Reference type instead of generic Object as code generation ensure proper type.

2. x..y use explicit reference instead of special descendants mark XMLName:

In this way less code is necessary to support x..y operations and support for .. in non-xml objects is possible.
2004-09-29 20:58:16 +00:00
igor%mir2.org fa2d593b85 Transform name access to var access only if function does not require activation: previously the tests missed the check for .() that caused activation to be created. 2004-09-29 20:49:05 +00:00
igor%mir2.org 5421cfce46 Define var and arguments as PERMANENT properties as required by ECMA. 2004-09-29 19:04:47 +00:00
igor%mir2.org dfa85f90dd 1. I fixed a recent regression that caused "arguments" array to be constructed before initialization of standard objects: Global.init() should be called in procesFiles as well.
2. I replaced a couple of anonymous classes implementing ContextAction by Use single IProxy class to shrink compiled code size.
2004-09-29 05:41:00 +00:00
igor%mir2.org 31962091d1 Store optimization level and language version in ShellContextFactory
so all Context instances created on other threads or from JavaAdapter
calls would have proper setup.
2004-09-28 21:58:01 +00:00
igor%mir2.org 1f3b183f24 1. Pass Context argument to XMLReference creation method to use it later
to check for strict mode.

2. Fix name lokup bug in XMLReference that caused in cases like
   foo.(@bar == 'something') to throw runtime exception if bar attribute
   does not exist in foo.
2004-09-28 21:56:33 +00:00
igor%mir2.org 835fe30439 I added methods to check for valid version and optimization levels that
Rhino embeddings can use to check the validity of data.
2004-09-28 21:52:19 +00:00
igor%mir2.org e394b15872 NotAFuctionException is not deprecated for now 2004-09-28 07:20:27 +00:00
igor%mir2.org 8650308ed6 *** empty log message *** 2004-09-27 23:24:27 +00:00
igor%mir2.org 81746e1776 Use Context.emptyArgs, not null to denote null-arity method call for consistency. 2004-09-27 20:48:44 +00:00
igor%mir2.org e75e7213d3 In ScriptableObject.callMethod use object itself as possible top scope source for to support of dynamic scoping. 2004-09-27 12:08:24 +00:00
igor%mir2.org 2490dd1652 Removal of OptLocalVariable: the class is replaced by varRegisters array in Codegen and numberVarFlags in OptFunctionNode. The later is initilized only when optimizer deduces that there are variables used in pure number context. 2004-09-27 12:04:52 +00:00
igor%mir2.org 9ca481e40b Replace explicit parse tree walk to associate OptLocalVariable with tree nodes by lazy initialization of the association on first OptLocalVariable access. It shrinks code while making optimization to run slightly faster. 2004-09-27 09:33:50 +00:00
igor%mir2.org 1284815da8 Updating links to xmlbeans home and refer to xbean.jar, not xmlbeans.jar in the documentation. 2004-09-26 22:35:29 +00:00
igor%mir2.org f2e4f3318c I added ScriptRuntime.setObjectProtoAndParent to initialize prototype and parent of objects created outside the standard constructor calls. It allowed to replace scattered setPrototype/setParentScope and shrink code size. 2004-09-26 14:36:01 +00:00
igor%mir2.org 9cd57f1550 Avoid duplicated getMessage* code in ScriptRuntime and Context: now all the necessary code is moved to ScriptRuntime and the rest of code is updated to call ScriptRuntime 2004-09-25 18:11:44 +00:00
igor%mir2.org 924295d56c Better compatibility of continuation implementation with the version from cocoondev.org: use current top call scope as scope for Continuation, not library scope. 2004-09-25 10:34:05 +00:00
igor%mir2.org 33b74641f5 For compatibility allow jsFunction_* to return non-scriptable type. Not to
perform type conversion checks for methods that do return proper JS type the
type check is done only once in the constructor and if necessary a flag is set
to call WrapFaactory.wrap on method return.
2004-09-25 09:24:43 +00:00
igor%mir2.org 744bc2b079 Allow to specify explicit ContextFactory with the debugger. 2004-09-24 20:35:42 +00:00
igor%mir2.org 9c900143cf Make sure that all functionality that Main.(main|mainEmbedded) use to initialize debug GUI is available for applications through public methods. 2004-09-24 16:46:50 +00:00
igor%mir2.org 243ce99e7c More compatibility changes: added Main.isVisible 2004-09-24 16:38:09 +00:00
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
igor%mir2.org b91ef7e8a2 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 4ad826a35e 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 4035bd2c91 Removal of Tiken.UNDEFINED: it was not used outside Interpreter 2004-07-01 16:40:44 +00:00
igor%mir2.org f0ca03fe7c 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 21a1489b59 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 05a6149911 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 f32fceb8a1 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 012fd05901 Fix menu enable/disable misbehavior. 2004-06-30 13:29:41 +00:00
igor%mir2.org 4cc8c9cd28 Fixing JDK 1.3 compatibility: TableModel.getRot() should not return null there. 2004-06-30 09:38:54 +00:00
igor%mir2.org c1a3a327c2 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 d9fd2cc2b9 Make EvaluatorException(String) public for compatibility 2004-06-15 04:42:59 +00:00
igor%mir2.org 7f56cb9f8f 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 204d41ff43 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 45dd15a64f The last commit made Rhino uncompilable! Fixing that. 2004-06-09 08:25:59 +00:00
igor%mir2.org 407b7697c2 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 f0b3c4b63f 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 ec1dd303f9 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 e1d29463ec 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 f066506500 Using IdFunction in place of JIFunction in NativeJavaTopPackage 2004-06-08 15:29:34 +00:00
igor%mir2.org 8f28fc868a 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 f5bd7a5a11 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 e412382826 API to set global SecurityController is moved to SecurityController not to clatter Context. 2004-06-08 11:09:40 +00:00
igor%mir2.org b538849b5b 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 be6494c229 Switch to using Context.javaToJS instead of Context.toObject 2004-06-07 10:35:22 +00:00
igor%mir2.org c613550feb setGlobalSecurityController should be static 2004-06-07 10:34:22 +00:00
igor%mir2.org daf6b75edb 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 70af322f7a ContextFactory is a new API class 2004-06-06 09:28:18 +00:00
igor%mir2.org 172c10e986 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 c3ac073e09 Better JavaDoc comments for FEATURE_ constants 2004-06-04 17:51:27 +00:00
igor%mir2.org 4fe37bb798 Allow to disable special treatment of __proto__ and __parent__ via overriding Context.hasFeature(). 2004-06-04 14:57:31 +00:00
igor%mir2.org 7048fd0cd3 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 633428122c 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 20af7b885d Changing Refrence.set(Object) to return Object to return the real stored value. 2004-06-02 11:33:09 +00:00
igor%mir2.org 1a9a123c14 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 ee2f62aef9 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 94302e5018 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 6806c3160e 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 cb3a4fef51 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 8f9ce34d52 Optimize ++name and --name similarly to name++ and name-- via special runtime support 2004-05-31 12:09:39 +00:00
igor%mir2.org ad65f9094a 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 2f00186bd2 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 feca58e25b ++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 35a14e8364 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 7d94a4273b Added JavaDocs for Kit.initCauseOrIgnore 2004-05-29 09:37:48 +00:00
igor%mir2.org 5a542b76b3 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 8d03a328c9 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 6dcea14f54 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 402fd02406 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 7fe01ad6bc exitAction is moved to DebugGui 2004-05-27 10:34:44 +00:00
igor%mir2.org cd63019db8 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 b85ecb8c02 Work on 244492: JavaScriptException extends RuntimeException 2004-05-26 11:54:10 +00:00
igor%mir2.org fa34067a88 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 63596c3f2b 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 7341c1f1b5 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 8804a5c10d Restoring public constructor for WrappedException for compatibility with Batik. 2004-05-24 07:53:06 +00:00
igor%mir2.org 2283ed2681 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 3130100ea6 Fixing JavaDoc comments 2004-05-23 17:32:32 +00:00
igor%mir2.org 1e8e9be624 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 cfe01facb2 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 e431bd1a66 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 30e9aee832 Switch to line info extraction through single top script processing 2004-05-22 23:19:56 +00:00
igor%mir2.org 677ac1cd76 Splitting Main.java into Main.java and GUI-related DebugGui.java 2004-05-21 15:06:36 +00:00
igor%mir2.org 7ceadc8e69 Split Main class into Main and DebugGui to have better debugger/gui separation 2004-05-21 14:25:21 +00:00
igor%mir2.org 1ad8dc2197 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 3265deef44 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 e58d2a671b Move logic to show exception dialog into EnterInterrupt action 2004-05-21 11:27:59 +00:00
igor%mir2.org 7706f20db2 Test file 2004-05-21 10:53:19 +00:00
igor%mir2.org 5c690d13af 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 261666150e Merge various GUI initializations during breakpoint hit into single action 2004-05-21 01:10:04 +00:00
igor%mir2.org 0ec2c999de Removal of manThread: breakFlag can do its job just fine 2004-05-21 00:17:45 +00:00
igor%mir2.org 9f73c42235 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 013271de02 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 c23cadde22 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 f9804a0ac7 In the interpreter loop comparision operations are represented by separated optimized do_cmp. 2004-05-18 12:19:25 +00:00
igor%mir2.org 10f3c4233e 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 351dcb728c 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