3563 Commits

Author SHA1 Message Date
pschwartau%netscape.com
abb88c635e Correction to testcase per Brendan - 2001-05-08 23:37:56 +00:00
beard%netscape.com
cdc467d85a Removed ListenerCollection.java, added ListenerArray.java. 2001-05-08 22:56:43 +00:00
beard%netscape.com
d34d7267e4 Officially retiring all sources in mozilla/js/rhino/org, in favor of sources in mozilla/js/rhino/src & mozilla/js/rhino/toolsrc. 2001-05-08 22:50:01 +00:00
beard%netscape.com
ace78ee37e Officially retiring all sources in mozilla/js/rhino/org, in favor of sources in mozilla/js/rhino/src & mozilla/js/rhino/toolsrc. 2001-05-08 22:28:17 +00:00
jband%netscape.com
857134131a fix linux startup assertion due to null PRLock. Trying to cleanup the xpcdom landing! r=dbaron 2001-05-08 21:40:00 +00:00
dbaron%fas.harvard.edu
01fb925375 Attempt to fix AIX and OS/2 bustage by changing nsAReadableString (which is const) to nsAString. r=jband 2001-05-08 20:54:53 +00:00
dbaron%fas.harvard.edu
7241928fef Fix gcc 2.7.2.3 bustage (conditional with enumerated values from different anonymous enums). r=jband 2001-05-08 19:11:51 +00:00
jst%netscape.com
ea706038cf Landing the XPCDOM_20010329_BRANCH branch, changes mostly done by jband@netscape.com and jst@netscape.com, also some changes done by shaver@mozilla.org, peterv@netscape.com and markh@activestate.com. r= and sr= by vidur@netscape.com, jband@netscape.com, jst@netscpae.com, danm@netscape.com, hyatt@netscape.com, shaver@mozilla.org, dbradley@netscape.com, rpotts@netscape.com. 2001-05-08 17:42:36 +00:00
nboyd%atg.com
66b3d8aae3 Change use of deprecated method. 2001-05-08 13:51:18 +00:00
nboyd%atg.com
991a880e56 Commit missing messages for new idswitch tool. 2001-05-08 13:42:56 +00:00
nboyd%atg.com
49ee5104a9 Subject:
Rhino: optimization for NativeFunction.java
        Date:
             Mon, 07 May 2001 14:19:59 +0200
       From:
             Igor Bukanov <igor.bukanov@windriver.com>
 Organization:
             Wind River
         To:
             Norris Boyd <nboyd@atg.com>

Hi, Norris!

This is the first of 3 patches that are completly independent from each
other.

Currently in NativeFunction its name stored as the first element in the
names array. But this lead to creation of a single element array for
each FunctionObject and for each script function that does not have
arguments or variables. The attached patch splits NativeFunction names
into simple functionName and argNames arrays and adjust code elsewhere
accordingly. This patch can increase memory footprint for anonymous
script functions without arguments because it adds additional field to
each NativeFunction, but I do not think this is a case to worry about.

Regards, Igor
2001-05-08 13:40:22 +00:00
nboyd%atg.com
bd685b66b2 Subject: Rhino: execMethod/methodArity cleanup.
Date: Mon, 07 May 2001 14:25:34 +0200
From: Igor Bukanov <igor.bukanov@windriver.com>
Organization: Wind River
To: Norris Boyd <nboyd@atg.com>

The current code that implements execMethod/methodArity for IdFunction
support returns an arbitrary value for id that is not known. This is not
very good behavior because it may hide bugs in the id support and it
also does not allow to distinguish ids that are used for function  from
ids used for properties like String.length.

To fix this I changed semantic of the methodArity method to return -1
for an unknown/non-method id and added code to throw an exception for
bad ids. This change requires to adjust all NativeSomething objects that
use IdScriptabl and after a release all such interface changes would be
no go, but is not a release yet, right?

I also eliminated the "IdFunction f" argument from
IdFunction.Master.methodArity and the tagId field from IdFunction. When
I wrote  the initial code for IdFunction.java, I added that just to be
able to use same id number in a class that implements IdFunction.Master
and its descendants via checking idTag. But that does not work in
general because IdScriptable can use id for non-function fields as well
so to avoid id clashes another way should be used. For example, if
someone would like to extend NativeMath to support more functionality,
he can use:

class Math2: extends NativeMath {
     private static idBase;

     {
         if (idBase == 0) idBase = super.getMaximumId();
     }

      public int methodArity(int methodId) {
          switch (methodId - idBase) {
             case Id_foo: return 2;
             case Id_bar: return 3;
         }
         return super.methodArity(methodId);
     }

      public Object execMethod
          (int methodId, IdFunction f,
           Context cx, Scriptable scope, Scriptable thisObj, Object[] args)
          throws JavaScriptException
      {
          switch (methodId - idBase) {
             case Id_foo: return ...;
             case Id_bar: return ...;
         }
          return super.execMethod(methodId, f, cx, scope, thisObj, args);
     }

      protected int getMaximumId() { return idBase + MAX_ID; }

