Commit Graph

3711 Commits

Author SHA1 Message Date
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