Commit Graph

3847 Commits

Author SHA1 Message Date
gerv%gerv.net
4e12e44b2f Relicensing Round 1, Take 2. Most C-like NPL files -> NPL/GPL/LGPL. Bug 98089. 2001-09-28 20:14:13 +00:00
pschwartau%netscape.com
5c97ceca72 Initial add. Regression test for bug 101964. 2001-09-28 04:50:52 +00:00
nboyd%atg.com
3a63e824ea Remove obsolete comment about serialization. 2001-09-27 15:14:24 +00:00
nboyd%atg.com
1682c2fc43 Add new serialization API classes. 2001-09-27 14:59:59 +00:00
shaver%mozilla.org
77d6e73e42 Bug 94506: parameter named "arguments" is not accessible in JavaScript method.
Now we check for the magic "arguments" name after var-and-arg slot
optimizations. r=rogerl, sr=brendan
2001-09-27 14:52:14 +00:00
nboyd%atg.com
fdc6f6b166 Add docs for serialization. 2001-09-27 14:51:20 +00:00
nboyd%atg.com
fea124fdd5 Remove obsolete files (perhaps re-added by mistake?) 2001-09-27 12:59:30 +00:00
nboyd%atg.com
3d2e81a014 Patches from Igor:
Note form omj/Parser.java:

* OPT source info collection is a potential performance bottleneck;
* Source wraps a java.lang.StringBuffer, which is synchronized.  It
* might be faster to implement Source with its own char buffer and
* toString method.

It is indeed a bottleneck under JDK 1.1. When I replaced StringBuffer
by a char array (see the attached patch), execution time of
Context.compileReader decreased by 15%: to test I combined a few test
cases to get a 3MB JS source and then measured time to process it by
Context.compileReader in the interpreter mode.

Under JDK 1.3 the difference is less then 1%, but still using the explicit
string buffer saves memory. When converting StringBuffer to String Sun JDK
shares the internal char array in StringBuffer with new String, but in the
Parser case typically the capacity of this buffer is bigger then the actual
string length, so this unused space in source strings is wasted in the
interpreter mode that keeps these strings in InterpreterData.

Regards, Igor

========
I implemented that member expression as function name syntactic sugar to
support scripts using this MS extension. This is only available when
Context.hasFeature(Context.FEATURE_MEMBER_EXPR_AS_FUNCTION_NAME)
returns true to allow the deviation from the standard only when required.

The patch effectively transforms 'function <memberExpr>(...)...' to
'<memberExpr> = function(...)...' when <memberExpr> is not simple
identifier. I am not sure that MS implementation does exactly this
but hopefully it is sufficiently general to cover MS cases.

(The patch assumes that source_change.patch is already applied)

Regards, Igor
2001-09-27 12:51:42 +00:00
nboyd%atg.com
367774a772 Patch from Igor:
I implemented that member expression as function name syntactic sugar to support
scripts using this MS extension. This is only available when
Context.hasFeature(Context.FEATURE_MEMBER_EXPR_AS_FUNCTION_NAME)
returns true to allow the deviation from the standard only when required.

The patch effectively transforms 'function <memberExpr>(...)...' to
'<memberExpr> = function(...)...' when <memberExpr> is not simple identifier.
I am not sure that MS implementation does exactly this but hopefully it is
sufficiently general to cover MS cases.

(The patch assumes that source_change.patch is already applied)

Regards, Igor
2001-09-27 12:50:14 +00:00
brendan%mozilla.org
06c740491e Don't report uncaught exceptions unless returning to native code (97646, r=jband, sr=shaver). 2001-09-27 05:04:45 +00:00
nboyd%atg.com
212d1b132a Add support for serialization and deserialization. 2001-09-27 02:33:51 +00:00
dbradley%netscape.com
0b484536e8 Bug 94859 silence compiler warning about unused variable r=rginda, sr=jband 2001-09-26 04:11:54 +00:00
pschwartau%netscape.com
9c2e261f72 Adding comments from contributor. 2001-09-26 01:15:14 +00:00
pschwartau%netscape.com
9fb2c068a7 Correcting some typos. 2001-09-26 00:58:35 +00:00
pschwartau%netscape.com
576808aca7 Initial add. Regression test for bug 101488. 2001-09-26 00:32:11 +00:00
nboyd%atg.com
7c030bfefb Patch from Igor:
Currently omj/TokenStream and omj/optimizer/Optimizer.java both contain
code to convert number value to a wrapper object of smallest size. The
attached patch moves this wrapping to Node constructor to avoid code
duplication and eliminate special treatment of exact integers in
Optimizer.java.


The constant folding code in omj/optimizer/Optimizer.java currently always
replaces x * 1, x - 0 by simply x which does not force the toNumber convertion,
which is visible, for example, via typeof. For example, when running at
optimization level 2, the following

function f() {
    return "0" * 1;
}

print(typeof(f()));

prints "string" instead of expected "number".

The const_fold.patch fixes this via replacing x*1 by (+x) to force number convertion.