      protected String getIdName(int id) {
          switch (id - idBase) {
             case Id_foo: return "for";
             case Id_bar: return "bar";
         }
         return super.getIdName(id);
     }
     ...
     private static final int
         Id_foo = 1,
         Id_bar = 2,
         MAX_ID = 2;

etc.


Note that a simpler solution to make MAX_ID field public in NativeMath
and write in Math2:
     private static final int
         Id_foo = NativeMath.MAX_ID + 1,
         Id_bar = NativeMath.MAX_ID + 2,
         MAX_ID = NativeMath.MAX_ID + 2;

does not work because in this way adding any new id to NativeMath would
break binary compatibility with Math2.
2001-05-08 13:36:16 +00:00
nboyd%atg.com
9129bdc5d6 Subject:
Rhino: fix for race conditions in listeners code in Context.java
        Date:
             Mon, 07 May 2001 14:22:57 +0200
       From:
             Igor Bukanov <igor.bukanov@windriver.com>
 Organization:
             Wind River
         To:
             Norris Boyd <nboyd@atg.com>

The current code for listeners and contextListeners in Context.java is
not race condition free. If contextListeners Vector would be modified
during context event firing loops, the code can produce
index-out-of-bounds exception. The problem with listeners array is more
subbtle and comes from the fact that ListenerCollection.java uses code like:
         for(Enumeration enum = getAllListeners();enum.hasMoreElements();) {
             Object listener = enum.nextElement();
             if(iface.isInstance(listener)) {
                 array.addElement(listener);
             }
         }
where getAllListeners() uses Vector.elements to get element enumeration.
But to work with such enumeration in a thread safe way, one has to
synchronized against Vector, otherwise between enum.hasMoreElements()
and enum.nextElement() the last element can be removed.

Initially I thought to fix ListenerCollection and use it for
contextListeners as well, but then I realized that in its current form
ListenerCollection is very inefficient (it produces too many objects
just to get simple array to fire events), so I wrote ListenerArray.java
and use it in Context.java. It makes life simpler and shrinks code as well.
2001-05-08 13:33:43 +00:00
brendan%mozilla.org
841f7a55dd - Fix bug 79054, AB-BA deadlock between rt->setSlotLock and one or more claimed scopes (r=shaver, sr=jband)
js_SetProtoOrParent should always have used a condvar in addition to a lock.
- Fix bug 79129, assert-botch in js_AllocSlot (r/sr=jband, sr=shaver)
  JS_INITIAL_NSLOTS is the minimum number of slots, js_FreeSlot guarantees it.
2001-05-08 01:31:02 +00:00
brendan%mozilla.org
1cc8066f79 Deoptimize JSOP_TABLESWITCH to JSOP_LOOKUPSWITCH upon first duplicate case label (74474, r=rogerl, sr=shaver). 2001-05-08 01:21:01 +00:00
pschwartau%netscape.com
8618e4b55b Minor changes. 2001-05-07 21:43:38 +00:00
pschwartau%netscape.com
8c5c09ac84 Initial add. Testcase by Brendan from bug 72884. 2001-05-07 20:30:59 +00:00
pschwartau%netscape.com
0b7f770e10 Initial add. A testcase for the switch statement. 2001-05-07 14:31:00 +00:00
pschwartau%netscape.com
4b7e03b8ac Initial add. Regression test for bug 79129. 2001-05-07 05:35:06 +00:00
nboyd%atg.com
e4bf1b6548 Fix problems noted in following mail:
Subject:
        rhino bug(s)
   Date:
        Mon, 30 Apr 2001 23:07:00 -0700
   From:
        Mike Dixon <MDixon@placeware.com>
     To:
        nboyd@atg.com




hi.  i'm a happy rhino user, and just stumbled across what looks like a
pretty basic bug in the property stuff on ScriptableObject...  (i'm running
1.5, but it looks like this code hasn't changed in CVS.)  since it looks
like you're actively developing (even though it's been a while since
1.5...) i figured you might be interested -- apologies if i missed a more
formal bug reporting process...

the symptom was that i got a "Hashtable internal error" thrown from
getSlotToSet.  reading the code, here's what i think could happen:

- create a new object (slots.length is initially 5)
- add 3 properties
- delete those 3 properties

(now count == 0, and slots[i] == REMOVED for 3 values of i)

- add 2 more properties

now assume that you're unlucky, and that these two hash to different values
than the first three; now you have 2 elements of slots[] containing real
slots, and the other three containing REMOVED.

now what happens when you try to create another slot?  getSlotToSet is only
willing to put something in a null slot[], and you haven't got one, so you
get the internal error.

writing this message encouraged me to try to write a test case to reproduce
it, and in fact it's trivial:

   js> x={}; x.a=x.b=x.c=1; delete x.a; delete x.b; delete x.c; x.d=x.e=1
   1
   js> x.whatever=1
(boom)

by the way, while reading the code i also noticed what looks like another,
less consequential bug: addSlot increments count before deciding to grow
the table, which is done with a recursive call, which will cause count to
be incremented again -- right?  as far as i can tell, setting count too big
will only cause it to grow the table a little early next time, so it
doesn't really matter, but it looks wrong.

