3544 Commits

Author SHA1 Message Date
jband%netscape.com
d1b40ba84e remove commented out code 2001-05-15 19:15:30 +00:00
nboyd%atg.com
f7417f7060 2 additional issues:
1. In that patch I forgot to remove "import org.mozilla.classfile.*" and
simply catch Exception in newInvokerMaster which is not a good practice.
The attached patch FunctionObject_patch fixes that and removes other
unused imports.

2. In org.mozilla.classfile.DefiningClassLoader defineClass method first
tries to call via ClassManager the defineClass method in a class loader
that loaded DefiningClassLoader itself. But this would define new
classes in that class loader so they would not be subject of the garbage
collection until a classloader that loads DefiningClassLoader would go
away even if a DefiningClassLoader instance is gone. The
DefiningClassLoader_patch removes that and simply calls super.defineClass.

The patch also change the order of class search in loadClass so the
loader first looks for a class among its defined classes and only after
that in parent loaders.

Regards, Igor
2001-05-15 16:58:08 +00:00
beard%netscape.com
389c07ab3f Removed: src/org/mozilla/javascript/optimizer/JavaScriptClassLoader.java Added: src/org/mozilla/javascript/optimizer/InvokerImpl.java src/org/mozilla/classfile/DefiningClassLoader.java 2001-05-15 15:41:44 +00:00
nboyd%atg.com
1f98cf7a77 New file, mostly moved from org.mozilla.javascript.optimizer.JavaScriptClassLoader 2001-05-15 13:12:43 +00:00
nboyd%atg.com
0068a15b8a Norris Boyd wrote:
> Igor Bukanov wrote:
>
>
>>Norris Boyd wrote:
>>
>>
>>>The intention was to keep classfile and JavaAdapter optional. Those
>>>dependencies crept in. We can use Invoker optionally--perhaps I should do
>>>some performance numbers to see if it's worth it.
>>>
>>I implemented that patch, it splits Invoker.java into Invoker.java and
>>its implementation in optimizer/InvokerImpl.java The reason to put it
>>into optimizer package is that Invoker is very similar in spirit to
>>NativeScript: it generates classes to speed up access and in this way
>>there is no need to have separated option not to use: one can simply
>>remove optimizer all together.
>>
>
> Yes, that sounds great.
>
>
>>
>>I noticed during implementation that JavaAdapter.DefiningClassLoader and
>>optimizer/JavaScriptClassLoader contains the same code, so maybe they
>>can be moved to org.mozilla.classfile package under one name?
>>
>
> Yes, that sounds like a good change too. Thanks for noticing that.


The update is pretty messy: it touches FunctionObject which I changed to
remove the special treatment of NativeWith in the previous patch, and it
also add/removes files.

Here is a description:
DefiningClassLoader.java should go to org/mozilla/classfile. It is the
same code that was in omj/optimizer/JavaScriptClassLoader.java with
class rename and adding public attribute and correspondingly
omj.optimizer/JavaScriptClassLoader.java should be removed. I guess it
would be nice to preserve logs/history in CVS during the move.

InvokerImpl.java should go to omj/optimizer. It is mostly what
omj.Invoker was.

invoker_changes_patch was generated via
cvs diff -u Invoker.java JavaAdapter.java optimizer/Codegen.java
and contains changes against the current CVS

FunctionObject_invoker_patch was generated via
diff -u ../../mozilla.1/javascript/FunctionObject.java FunctionObject.java
and contains changes against that With patch.