It assumes that the patch with number wrapping changes is in place.
2001-09-25 14:09:22 +00:00
nboyd%atg.com
7ccac99fc4 Currently omj/TokenStream and omj/optimizer/Optimizer.java both contain code to
convert number value to a wrapper object of smallest size. The attached patch
moves this wrapping to Node constructor to avoid code duplication and eliminate
special treatment of exact integers in Optimizer.java.
2001-09-25 14:08:08 +00:00
brendan%mozilla.org
3558787cfd Report uncaught exceptions from all JS_Compile* APIs (97646, sr=jband&shaver). 2001-09-25 06:43:33 +00:00
dbradley%netscape.com
a47dae7c99 patch from bug 99838 - Changes to remove xpconnects dependency on DOM r=jband, sr=jst 2001-09-24 22:57:47 +00:00
dbradley%netscape.com
03a4f2723c added files: mozilla/js/src/xpconnect/idl/nsIXPCScriptNotify.idl 2001-09-24 22:53:00 +00:00
dbradley%netscape.com
1f85e703a9 patch from bug 99838 - Changes to remove xpconnects dependency on DOM r=jband, sr=jst 2001-09-24 22:48:35 +00:00
nboyd%atg.com
6a75823f31 Remove obsolete class. 2001-09-23 20:01:43 +00:00
nboyd%atg.com
113dae7eb7 Fix bug:
Hello Norris

The script should return 0, Rhino returns NaN

Steven

<script>
var trial = parseInt("0)");
alert(trial);
</script>
2001-09-23 20:01:31 +00:00
nboyd%atg.com
8bb4a031bf Patch from Igor:
Currently omj/optimizer/Codegen.java uses special classes ConstantList
and ConstantDude to store the list of static constants in the generated
class. It seems that using a simple double[] array with a constant
counter and checking via "(int)number == number" for constant types not
only eliminates these 2 classes but makes the whole code simple, see
the attached patch.

The patch also modifies nodeIsConvertToObjectOfNumber to return not a
Number, but the number node itself that is used to extract double
value directly via Node.getDouble() call. I changed it to allow  to
store values of number literals in nodes without using wrapper object.
2001-09-23 20:00:26 +00:00
nboyd%atg.com
5ad714f337 Patch from Igor:
Replacing usage of ShallowNodeIterator to loop throw node children by
explicit calls to Node.getFirstChild()/ Node.getNextSibling()) with
comments when the node children list is modified while iterating
through it.

It avoids creation of ShallowNodeIterator objects and eliminates the
need to have ShallowNodeIterator class.
2001-09-23 19:58:38 +00:00
cls%seawood.org
69b6808ca6 Use default EXPORTS rules instead of installing headers by hand.
Bug #98371 sr=alecf
2001-09-23 03:34:32 +00:00
jband%netscape.com
801cc884a1 I'm tired of this warning: '*/' found outside of comment. This was much discussed. But no one ever bothered to actually check in the trivial fix. r=rginda rs=jband. 2001-09-22 17:42:36 +00:00
rginda%netscape.com
c07e99883d - venkman only -
bug 100943, changes needed to build jsd on os/2
patch by Dainis Jonitis, r=mkaply,rginda
2001-09-22 01:39:24 +00:00
pschwartau%netscape.com
b38eac9fd6 Make formatArray() work in Rhino. Improve getState() by checking for more whitespace characters. 2001-09-21 22:44:46 +00:00
timeless%mac.com
d2a5676d57 Bug 100873 JS Hard Codes JS_HAVE_LONG_LONG to the detriment of FreeBSD
r=cls sr=shaver
2001-09-21 14:09:54 +00:00
jband%netscape.com
afa3e0b204 fix bug 100222. Fix crash by only releasing other objects in xpcwrappedjs dtor if xpconnect has not yet shutdown. r=dbradley sr=jst. 2001-09-20 00:51:38 +00:00
gerv%gerv.net
1856815ff1 Oops. 2001-09-20 00:02:59 +00:00
scc%mozilla.org
bc444f528a bug #98089: ripped new license 2001-09-19 22:39:41 +00:00
nboyd%atg.com
dfdc492a06 Patch from Igor:
Currently Rhino source has quite a few places with code like (String)node.getDatum()
 or ((Number)node.getDatum()).doubleValue(). The patch changes this usage to call
node.getString() or node.getDouble().

It also adds new constructors to Node to accept int or double values in addition to
Object datum to replace new Node(token, new Integer(x)) by Node(token, x) etc. It
may allow in future not to create a wrapper object for int or double datum to speed
up parsing.
2001-09-19 17:01:46 +00:00
jband%netscape.com
229409f54e fix bug 100260. xpconnect should not hold a weak reference to a classinfo object after the xpcwrappednativeproto that was holding a strong ref is destroyed. sr=jst, r=dbradley,markh. 2001-09-19 06:22:17 +00:00
rogerl%netscape.com
30680afe44 Fix bug #98306, ParseAtom crash for "/[/]/" r=jst, r/sr=be. 2001-09-18 22:36:14 +00:00
jaggernaut%netscape.com
d1a7bfa843 One module per line for REQUIRES. r=/sr=alecf 2001-09-18 22:01:13 +00:00
jaggernaut%netscape.com
dc40187223 Bug 73353: splitting the modules on the REQUIRES lines in Makefile.in across multiple lines to more clearly show the changes made. sr=alecf 2001-09-18 13:41:47 +00:00
nboyd%atg.com
8496f933ce Patch from Igor:
Currently in the interpreter mode all number literals are stored in
InterpreterData.itsICode as an index to InterpreterData.itsNumberTable
which holds the actual value.

For integers that fit 2 or 4 bytes this is an overkill and the attached
patch stores integers in InterpreterData.itsICode inline after special
TokenStream.INTNUMBER or TokenStream.SHORTNUMBERS tokens.

The changes made benchmarks to run 1.5% faster. It also saves memory
because InterpreterData.itsNumberTable is allocated only for non-integers
that present only in a small number of scripts.