                                                        .mike.
2001-05-06 23:56:34 +00:00
pschwartau%netscape.com
1d761239c9 Minor style changes. 2001-05-06 18:07:12 +00:00
nboyd%atg.com
a426bf2e85 New updates from Igor. 2001-05-05 18:25:00 +00:00
pschwartau%netscape.com
ff8e5de2ea More getter and setter tests. These are non-ECMA and not implemented in Rhino. 2001-05-05 17:27:12 +00:00
pschwartau%netscape.com
ac008beb56 Initial add. 2001-05-05 17:24:07 +00:00
kandrot%netscape.com
afdac97c93 Check in for Ron Guilmette. r=shaver, sr=waterson. For intl r=nhotta. Changes for NS_IMPL_NSGETMODULE. bug #46775. 2001-05-05 05:33:37 +00:00
brendan%mozilla.org
67c2a11713 Fix DEBUG-only bytecode stack input/output tracing, patch from Steven C. Cole <scole@planet-nospam-web.com>. 2001-05-05 01:04:19 +00:00
rginda%netscape.com
3b4afaffe7 - not built -
updating windows build goop
2001-05-04 23:44:07 +00:00
rginda%netscape.com
beede1f605 part two of fix for bug 77081 r=rogerl, sr=brendan 2001-05-04 23:03:11 +00:00
beard%netscape.com
9c797b19b6 Allow building with javac from JDK 1.1.8. 2001-05-04 22:41:12 +00:00
rginda%netscape.com
7b9bae9390 - not built -
remove jsdIContext and jsdIThreadstate interfaces
add TYPE_BOOLEAN to jsdIValue
update callback signatures to reflect the removal of jsdIContext and jsdIThreadstate
add errorHook and throwHook attributes to jsdIDebuggerService
2001-05-04 22:16:27 +00:00
rginda%netscape.com
e63e15d4e8 - not built -
remove jsdContext and jsdThreadstate objects
2001-05-04 22:14:37 +00:00
rginda%netscape.com
219d06b740 - not built -
remove jsdThreadState and jsdContext objects.
consolidate ExecutionHook and BreakpointHook callbacks
remove return value checking from all methods (xpconnect does this for us.)
2001-05-04 22:14:04 +00:00
rginda%netscape.com
85a251ea0c - not built -
remove HAVE_PATCH_FROM_77081 not that 77081 is checked in.
2001-05-04 21:57:43 +00:00
rginda%netscape.com
b2835efa22 fix for 77081, r=rogerl, sr=brendan. 2001-05-04 21:48:48 +00:00
rginda%netscape.com
f951c3a3e9 fix for bug 76574, r=rogerl, sr=brendan. 2001-05-04 21:34:21 +00:00
rginda%netscape.com
4fdba8a9ea fix for bug 77807, r=rogerl, sr=brendan 2001-05-04 21:31:48 +00:00
peterv%netscape.com
5f1945a60d Define EXPORT_JS_API. r=rginda, r=beard, sr=brendan. 2001-05-04 21:30:55 +00:00
nboyd%atg.com
3d11fc509c Make the debugger's main class be Main.java to match convention. 2001-05-04 15:22:10 +00:00
nboyd%atg.com
a89f7ff632 Re-apply changes since repository copy. 2001-05-04 15:20:26 +00:00
peterv%netscape.com
2f35172dca Get the JS debugger building on Mac. Not part of the build. 2001-05-02 22:15:28 +00:00
peterv%netscape.com
8014d291a7 Get the JS debugger building on Mac. Not part of the build. 2001-05-02 22:08:11 +00:00
pschwartau%netscape.com
6fac4f1902 Minor change to status message. 2001-05-02 18:15:26 +00:00
pschwartau%netscape.com
f5e98e5aa1 Initial add. Regression test for bug 74474. 2001-05-02 00:27:29 +00:00
pschwartau%netscape.com
edfd7284cc Initial add. Regression test for bug 31316. 2001-05-01 23:35:15 +00:00
pschwartau%netscape.com
fbbc46f334 Initial add. Regression test for bug 76683. 2001-05-01 21:57:10 +00:00
rginda%netscape.com
8810f8447e - not built -
add invalidate() method to jsdIScript
rework jsdIScriptHook interface
2001-05-01 21:37:24 +00:00
rginda%netscape.com
1092c0297b - not built -
add debug instance counter for jsdScript
add mValid flag to jsdScript
2001-05-01 21:35:06 +00:00
rginda%netscape.com
ff2e6466f4 - not built -
validate integrity of jsdScript data to guard against calling into a destroyed script.
queue up script deletes that happen during the JS GC cycle, call them when GC finishes (bug 76979.)
don't NS_IF_ADDREF objects that we get using *::FromPtr()
add jsdScript::Invalidate()
2001-05-01 21:33:43 +00:00
beard%netscape.com
e58e72baa7 Now builds two sub-projects, jscore.mcp, jstools.mcp and merges the resulting jar files into js.jar. This uses the new source tree organization. 2001-05-01 17:24:48 +00:00
beard%netscape.com
9499e65b11 Builds org.mozilla.javascript.tools.* classes. 2001-05-01 17:19:16 +00:00