Граф коммитов

517 Коммитов

Автор SHA1 Сообщение Дата
mccabe%netscape.com 7ab63da00c Oops. Removing unneeded 'System.err.println("foo")'. 2001-01-04 00:03:00 +00:00
mccabe%netscape.com a27a43b226 Fix to 64149.
Propagate lexer fixes from Monkey to accept (and warn) about 008 as well as just 08.
2001-01-03 23:36:33 +00:00
nboyd%atg.com 6a47261482 Get rid of BSF file in Rhino code. Just rely upon building BSF ourselves for now. 2001-01-03 20:54:37 +00:00
nboyd%atg.com d1b978733a Nope, 8 was right. 2000-12-20 13:31:59 +00:00
nboyd%atg.com 5a8c30d97f Off by one error fixed. 2000-12-18 19:32:00 +00:00
nboyd%atg.com 68a6e91a65 Add ContextListener to API classes. 2000-12-18 19:30:26 +00:00
nboyd%atg.com 20f7c9cf5d Fix bug:
Subject:
             [Rhino] Script compiler bug?
        Date:
             Tue, 12 Dec 2000 22:08:23 GMT
       From:
             dave russo <d-russo@ti.com>
 Organization:
             Deja.com
 Newsgroups:
             netscape.public.mozilla.jseng




The following script does not seem to compile properly (using Rhino
1.5R1):

test.js:
var test = {};
test.foo = function () { print('foo')}
test.bar = function () { print('bar')}