In principle, it may be possible to store all numbers inline as well, but
unfortunately re-assembling of 8 bytes from InterpreterData.itsICode array
into double is rather slow operation and is not worth the hassles.

Regards, Igor
2001-09-18 12:27:23 +00:00
nboyd%atg.com
eb3cf99fce Patch from Igor:
Hi, Norris!

Currently ScriptableObject.put does not check lastAccess cache during its search for
slots. When I added this check (see the attached patch) it speeded up the benchmark
suite by about 1.5% and in particular for setProp_bench.js the win was about 8%.

I think that even on multiprocessor machines it would not introduces any additional
issues  like accessing the old value in the processor cache because the put method
accesses existing properties via unsynchronized getSlot, and the check for lastAccess
is on pair with that.

Trgards, Igor
2001-09-18 12:26:10 +00:00
nboyd%atg.com
c352f1aa9b Fix for problem from Felix Meschberger:
When handling an Exception the Context tries to get the current script
and line number from the Java Stacktrace. To get the indication of which
entry in the trace might be an ECMA script, the file extension ".js" is
assumed.

For our integration we use the standard extension ".ecma" which collides
with the above assumption. But we don't force this extension, we just
have a convention. We name these files ".ecma" as they are not plain
ECMA but JSP-like ECMA. That is instead of using Java as the programming
language we use ECMA. In this respect they would be ".esp".
2001-09-18 12:24:56 +00:00
brendan%mozilla.org
c18c814935 Use the maximum of fp->argc and fp->fun->nargs to bound fp->argv (97921, sr=jband&shaver). 2001-09-18 01:47:41 +00:00
pschwartau%netscape.com
ca95abb70c Forgot to remove these comment-marks. 2001-09-17 23:55:06 +00:00
pschwartau%netscape.com
12c45dcfdc Skip regression test for bug 100199 until the bug is fixed. 2001-09-17 23:53:12 +00:00
pschwartau%netscape.com
67ac10ea31 Initial add. Regression test for bug 100199. 2001-09-17 23:49:25 +00:00
alecf%netscape.com
62424ee7b2 Final REQUIRES changes for bug 98371, adding support for MOZ_TRACK_MODULE_DEPS to win32. r=cls (and tested by cls!) 2001-09-17 19:06:35 +00:00
pschwartau%netscape.com
625129bd11 Improve visual presentation in the case where test string contains '\n'. 2001-09-14 20:10:49 +00:00
nboyd%atg.com
b5141d614d Patch from Igor:
Patch fixes issue of not ignoring UNICODE format characters in match
and peek methods, adds explicit assertions checks for code assumptions
and makes handling of ASCII '\r', '\n' and UNICODE U+2028, U+2029 line
ends uniform.

It was rather tricky to fix format character issue and I spend some
time figuring out what TokenStream assumes about LineBuffer that
breaks my initial thoughts on the patch in cases like very long
sequences of format characters that do not fit in the buffer. I
fixed that but it made the code rather unclear so I put explicit
checks for assumptions/preconditions to help with debugging.

I added Context.check flag to turn on/off these checks and
Context.codeBug to throw an exception in case of check violations,
and also modified UintMap to use them instead of the private
flags there.

It would be nice to add some tests about format characters to the test
suite with checks similar to "eval('1 =\u200C= 1') == true" and
"eval('.\u200C1') == 0.1".
2001-09-14 17:26:12 +00:00
nboyd%atg.com
7c041252b1 Patch from Igor:
Hi, Norris!

I have found few problems with NativeArraj.java.

1. jsSet_length requires that the new length value should be an instance of Number. But according to Ecma 15.4.5.1, item 12-13, an error should be thrown only if ToUint32(length_value) != ToNumber(length_value). Here is a simple test that demonstrates it:

Array(5).length = new Number(1)

It currenly throws an exception.

2. jsSet_length when executing the code marked with "// assume that the representation is sparse" effectively removes all properties with values less then the current length when String is used to represent its value. Note that simply changing lines "if (d == d && d < length) delete(id);" to "if (d == d && d >= longVal) delete(id);" is not good because it would remove properties like "4.5" or "007", the full array index check has to be used instead.

Here is a test case that catches the problem:

var BIG_INDEX = 4294967290;
var a = Array(BIG_INDEX);
a[BIG_INDEX - 1] = 'a';
a[BIG_INDEX - 10000] = 'b';
a[BIG_INDEX - 0.5] = 'c';

a.length = BIG_INDEX - 5000;
var s = '';
for (var i in a) s += a[i];

print('s="'+s+'"');

this should print s='cb' (or 'bc': EcmaScript does not fix the order), but currently it gives s=''.

3. There are race conditions in jsSet_length and getIds.
The first contains:
                    if (hasElem(this, i))
                        ScriptRuntime.delete(this, new Long(i));
which would lead to call to delete in the Array prototype if 2 threads would invoke this code. Simply calling ScriptableObject.delete without any checks for existence is enough here.

getIds assumes that the count of present elements in the dense array does not change, which is not true when another thread deletes elements from dense.

The attached patch fixes these issues.