Igor
2001-05-15 13:10:38 +00:00
rginda%netscape.com
b5b65abbac fix to help senna tinderbox find PRClist 2001-05-15 07:55:34 +00:00
rginda%netscape.com
28c2019557 fix ports bustage 2001-05-15 07:42:58 +00:00
rginda%netscape.com
c652047340 disable js debugger until I can figure out what's going on with shrike 2001-05-15 07:07:36 +00:00
rginda%netscape.com
cb7748f0f6 bug 76050, js debugger unix make system changes, r=cls 2001-05-15 05:48:08 +00:00
nboyd%atg.com
928693eace The attached patch makes NativeWith to use IdFunction for its
constructor, removes the special treatment of the With object from
IdScriptable and FunctionObject, adds to IdFunction the
initAsConstructor method similar in spirit to
FunctionObject.addAsConstructor (it is called now from IdScriptable and
NativeWith) and replaces in Context.java lazy initialization of
NativeWith by direct call of NativeWith.scopeInit.
2001-05-15 01:17:51 +00:00
pschwartau%netscape.com
fe98044ab1 Whitespace cleanup - 2001-05-15 00:08:27 +00:00
rginda%netscape.com
61cec05b74 - not built -
add required libraries to unix make
2001-05-14 21:59:01 +00:00
beard%netscape.com
0e8873338f Added idswitch tool sources. 2001-05-14 06:52:39 +00:00
beard%netscape.com
541d6af0f6 Added IdFunctionMaster.java to keep Mac build working. 2001-05-14 06:48:07 +00:00
rginda%netscape.com
aecc360194 - not built -
check for valid PC in ClearBreakpoint
Lock script subsystem while clearing all breakpoints
2001-05-13 21:08:06 +00:00
rginda%netscape.com
0e5a548593 - not built -
Convert JS_SetTrap closure to a jsval so it works like a GC thing.
2001-05-13 21:07:03 +00:00
nboyd%atg.com
8ef49d0abb Hi, Norris!
The attached patch moves the IdFunction.Master interface to the
separated file IdFunctionMaster and eliminates getParentScope from the
interface: it is simpler to set scope explicitly.

The patch assumes the changes in IdFunction.java from the previous patch
  and were produced via:

diff -uP javascript.2000-05-10 javascript

Regards, Igor
2001-05-12 13:15:39 +00:00
pschwartau%netscape.com
1f94226bce Making the test driver work correctly on the Mac. 2001-05-12 03:52:20 +00:00
jband%netscape.com
25a343b15a bug 80062. Various post xpcdom branch landing fixes. r=dbradley sr=jst 2001-05-12 02:56:47 +00:00
pschwartau%netscape.com
dc3fe1cb8e Updated JS_GetImplementationVersion() to date of latest JS release (67111). 2001-05-11 20:05:34 +00:00
nboyd%atg.com
8961afa95f Hi, Norris!
The attached patch allows subclasses of IdScriptable to override
hasIdValur/deleteIdValue and uses lazy initialization for idMapData
array to avoid its creation when an IdScriptable descendant does not
have any functions. The patch also touches NativeMath.java to replace in
its scopeInit method
        super.scopeInit(cx, scope, sealed);
by
        activateIdMap(cx, sealed);
This is the only reason NativeMath needs to call
IdScriptable.scopeInit() which is intended for creation
constructor/prototype pair.

Regards, Igor
2001-05-11 17:41:00 +00:00
jband%netscape.com
7e2cafba02 fix bug 79907.r=rginda sr=jst 2001-05-10 09:45:28 +00:00
shaver%mozilla.org
e72a7d355a 76659: make JSRegExps use JSClass.mark instead of GCThing locking, sr=brendan, r=rogerl 2001-05-10 08:05:45 +00:00
cls%seawood.org
bf99833526 Do not attempt to compile lock_SunOS.s on Solaris Intel. (Native compiler only)
Bug #79598
2001-05-10 06:40:58 +00:00
pschwartau%netscape.com
c5f4a706f1 Initial add. Regression test for bug 72773. 2001-05-09 21:57:15 +00:00
nboyd%atg.com
55d31be0bf Update implementation version, make non-final. 2001-05-09 17:57:05 +00:00
pschwartau%netscape.com
69a4f7d331 Added a comment - 2001-05-09 17:21:57 +00:00
nboyd%atg.com
2c7ba42b18 Add idswitch package. 2001-05-09 17:12:07 +00:00
nboyd%atg.com
daaef1caa3 Add new skip while we await a bug fix. 2001-05-09 15:46:41 +00:00
nboyd%atg.com
44b04487cb More rational handling of count. 2001-05-09 14:01:38 +00:00
nboyd%atg.com
16a01c6105 Fix 79568. 2001-05-09 13:59:29 +00:00
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