After compiling test.js ("java org.mozilla.javascript.tools.jsc.Main
test.js"):

js> loadClass('test')
js> test.foo()
bar
js> load('test.js')
js> test.foo()
foo

Note that changing test.js to read:

var test = {};
test.foo = function foo() { print('foo')}
test.bar = function bar() { print('bar')}

Works around the problem.  Is there a problem with anonymous functions?


Sent via Deja.com
http://www.deja.com/
2000-12-13 15:17:24 +00:00
nboyd%atg.com 88e4c7591d Missed call to "in" needing parameter change. 2000-12-13 14:47:27 +00:00
nboyd%atg.com 7de24971c5 Support single-letter bean properties. 2000-12-12 20:29:06 +00:00
nboyd%atg.com 62e1afa949 Fix test case failures with RegExp constructor (new tests) 2000-12-12 15:19:36 +00:00
nboyd%atg.com 9fc201edd5 Fix ArrayIndexOutOfBoundsException on "new RegExp()" 2000-12-12 14:51:55 +00:00
nboyd%atg.com 143829c7ce Fix 62559, 58479 2000-12-12 14:35:38 +00:00
nboyd%atg.com 0edcf54d33 fix javadoc 2000-12-12 01:48:53 +00:00
nboyd%atg.com c8ab1211ff Fix bug where "a = new Array[3]" would produce an IndexOutOfBoundsException 2000-12-10 18:33:52 +00:00
mccabe%netscape.com 78aaa08ebc Fix to 58120 - Rhino's Date.prototype.setYear wasn't converting from internal UTC time to local time before working with the date, resulting in new dates that were off by the current timezone offset. Adding a LocalTime call fixes it.
Thanks to David Flanagan <david@oreilly.com> for catching this.
2000-12-07 09:21:45 +00:00
nboyd%atg.com 49ddafb80f Add construction of Counter from Java 2000-12-05 16:42:39 +00:00
nboyd%atg.com c51217064b Fix bug 61979 2000-12-05 16:06:20 +00:00
nboyd%atg.com 1bd9797c1d Fix bug 60093 2000-12-05 16:04:32 +00:00
mccabe%netscape.com 93184e2bfe Remove unused property definitions and fix some errors that had crept in. 2000-11-29 23:32:53 +00:00
mccabe%netscape.com b93f77c5b2 Twiddle Make usage message. 2000-11-29 22:36:06 +00:00
mccabe%netscape.com 6105620bbc Restore toplevel Makefile (with an added note in the usage message about it's new limitations wrt debugger and bsf) and update the js library makefile to account for changed files. 2000-11-28 21:24:41 +00:00
nboyd%atg.com 1d790c4961 Fix bug 61267. 2000-11-28 16:23:24 +00:00
beard%netscape.com 870fcd146a Keep JDK 1.1 compatible. 2000-11-27 23:40:15 +00:00
nboyd%atg.com ac975755b3 Sense JDK1.3 dependencies. 2000-11-27 22:23:40 +00:00
nboyd%atg.com a218a1a793 Add hasProperty and use it for the 'in' operator 2000-11-27 17:46:56 +00:00
nboyd%atg.com d05cf1d8e6 Fix 19734, accepting patch 2000-11-27 15:13:35 +00:00
nboyd%atg.com 03243413e6 Switch to ant for building. 2000-11-27 15:04:48 +00:00
nboyd%atg.com e33e06b0e8 Add debugger contribution from Christopher Oliver. 2000-11-27 15:00:45 +00:00
beard%netscape.com 9b8ac41686 importable XML project for CWPro6. 2000-11-23 04:27:33 +00:00
beard%netscape.com 2736e7e776 removed import of non-existent org.mozilla.javascript.tools.debugger.* package. 2000-11-23 04:24:34 +00:00
nboyd%atg.com 0380d9c7d9 * Add ContextListener interface
* Add ability to access shell functions from compiled scripts, and to
  add shell functions to embedded apps more easily
2000-11-22 15:00:05 +00:00
nboyd%atg.com 7d318fbd85 Merge debugger changes into trunk. 2000-11-20 16:16:32 +00:00
nboyd%atg.com b7d36f7601 Fix for updated filename. 2000-11-20 14:44:56 +00:00
nboyd%atg.com fb39f788bc timestamping file 2000-11-18 02:24:06 +00:00
nboyd%atg.com 387cf7985c Add support in Rhino for BSF without the bsfengines.jar. 2000-11-18 02:14:46 +00:00
nboyd%atg.com 2e9a2bd01f Fix 60184, and add SwingApplication.js example, with change
to shell to prevent early exit.
2000-11-17 13:05:46 +00:00
nboyd%atg.com 09771a8b39 Subject:
[Rhino] importPackage() when not in Rhino shell?
        Date:
             Tue, 14 Nov 2000 09:37:39 -0000
       From:
             "Benjamin Geer" <geerb@midas-kapiti.com>
 Organization:
             Another Netscape Collabra Server User
 Newsgroups:
             netscape.public.mozilla.jseng




The importPackage() and importClass() functions provided by the Rhino shell
seems as if they would be very generally useful.  Unless I've missed
something, they don't seem to be available to scripts compiled using the
JavaScript compiler, or to scripts that are run using Script.exec().  Is
there any chance these functions could be made available for all scripts to
use?  This would save a lot of typing; one could then always write a = new
Foo() instead of a = new Package.com.baz.bar.foo.Foo().

--Benjamin Geer
2000-11-14 20:10:42 +00:00
nboyd%atg.com 72a244c2da Update javadoc. 2000-11-14 20:08:53 +00:00
nboyd%atg.com 8db6eec108 Fix bug:
slobo@espial.com wrote:
>
> Hello Mike
>
> In the following test case, tester returns "undefined cat" in Rhino
> while in NN it returns "meow cat".
>
> Thanks
>
> Steven
>
> /////////////////////////////////////////////////////////////////////
> function tester(nest){
>     var nest = nest+" cat";
>     alert(nest);
>     // nest now contains the value undefined.
> }
>
> tester("meow");
2000-11-14 13:30:55 +00:00
nboyd%atg.com 58b79a147b Subject:
More changes to support non NativeJavaObject wrappers
   Date:
        Fri, 03 Nov 2000 17:56:38 +0100
   From:
        Igor Bukanov <igor@icesoft.no>
     To:
        nboyd@atg.com




Hi, Norris,

In post 1.5 rhino one can introduce own wrappers for arbitrary Java
objects. But I think to fully support this
org.mozilla.javascript.ScriptRuntime should be changes as well: its eq
and shallow_eq contain references to NativeJavaObject, this should be
replaced at least to Wrapper (see the atached patch). Even better
solution would be to add to WrapHandler methods to compare wrappers: I
can send a patch for that as well.

There is a small usability problem as well: if
org.mozilla.javascript.JavaMembers would be public I do not need to copy
it to a package with non NativeJavaObject.java wrapper.

Regards, Igor
2000-11-13 22:10:35 +00:00
nboyd%atg.com 0f96b20b62 Clean up debug APIs 2000-11-07 03:20:56 +00:00
mccabe%netscape.com 8a87f76dc2 Fix to 58008. Add missing ECMA-specified fuctions Date.prototype.toDateString, toTimeString, toLocaleDateString, toLocaleTimeString. Commoned some code to toLocale_helper and date_format.
Also make several formerly class static variables lazily initialized.
2000-11-03 21:28:49 +00:00
nboyd%atg.com 35f28776c5 Upgrade to Ant 1.2 and remove deprecated tasks. 2000-11-01 18:43:55 +00:00
nboyd%atg.com c109da414a Fix bug 57060 for/in loop enumerates array elements as numbers, not strings 2000-10-30 19:46:02 +00:00
nboyd%atg.com fa72e89acf Fix bugs:
56318  function literals with names don't work right
57045  negative integers as object properties: weird behavior
58479  functions defined within conditional phrases are always crea
2000-10-30 19:34:11 +00:00
nboyd%atg.com d223b095ba Fix formatting 2000-10-29 18:07:26 +00:00
nboyd%atg.com 0e8b09b0b6 Add javadoc. 2000-10-27 20:17:56 +00:00
nboyd%atg.com 466695f1aa Fix tree and icode printing. 2000-10-27 20:17:19 +00:00
nboyd%atg.com cbdf39c92e Subject:
[Rhino] Optimization for OptRuntime.thisGet
        Date:
             Mon, 23 Oct 2000 17:50:53 +0200
       From:
             Hannes Wallnoefer <hannes@helma.at>
 Organization:
             Another Netscape Collabra Server User
 Newsgroups:
             netscape.public.mozilla.jseng




I found a little oddity in
org.mozilla.javascript.optimizer.OptRuntime.thisGet().

get() is called twice on thisObj, once right at the beginning, and once
when starting to walk down the prototype chain. Below is what I think
this should look like - the prototype walk now begins with thisObj's
prototype, if it exists.

Also, (thisObj == null) was checked only after thisObj.get() was called,
so I moved that up in front.

Hannes
PS: I just made the changes in the news msg editor, so there may be
stupid mistakes.
2000-10-23 17:48:27 +00:00
nboyd%atg.com b1266792b7 Subject:
updated Global, Main and ImporterTopLevel
   Date:
        Mon, 23 Oct 2000 14:37:45 +0100
   From:
        Matthias Radestock <matthias@lshift.net>
     To:
        nboyd@atg.com




Norris,

I've made some more changes to shell.Main and shell.Global in order to
reduce their mutual dependency, enable "quit" and get "load" to operate
in the local scope.

see attachments for updated .diffs.


Matthias.
2000-10-23 15:55:42 +00:00
beard%netscape.com 3c21b0ca58 Fixed typo in package target. 2000-10-23 15:44:05 +00:00
nboyd%atg.com bcfdcd3e36 Fix 56883. 2000-10-23 14:31:05 +00:00
nboyd%atg.com 210c869cd5 Patch from beard@netscape.com to fix 56879. 2000-10-23 14:30:40 +00:00
nboyd%atg.com 1d9b17f17b Fix bug 56185. 2000-10-12 16:10:55 +00:00
nboyd%atg.com 908350121b Fix bug 56158 2000-10-12 14:59:19 +00:00
beard%netscape.com ee2e996d8a Outer class loader support, using ClassManager. 2000-10-12 06:30:29 +00:00
beard%netscape.com 5a1f437267 Map all exceptions to just return null. 2000-10-10 18:14:20 +00:00
nboyd%atg.com 2a806a1b13 More javadoc. 2000-10-10 14:58:47 +00:00
beard%netscape.com 848d0b5817 Added ClassManager.java. 2000-10-09 18:16:06 +00:00
beard%netscape.com cdae200b86 Manages interactions with outer class loaders. 2000-10-09 17:43:51 +00:00
nboyd%atg.com 297522e053 Add support for new Ant-based buildfile. 2000-10-06 16:26:17 +00:00
nboyd%atg.com 1623d01e8f Remove reference that javadoc couldn't find 2000-10-06 16:25:36 +00:00
nboyd%atg.com 4e15c42226 Reformat code. 2000-10-06 16:25:14 +00:00
nboyd%atg.com 1114de0a19 Allow superclass to appear anywhere in the list of classes in the JavaAdapter argument list. 2000-10-03 18:34:02 +00:00
beard%netscape.com 646b2ea55c avoid an infinite loop on EOF. 2000-10-03 06:23:11 +00:00
nboyd%atg.com 2307ef527d Avoid creating multiple wrappers. 2000-10-02 20:46:08 +00:00
nboyd%atg.com 10bd56f484 Do cheap test first. 2000-10-02 17:10:00 +00:00
nboyd%atg.com 42b2d478cd Allow null returns from SecuritySupport methods if someone only
wants to implement LiveConnect filtering
2000-09-29 13:49:47 +00:00
nboyd%atg.com 7f2239a2c4 Miscellaneous formatting changes. 2000-09-25 14:07:45 +00:00
nboyd%atg.com 142af94b8f Drop unneeded references. 2000-09-25 14:06:47 +00:00
nboyd%atg.com adc731c1e6 Fix enum.js regression. 2000-09-25 14:04:20 +00:00
nboyd%atg.com b8f186828a Expand javadoc. 2000-09-18 18:38:02 +00:00
nboyd%atg.com 7457687f89 Remove old-style debug codegen. 2000-09-18 17:57:02 +00:00
nboyd%atg.com a6150b9fff Better error message for common error. 2000-09-18 17:28:59 +00:00
nboyd%atg.com b192d90466 Fix infinite loop in new code. 2000-09-12 17:06:15 +00:00
nboyd%atg.com cd2482f9f2 Fix bug 49350 2000-09-11 15:12:04 +00:00
nboyd%atg.com 4c70d53d5e version with debugger directories 2000-09-11 14:10:23 +00:00
nboyd%atg.com 13689ccca6 Better javadoc 2000-08-30 13:41:15 +00:00
nboyd%atg.com 98027f7ff1 Fix bug 48930: work around a MS JIT bug. 2000-08-22 17:04:21 +00:00
nboyd%atg.com c1c435731a Fix bug 49325. 2000-08-21 15:56:15 +00:00
nboyd%atg.com d55dd0cde5 Fix class path 2000-08-21 15:51:57 +00:00
beard%netscape.com e0bf09d5b8 added debugger classes. 2000-08-19 02:42:05 +00:00
nboyd%atg.com 3f0f44cc1a Fix for bug 49302 2000-08-17 12:37:32 +00:00
nboyd%atg.com 29f3436810 Fix 49301. 2000-08-17 12:28:46 +00:00
nboyd%atg.com 426c97af16 Merge changes from EXP_DEBUGGER branch into tip.
Implements simple command-line debugger for scripts.
2000-08-15 15:54:46 +00:00
nboyd%atg.com 067dbf82fb fix 47859 2000-08-09 20:23:50 +00:00
nboyd%atg.com 6505531063 Fix 47859 2000-08-09 20:22:37 +00:00
nboyd%atg.com dcf4e1e9e4 Fix javadoc. 2000-07-31 21:19:05 +00:00
nboyd%atg.com 057fb2785e Experimental changes for debugger. 2000-07-27 14:54:13 +00:00
rogerl%netscape.com 16e74e371a Patch from Norris :
A Rhino user has complained about concurrency problems in the interpreter,
and I think the attached diff fixes some problems that could be caused if
the same interpreted function or script was called simultaneously from
two different threads.
2000-07-26 23:04:14 +00:00
nboyd%atg.com f452ceaa23 Fix 45928 NativeDate uses getDeclaredConstructor instead of getConstructor 2000-07-21 17:13:09 +00:00
beard%netscape.com 0a43ce9109 Added ClassOutput.java, WrapHandler.java. 2000-07-18 01:29:34 +00:00
nboyd%atg.com c0a575bf5b Fix javadoc error. 2000-07-17 14:08:28 +00:00
nboyd%atg.com 81838e4e1f Deprecate FlattenedObject. 2000-07-07 14:41:35 +00:00
nboyd%atg.com 434558cabc Remove obsolete references to NodeFactory. 2000-07-05 17:08:26 +00:00
nboyd%atg.com 0dd0718a81 Subject:
Re: Rhino1.5.R1: problems with multithreaded embedded application.
        Date:
             Mon, 03 Jul 2000 14:38:56 -0400
       From:
             Norris Boyd <nboyd@atg.com>
 Organization:
             Art Technology Group
         To:
             Fergus Gallagher <Fergus.Gallagher@orbisuk.com>
 Newsgroups:
             netscape.public.mozilla.jseng
  References:
             1




You found a bug in Rhino; I wonder if others have been running into the same thing.

The problem is with a class called LazilyLoadedCtor. I wrote this class to reduce the
time
required by initStandardObjects by only creating standard objects when the associated
constructors are first accessed. The problem is that this class was not threadsafe.
I've
made changes to that class, and to ScriptableObject as well. The design of dynamic
properties calling getters and setters (which LazilyLoadedCtor uses) didn't really
allow
any way for the getter/setter to replace itself without a thread hazard. I've now
extended
setters so that they can return a value which replaces the getter/setter to avoid this
problem.

Thanks for finding this problem. There have been a couple of other reports of problems
in
this area, so I hope this will fix them.

The patch follows.

--N

Index: LazilyLoadedCtor.java
===================================================================
RCS file: /cvsroot/mozilla/js/rhino/org/mozilla/javascript/LazilyLoadedCtor.java,v
retrieving revision 1.1
diff -u -r1.1 LazilyLoadedCtor.java
--- LazilyLoadedCtor.java 2000/02/29 21:34:37 1.1
+++ LazilyLoadedCtor.java 2000/07/03 18:31:03
@@ -58,9 +58,12 @@
     }

     public Object getProperty(ScriptableObject obj) {
-        obj.delete(ctorName);
         try {
-            ScriptableObject.defineClass(obj, Class.forName(className));
+            synchronized (obj) {
+                if (!isReplaced)
+                    ScriptableObject.defineClass(obj, Class.forName(className));
+                isReplaced = true;
+            }
         }
         catch (ClassNotFoundException e) {
             throw WrappedException.wrapException(e);
@@ -83,11 +86,14 @@
         return obj.get(ctorName, obj);
     }

-    public void setProperty(ScriptableObject obj, Object val) {
-        obj.delete(ctorName);
-        obj.put(ctorName, obj, val);
+    public Object setProperty(ScriptableObject obj, Object val) {
+        synchronized (obj) {
+            isReplaced = true;
+            return val;
+        }
     }

     private String ctorName;
     private String className;
+    private boolean isReplaced;
 }
Index: ScriptableObject.java
===================================================================
RCS file: /cvsroot/mozilla/js/rhino/org/mozilla/javascript/ScriptableObject.java,v
retrieving revision 1.17
diff -u -r1.17 ScriptableObject.java
--- ScriptableObject.java 2000/03/13 17:12:36 1.17
+++ ScriptableObject.java 2000/07/03 18:31:04
@@ -246,11 +246,21 @@
                             break;
                         }
                     }