Regards, Igor
2001-09-14 13:50:09 +00:00
brendan%mozilla.org
cf80f7240c Fix unsafe JS_DHashTableRawRemove usage; unoverload cx->resolving into a counter and a JSDHashTable pointer (94422, r/sr=jband,waterson with dbaron sanity checks). 2001-09-14 03:37:15 +00:00
pschwartau%netscape.com
6333005ace Making testcase compatible with updated testRegExp() function in utility file shell.js 2001-09-14 00:29:21 +00:00
pschwartau%netscape.com
a6700335b7 Improving the error-reporting functions for RegExp tests. Now more complete and more consistent. 2001-09-14 00:15:59 +00:00
nboyd%atg.com
db1d39756e Fix broken link 2001-09-13 13:49:23 +00:00
brendan%mozilla.org
3efd0e519f 1. Fix jsdhash/pldhash.[ch] so that add/remove cycles for a given k do not
create a long chain of removed sentinels.  Also, when adding k to a table
    where k is not mapped, but where k hashes to a chain that includes removed
    sentinels, recycle the first removed sentinel in the chain for k's entry.
2.  Cache cx->resolving till js_DestroyContext, to avoid high JSDHashTable
    new/destroy overhead in js_LookupProperty.
3.  Add NS_TraceStack to nsTraceMalloc.[ch] and clean the .c file up a bit.
2001-09-12 06:39:31 +00:00
cls%seawood.org
1db0a058f3 Make generated header use common install rules.
Bug #59454 r=bryner sr=alecf
2001-09-12 06:35:50 +00:00
blizzard%redhat.com
3b2127bd59 Checking in for Ulrich Drepper. Bug #99246. r=beard, sr=brendan 2001-09-12 03:19:08 +00:00
pschwartau%netscape.com
cb7ef4c5f2 Trivial whitespace cleanup. 2001-09-10 23:16:43 +00:00
pschwartau%netscape.com
9394dbd3ec Initial add. Regression test for bug 97921. 2001-09-10 23:05:12 +00:00
alecf%netscape.com
8bf5905937 add REQUIRES support to jpeg, sun-java, db, etc.. b=98371 r=cls 2001-09-10 20:48:38 +00:00
pschwartau%netscape.com
9b63ff8183 Trivial change to comment and whitespace. 2001-09-08 18:58:40 +00:00
rginda%netscape.com
911df23fb2 bug 95534, r=brendan, sr=jband
fix semantics of JSTRAP_CONTINUE to prevent a debugger client from telling the engine to continue when we all know it'll proobably just crash.
2001-09-06 21:46:18 +00:00
jband%netscape.com
02986411d1 fix bug 96511. Meant #ifdef not #if. sr=brendan r=jband 2001-09-06 19:01:17 +00:00
nboyd%atg.com
a14d6d33c5 patch (with my modifications) from jj@mail.ahc.umn.edu:
It would be nice if the rhino shell would accept a URL as the source
for javascript.

I've added this feature to my local copy so that I can launch rhino
with js scripts using  JavaWebStart.

Below is a context diff of the changes I made to
toolsrc/org/mozilla/javascript/tools/shell/Main.java
2001-09-06 16:53:29 +00:00
jband%netscape.com
0a93bb62fa fix bug 98450. We need to be calling OBJ_DROP_PROPERTY after OBJ_LOOKUP_PROPERTY. Also, this was refactored on dbradley's suggestion. sr=brendan r=dbradley 2001-09-06 06:29:19 +00:00
rginda%netscape.com
49273bb507 - venkman only -
init xpconnect on the debugger's default context so that xpconnect can use it when it has to.  r=jband
2001-09-06 01:34:44 +00:00
pschwartau%netscape.com
082245971f Trivial whitespace fix. 2001-09-05 23:35:07 +00:00
pschwartau%netscape.com
ed10eb7850 Completely rethinking this testcase. Reduced test as much as possible, added try...catch blocks and for-loop to stress-test the code. 2001-09-05 23:21:33 +00:00
rginda%netscape.com
ea08067f65 - venkman only -
turn off verbose debugging for me
push a thread event queue for necko before we enter a nested event loop
2001-09-05 21:29:59 +00:00
jband%netscape.com
23d7dc717d fix bug 97444. It is not good to patch a different fun into the frame. Let's safely shunt aside the callee frame instead. r=rogerl sr=brendan 2001-09-05 21:25:09 +00:00
pschwartau%netscape.com
8873ed636b Improved accuracy of test, and added more cases. 2001-09-05 21:15:43 +00:00
pschwartau%netscape.com
4380531bc9 Adding comment regarding regress-97646-001-n.js, regress-97646-002-n.js 2001-09-05 17:47:11 +00:00
pschwartau%netscape.com
a42722d0e6 Correcting comments at top of file, plus bug and summary values. 2001-09-05 17:13:14 +00:00
pschwartau%netscape.com
4757b4fc39 Correcting date at top of file. 2001-09-05 17:03:32 +00:00
pschwartau%netscape.com
87765e762a Correcting comments at top of file, plus bug and summary values. 2001-09-05 17:01:03 +00:00
nboyd%atg.com
4e39e826e2 Patch from Igor. 2001-09-05 16:54:37 +00:00
nboyd%atg.com
8eb4d39793 Patch from jeffh@aiinet.com:
There is a bug in the JavaMembers class called to wrap a Java object.

In JavaMembers.lookup(), code was added to override the static type.  The
code works in the case of an Enumeration returning an Object which would
have to be casted to the appropriate type.

The code does not work when the static type is an interface.  In this case,
the interface class is the one which should be reflected, not a parent class
of the dynamic type.  A simple staticType.isInterface() check around the
parent traversal code fixes the problem.

Jeff
2001-09-05 16:52:39 +00:00
nboyd%atg.com
a19d5beda6 Patch from jeffh@aiinet.com:
I have found a couple problems with running Rhino 1.5R2 in a heavily
multi-threaded environment.  The attached patches fix the problems.

- org.mozilla.javascript.optimizer.InvokerImpl - This class was accessing
the shared classNumber outside of the synchronized block.

