Commit Graph

1391 Commits

Author SHA1 Message Date
igor%mir2.org
d7a98d84dc Message about overcapacity 2003-12-09 19:23:25 +00:00
igor%mir2.org
aeafac2fcf Cosmetics: removal of tabs 2003-12-09 19:22:58 +00:00
igor%mir2.org
6625e3229d 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
f53203c746 Replacing custom buffer management in replace code with the standard StringBuffer 2003-12-08 17:10:23 +00:00
igor%mir2.org
528efdfe62 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
44fae2ad68 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
aed233007b 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
dcd6522b88 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
21f15557ab Fixing bug 225926 : patch from Roger Lawrence 2003-12-07 15:35:40 +00:00
igor%mir2.org
c97a96edca Fixing bug 225366 : port of SM patch 2003-12-05 23:22:10 +00:00
igor%mir2.org
449bf5eadc 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
b1ba2b408e 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
2997e9f7ee 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
46e97e6ab7 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
a9bb9a44ac 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
cbacb923d3 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
02c0cb7a89 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
834efdbe71 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
7c4e5d8424 Allow for scripts to catch instances of EvaluatorException 2003-11-14 20:38:06 +00:00
igor%mir2.org
8e546b9047 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
7c0cff6574 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
2e75448c13 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
7d1e5eda47 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
f2ba87fed2 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
e734cecce2 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
b7d4dfaa28 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
f260baaf11 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
dd1efd374f Extend constant folding to cover few unary operations 2003-11-11 20:18:34 +00:00
igor%mir2.org
12c1d23434 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
8313023fae 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
44c6535ad4 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
dc34ed3dc1 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
49ffeac3df New interface to refer to code executed with a particular context and arguments. 2003-11-07 22:28:22 +00:00
igor%mir2.org
6006898229 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
5b675f523e Added setDouble, setString that are used in IRFactory during constant folding 2003-11-07 22:18:49 +00:00
igor%mir2.org
8eb8104ae7 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
7ed29ee5a5 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
d7d991d76f 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
4da147d828 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
4c338669a9 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
6cbd10e41c JavaDoc @link fixes 2003-11-04 14:49:20 +00:00
igor%mir2.org
da6b0bef31 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
8349b3ea49 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
7d26c9eb27 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
80c54a080a 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
bef3bd17c6 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
2c30bb423d Added Kit.makeHashKeyFromPair to make combined key for hashtables from 2 objects 2003-11-03 18:04:27 +00:00
igor%mir2.org
ef93931896 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
e793b86743 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
314f3f5bc8 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