-                    getterSlot.setter.invoke(start, arg);
+                    Object v = getterSlot.setter.invoke(start, arg);
+                    if (getterSlot.setterReturnsValue) {
+                        slots[slotIndex].value = v;
+                        if (!(v instanceof Method))
+                            slots[slotIndex].flags = 0;
+                    }
                     return;
                 }
                 Object[] args = { this, actualArg };
-                getterSlot.setter.invoke(getterSlot.delegateTo, args);
+                Object v = getterSlot.setter.invoke(getterSlot.delegateTo, args);
+                if (getterSlot.setterReturnsValue) {
+                    slots[slotIndex].value = v;
+                    if (!(v instanceof Method))
+                        slots[slotIndex].flags = 0;
+                }
                 return;
             }
             catch (InvocationTargetException e) {
@@ -1183,6 +1193,7 @@
         slot.delegateTo = delegateTo;
         slot.getter = getter;
         slot.setter = setter;
+        slot.setterReturnsValue = setter != null && setter.getReturnType() !=
Void.TYPE;
         slot.value = null;
         slot.attributes = (short) attributes;
         slot.flags = flags;
@@ -1551,6 +1562,7 @@
     Object delegateTo;  // OPT: merge with "value"
     Method getter;
     Method setter;
+    boolean setterReturnsValue;
 }