- org.mozilla.javascript.optimizer.OptClassNameHelper - The reset method was
not synchronized.  It needs to be because the class using the classNames map
is synchronized and does not handle nulling of the variable while it's
looping on the map.

Jeff
2001-09-05 16:50:26 +00:00
nboyd%atg.com
4507a1cf73 Update for new tests. 2001-09-05 16:48:31 +00:00
pschwartau%netscape.com
cb11cb7e47 Initial add. Regression test for bug 98306. 2001-09-05 06:27:25 +00:00
pschwartau%netscape.com
0b02e3b978 Skipping two new tests that use non-EMCA functionality: toSource() and uneval(). 2001-09-05 01:07:17 +00:00
pschwartau%netscape.com
ded8f34015 Improved readabilty. Improved accuracy of stripBraces() function. 2001-09-05 00:49:31 +00:00
pschwartau%netscape.com
018096156d This is more accurate. Also using sorting now, for definiteness in comparisons. 2001-09-05 00:46:24 +00:00
pschwartau%netscape.com
3e130a22c8 Initial add. Regression test for bug 96284. 2001-09-04 01:54:36 +00:00
brendan%mozilla.org
622522e134 Ignore property found in non-native prototype (12367, sr=jband&shaver, a=asa). 2001-09-03 22:29:12 +00:00
brendan%mozilla.org
0cf73f1847 Fix toSource on exception objects so it uses toSource to generate properly-quoted, embedded string literals for message and filename (bug 96284, r=jband, sr=shaver, a=asa). 2001-09-03 19:36:24 +00:00
rginda%netscape.com
f14e08526e bug 88130, patch=jband, r=me,dbradley, sr=jst, a=brendan
clear exception state before and after calling out via xpconnect.
remove redundant exception clear from CallQueryInterfaceOnJSObject.
2001-09-01 22:47:47 +00:00
rginda%netscape.com
c5226cb4b5 -- not built --
exposing call hook functionality
2001-09-01 18:03:53 +00:00
rginda%netscape.com
95a185d386 -- not built --
whitespace cleanup
2001-09-01 18:01:28 +00:00
jband%netscape.com
56d03ab63d fix bug 97555. Need to get the correct value of staep into the iterator object when we fail during enumeration init. r=jst sr=brendan a=asa 2001-08-31 21:48:18 +00:00
brendan%mozilla.org
43c254feee Fix 97540, r=rginda, sr=jband, a=asa:
- The most significant fix, to keep JSStackFrame.spbase, the operand stack base pointer for an active frame, null except when there is an operand stack allocated and in use by js_Interpret.  Previously, spbase would point after args and local vars (if any), then advance upon allocation of the (possibly discontiguous) operand stack space.  This made for a fatal ambiguity: js_AllocStack, called by XPConnect, could not tell when there was allocated operand stack space above the frame's sp, which needs to be set to a known (JSVAL_VOID) state for exact GC to work.  Now, the GC doesn't have to mark any operand stack space for a frame whose spbase is null, and js_AllocStack doesn't need to void any unused space for such a frame.

- Fixes to reload the JSRuntime's callHook or executeHook after calling or executing, in case the debugger removes the hook.  In which case, it must clean up any dynamic memory held by hookData, but in any event, in which case the engine must not call the post-call or post-execute hook.