Fergus Gallagher wrote:

> I am having problems getting my head around contexts and scopes and my
> multi-threaded application fall over.
>
> If I set "global=false" the following code used a per-thread
> initStandardObject() and this seems to work.  But when I set
> "global=true", the global "parentScope" is used and I get some wierd
> errors.
>
> If I change "__CODE__.slice(0,5)" to
> 1. "__CODE__" - works
> 2. "__CODE__.substring(0,5)" - fails
> 3. "__CODE__.toString()" - works
>
> Any help appreciated.
>
> Fergus
>
> ===== Test.java =========================================
> import java.io.*;
> import org.mozilla.javascript.*;
>
> public class Test implements Runnable {
>         private Script script;
>         private Scriptable parentScope;
>         private String __CODE__="ABCDEFGHIJK";
>         private boolean global = true;
>         private static Context globalContext = null;
>         public Test() throws Exception {
>                 String js= "java.lang.System.out.println(__CODE__.slice(0,5));";
>                 globalContext.setCompileFunctionsWithDynamicScope(false);
>                 parentScope = globalContext.initStandardObjects(null);
>                 StringReader sr = new StringReader(js);
>                 script = globalContext.compileReader(parentScope, sr, "(compiled)",
> 1,null);
>         }
>
>         public void run() {
>                 try {
>                         Context context = Context.enter();
>                         Scriptable threadScope;
>                         if (global) {
>                                 threadScope = context.newObject(parentScope);
>                                 threadScope.setPrototype(parentScope);
>                                 threadScope.setParentScope(null);
>                         } else {
>                                 threadScope = context.initStandardObjects(null);
>                         }
>                         threadScope.put("__CODE__",threadScope,__CODE__);
>                         script.exec(context,threadScope);
>                 }
>                 catch (Exception e) {
>                         System.err.println(e.getClass().getName()+":
"+e.getMessage());
>                 }
>                 finally {
>                         Context.exit();
>                 }
>         }
>
>         public static void main(String args[]) throws Exception {
>         globalContext = Context.enter();
>                 Test me = new Test();
>                 int count=10;
>                 Thread[] threads = new Thread[count];
>                 for (int i=0; i<count; i++) {
>                         Thread t = new Thread(me);
>                         threads[i] = t;
>                         t.start();
>                 }
>                 for (int i=0; i<count; i++) {
>                         threads[i].join();
>                 }
>                 Context.exit();
>         }
> }
>
> ==== OUTPUT ===============================================
> ABCDE
> ABCDE
> org.mozilla.javascript.EcmaError: undefined is not a function.
> org.mozilla.javascript.EvaluatorException: Constructor for "String" not
> found.
> org.mozilla.javascript.EvaluatorException: Constructor for "String" not
> found.
> org.mozilla.javascript.EvaluatorException: Constructor for "String" not
> found.
> org.mozilla.javascript.EvaluatorException: Constructor for "String" not
> found.
> org.mozilla.javascript.EvaluatorException: Constructor for "String" not
> found.
> org.mozilla.javascript.EvaluatorException: Constructor for "String" not
> found.
> org.mozilla.javascript.EvaluatorException: Constructor for "String" not
> found.
> ===========================================================
>
> The number and type of exceptions is highly variable from run to run -
> anywhere from 1-9 out of 10.
> The EcmaError in particular only happens occasionally.
>
> --
> Fergus Gallagher          Tel: +44 (20) 8 987 0717
> Orbis                     Fax: +44 (20) 8 742 2649
> The Swan Centre           email: Fergus.Gallagher@orbisuk.com
> Fishers Lane              Web: http://www.orbisuk.com
> London W4 1RX / UK
2000-07-03 18:40:35 +00:00
nboyd%atg.com 2640d85998 Fix javadoc warning 2000-06-21 15:49:14 +00:00
nboyd%atg.com 813e60ba07 Wrapping a class produces a NativeJavaClass. 2000-06-15 14:00:31 +00:00
nboyd%atg.com 94e1edf2e9 Fix bug 42097 2000-06-14 13:39:44 +00:00
nboyd%atg.com a56f1e6373 Begin 1.5R2 effort.
Commit the following contributions:
* Andi Vajda's changes to allow embedders to capture the generated bytecode (and thus control
generated class names).
* Marshall Cline's changes to allow embedders to override the default Java object wrapping
behavior
* Kurt Westerfeld's change to handle calling static methods better
2000-06-13 14:33:54 +00:00