- While debugging with rginda, I was horrified to see his trivial testcase function, expressed as a lambda, fail to be invoked using the "inline_call" machinery in js_Interpret (which avoids js_Interpret recursion through js_Invoke for most JS functions).  The problem was a test of fun->flags == 0 conditioning the /* inline_call: */ code.  Since that test was written, at least one JSFUN_* flag (JSFUN_LAMBDA, used only for pretty-printing or accurate decompilation) has been added.  But all along, that test was an over-optimization (testing against 0 without &'ing certain flags), making for an accident waiting to happen -- which did happen.  The relevant flags are JSFUN_HEAVYWEIGHT (set by the compiler when a function calls eval, uses with, or otherwise needs an activation object for its scope; if lightweight, the compiler can see the function's scope and eliminate it via specialized bytecodes) and JSFUN_BOUND_METHOD (for Java method calls, where |this| binds statically to the instance, not dynamically to the calling expression reference's base object, as in JS).
2001-08-31 21:25:26 +00:00
pschwartau%netscape.com
f37dffb52a Corrected testcase so it will work in Rhino as well as SpiderMonkey. 2001-08-31 06:10:13 +00:00
pschwartau%netscape.com
d3d0f5e05a Initial add. 2001-08-30 19:55:05 +00:00
pschwartau%netscape.com
e456fc4d42 Trivial whitespace change. 2001-08-29 23:34:32 +00:00
pschwartau%netscape.com
42fca7b54a Initial add. 2001-08-29 23:20:16 +00:00
pschwartau%netscape.com
36ee37b5de Removed a few hundred || conditions. See comment 2001-08-29 12:00 in bug 89443. 2001-08-29 20:37:58 +00:00
pschwartau%netscape.com
1842238b89 Adding skips for two tests employing the non-ECMA toSource() and uneval() functions. 2001-08-29 06:14:38 +00:00
pschwartau%netscape.com
cf7115e693 Initial add. 2001-08-29 05:59:52 +00:00
rginda%netscape.com
6835cdd75e - not built -
spruce up some comments
added, then comented out, jsdIDebuggerService::filterGlobalObject
2001-08-28 22:03:44 +00:00
rginda%netscape.com
7d148030f7 - not built -
whitespace tweakage
2001-08-28 22:02:28 +00:00
rginda%netscape.com
4f4bb7a28f - not built -
don't allow gc's during script hooks if CAUTIOUS_SCRIPTHOOK is defined (which it is, by default.)  Should help with stability until we can fix the real problems.
Use JSVAL_ macros instead of JSD_* calls in jsdValue::GetJSType method, avoiding two c++ frames per call.
2001-08-28 22:02:07 +00:00
rginda%netscape.com
7cb5a48149 - not built -
modeline fix
2001-08-28 21:59:53 +00:00
jband%netscape.com
f95e84e0e7 fix bug 96725. Avoid infinite recursion in call to QI'd xbl binding by avoiding the mutation of the interface set when the object implementing the interface is a wrappedJS around our wrappedNative's own JSObject. r=dbradley sr=hyatt a=brendan,hyatt,jband 2001-08-28 21:52:10 +00:00
pschwartau%netscape.com
09987595a3 Adding two new utility functions. 2001-08-28 21:13:58 +00:00
thesteve%netscape.com
aee3db86dc Bug#81373 (mac static build)
fixed up access paths: get rid of :::dist:client[_debug]
r=jfrancis
sr=sfraser
a=asa on behalf of drivers
2001-08-27 23:45:59 +00:00
pschwartau%netscape.com
7dcd878d8f Punctuation correction in comment. 2001-08-27 22:57:25 +00:00
pschwartau%netscape.com
f055101da4 Initial add. 2001-08-27 22:55:57 +00:00
pschwartau%netscape.com
c7e5cb06a4 Some RegExp bugs have now been fixed in Rhino. Removing the testcases from the skip list. 2001-08-27 19:58:56 +00:00
rogerl%netscape.com
b16d847568 Port of performance fixes from Monkey (see bug #85721).
Also, fixes for :
#91343, (non-latin1 fails for [\S])
#78156, (Unicode line terminator matching)
#87231, (/(A)?(A.*)/ didn't reset paren state for empty first match)
2001-08-27 18:03:19 +00:00
rjesup%wgate.com
6f3e4115eb Bug 94243: VoidArray usage patch. a=asa sr=brendan r=waterson r=bienvenu
r=pierre r=jband/dbradley  Also fixes some whitespace issues.
2001-08-27 06:15:54 +00:00
pschwartau%netscape.com
9e09712d1e Technical change. Now test is accurate for Rhino as well as SpiderMonkey. 2001-08-25 05:01:50 +00:00
nboyd%atg.com
115380ea02 Original problem in following mail. I implemented JDK1.1 compatibility and performance
improvements:

Subject:
        Rhino: Problem in NativeJavaMethod
   Date:
        Tue, 14 Aug 2001 10:23:35 +0200
   From:
        felix.meschberger@day.com
     To:
        Norris Boyd <nboyd@atg.com>




Hi Norris,

While working with wrapped Java classes we discovered a problem in
NativeJavaMethod : If the public method to be called is part of a
non-public class, the Sun Java VM throws an IllegalAccessException. This
bug in the Sun VM has been reported as Bug 4071593 to Sun, but has not been
resolved since....

I implemented a circumvention, for which I provide you the patch. I quickly
tested it, and it seems to work.

Regards
Felix

And here's the patch :

diff -w -r1.19 NativeJavaMethod.java
227a228,234
>        /**
>         * Due to a bug in Suns VM, public methods in private
>         * classes are not accessible by default (Sun Bug #4071593).
>         * We have to explicitly set the method accessible beforehand
>         */
>        meth.setAccessible(true);
>

-----------------------------------------------------------------
This message is a private communication. If you are not the intended
recipient, please do not read, copy, or use it, and do not disclose it
to others. Please notify the sender of the delivery error by replying to
this message, and then delete it from your system. Thank you.
The sender does not assume any liability for timely, trouble-free,
complete, virus free, secure, error free or uninterrupted arrival of
this e-mail. For verification please request a hard copy version.

mailto:felix.meschberger@day.com
http://www.day.com

Felix Meschberger
Development
Day Interactive AG
Steinenberg 21-23
4001 Basel
Switzerland

T  41 61 226 98 98
F  41 61 226 98 97
2001-08-24 20:01:49 +00:00
brendan%mozilla.org
f319c1d822 Check keyword version when scanning, not by installing different keywords on version selection (when starting to compile; bug 96562, r=rogerl, sr=shaver&jband, a=dbaron). 2001-08-24 03:32:31 +00:00
brendan%mozilla.org
f81e32a193 Avoid corrupting backpatch chains by checking for jump offset operand overflow (90445, khanson's patch with minor changes, sr=shaver&me, a=asa). 2001-08-23 02:07:07 +00:00
brendan%mozilla.org
8cc94e0ba1 Checking in khanson's patch for bug 85112, based on joemansh@interl.net's algorithm (r=beard, sr=me). 2001-08-22 05:42:16 +00:00
brendan%mozilla.org
834611cda0 Forget to include jsopcode.h. 2001-08-22 05:33:32 +00:00
brendan%mozilla.org
2b5a1171f6 Support ref()++ etc. for native ref (75688) and fix exn_toSource (96284); sr=shaver&jband. 2001-08-22 04:59:28 +00:00
brendan%mozilla.org
68f889e9bd Checking in shaver's patch for bug 78100, adding JS_GetExternalStringGCType (sr=brendan&jband). 2001-08-21 02:53:19 +00:00
dbaron%fas.harvard.edu
113ad642ae Replace uses of deprecated NS_IMPL_ISUPPORTS and NS_IMPL_QUERYINTERFACE macros with NS_IMPL_{ISUPPORTS,QUERYINTERFACE}{1,0}. r=jag rs=brendan b=45797 2001-08-21 01:48:11 +00:00
nboyd%atg.com
c9ff8d7ef1 Subject:
Rhino: Problem in NativeJavaMethod
   Date:
        Tue, 14 Aug 2001 10:23:35 +0200
   From:
        felix.meschberger@day.com
     To:
        Norris Boyd <nboyd@atg.com>




Hi Norris,

While working with wrapped Java classes we discovered a problem in
NativeJavaMethod : If the public method to be called is part of a
non-public class, the Sun Java VM throws an IllegalAccessException. This
bug in the Sun VM has been reported as Bug 4071593 to Sun, but has not been
resolved since....

I implemented a circumvention, for which I provide you the patch. I quickly
tested it, and it seems to work.

Regards
Felix
2001-08-17 14:29:48 +00:00
brendan%mozilla.org
b0e3e4ab62 Don't resolve standard classes if JSRESOLVE_ASSIGNING (NOT PART OF BUILD). 2001-08-17 10:40:15 +00:00
brendan%mozilla.org
6843e21c2b Checking in khanson's patch with whitespace cleanups for bug 89443, to avoid stack overflow on too many || operators in one expression (r=rogerl, sr=me). 2001-08-17 10:29:59 +00:00
brendan%mozilla.org
4e1703cf54 Shrinking realloc can fail (95517, basic patch from epstein@tellme.com, r=brendan, sr=jband). 2001-08-17 09:56:48 +00:00
sfraser%netscape.com
55069a4b1a Project cleanup, rs=scc. Fix one or more of access paths, linking with the correct startup library, and unnecessary linkage. 2001-08-17 01:28:47 +00:00
jband%netscape.com
2bad71c89b fix bug 94752. Let xpconnect decide when to call JS_DestroyContext. It sometimes needs to defer the call until JS code running on the context is finished. r=dbradley sr=jst 2001-08-15 04:49:09 +00:00
pschwartau%netscape.com
c2bf0b573d Removing skip for ecma_3/String/regress-83293.js. The testcase was incorrect, and is now corrected. 2001-08-14 18:28:57 +00:00
pschwartau%netscape.com
0683215880 Making extensive corrections. Testcase had not conformed to ECMA-262 Final Edition. 2001-08-14 18:02:56 +00:00
pavel%gingerall.cz
e1d4f83235 Context typemapping changed 2001-08-14 13:09:43 +00:00
cls%seawood.org
a3c1dd1b09 Use NS_PTR_TO_INT32 macros to do 64-bit safe pointer conversions.
Bug #20860 r=Roland.Mainz@informatik.med.uni-giessen.de sr=brendan@mozilla.org
2001-08-14 07:59:59 +00:00
pschwartau%netscape.com
3c0807c3df Adding new case to the test. 2001-08-13 19:38:18 +00:00
nboyd%atg.com
afe5ac0483 Fix 95101. 2001-08-13 18:33:25 +00:00
pschwartau%netscape.com
e7ab80d369 Initial add. 2001-08-13 18:05:42 +00:00
nboyd%atg.com
61f998bae8 Subject:
[Fwd: Rhino 1.5.2 bug in debug support?]
        Date:
             Sun, 12 Aug 2001 14:13:26 -0700
       From:
             Christopher Oliver <coliver@mminternet.com>
 Organization:
             Primary Interface LLC
         To:
             nboyd@atg.com




Hi Norris,

Did you or are you fixing this problem?  It seems to be simply a matter
of filtering out -1 before inserting line numbers into the
lineNumberTable.  In this particular case the Parser generates -1 as a
line number for (? : ) in IRFactory.createTernary().  However the recent
changes to InterpreterData to use UintMap instead of Hashtable will not
tolerate negative numbers.  Changing Interpreter.updateLineNumber() and
InterpreterData.getOffset() to check for negative line numbers (and
avoid generating line number code or accessing the lineNumberTable in
that case) will correct the problem.

Chris


      Subject:
             Rhino 1.5.2 bug in debug support?
        Date:
             8 Aug 2001 12:47:28 -0700
       From:
             d-russo@ti.com (dave russo)
 Organization:
             http://groups.google.com/
 Newsgroups:
             netscape.public.mozilla.jseng



I'm getting the following exception when running the Rhino debugger.

java.lang.RuntimeException
        at org.mozilla.javascript.UintMap.check(UintMap.java:349)
        at org.mozilla.javascript.UintMap.put(UintMap.java:158)
        at
org.mozilla.javascript.Interpreter.updateLineNumber(Interpreter.java:234)
        at
org.mozilla.javascript.Interpreter.generateICode(Interpreter.java:300)
        at
org.mozilla.javascript.Interpreter.generateICode(Interpreter.java:926)
        at
org.mozilla.javascript.Interpreter.generateICode(Interpreter.java:302)
        at
org.mozilla.javascript.Interpreter.generateICode(Interpreter.java:302)
        at
org.mozilla.javascript.Interpreter.generateICode(Interpreter.java:302)
        at
org.mozilla.javascript.Interpreter.generateICodeFromTree(Interpreter.java:89)
        at
org.mozilla.javascript.Interpreter.generateFunctionICode(Interpreter.java:186)
        at
org.mozilla.javascript.Interpreter.generateNestedFunctions(Interpreter.java:164)
        at
org.mozilla.javascript.Interpreter.generateScriptICode(Interpreter.java:124)
        at org.mozilla.javascript.Interpreter.compile(Interpreter.java:78)
        at org.mozilla.javascript.Context.compile(Context.java:1810)
        at org.mozilla.javascript.Context.compile(Context.java:1735)
        at org.mozilla.javascript.Context.compileReader(Context.java:852)
        at org.mozilla.javascript.Context.evaluateReader(Context.java:770)
        at org.mozilla.javascript.tools.shell.Main.evaluateReader(Main.java:300)
        at org.mozilla.javascript.tools.shell.Main.processFile(Main.java:290)
        at org.mozilla.javascript.tools.shell.Main.processSource(Main.java:244)
        at org.mozilla.javascript.tools.shell.Main.exec(Main.java:104)
        at org.mozilla.javascript.tools.debugger.Main.main(Main.java:3156)


I'm using Rhino 1.5.2 prerelease
(ftp://ftp.mozilla.org/pub/js/rhino15R2pre.zip) and SUN's JDK 1.3.1
runtime for Windows.

I'm running the debugger as follows:
java -cp js.jar org.mozilla.javascript.tools.debugger.Main -f tconfini.tcf

Where the file tconfini.tcf is shown below:

function getBoard (defFile) {
    if (arguments.length > 0 ) {
        return (defFile != null ? defFile[1] : null);
    }
    return (null);
}

Any help would be appreciated.  Thanks!

dave
2001-08-12 22:56:33 +00:00
val4%cornell.edu
c04a3d6833 Attempt to build on Unix 2001-08-11 04:57:50 +00:00
brendan%mozilla.org
9abbf226e2 JSOP_BINDNAME needs JOF_SET flag for JSRESOLVE_ASSIGNING to be imputed (94631, r=shaver, sr=jband). 2001-08-10 23:57:07 +00:00
dbradley%netscape.com
bc3efa22e4 Bug 88130: XPConnect disturbs exception state of the call-context. This is jband's patch to reorder calls and fix whitspace. r=rginda, sr=jst 2001-08-10 19:23:39 +00:00
dbradley%netscape.com
466a26d77c Bug 93790: xpconnect does not correctly reflect nsIClassInfo interface. r=dbradley, sr=jst, patch by jband 2001-08-10 14:13:17 +00:00
brendan%mozilla.org
d109dc3d71 Check in balleysson@bigfoot.com's patch to avoid a redundant js_strlen (87271, r=shaver, sr=brendan). 2001-08-10 08:02:25 +00:00
brendan%mozilla.org
6abf5d1dd4 Fix useless expression elimination to work with native-function-called JS_EvaluateScript (87271, r=rogerl, sr=jband). 2001-08-10 07:55:17 +00:00
pschwartau%netscape.com
d0f11628fb Adding two new cases to the test. 2001-08-09 23:22:16 +00:00
pschwartau%netscape.com
a39f79907f Corrected an error in Section 3 of the test. Improved readability. 2001-08-09 22:56:07 +00:00
pschwartau%netscape.com
9cb6aa464f Initial add. 2001-08-09 19:55:49 +00:00
brendan%mozilla.org
9e5cfdfda2 Shrink principals struct back to where it was last week -- but it could go further (93043, r=shaver, sr=jst). 2001-08-09 01:15:57 +00:00
pschwartau%netscape.com
bdcd5ba11c Initial add. Tests to skip when testing the JS2 shell. 2001-08-08 21:58:12 +00:00
nboyd%atg.com
f6c346cc76 Patches from Igor:
=================================
Rhino: use of Node.get/putIntProperty to store integer values

The patch replaces usage like
        node.putProp(PROPERTY, new Integer(int_value))
        ((Integer)node.getProp(PROPERTY))
by
        node.putIntProp(PROPERTY, int_value)
        node.getIntProp(PROPERTY, defaultValue)
        node.getExistingIntProp(PROPERTY)
to avoid creation of Integer wrapper objects while storing integer
properties in Nodes.

Patch also ads Node.removeProp to explicitly remove Node properties
=================================
The patch changes the type of the first argument of Interpreter.addByte
from byte to int so there is no need to cast int arguments, adds
addShort(int value, int iCodeTop), getShort(byte[] iCode, int pc) to
pack/unpack short values from pc array, replaces calls to
getString(stringTable, byte[] iCode, int pc) by
stringTable[getShort(iCode, pc)] and similar for getNumber

It makes Interpreter.java easy to follow and slightly shrink its class file.
2001-08-08 17:02:56 +00:00
pschwartau%netscape.com
dbd534fadb Now able to run tests against the JS2 shell (code-named "DikDik"). 2001-08-08 00:12:50 +00:00
brendan%mozilla.org
68850351e9 Quick followup, my reviewers missed a copy/paste error that's harmless but formally wrong. 2001-08-07 05:32:38 +00:00
brendan%mozilla.org
bb7f3f9cb3 Use a new JSContext option to type context-private data as nsISupports* (82845, sr=jst&waterson). 2001-08-07 05:27:42 +00:00
brendan%mozilla.org
49c0102cdf Restore scriptable nsIClassInfo.classID but add fast/C++-only classIDNoAlloc; define and use nsIClassInfo::EAGER_CLASSINFO in caps (93792, sr=waterson&jst). 2001-08-07 03:59:29 +00:00
brendan%mozilla.org
9a460b4ccf Don't modify state until after realloc succeeds (92810, sr=jband&waterson). 2001-08-07 02:48:10 +00:00
pschwartau%netscape.com
489562eb32 Minor improvement in readability - 2001-08-06 23:53:54 +00:00