Commit Graph

3446 Commits

Author SHA1 Message Date
brendan%mozilla.org
b8a3d1e3ef Don't crash on a newborn object (68971, r=jband, sr=shaver). 2001-02-16 02:09:42 +00:00
brendan%mozilla.org
e0c2c3974f The rest of the fix for bug 68498, see the extensive comments in that bug (r=jband, sr=shaver). 2001-02-16 02:04:12 +00:00
brendan%mozilla.org
fd8a6ea21b Restore the much-loved, albeit non-ECMA, function caller property (65683, r=rogerl, sr=jband). 2001-02-14 22:33:26 +00:00
brendan%mozilla.org
cefe9bfa0d Don't assert about leaked atoms, do DEBUG fprints instead (68765, r=timeless, sr=jband). 2001-02-14 22:25:30 +00:00
brendan%mozilla.org
8aa6c94c12 Crash fix (first part, two more files to come) for old-style obj.eval in a function (68498, r=bryner, sr=jband). 2001-02-14 09:11:09 +00:00
dprice%netscape.com
997fb091c7 65845 first cut of the order files 2001-02-13 02:48:02 +00:00
brendan%mozilla.org
5fcc8a1adc - Keep interned string atoms around across zero-context episodes on a runtime,
until JS_DestroyRuntime is called (68450, r=rginda, sr=jband).
- NUL-terminate tagbuf in tagify, for the HTML helpers such as string.big()
  (66648, r=timeless, sr=jband).
2001-02-13 00:57:10 +00:00
beard%netscape.com
7f321c0039 fix for bug #63466, r=mstoltz, sr=brendan, a=leaf 2001-02-12 07:47:28 +00:00
nboyd%atg.com
82bd85bfce Fix for problem:
Subject:
             Rhino Exception Handling: Inconsistency btw Old/New Versions of 1.5
        Date:
             Mon, 05 Feb 2001 06:07:07 -0800
       From:
             Timothy Bergeron <bergeron@resumerabbit.com>
 Organization:
             Another Netscape Collabra Server User
 Newsgroups:
             netscape.public.mozilla.jseng




I've been using Rhino for about a year with almost no problems. However,
I downloaded the latest Rhino tip (rhino15R2pre) and discovered a
significant difference in exception handling.

I rely heavily on JavaScript code like the following:

try {
   var em  = new ExceptionMaker();
   em.npe();  // method throws a java.lang.NullPointerException
   //em.ae();  // method throws a Packages.AutomationException
}
catch (e if (e instanceof java.lang.NullPointerException)) {
   java.lang.System.out.println("Caught a NullPointerException");
   e.printStackTrace();
}
catch (e if (e instanceof Packages.AutomationException)) {
   java.lang.System.out.println("Caught an AutomationException");
}
catch (e) {
   java.lang.System.out.println("Caught an unexpected exception: "+e);
}
finally {
   java.lang.System.out.println("Finally!");
}

Previous Rhino versions worked as expected. The exception thrown from
within the host object would be caught and the appropriate actions could
be taken.

With the most recent tip, the thrown exceptions simply are not caught
within the JavaScript. They propagate back to the Java function invoking
the (in my case) Context.evaluateReader() method.

Running the above JS fragement with the older tip displayed the
following stack trace (when the NullPointerException was caught):

Rhino Version: JavaScript-Java 1.5 release 1 2000 03 15
Caught a NullPointerException
java.lang.NullPointerException
        at java.lang.Throwable.<init>(Throwable.java:84)
        at java.lang.Exception.<init>(Exception.java:35)
        at java.lang.RuntimeException.<init>(RuntimeException.java:39)
        at
java.lang.NullPointerException.<init>(NullPointerException.java:45)
        at ExceptionMaker.jsFunction_npe(ExceptionMaker.java:13)
        at java.lang.reflect.Method.invoke(Native Method)
        at
org.mozilla.javascript.FunctionObject.call(FunctionObject.java:497)
        at
org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1205)
        at org.mozilla.javascript.gen.c1.call(exception.js:3)
        at org.mozilla.javascript.gen.c1.exec(exception.js)
        at
org.mozilla.javascript.Context.evaluateReader(Context.java:739)
        at js.main(js.java:14)
Finally!

When run with the latest tip, the output is:

Rhino Version: JavaScript-Java 1.5 release 1 2000 03
15                                          Finally!
Exception in thread "main" java.lang.NullPointerException
        at java.lang.Throwable.<init>(Throwable.java:84)
        at java.lang.Exception.<init>(Exception.java:35)
        at java.lang.RuntimeException.<init>(RuntimeException.java:39)
        at
java.lang.NullPointerException.<init>(NullPointerException.java:45)
        at ExceptionMaker.jsFunction_npe(ExceptionMaker.java:13)
        at inv2.invoke()
        at
org.mozilla.javascript.FunctionObject.doInvoke(FunctionObject.java:843)
        at
org.mozilla.javascript.FunctionObject.call(FunctionObject.java:486)
        at
org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1199)
        at org.mozilla.javascript.gen.c1.call(Unknown Source)
        at org.mozilla.javascript.gen.c1.exec(Unknown Source)
        at
org.mozilla.javascript.Context.evaluateReader(Context.java:778)
        at js.main(js.java:14)

Curiously, both Rhino versions seem to be returning the same string from
Context.getImplementionVerison();

Anyway, the results from the two runs are clearly different: In the
first case, the exception is thown, the correct catch block is invoked
(hence the stace trace), and the finally block is invoked. In the second
case, the exception is thrown, the finally block is invoked, and the
exception is handled by the calling Java method rather than being
handled by the JavaScript code.

After some research, it appears this change was introducted by a
modification to FunctionObject.call()  (See
http://bugzilla.mozilla.org/show_bug.cgi?id=64788) which used to have:

       try {
            Object result = (method != null)
                            ? method.invoke(thisObj, invokeArgs)
                            : ctor.newInstance(invokeArgs);
            return hasVoidReturn ? Undefined.instance : result;
        }

but now has:

            Object result = method == null ?
ctor.newInstance(invokeArgs)
                                           : doInvoke(thisObj,
invokeArgs);

If I comment out the new code and replace it with the old, the expected
exception handling returns. Is this just an oversight or the new
expected behavior? Are there any negative side effects (other then the
speed decrease in method invocation) if I use the latest tip but use the
old method invocation procedure in FunctionObject.call() rather than the
new?
2001-02-08 18:56:58 +00:00
pschwartau%netscape.com
106efc7817 Exported functionality common to RegExp tests to new file js/tests/ecma_3/RegExp/shell.js 2001-02-08 04:04:48 +00:00
pschwartau%netscape.com
5cc9cfb919 Exported functionality common to RegExp testing to new file js/tests/ecma_3/RegExp/shell.js 2001-02-08 04:03:02 +00:00
pschwartau%netscape.com
766e838c4f Initial add. Contains functionality common to RegExp testing 2001-02-08 03:58:58 +00:00
pschwartau%netscape.com
f65b30a051 Whitespace cleanup 2001-02-08 01:32:58 +00:00
pschwartau%netscape.com
ad6952fe99 *** empty log message *** 2001-02-08 01:30:15 +00:00
pschwartau%netscape.com
a4c1795cc3 More minor adjustments - 2001-02-08 01:18:55 +00:00
pschwartau%netscape.com
e3608c31cf Minor adjustments - 2001-02-08 01:05:23 +00:00
pschwartau%netscape.com
39d6604a1c Initial add. Regression test for bug 67773 2001-02-07 23:19:12 +00:00
waldemar%netscape.com
8f98bed0e7 Added more semantics 2001-02-07 05:08:44 +00:00
waldemar%netscape.com
d341117db6 Added read-eval-print loop 2001-02-07 05:08:09 +00:00
waldemar%netscape.com
ae3e51a0c2 Updated to correspond to js2 site 2001-02-07 05:07:37 +00:00
waldemar%netscape.com
d0363e3b99 Added :semantic-comment and :vector-construct. 2001-02-07 05:07:05 +00:00
waldemar%netscape.com
42217499f5 Added vector comprehensions. Changed compiler to emit globals of functional type into the lisp function rather than value slots of symbols; this simplifies debugging. 2001-02-07 05:06:22 +00:00
waldemar%netscape.com
ffce7baf94 Added vector comprehensions and extra mode parameter for %section, %subsection, and %text. 2001-02-07 05:05:39 +00:00
brendan%mozilla.org
e23a1be36f Fix for bug 44009 (r=rogerl, sr=shaver)
- Remove bogus JS_ASSERT(!outermost) from the code that deals with a "#n="
  type string being returned from js_EnterSharpObject, where the hash entry
  is not yet sharp (because we haven't seen the object twice during depth
  first search).  This case trivially arises for the outermost object in,
  e.g., 'o={}; o.foo=o; uneval(o)'.
- Avoid parenthesizing #n={...} object initializers for uneval, as they are
  not ambiguous (whereas {foo:1}, e.g., is ambiguous because it could be a
  block statement containing a labeled expression statement, or it could be
  an object initializer).
- Death to tabs!
2001-02-06 23:19:44 +00:00
pschwartau%netscape.com
4cd5b867fb Made this testcase acknowledge that indirect eval is LEGAL; see bug 38512. 2001-02-06 07:57:17 +00:00
pschwartau%netscape.com
8e1d1ab4d9 Made this testcase acknowledge that indirect eval is LEGAL; see bug 38512. 2001-02-06 07:33:28 +00:00
pschwartau%netscape.com
8ab3095a6c Made this testase acknowledge that indirect eval is LEGAL; see bug 38512. 2001-02-06 06:52:59 +00:00
pschwartau%netscape.com
8097b07638 Deleting this testcase. It expected indirect eval to throw an exception. Wrong - this is legal: see bug 38512. 2001-02-06 06:06:18 +00:00
brendan%mozilla.org
b28624e231 Fix compile-statements-as-we-go to work with warn-about-missing-final-return (66928, r=jband, sr=shaver). 2001-02-06 01:23:29 +00:00
pschwartau%netscape.com
44623057a1 Deleting this testcase, which expected this.eval() to throw an exception. On the contrary: indirect eval is LEGAL; see Bugzilla bug 38512. 2001-02-05 18:27:36 +00:00
pschwartau%netscape.com
d84d79d43e Changed comma expresions in this testcase from trivial to non-trivial. Explanation is in the introduction. 2001-02-05 04:58:39 +00:00
jband%netscape.com
ab1f2436af fix bug 67557 - bad use of NS_LITERAL_STRING to initialize static const PRUnichar* literals. r=jag sr=brendan 2001-02-04 06:47:44 +00:00
cls%seawood.org
02d1ad6807 Fix fdlibm/mozjs dependency problem by making sure that fdlibm is always built before mozjs. 2001-02-04 06:27:59 +00:00
brendan%mozilla.org
eabd8c6171 Include function total size in JS profiler output (67467, r=hyatt, sr=jband). 2001-02-02 20:52:06 +00:00
nboyd%atg.com
e5473d8fda Subject:
Re: [Rhino in Java] compiling .js to class file gives "bad local" error
        Date:
             Wed, 31 Jan 2001 09:41:45 +0100
       From:
             "Sylvia E. Schleutermann" <ses@h-m-s.com>
 Organization:
             .hms Health Management Systems
 Newsgroups:
             netscape.public.mozilla.jseng
  References:
             1 , 2




I have found out some more. Looking really quickly over the JVM specs, I
found that
indeed the astore-command requires that the variables index be below 128.
However,
the book also said that if more index space is needed, a "wide" command can
be used to
be able to address up to 65xxx variables.
Question: is there a possibility to integrate this "wide"-command into the
class compiler?
Some option, that can be set?  Or am I on the wrong tracks?

Please help, since I want to avoid spreading the script over many classes to
avoid the
size limitation. Cheers, Sylvia


Sylvia E. Schleutermann <ses@h-m-s.com> wrote in message
news:956sv9$9g53@secnews.netscape.com...
> I have found out that it is definitely the number of variables.
> I removed all variables and then the script compiled into class files
> with one base class and inner classes for each function in the script.
>
> What is the limitation exactly, i.e. does anyone know how many (global)
> variables
> I can use? Or is there some other kind of work around?
>
> Cheers, Sylvia
>
>
> Sylvia E. Schleutermann <ses@h-m-s.com> wrote in message
> news:956qtv$6kh3@secnews.netscape.com...
> > Hello,
> > when compiling a *.js file to class file, I get a "bad local" runtime
> > exception.
> > Stepping through the source, the following happens in reverse order:
> >
> > Codegen.xstore (75, 58, 209)
> >     -> in the switch - default case, there is a comparison
> >         for local (=209), which is compared to Byte.MAX_VALUE (=127).
> >         When greater, the above exception is thrown.
> >
> > Codegen.astore (209)
> >     -> calls Codegen.xstore (ByteCode.ASTORE_0, ByteCode.ASTORE, 209)
> >
> > Codegen.generatePrologue (<context>, <tree>, true, -1) // -1 is
> > directParameterCount
> >     -> sets itsZeroArgArray = getNewWordLocal(); // here, the 209 is
> > produced
> >     -> calls astore (itsZeroArgArray)
> >
> > From what I can read from the source code, the 209 seems to be a counter
> for
> > "locals", perhaps
> > local variables?? The function that is being compiled does initialize
many
> > variables - would it help
> > to move the initialize code out of the function into separate code
blocks?
> >
> > The function looks like this
> >
> > function rule_Disclaimer()
> > {
> >     try { VAR1 = <init code 1>;} catch (exception) { VAR1 = <default
init
> > code 1>; }
> >     try { VAR2 = <init code 2>;} catch (exception) { VAR2 = <default
init
> > code 2>;}
> >         ... (about 58 such variables)
> >
> >     var cond = true;
> >
> >     < rest of code>
> > }
> >
> > When I compile the script for interpreted mode, all works well. The
> > variables VAR1 to VAR58 are to be global
> > variables (global to the whole script).
> >
> > I appreciate any help! Thanks, Sylvia
> >
> >
>
>
2001-02-02 15:20:03 +00:00
mkaply%us.ibm.com
a36df8834a OS/2 TB breakage
Need cast to pass C++ function
2001-02-02 13:54:03 +00:00
jband%netscape.com
bd58ec8cea the rest of the fix for bug 66950 to add nsISupportsWeakReference support of xpconnect wrapped JSObjects. r=rogerl sr=brendan 2001-02-02 10:01:56 +00:00
jband%netscape.com
e7fcc8fd7f the rest of the fix for bug 67258 to avoid empry Components.results and the similar pattern in nsJSIID. r=dmose sr=brendan 2001-02-02 08:57:47 +00:00
jband%netscape.com
8ccfada88a backing out two changed inadvertantly committed! 2001-02-02 08:52:22 +00:00
jband%netscape.com
1d263ae630 part of the fix for bug 67258 to avoid empry Components.results. r=dmose sr=brendan xpccomponents.cpp 2001-02-02 08:48:28 +00:00
jband%netscape.com
39d156eef0 part of the fix to bug 66950. Add support for cheaply tracking the lifetime of arbitrary JSObject by extending the GC callback mechanism to notify after marking is done but before sweeping, and by providing an api function that can be called at that point to determine if any given gcthing is about to be finalized. r=rogerl sr=brendan 2001-02-02 08:44:24 +00:00
rogerl%netscape.com
cb289ae2e2 Fixed case, sorry 2001-02-02 01:08:06 +00:00
rogerl%netscape.com
5276f5b818 Added ICodeEmitter 2001-02-02 01:06:30 +00:00
rogerl%netscape.com
7ea0f3cbba Added icodeEmitter to VC++ build 2001-02-02 01:05:38 +00:00
rogerl%netscape.com
61579b22f3 Re-structuring some ICG details. 2001-02-02 01:04:22 +00:00
mkaply%us.ibm.com
63b9a9f4be OS/2 TB break
Need JS_STATIC_DLL_CALLBACK
2001-02-01 18:39:38 +00:00
disttsc%bart.nl
91a08f8c82 Fix senna bustage, add REQUIRES line. r=mkaply 2001-02-01 18:07:08 +00:00
sspitzer%netscape.com
e21ba186fe fix for #67205. get --enable-xpctools to work again.
it will build the JS profiler.  r=leaf,bryner, sr=cls
2001-02-01 15:36:59 +00:00
waldemar%netscape.com
76e61d873f Fixed comment 2001-02-01 03:42:25 +00:00
waldemar%netscape.com
f2ae41c491 Added make-and-compile-grammar cache 2001-02-01 03:41:54 +00:00
waldemar%netscape.com
0bcf6402f0 Added hash-table-= 2001-02-01 03:41:18 +00:00
waldemar%netscape.com
76d55e8bc2 Added the id type 2001-02-01 03:40:56 +00:00
waldemar%netscape.com
a53b1af653 Removed namespace inheritance. Begun implementing semantics. 2001-02-01 03:39:26 +00:00
rogerl%netscape.com
23fda0a73e Removed unused parameter. 2001-02-01 01:06:53 +00:00
rogerl%netscape.com
f13e0741a0 Changed Cast to take a JSValue containing a type instead of type directly.
Added LoadType to help support that. Also added LoadNull.
2001-02-01 00:59:21 +00:00
mkaply%us.ibm.com
77c253f1d3 Putting it back until I figure out the bustage 2001-02-01 00:03:12 +00:00
mkaply%us.ibm.com
1c00ee937b OS/2 only
r=dbaron
Add static to OS/2 JS_STATIC_CALLBACK so I don't break the build like I did yesterday
2001-01-31 23:40:42 +00:00
mkaply%us.ibm.com
2ae966c468 #59855
r=mccabe, sr=brendan
Proper building of fdlibm standalone
2001-01-31 23:26:00 +00:00
mkaply%us.ibm.com
71b9af79d7 #59855
r=mccabe, sr=brendan
OS/2 needs fdlibm copysign
2001-01-31 23:24:27 +00:00
mkaply%us.ibm.com
b8c9156ead #59855
r=mccabe, sr=brendan
Fix Javascript to get Endianness from jstypes.h
2001-01-31 23:23:42 +00:00
mkaply%us.ibm.com
ab94da8892 #59855
r=mccabe, sr=brendan
Fix Javascript to get Endianness from jstypes.h - start with a Makefile change and let it cycle once
2001-01-31 21:07:16 +00:00
matthias%sorted.org
f39acf5399 introduced "sync" helper function for converting a Javascript function
into a Java-style synchronized method
2001-01-31 13:05:21 +00:00
matthias%sorted.org
e5ae12e585 added support for implementing Java-style synchronized methods in Javascript 2001-01-31 13:02:42 +00:00
dveditz%netscape.com
d08f7df315 enable win32 XPC_TOOLS_SUPPORT environment var to turn on js profiler hooks. r=mcafee,sr=jband 2001-01-31 03:26:31 +00:00
jband%netscape.com
3ad4de6403 NOT PART OF THE BUILD - simple observer test to demonstrate use of weak references 2001-01-31 02:32:39 +00:00
brendan%mozilla.org
d0385b286a Throw EvalError for indirect eval calls iff strict+werror (38512, r=rogerl, sr=shaver). 2001-01-31 01:12:15 +00:00
matthias%sorted.org
4aee7d25d7 added support for incremental/prefix matching of regular
expressions. The method "prefix" on a RegExp behaves exactly the same
as the "exec" method except it returns "undefined" if the match failed
because there was an insufficient number of characters in the
input. E.g.
/^foo/.prefix("foo")	=> ["foo"] (just like exec)
/^foo/.prefix("fox")	=> null (just like exec)
/^foo/.prefix("fo")	=> undefined (whereas exec returns null)
2001-01-30 16:38:21 +00:00
dbaron%fas.harvard.edu
7563888641 Attempt to fix build bustage from mkaply's checkin. r=kin 2001-01-30 16:31:43 +00:00
mkaply%us.ibm.com
81fac91d51 #62003
r=mccabe, sr=brendan
Fixing up some Javascript CALLBACKs
2001-01-30 15:53:38 +00:00
mkaply%us.ibm.com
7792e217c6 #62003
r=mccabe, sr=brendan
Fixing up some Javascript CALLBACKs
2001-01-30 15:43:35 +00:00
nboyd%atg.com
42056e97d4 Fix bug:
Subject:
             [Rhino] Question
        Date:
             Tue, 30 Jan 2001 20:18:21 +0900
       From:
             "get21" <get21@secsm.org>
 Organization:
             Another Netscape Collabra Server User
 Newsgroups:
             netscape.public.mozilla.jseng




I found something unusual to me when I hacking the Rhino source code.

In tagify method of NativeString Class,

When it adds tag to its string(this.string), it does not use quotation
marks.

For example, the result of tagify("A HREF", "A", value) in
jsFunction_link(String value) is

<A HREF=Some Value>Original String Value</A>

Not,

<A HREF="Some Value">Original String Value</A>

This question might sound silly, but I'm curious why.

Thanks in advance,

Nam

--
email : get21@secsm.org
home : http://get21.secsm.org
phone : 011-9092-1802
2001-01-30 13:47:19 +00:00
brendan%mozilla.org
1cae579899 Better branch callback failure message. 2001-01-29 20:32:57 +00:00
brendan%mozilla.org
56fdf600c3 Make branch callback optional, parameterize its limit, and give a warning when it fails. 2001-01-29 20:27:30 +00:00
brendan%mozilla.org
bb40b036ad Fixes for bug 33390 (r=mccabe, sr=shaver)
- Optimize compile (parse+emit) operation to generate code for each top-level
  statement or function in turn, recycling JSParseNodes as we go for greatly
  reduced "long linear script" footprint.
- Fix O(n**2) growth problems in bytecode and srcnote generation.
- Add js_ParseTokenStream entry point to compiler, for tree-generation without
  code-generation.  Move JSOP_EVAL instruction selection from code-generator to
  parser, to match other such specializations and enable js_ParseTokenStream.
- Fix js_CompileTokenStream (and get it right in new js_ParseTokenStream) to
  respect JSOPTION_VAROBJFIX.
- Clean up bracing, multi-line conditions, and overlong lines.
2001-01-27 08:00:45 +00:00
rogerl%netscape.com
8b06bc1a3a Fixes for bugs #66234 (57572, 57631, 61266, 61766) sr=brendan, r=mccabe,
r=rginda,r=rogerl. Also 60925, 60926 by virtue of being subsumed by above.
2001-01-27 00:31:32 +00:00
jeff.dyer%compilercompany.com
66539fc886 First cut a xml code generation. 2001-01-26 23:55:32 +00:00
jeff.dyer%compilercompany.com
6b02950cc2 Unneeded file 2001-01-26 23:46:06 +00:00
jband%netscape.com
616b6cca1a fix jump in leaks caused by previous checkin by commenting out the offending code that roots Object.prototype 2001-01-26 08:02:23 +00:00
waldemar%netscape.com
588e4ffbf6 Added .() operator 2001-01-26 07:33:32 +00:00
jband%netscape.com
61a7d5b1fd backing out the unreviewed change to the loader for bug 63027 that I checked in with the other xpconnect changes by mistake. 2001-01-26 02:35:22 +00:00
jband%netscape.com
ea496b8199 add xpidl support for DOMString to fix bug 65762. r=jst sr=brendan 2001-01-26 02:32:18 +00:00
jband%netscape.com
abc6bd8a0b This is mostly to fix bug 64111 - XPConnect vs. Object.prototype.toSource woes.
Some other small fixes are included. Here is the list...

- Make nsIJSID::id [noscript] because xpconnect automatically builds a nsIJSID
wrapper around nsid values. However, xpconnect does not maintain a table of
those wrappers. So, given the same id twice it will make two nsIJSID wrappers.
This means that property walking could get foo.id.id.id... and not detect that
the different objects represent the same id. nsIJSID already exposes 'number'
so that JS can get the stringified value of the nsid. The nsid struct returned
by 'id' is useful for C++, but only causes problems for JS.

- Fix the nsIXPCScriptable 'IGNORE' handler for GetAttributes to not fail
silently.

- Add 'Components' to global objects as a non-enumerable property for backwards
compatibility and to avoid additional work in property enumeration (esp. in
win.toSource!)

- Expose toSource on wrapped native JSObjects. This just returns an empty object
string: '{}'. It can be overridden by an interface method if present.

- Expose toString on wrapped native JSObjects. It can be overridden by an
interface method if present. Previously we only did this as part of the
Convert op. Now someWrapper.toString will return a callable function.

- Extend the toString behaviour to also print the address of the wrapper in
DEBUG builds only: e.g. "xpconnect wrapped nsIFoo @ 0x12345678". mccabe
convinced me this would be useful. Release build behaviour is unchanged - we
worried that exposing addresses might contribute to possible security exploits.

- Have wrapped native JSObjects use Object.prototype as their proto rather than
have a null proto. Originally this was going to allow delegation to
Object.prototype.toSource, but even without that, this seems like a good thing.
This is implemented by getting Object.prototype from the global object each
time we create a wrapper to allow for spify JS dynamic craziness.

- Use 16bit values in wrappednative property descriptors to save space. It was
only possible to use 16 bits of the pointer-sized ints in the structs anyway.

- Do a security check at enumeration time and only expose those properties that
the caller can actually 'Get'. This fixes the toSource security exception
problem.

- Add a big comment about the problem of reporting uncaught exceptions.

- Fix crashing bug for case where object has no enumerable properties and
xpconnect failed to fill in the zero count.

- Fix NewInstanceJSObject to dig in and find the 'ultimate' parent when
parenting new wrapper JSObject. The old scheme was ending up with hugely
long parent chains in some cases.

r=jst, sr=brendan
2001-01-26 02:25:09 +00:00
jband%netscape.com
5bc0005e33 WHITESPACE ONLY CHANGE. Detabbing this stuff cuz it bothers me (tabbing didn't match 'Mode' line's tab-width) 2001-01-26 01:53:22 +00:00
brendan%mozilla.org
d3c870640c Fixes for bug 61898 (which has morphed), r=rogerl, sr=jband.
- Optimize integer ++ and -- to avoid double-to-int, which is quite costly for
  some compilers (ftol on Windows with MSVC).
- Optimized arguments[i] and arguments.length references to use bytecodes that
  avoid creating an arguments object for the current frame.  This entailed
  simplifying the compiler to avoid flagging functions and scripts that set
  arguments, since we have code in jsfun.c to catch such sets at runtime.
- The code generator now eliminates useless expression statements, giving a
  strict warning about them.
- Rationalized jsemit.c's LookupArgOrVar to have well-defined results in *pn.
  Eliminate bytecode specializations for argument and local variable gets and
  sets from jsparse.c -- these precede jsemit.c's LookupArgOrVar and frustrate
  it, by setting pn_slot non-negative too early.
- Code generation errors set report->filename and report->lineno, rather than
  hacking "{0}, line {1}: " into the localized message.
- Bogus JSFRAME_VAROBJBUG removed, JSOPTION_VAROBJFIX is sufficient.
- Spruce up jsinterp.c macros to use JS_BEGIN/END_MACRO brackets if possible.
- Avoid calling JS_PropertyStub.  The call is too costly compared to a branch
  in the caller.
2001-01-26 00:59:50 +00:00
rogerl%netscape.com
9250f428f3 Fixes to support ICodeModule operand type (via name in global object) and
TRUE/FALSE/NULL/CLASS instructions.
2001-01-25 23:34:33 +00:00
nboyd%atg.com
362492aef1 ECMA mandates a ToPrimitive on Date constructor arguments that we didn't have. 2001-01-25 19:56:54 +00:00
matthias%sorted.org
f989805f9a cleaned up indentation. no code changes. 2001-01-25 18:46:38 +00:00
sspitzer%netscape.com
cf94df1c3e back out brendan (Career Limiting Move) to fix blocker bug #66545.
a=leaf
2001-01-25 18:06:57 +00:00
brendan%mozilla.org
363c8fd51c Fixes for bug 61898 (which has morphed), r=rogerl, sr=jband.
- Optimize integer ++ and -- to avoid double-to-int, which is quite costly for
  some compilers (ftol on Windows with MSVC).
- Optimized arguments[i] and arguments.length references to use bytecodes that
  avoid creating an arguments object for the current frame.  This entailed
  simplifying the compiler to avoid flagging functions and scripts that set
  arguments, since we have code in jsfun.c to catch such sets at runtime.
- The code generator now eliminates useless expression statements, giving a
  strict warning about them.
- Rationalized jsemit.c's LookupArgOrVar to have well-defined results in *pn.
- Code generation errors set report->filename and report->lineno, rather than
  hacking "{0}, line {1}: " into the localized message.
- Bogus JSFRAME_VAROBJBUG removed, JSOPTION_VAROBJFIX is sufficient.
- Spruce up jsinterp.c macros to use JS_BEGIN/END_MACRO brackets if possible.
- Avoid calling JS_PropertyStub.  The call is too costly compared to a branch
  in the caller.
2001-01-25 09:22:19 +00:00
nboyd%atg.com
665f459571 Move Invoker out as a top-level class so that it doesn't get javadoc'd
with FunctionObject (it must be public).
2001-01-24 15:49:21 +00:00
nboyd%atg.com
6ddf348d98 Alternative fix for problem in the following email:
Subject:
        minor Rhino bug
   Date:
        Tue, 23 Jan 2001 13:14:51 -0800
   From:
        dave russo <d-russo@ti.com>
     To:
        nboyd@atg.com
    CC:
        d-russo@ti.com




Norris,

While using the new Rhino debugger (from the latest tip) I started to get "No
Context associated with current Thread" exceptions when expanding host objects
in the "Context:" debugger window.

In looking at the code, I discovered that NativeObject.toString seems to assume
that Context.getContext() may return null.  In fact, getContext() always returns
a non-null context or throws an exception.

I changed NativeObject.toString to never throw an exception (see below) and this
eliminated the problem I was seeing (of course).

It would be nice to incorporate this in a future Rhino tip or, if this change is
inappropriate, any guidance would be appreciated.  Thanks in advance.

I changed NativeObject.toString to:

    public String toString() {
        try {
            Context cx = Context.getContext();
            return jsFunction_toString(cx, this, null, null);
        }
        catch (Exception e) {
            return "[object " + getClassName() + "]";
        }
    }

from:

   public String toString() {
        Context cx = Context.getContext();
        if (cx != null)
            return jsFunction_toString(cx, this, null, null);
        else
            return "[object " + getClassName() + "]";
    }
2001-01-24 15:16:37 +00:00
beard%netscape.com
99bfc80f2d [not part of build] Added UTCUtils to reflect new dependencies in JS engine. 2001-01-23 19:54:49 +00:00
nboyd%atg.com
389c4e220e Subject:
Re: Small usage simplification for Rhino
       Date:
            Tue, 23 Jan 2001 16:01:42 +0100
      From:
            Igor Bukanov <igor@icesoft.no>
        To:
            Norris Boyd <nboyd@atg.com>
 References:
            1 , 2 , 3 , 4




Norris Boyd wrote:

> Thanks. I've patched in your changes and checked it into CVS.

I also looked at other places with similar pattern of few lines of
common code to construct error messages. The following was occurred too
often not to avoid temptations to move it to a separated function:

NativeGlobal.constructError(
Context.getContext(), "TypeError",
ScriptRuntime.getMessage1("msg.default.value", arg),
this)

It can be replaced by
NativeGlobal.typeError1("msg.default.value", arg, this)

There are other similar usages but they are not to frequent to bother
with code reduction because even the above replacement saves just 200
bytes in uncompressed jars (it is expensive to introduce new methods in
Java).

In any case, if you think it makes any sense, patches are attached. They
are made via
diff -cbB javascript.orig javascript > patch_context
diff -bB javascript.orig javascript > patch_std
from org/mozilla directory.

Regards, Igor
2001-01-23 19:35:35 +00:00
nboyd%atg.com
1a357f5fda Fix problem:
Subject:
        Recent rhino broke security support
   Date:
        Tue, 23 Jan 2001 08:07:45 -0500
   From:
        "Kurt Westerfeld" <kurt@managedobjects.com>
     To:
        "Norris Boyd" <nboyd@atg.com>


Norris.....I like the changes made to FunctionObject to do method invocation
much faster.  Very slick.

Problem tho: this mechanism does not veer into the security support plugin
on context for defining a class.  This is crucial do creating event adapter
code later in applet environments.

I'm going to look into this, but perhaps you could probably make the changes
faster than I.

Unfortunately for us, we found this problem yesterday at a customer site.
:-(  Shame on us.

________________________________________________________________________
  Kurt Westerfeld
  Senior Software Architect
  Managed Objects
  mailto:kwester@ManagedObjects.com
  703.770.7225
  http://www.ManagedObjects.com

  Managed Objects: manage technology > rule business
2001-01-23 17:48:41 +00:00
nboyd%atg.com
8ed55e98dd Fix formatting 2001-01-23 14:24:39 +00:00
rogerl%netscape.com
3d250fdec1 More fixes for #64285 - i had mis-merged from SpiderMonkey. 2001-01-22 22:30:37 +00:00
nboyd%atg.com
e737c6d867 Subject:
Re: Small usage simplification for Rhino
       Date:
            Mon, 22 Jan 2001 20:32:12 +0100
      From:
            Igor Bukanov <igor@icesoft.no>
        To:
            Norris Boyd <nboyd@atg.com>
 References:
            1 , 2




Norris Boyd wrote:

> Sounds like a good change to reduce codesize. I'll take the patches for the
> changes.
>
> Thanks,
> Norris

I made this patch, the files in the attachment were produced via:
diff -bB javascript.orig javascript -c > patch_context
and
diff -bB javascript.orig javascript > patch_std

run from org/mozilla directory.

This patch reduces uncopressed Rhino jar by 3K.

>
> Igor Bukanov wrote:
>
>
>> Hi, Noris!
>>
>> To shorten/cleanup usage of getMessage and reportRuntimeError methods
>> from org/mozilla/javascript/Context.java I suggest to add few utility
>> methods like
>>
>>      static String getMessage0(String messageId) {
>>          return getMessage(messageId, null);
>>      }
>>
>>      static String getMessage1(String messageId, Object arg1) {
>>          Object[] arguments = {arg1};
>>          return getMessage(messageId, arguments);
>>      }
>>
>>      static String getMessage2(String messageId, Object arg1, Object arg2) {
>>          Object[] arguments = {arg1, arg2};
>>          return getMessage(messageId, arguments);
>>      }
>>
>>      static String getMessage3
>>          (String messageId, Object arg1, Object arg2, Object arg3) {
>>          Object[] arguments = {arg1, arg2, arg3};
>>          return getMessage(messageId, arguments);
>>      }
>>
>> and
>>
>>      static EvaluatorException reportRuntimeError0(String messageId) {
>>          return reportRuntimeError(getMessage0(messageId));
>>      }
>>
>>      static EvaluatorException reportRuntimeError1
>>          (String messageId, Object arg1)
>>      {
>>          return reportRuntimeError(getMessage1(messageId, arg1));
>>      }
>>
>>      static EvaluatorException reportRuntimeError2
>>          (String messageId, Object arg1, Object arg2)
>>      {
>>          return reportRuntimeError(getMessage2(messageId, arg1, arg2));
>>      }
>>
>>      static EvaluatorException reportRuntimeError3
>>          (String messageId, Object arg1, Object arg2, Object arg3)
>>      {
>>          return reportRuntimeError(getMessage3(messageId, arg1, arg2,
>> arg3));
>>      }
>>
>> This allows to write, for example, instead of
>>
>>               Object[] args = { Integer.toString(base) };
>>               throw Context.reportRuntimeError(getMessage
>>                                                ("msg.bad.radix", args));
>> simply
>>               throw Context.reportRuntimeError1(
>>                   "msg.bad.radix", Integer.toString(base));
>>
>> which is not only easy to read but also generates less code.
>>
>> I attach my patch to Context.java to implement this plus a patch to
>> ScriptRuntime.java that utilizes the additions. The patches are in
>> standard and context versions.
>>
>> If you think that this make sense to incorporate, I can send a patch
>> that utilizes this everywhere.
>>
>>   ------------------------------------------------------------------------
>>                                  Name: patch.context.Context.java
>>    patch.context.Context.java    Type: Plain Text (text/plain)
>>                              Encoding: base64
>>
>>                              Name: patch.std.Context.java
>>    patch.std.Context.java    Type: Plain Text (text/plain)
>>                          Encoding: base64
>>
>>                                        Name: patch.context.ScriptRuntime.java
>>    patch.context.ScriptRuntime.java    Type: Plain Text (text/plain)
>>                                    Encoding: base64
>>
>>                                    Name: patch.std.ScriptRuntime.java
>>    patch.std.ScriptRuntime.java    Type: Plain Text (text/plain)
>>                                Encoding: base64
>>
>>               Name: all.zip
>>    all.zip    Type: Zip Compressed Data (application/x-zip-compressed)
>>           Encoding: base64
2001-01-22 20:28:34 +00:00
brendan%mozilla.org
ab05798b67 Followup to last checkin, comment change only, r=mccabe. 2001-01-20 02:02:48 +00:00
brendan%mozilla.org
499dcb0009 2nd attempt: Fix API botch where 'var x=0' vs. 'x=0' could put x in a different object (65553, r=mccabe, sr=jband). 2001-01-20 01:41:55 +00:00
rogerl%netscape.com
14a70a0c8c Added <function> at top level and example thereof. 2001-01-20 00:44:51 +00:00
rogerl%netscape.com
1a5e400f3e Fixed gcc warnings. Added .xml test case. 2001-01-20 00:02:56 +00:00
rogerl%netscape.com
8d21e78e1d Fixes and enhancements to get class references, constructors and scripts
working from .xml input.
2001-01-19 23:56:37 +00:00
rogerl%netscape.com
aeca31a7bd Merged Monkey bits, fix for bug #57631, /()/ was parsed incorrectly. 2001-01-18 23:39:00 +00:00
rogerl%netscape.com
bbcf08a5c3 Merged changes from Monkey - see bug #64285. 2001-01-18 22:49:11 +00:00
kin%netscape.com
31dc7d8cfc Temporary fix for Bug #65828: mozilla installer.exe fails with "-229 script error"
Backing out Brendan's previous checkin for bug #65553 (jsapi.c, jsdbgapi.c, jsemit.c, jsinterp.c, jsinterp.h, jsobj.c, and jsscript.c), so we can get smoke tests going.

r=attinasi@netscape.com (sheriff)
2001-01-18 22:10:12 +00:00
brendan%mozilla.org
e6b898515c Fix API botch where 'var x=0' vs. 'x=0' could put x in a different object (65553, r=mccabe, sr=jband). 2001-01-18 03:00:31 +00:00
nboyd%atg.com
08a188c69b Subject:
[Fwd: My Mistake in ScriptRuntime method]]]
   Date:
        Tue, 16 Jan 2001 15:48:26 +0100
   From:
        Igor Bukanov <igor@icesoft.no>
     To:
        Norris Boyd <nboyd@atg.com>




Hi, Norris!

With my previous patch to fix in
org/mozilla/javascript/ScriptRuntime.java Integer.MIN_VALUE as index
problem I also added a bug to the unrelated code: I tried to minimize
object creation and unfortunately that untested "optimization" slippet
into my patch as well.

I replaced the lines 290, 291 in toNumber(String s) method from

String sub = s.substring(start, end+1);
if (sub.equals("Infinity"))

to

if (s.regionMatches(start, "Infinity", 0, 8))

But that should be
if (start + 7 == end && s.regionMatches(start, "Infinity", 0, 8))

Sory for troubles, Igor





290c290
<             if (s.regionMatches(start, "Infinity", 0, 8))
---
>             if (start + 7 == end && s.regionMatches(start, "Infinity", 0, 8))
2001-01-16 20:20:36 +00:00
nboyd%atg.com
b3d6830b8b Expand tutorial. 2001-01-16 15:24:23 +00:00
nboyd%atg.com
4d54695ee1 Fix 64788 Make method invocation 10x faster with following code.... 2001-01-14 01:19:58 +00:00
beard%netscape.com
0ef1cd4d6e Keeping up with current Rhino sources. Removed Frame.java, Added DebugFrame.java, DebuggableEngineImpl.java. 2001-01-12 20:42:17 +00:00
beard%netscape.com
b47343d272 fixed no-prototype function warning. 2001-01-12 20:32:19 +00:00
nboyd%atg.com
bbae607060 Update comment; operator is part of ECMA. 2001-01-12 16:30:04 +00:00
nboyd%atg.com
1e13a69fde Add removeThreadLocal method. 2001-01-12 16:29:26 +00:00
nboyd%atg.com
8ca97fa895 Fix infinite loop in example. 2001-01-12 16:28:36 +00:00
waldemar%netscape.com
87ce1a1e6a Separated statements into statements, diretives, and definitions 2001-01-12 07:33:19 +00:00
brendan%mozilla.org
241d647c16 Fix ABW impurities under JS_ClearScope on an unmutated obj (64958, r=shaver, sr=jband). 2001-01-11 23:55:30 +00:00
rogerl%netscape.com
d13899b06c New (incomplete but functional) implementation of operator overriding. 2001-01-11 00:03:05 +00:00
waldemar%netscape.com
d7f7cfe179 Simplified use-name-patterns 2001-01-10 02:50:13 +00:00
nboyd%atg.com
b8ac59c406 Subject:
Re: Debugger problem
        Date:
             Mon, 08 Jan 2001 14:16:30 -0800
       From:
             Christopher Oliver <coliver@mminternet.com>
 Organization:
             Primary Interface LLC
         To:
             Kurt Westerfeld <kurt@ManagedObjects.com>
         CC:
             Norris Boyd <nboyd@atg.com>
  References:
             1 , 2 , 3




Kurt, Norris,

Yes, with the change to the shell this should be possible.  The problem before
was that if you loaded the same file with different relative path names, two
different windows in the debugger were created because everything (windows,
breakpoints, etc) is keyed off the source name.

The attached file contains the fix (and includes the workaround for
Desktop.getSelectedFrame).

There are still some bugs in transferring focus between the windows in the
Desktop.  I haven't had time to track down the problem or a solution.

Chris

Kurt Westerfeld wrote:

> I would point out that "Source Name" of a script isn't necessarily a
> filename.  In our system, scripts are run remotely from a script library
> that has no file system backing.  Canonicalizing the file names is really
> unnecessary.
>
> Can't you just modify JSDebugger to not care what the name of the file is?
> If access to the original script is unavailable except through the file
> system, I'd be surprised.
>
> ----- Original Message -----
> From: Christopher Oliver <coliver@mminternet.com>
> To: Kurt Westerfeld <kurt@ManagedObjects.com>
> Cc: Norris Boyd <nboyd@atg.com>
> Sent: Sunday, January 07, 2001 2:23 AM
> Subject: Re: Debugger problem
>
> > Hi Kurt,
> >
> > I rather would say that it is a problem with the processFile method in the
> > shell's Main class.  If you change the current working directory or the
> value
> > of the System property "user.dir" after compiling a script, relative path
> names
> > can become ambiguous.  Norris, would it be ok to modify the shell to
> > "canonicalize" the names of files it compiles?  That way the source name
> that
> > shows up in the stack and in DebuggableScript will always be unique.  For
> > example:
> >
> > public static void processFile(Context cx, Scriptable scope,
> >                                    String filename)
> >     {
> >             Reader in = null;
> >             try {
> >                 in = new PushbackReader(new FileReader(filename));
> >                 int c = in.read();
> >                 // Support the executable script #! syntax:  If
> >                 // the first line begins with a '#', treat the whole
> >                 // line as a comment.
> >                 if (c == '#') {
> >                     while ((c = in.read()) != -1) {
> >                         if (c == '\n' || c == '\r')
> >                             break;
> >                     }
> >                     ((PushbackReader) in).unread(c);
> >                 } else {
> >                     // No '#' line, just reopen the file and forget it
> >                     // ever happened.  OPT closing and reopening
> >                     // undoubtedly carries some cost.  Is this faster
> >                     // or slower than leaving the PushbackReader
> >                     // around?
> >                     in.close();
> >                     in = new FileReader(filename);
> >                 }
> >                 filename = new java.io.File(filename).getCanonicalPath();
> > <<<====== Add this
> >             }
> >             catch (FileNotFoundException ex) {
> >                 Context.reportError(ToolErrorReporter.getMessage(
> >                     "msg.couldnt.open",
> >                     filename));
> >                 exitCode = EXITCODE_FILE_NOT_FOUND;
> >                 return;
> >             } catch (IOException ioe) {
> >                 globalState.getErr().println(ioe.toString());
> >             }
> >
> >             // Here we evalute the entire contents of the file as
> >             // a script. Text is printed only if the print() function
> >             // is called.
> >             evaluateReader(cx, scope, in, filename, 1);
> >     }
> >
> >
> > Attached is *my* latest version of the debugger code.  Norris, have you
> made
> > any progress on cvs commit priveledges?  The attached version fixes a
> number of
> > GUI bugs:
> >
> > 1) If you undocked the Variables window and popped up the Context
> combo-box and
> > then closed the window with the system menu, the Context pop-up was not
> cleaned
> > up properly.
> > 2) The first time you minimize a file window it appeared to dissappear
> when you
> > tried to restore it.  This was due to the fact that I forgot to "pack" its
> > contents and as a result its requested size was 0x0.
> >
> > I also added a menu item to toggle whether to break on exceptions and one
> which
> > allows you to open (and compile) a JavaScript file without actually
> executing
> > it.
> >
> > I have also attached a Word document with some basic documentation for the
> > Debugger.
> >
> > Note that this version also includes all the changes to support debugging
> > scripts in the AWT dispatch thread.
> >
> > Chris
> >
> > Kurt Westerfeld wrote:
> >
> > > Hello.  I ran into a null pointer exception in JSDebugger tonight, and I
> > > thought I'd drop you a note.
> > >
> > > The problem line is 2336, where a breakpoint is hit.  To simulate, load
> the
> > > debugger using the command line syntax on a file that has not been
> resolved
> > > to cannonical path.
> > >
> > > Example,
> > >
> > >      jshell -debug -f \myfile.fs
> > >
> > > At any rate, the "handleCompilationDone" routine takes \myfile.fs and
> turns
> > > it into a canonical path.  If you hit a breakpoint in this file and say
> > > "go", when the breakpoint hits the file is not found, because the same
> > > canonical path resolution is not done.  The resolution seems dubious,
> since
> > > it is only done in the compilation done callback, but I don't know the
> best
> > > way to suggest a fix since it seems that code had some purpose.
> > >
> > > Anyway, thought you'd wanna know.
> > >
> > > ________________________________________________________________________
> > >   Kurt Westerfeld
> > >   Senior Software Architect
> > >   Managed Objects
> > >   mailto:kwester@ManagedObjects.com
> > >   703.770.7225
> > >   http://www.ManagedObjects.com
> > >
> > >   Managed Objects: manage technology > rule business
> >



   JSDebugger.java

                    Name:
                          JSDebugger.java
                    Type:
                          Java Class File (java/*)
                 Encoding:
                          base64
2001-01-09 14:10:40 +00:00
nboyd%atg.com
864bb13d47 Missed checkin of new file. 2001-01-09 13:39:22 +00:00
nboyd%atg.com
cbf2c6d0b4 Clean up debug APIs.
* Make use of DebuggableEngine interface to keep Context API smaller
* Change org.mozilla.javascript.debug.Frame to DebugFrame to avoid
  confusion with java.awt.Frame
2001-01-08 21:41:25 +00:00
nboyd%atg.com
05afc92b5d Fix for 1.1 compatibility. 2001-01-08 14:34:21 +00:00
nboyd%atg.com
db930451b8 Fix classloader problem from last checkin. 2001-01-08 02:13:28 +00:00
nboyd%atg.com
1de208b764 Canonicalize file names to help debugger. 2001-01-08 02:12:52 +00:00
nboyd%atg.com
59adb03eb5 Latest changes from Chris Oliver. 2001-01-08 01:43:28 +00:00
nboyd%atg.com
cb3ce5e5aa Revert to old object identity for equality per ECMA. 2001-01-08 01:03:23 +00:00
nboyd%atg.com
0298ab90eb For == use .equals after unwrapping. 2001-01-05 20:00:47 +00:00
nboyd%atg.com
07b81a65d3 Fix bug 64397. 2001-01-05 19:15:59 +00:00
nboyd%atg.com
0e1266c7d4 Email thread describing change:
Subject:
             Re: Rhino bug - Wrapper ??
        Date:
             Fri, 05 Jan 2001 03:46:11 +0530
       From:
             Mukund Balasubramanian <mukund@cs.stanford.edu>
 Organization:
             Another Netscape Collabra Server User
 Newsgroups:
             netscape.public.mozilla.jseng
  References:
             1 , 2 , 3 , 4 , 5 , 6




That works too,
    Should I assume that this would be a part of the next tip ? I agree with the
part about
overloading code too.

    Anyways, thanks a load for your help and just tell me if I could be of any
help in any other
respects of the rhino project.

ThanX,

Mukund Balasubaramanian

Norris Boyd wrote:

> Actually, I was considering removing the unwrapping code from
NativeJavaConstructor. I was
> suprised that it was there. The code dates from before we implemented proper
method and
> constructor overloading in Rhino. It's the overloading code that should have
the responsibility
> for unwrapping.
>
> Does this patch work for you:
>
> Index: NativeJavaObject.java
> ===================================================================
> RCS file:
/cvsroot/mozilla/js/rhino/org/mozilla/javascript/NativeJavaObject.java
> ,v
> retrieving revision 1.29
> diff -u -r1.29 NativeJavaObject.java
> --- NativeJavaObject.java       2000/11/13 22:10:32     1.29
> +++ NativeJavaObject.java       2001/01/04 21:33:55
> @@ -673,6 +673,12 @@
>
>                  return Result;
>              }
> +            else if (value instanceof Wrapper) {
> +                value = ((Wrapper)value).unwrap();
> +                if (type.isInstance(value))
> +                    return value;
> +                reportConversionError(value, type);
> +            }
>              else {
>                  reportConversionError(value, type);
>              }
>
> This handles the case where the object is both a Scriptable and a Wrapper.
>
> --N
>
> Mukund Balasubramanian wrote:
>
> > Yes they do implement Scriptable.
> >     From my preliminary inspection of the code, findFunction seems to be
preceediong the
> > coerceType call and I presume findFunction call is going to fail if the
arguments are
> > wrapped (bad types mismatching signature).
> >     The constructor case DOES go through an explicit unwrapping stage as
shown by the cut
> > and paste code. My question is whether the same preamble in NativeJavaMethod
is a valid bug
> > fix.
> >
> > ThanX,
> >
> > Mukund Balasubramanian
> >
> > Norris Boyd wrote:
> >
> > > Do your objects that implement Wrapper also implement Scriptable? From
simple inspection
> > > of the code I'd think that both the constructor and method cases would go
through
> > > NativeJavaMethod.coerceType, which should unwrap. However, Scriptable
objects are picked
> > > off and handled before any unwrapping is considered.
> > >
> > > --N
> > >
> > > Mukund Balasubramanian wrote:
> > >
> > > > Yup,
> > > >     Here it is - Line numbers 173-178 are cut and paste from
> > > > NativeJavaConstructor.java inside NativeJavaMethod.java
> > > >
> > > > /*** Call in NativeJavaMethod.java
> > > >     public Object call(Context cx, Scriptable scope, Scriptable thisObj,
> > > >                        Object[] args)
> > > >         throws JavaScriptException
> > > >     {
> > > >         // Eliminate useless args[0] and unwrap if required
> > > >         for (int i = 0; i < args.length; i++) {
> > > >             if (args[i] instanceof Wrapper) {
> > > >                 args[i] = ((Wrapper)args[i]).unwrap();
> > > >             }
> > > >         }
> > > >
> > > >   // Find a method that matches the types given.
> > > >         if (methods.length == 0) {
> > > > ****/
> > > >
> > > > Is this correct ? I presume it is because of the fact that the
constructor
> > > > does this.
> > > >
> > > > Any luck with my other question regarding generalizing the WrapHandler
to all
> > > > objects (including those returned by scriptable) and not only those
returned
> > > > through nativeJava***
> > > >
> > > > ThanX,
> > > >
> > > > Mukund Balasubramanian
> > > >
> > > > Norris Boyd wrote:
> > > >
> > > > > Could you post your proposed patch?
> > > > >
> > > > > Thanks,
> > > > > Norris
> > > > >
> > > > > Mukund Balasubramanian wrote:
> > > > >
> > > > > > Hi all,
> > > > > >     I am trying to play around with writing a custom WrapHandler for
my
> > > > > > Java objects in Rhino. I found WrapHandler very useful.
> > > > > >     Now I am stuck at a point where, even though my wrappers
implement
> > > > > > "Wrapper", they get unwrapped only on calles to Constructors using
> > > > > > Liveconnect. Normal methods dont seem to be doing any unwrapping.
> > > > > > Managed to build rhino with a bug fix (cut and paste code from
> > > > > > NativeJavaConstructor to NativeJavamethod), and it works.
> > > > > >     Just wanted to verify if it is a known bug (while I wait for
> > > > > > bugzilla to mail me a passwd).
> > > > > >
> > > > > > BTW, also found something interesting, WrapHandler gets called only
when
> > > > > > the object is returned from NativeJava***, not ANY Object. Is that
the
> > > > > > way it is supposed to work ??
> > > > > >
> > > > > > ThanX for any help,
> > > > > >
> > > > > > Mukund Balasubramanian
2001-01-05 01:17:51 +00:00
brendan%mozilla.org
39ed395c58 Speed up js_qsort_r a bit (64065, r=mccabe, sr=jband). 2001-01-04 10:13:18 +00:00
mccabe%netscape.com
ce1033908e Oops. Removing unneeded 'System.err.println("foo")'. 2001-01-04 00:03:00 +00:00
mccabe%netscape.com
9f3e15aaf5 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
2e691de2e6 Get rid of BSF file in Rhino code. Just rely upon building BSF ourselves for now. 2001-01-03 20:54:37 +00:00
bryner%uiuc.edu
69e9b90bc6 Removing dead .toc files. Not part of build. a=sfraser. 2001-01-03 01:32:06 +00:00
rogerl%netscape.com
2c115aa7b4 Fix for VC++ compile. 2001-01-02 19:49:16 +00:00
pschwartau%netscape.com
bc3b1264b8 Correcting bug that cropped up when system clock was set to GMT Standard Time 2001-01-01 02:40:28 +00:00
beard%netscape.com
4ca46948df another pass over LexUtils::cmp_nocase(). 2000-12-30 08:08:12 +00:00
beard%netscape.com
41d32a622f fix unsigned/signed comparison warnings 2000-12-30 07:55:01 +00:00
beard%netscape.com
2d8bdb7992 Use GC-safe vector of JSFunction* to hold getters/setters. 2000-12-30 07:46:18 +00:00
beard%netscape.com
661e422910 no need to copy JSString values into String values. 2000-12-30 07:06:03 +00:00
rogerl%netscape.com
61eb9f446d Fixed bit-rot in exception handling, removed unused locals. 2000-12-30 01:13:06 +00:00
rogerl%netscape.com
6676b0784f re-ordered members wrt init sequence. 2000-12-30 01:08:31 +00:00
mccabe%netscape.com
a8ec7cd47b Add emacs makefile modeline.
Not part of the Mozilla build.
2000-12-29 23:23:52 +00:00
rogerl%netscape.com
f27ea7e548 Fix for #60164, more failure testing during exception processing.
r=mccabe, a=brendan
2000-12-29 22:19:09 +00:00
pschwartau%netscape.com
5abaf0cf2b Initial add - 2000-12-29 02:46:32 +00:00
pschwartau%netscape.com
4d301707dd Adjusting hard-coded Pacific timezone date testcases to work in any tester's timezone - 2000-12-26 20:02:04 +00:00
pschwartau%netscape.com
0398d7bee8 Adding functionality to adjust hard-coded date tests (written for Pacific timezone) for the tester's own timezone 2000-12-26 19:55:05 +00:00
pschwartau%netscape.com
bfb589f60d Modifiying one line that was failing in GMT+ timezones (i.e. east of Greenwich) 2000-12-26 19:34:07 +00:00
waldemar%netscape.com
3e8e4d48fc Revamped the syntax for calling superconstructors and tightened up the syntax for the super operator 2000-12-22 02:02:14 +00:00
mccabe%netscape.com
b8e8f4bb95 Fix courtesy jband to quiet unused variable warning.
Move 'dlsoffset' to the block where it's used, inside #ifdef XP_MAC.

r=mccabe
2000-12-21 04:32:13 +00:00
waldemar%netscape.com
f11df45168 Simplified postfix-expressions and use-exclude-include 2000-12-21 00:04:52 +00:00
brendan%mozilla.org
7b1d57a4dc Don't fatten a flyweight lock unnecessarily in JS_SetPrototype; misc. cleanups (63097, r=mccabe, sr=jband). 2000-12-20 22:36:01 +00:00
nboyd%atg.com
e86e0fd5b5 Nope, 8 was right. 2000-12-20 13:31:59 +00:00
waldemar%netscape.com
664c11c819 Changed 'operator' from a keyword to an attribute. 2000-12-19 01:57:13 +00:00
waldemar%netscape.com
666b8c7b81 Removed 'operator' non-reserved word 2000-12-19 01:56:36 +00:00
nboyd%atg.com
4674ece3c9 Off by one error fixed. 2000-12-18 19:32:00 +00:00
nboyd%atg.com
cdc056a04a Add ContextListener to API classes. 2000-12-18 19:30:26 +00:00
beard%netscape.com
048ef40a40 added newest source files, to use the icode assembler. (Pro6 update) 2000-12-16 07:01:50 +00:00
beard%netscape.com
da3f96b69c added newest source files, to use the icode assembler. 2000-12-16 07:01:22 +00:00
beard%netscape.com
23425c7dea use string8::difference_type rather than uint for difference between iterators, cast uint32 to int32 to remove warnings. 2000-12-16 06:57:58 +00:00
beard%netscape.com
50f3452e77 fixed return value warning by moving return statement. 2000-12-16 06:56:37 +00:00
beard%netscape.com
27888b7f72 warnings, explicit use of JSValue constructor. 2000-12-16 06:54:40 +00:00
waldemar%netscape.com
157324e348 Converted to CodeWarrior 6 and fixed errors 2000-12-16 01:14:55 +00:00
waldemar%netscape.com
a86b8ebf19 Fixed C++ errors 2000-12-16 01:14:36 +00:00
jeff.dyer%compilercompany.com
80b7ec4f9f Revised readme and removed CommandLine parser (for now). 2000-12-16 00:50:25 +00:00
jeff.dyer%compilercompany.com
9f31ccbf60 Removing Util.java. 2000-12-16 00:43:05 +00:00
jeff.dyer%compilercompany.com
144aa7a24d Removed dependency on sun.tools packages. 2000-12-16 00:42:16 +00:00
rogerl%netscape.com
c858f0c335 Added 'length' to Array objects as a getter property - and fixed up stuff
that this depended on. Fixed parameter names for xml classes and added
'loadxml' global function.
2000-12-15 01:38:40 +00:00
beard%netscape.com
e16204d82f Converted to an application for testing. 2000-12-15 01:26:06 +00:00
beard%netscape.com
364b0b1752 JDK 1.1 compatibility. Should flesh out the CommandLine class to do what sun.tools.util.CommandLine does. 2000-12-15 01:09:58 +00:00
beard%netscape.com
d140c9c45f JDK 1.1 compatibility. 2000-12-15 01:06:50 +00:00
beard%netscape.com
9517cfdbab build system for Mac using CW Pro 6. 2000-12-15 01:05:32 +00:00
beard%netscape.com
a03e258f94 Removing obsolete furballs. 2000-12-15 00:04:31 +00:00
beard%netscape.com
b565b9d3f9 Removing obsolete furball. 2000-12-15 00:01:26 +00:00
nboyd%atg.com
87a029eeb9 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
2504e1cfd0 Missed call to "in" needing parameter change. 2000-12-13 14:47:27 +00:00
nboyd%atg.com
c87949e3b4 Support single-letter bean properties. 2000-12-12 20:29:06 +00:00
nboyd%atg.com
70ff180f2f Fix test case failures with RegExp constructor (new tests) 2000-12-12 15:19:36 +00:00
nboyd%atg.com
4f6ace3554 Fix ArrayIndexOutOfBoundsException on "new RegExp()" 2000-12-12 14:51:55 +00:00
nboyd%atg.com
5e0b2ebaed Fix 62559, 58479 2000-12-12 14:35:38 +00:00
nboyd%atg.com
619fce4329 fix javadoc 2000-12-12 01:48:53 +00:00
pschwartau%netscape.com
508c2cdc93 Skip ecma_3/Date/15.9.5.7.js Rhino does Date.toLocaleTimeString() differently than SpiderMonkey 2000-12-12 00:13:24 +00:00
nboyd%atg.com
073df548cd Fix bug where "a = new Array[3]" would produce an IndexOutOfBoundsException 2000-12-10 18:33:52 +00:00
mccabe%netscape.com
68e18aa4b9 Fix to 62309. Change JS_AddRoot to JS_AddNamedRoot in Liveconnect to aid leak diagnoses.
r=beard
sr=brendan
2000-12-09 01:35:46 +00:00
rogerl%netscape.com
d11b23802a Sweeping set of changes to implement closures. Also re-targetted entire
front-end to Cobol and back-end now generates pdp11 assembly code in
spanish.
2000-12-08 23:55:39 +00:00
mccabe%netscape.com
7656e0fc52 More licenses and modelines.
Not part of the Mozilla build.
2000-12-08 10:19:59 +00:00
mccabe%netscape.com
2c218914aa Add informative comment.
Not part of the Mozilla build.
2000-12-08 10:01:35 +00:00
mccabe%netscape.com
f97fe01b08 Whoops, wrong license. 2000-12-08 10:00:20 +00:00
mccabe%netscape.com
e295112197 Add -p flags to several Makefile mkdir commands, to allow parallel gmakes. Still not sure how to make js/src/liveconnect/classes/*.java happy with parallel. gmakes...
Also add some #modelines to makefiles, and some more NPL licenses.

None of these files are part of the Mozilla build.
2000-12-08 09:56:47 +00:00
mccabe%netscape.com
7ebb6b839c Update to last fix of js.c. Multiple versions of functions #ifdef'ed to take different numbers of arguments (in C) are a pain. Use #ifdef-safe JS_GET_CLASS, instead.
Not part of the Mozilla build.
2000-12-08 06:30:57 +00:00
mccabe%netscape.com
841f9da3de Fix to Windows build problem with the js reference build; replace non-API macro OBJ_GET_CLASS with API-kosher JS_GetClass. (OBJ_GET_CLASS used js_GetSlotWhileLocked, pulled from the set of exported symbols with the recent thread optimization checkin.)
Not part of the Mozilla build.  (Yes, it's a closed tree!)

r=brendan
2000-12-08 02:35:17 +00:00
cls%seawood.org
51b7673641 Adding caps to REQUIRES. Bug #62069 r=burning tinderbox: senna 2000-12-07 22:46:13 +00:00
mccabe%netscape.com
ef122d5552 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
jband%netscape.com
a046f19ac6 now that the bustage is cleanedup (sorry), I'm fixing the whitespace of that hasty checkin 2000-12-07 09:06:55 +00:00
jband%netscape.com
27072b9f5b fix build bustage on some platforms from MI ambiguity 2000-12-07 08:33:50 +00:00
jband%netscape.com
5874e12cb0 fix bug 62069 and bug 68538 by using nsISecurityCheckedComponent to allow unfettered access from JavaScript to Components.interfaces and the safer methods on nsXPCException. r=brendan r=mstoltz sr=hyatt 2000-12-07 08:14:27 +00:00
mccabe%netscape.com
63a3cc2ac2 Add emacs makefile modeline to many makefiles, add npl license to others.
(Comment changes only.)
2000-12-07 02:44:27 +00:00
pschwartau%netscape.com
91b6d231cc Initial add; regression test for Bugzilla bug 57043 2000-12-06 20:52:59 +00:00
jeff.dyer%compilercompany.com
271600c65f Corrupt. Removing. 2000-12-06 19:01:21 +00:00
jeff.dyer%compilercompany.com
609cdf48ec Removing, corrupt. 2000-12-06 18:59:39 +00:00
jeff.dyer%compilercompany.com
b75ea2c533 Drawing of compile-time values. 2000-12-06 18:37:20 +00:00
jeff.dyer%compilercompany.com
3c956b5aec Fixed test to be correct js2. 2000-12-06 18:30:18 +00:00
jeff.dyer%compilercompany.com
c8f0271f30 Fixes to the type system and error handler. 2000-12-06 18:27:42 +00:00
brendan%mozilla.org
cbb04dbb0b Fix leak on IS_BIG_ENDIAN malloc failure early return (r=mccabe,sr=jband). 2000-12-06 06:53:33 +00:00
brendan%mozilla.org
67c52d247d Include <ctype.h> before using isalpha, etc.; misc style cleanup (r=mccabe,sr=jband). 2000-12-06 06:46:55 +00:00
jband%netscape.com
33ab5378a8 fix bug 59588. Since js_MarkAtom is called *so* often but is usually short-circuited, we add a macro to get the shortcircuit flag in the 3 callers and avoid most of the calls. r=mccabe sr=brendan 2000-12-06 06:03:30 +00:00
jband%netscape.com
9827507e37 fix bug 61788 - don't leave garbage in stack from js_AllocStack. Also, avoid allocing unneeded slots. r=mccabe sr=brendan 2000-12-06 06:00:49 +00:00
jband%netscape.com
f1a8a3d9a8 fix warnings 2000-12-06 05:59:16 +00:00
brendan%mozilla.org
38504ea317 JSPROP_SHARED implies no slot to entrain garbage (bug 61482, r=mccabe, sr=jband). 2000-12-05 21:47:23 +00:00
nboyd%atg.com
20c82f88e9 Add construction of Counter from Java 2000-12-05 16:42:39 +00:00
nboyd%atg.com
108f24ebcf Fix bug 61979 2000-12-05 16:06:20 +00:00
nboyd%atg.com
86d5be2297 Fix bug 60093 2000-12-05 16:04:32 +00:00
brendan%mozilla.org
2ea8983c5d Forgot to check this in as part of 54743's big patch, d'oh\! 2000-12-05 06:42:14 +00:00
mccabe%netscape.com
bdcc22b5e1 Fix to 45590. Beard untangled ancient and wrong code from prmjtime.c interacting with the Mac OS; 45590 is fixed by actually treating the date offset as a signed value (it should be!) rather than adding a day when east of Greenwich.
Along the way, Patrick also fixed a bug that's been with the JS engine on the mac for more than three years; used to be that Mac dates throughout the year were displayed according to the machine's *current* daylight savings time setting; now they display properly and all is well with the world.

Dependent on recent checkin fixing 61577, adding needed time library to the mac build.X

r=mccabe
2000-12-05 05:17:30 +00:00
brendan%mozilla.org
80aac2bbcf Checkin for art@halogen.kharkov.ua, bug 61899, r=mccabe, sr=brendan. 2000-12-05 03:16:41 +00:00
pschwartau%netscape.com
52aa420b05 Replaced hard-coded TZ_DIFF = -8 with a dynamically-calculated value 2000-12-05 01:47:15 +00:00
jeff.dyer%compilercompany.com
d6b97f2277 Fixed type bugs and header comments. 2000-12-04 18:47:28 +00:00
brendan%mozilla.org
5f161e7819 A bit over-aggressive with that static keyword last time... 2000-12-04 04:34:18 +00:00
brendan%mozilla.org
b4b7a14cc7 Fix NSPR_LOCK ifdefs (for JS_NO_THIN_LOCKS mode, enabled due to a configure.in bug on gcc/sparc5 systems). Fixes speedracer build bustage. 2000-12-04 04:02:27 +00:00
brendan%mozilla.org
0e3fd5e8ba All this r=mccabe, r=beard, and sr=jband -- many thanks to all who helped,
especially to jband for his great stress-test setup and particularly helpful
(in terms of reproducing bugs in draft patches) MP and laptop machines.

- Radical(*) object (scope) locking optimization: don't lock if a scope is
  accessed on the context that exclusively owns it (initially, the context
  on which the scope was created).  Once a scope becomes shared among more
  than one owner-context, give it the usual thin or fat lock, per existing
  jslock.c code.

  I did this at the memory cost of another word per JSScope, ownercx, which
  raised scope size from 12 to 13 words if !DEBUG.  I also added a linked
  list head pointer, rt->scopeSharingTodo, and a scopeSharingDone condition
  variable to JSRuntime, and a scopeToShare pointer to JSContext that's
  necessary for deadlock avoidance.

  The rt->scopeSharingTodo list links JSScopes through the scope->u.link
  union arm, which overlays the pre-existing scope->count (now u.count)
  member.  This list holds scopes still exclusively owned by a context, but
  wanted by js_LockScope calls active on other threads.  Those calls wait
  on the rt->scopeSharingDone condition, which is notified every time an
  owner-context ends the request running on it, in which code active on
  that context may be using scope freely until end of request.

  The code that waits on rt->scopeSharingDone must first suspend any and
  all requests active on the calling context, and resume those contexts
  after the wait is notified.  This means a GC could happen while the
  thread locking a scope owned by another thread's context blocks; all
  calls to JS_LOCK_OBJ must therefore first home fp->sp above any live
  operands, e.g.  The interpreter takes care to do that already.

  To avoid AB-BA deadlocks, if a js_LockScope attempt on one context finds
  that the owner-context of the scope is already waiting on a scope owned
  by the current context (or indirectly depending on such a scope lock),
  the attempt converts the scope from lock-free exclusive ownership to
  shared ownership (thin or fat lock).

- Fix js_SetupLocks and the js_LockGlobal/js_UnlockGlobal code to avoid
  divmod instruction costs, strength-reducing to bit-mask instructions.

- The radical lock-free scope change required care in handling the 0=>1
  and 1=>0 transitions of cx->requestDepth, which was till now thread-local
  because part of the JSContext not manipulated by other threads.  It's
  still updated only by cx's thread, but it is read by other threads in
  the course of attempting to claim exclusive ownership of a scope for more
  lock-free JS object operations.

- The JS_SuspendRequest and JS_ResumeRequest APIs have changed incompatibly
  to require their caller to save and restore the requestCount found when
  JS_SuspendRequest is called.  This is necessary to avoid deadlock; sorry
  for the incompatible change.

- Fixed various nits in jslock.[ch], including using Init/Finish rather
  than New/Destroy for the methods that take a JSThinLock and initialize
  and finish/free its members.  Another example: JS_ATOMIC_ADDREF is now
  JS_ATOMIC_INCREMENT and JS_ATOMIC_DECREMENT, so the two cases can be
  mapped to PR_AtomicIncrement and PR_AtomicDecrement.  This entailed
  changing jsrefcount from jsword to int32 (PRInt32).

- No need to use JS_ATOMIC_INCREMENT on JSScopeProperty.nrefs, as it is
  always and everywhere protected by the property's JSScope.lock.

- Cleaned up gratuitous casts in jscntxt.c by using &cx->links, etc.

- The lock used for mutual exclusion around both request begin and end vs.
  GC synchronization is rt->gcLock, and this lock now also protects all
  scope->ownercx pointer changes from non-null (exclusive) to null (shared),
  the rt->scopeSharingTodo/scope->u.link list operations, and of course the
  rt->scopeSharingDone condition.

  But this means that js_GC cannot hold rt->gcLock across the bulk of its
  body, in particular the mark phase, during which JS_GetPrivate calls,
  e.g., may need to "promote" scope locks from lock-free to thin or fat,
  because doing so would double-trip.  There never was any good reason to
  hold rt->gcLock so long, of course -- locks are for mutual exclusion, not
  for waiting or notifying a thread -- those operations require a condition,
  rt->gcDone, which we already use along with rt->gcLevel to keep racing GC
  attempts at bay.

  So now that rt->gcLock does not protect the mark phase, the enumeration
  of rt->gcRootsHash can race badly with JS_RemoveRootRT, an API that may
  legitimately be called outside of a request, without even a context.  It
  turns out that people may be cheating on the request model even with
  JS_AddRoot, JS_AddNamedRoot, and JS_RemoveRoot calls, so we must make
  all of those interlock with the GC using gcLevel and gcDone, unless they
  are called on the gcThread.

  Also, since bug 49816 was fixed, there has been no need for a separate
  finalize phase, or for rt->gcFinalVec.  Finalizers can no longer allocate
  newborn GC-things that might be swept (because unmarked), or double-trip
  on rt->gcLock (which is no longer held).  So js_GC finalizes as it sweeps,
  just as it did in days of old.

- I added comments to jslock.h making it plain that callers of JS_LOCK_OBJ
  and JS_UNLOCK_OBJ must either be implementations of js_ObjectOps hooks,
  or code reachable only from those hooks; or else must be predicated on
  OBJ_IS_NATIVE tests.  It turns out jsinterp.c's CACHED_GET and CACHED_SET
  macros neglected to do such tests, limiting the ability of JS embeddings
  to implement JSObjectOps with their own non-JSScope JSObjectMap subclass.
  Fixed, small performance hit that the lock-free optimization should more
  than make up for.

- jslock.c now gives a #error if you try to compile it on a platform that
  lacks a compare-and-swap instruction.  The #error says to use NSPR locks.
  Before this change, some platforms would emulate compare-and-swap using
  a global PRLock, which is always worse in runtime than using per-scope
  PRLocks.
2000-12-04 02:43:31 +00:00
jband%netscape.com
7a40c13587 remove unnecessary nested JS_{Begin,End}Request in Load. r=beard 2000-12-04 02:13:13 +00:00
cls%seawood.org
a208c58c4e Update REQUIRES. 2000-12-03 22:33:51 +00:00
pschwartau%netscape.com
f4a7e0b9b1 Removed hard-coded line var TZ_DIFF = -8. It's already set in the pre-loaded shell.js file. 2000-12-02 23:59:58 +00:00
waldemar%netscape.com
1cb8489414 Made 'super' into an operator. Added syntax for operator overloading. 2000-12-02 09:10:12 +00:00
waldemar%netscape.com
d5ecb8fde4 Added 'operator' non-reserved word 2000-12-02 09:09:41 +00:00
jeff.dyer%compilercompany.com
9187c93f00 Fixed a couple typos. 2000-12-02 02:04:51 +00:00
jeff.dyer%compilercompany.com
f9a2854819 Updated to reflect latest changes. 2000-12-02 01:49:18 +00:00
jeff.dyer%compilercompany.com
8d92d194b7 Import of Initial Source from MVCC 2000-12-02 00:46:31 +00:00
pschwartau%netscape.com
aa456cab4f Initial add; see Bugzilla bug 61266 - 2000-12-01 20:20:43 +00:00
pschwartau%netscape.com
482fa18cd7 Initial add; see Bugzilla bug 57631 2000-12-01 20:17:11 +00:00
jband%netscape.com
947e54ba96 fixes for bug 60303, bug 60356, bug 57370, and bug 58982 r=mccabe sr=hyatt sr=brendan 2000-11-30 06:58:37 +00:00
mccabe%netscape.com
51e20d88e5 Fix to 61183. Detect whether the OS has given us a date string ending in /xx (as in xx/xx/xx) for Date.prototype.toLocale[Date]String, and pad it out to the real number of digits.
r=rogerl
2000-11-30 05:52:44 +00:00
mccabe%netscape.com
2dbc59dbed Remove unused property definitions and fix some errors that had crept in. 2000-11-29 23:32:53 +00:00
mccabe%netscape.com
0c5501eef0 Twiddle Make usage message. 2000-11-29 22:36:06 +00:00
mccabe%netscape.com
45db29b063 Fix to 58673. Alias Date.prototype.toGMTString to Date.prototype.toUTCString (rather than defining seperate function objects for each). ECMA conformance.
r=rogerl
2000-11-29 03:03:05 +00:00
mccabe%netscape.com
239ac07da7 Fix to 57048. Bring the JS engine's implementation of Object.prototype.propertyIsEnumerable in line with the ECMA spec.
Thanks to David Flanagan for noticing this problem.

r=rogerl
2000-11-29 02:05:10 +00:00
mccabe%netscape.com
559fa4d1eb 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
e297628504 Fix bug 61267. 2000-11-28 16:23:24 +00:00
mstoltz%netscape.com
a62ae1df4d bug 59766. Added code to push current JS context onto context stack before all LC calls into JS, becuase the security manager looks on the context stack for permission info. r=jband, mccabe 2000-11-28 02:50:21 +00:00
beard%netscape.com
a6859a2ef4 Keep JDK 1.1 compatible. 2000-11-27 23:40:15 +00:00
nboyd%atg.com
bf6799f305 Sense JDK1.3 dependencies. 2000-11-27 22:23:40 +00:00
pschwartau%netscape.com
05e4c72c57 Removing outdated testcase. See Bugzilla bug 49233. 2000-11-27 19:39:18 +00:00
pschwartau%netscape.com
98fd208cac Removing outdated testcase. See bug 49233. 2000-11-27 19:32:41 +00:00
nboyd%atg.com
b3de2be49d Add hasProperty and use it for the 'in' operator 2000-11-27 17:46:56 +00:00
nboyd%atg.com
26ab0bb603 Fix 19734, accepting patch 2000-11-27 15:13:35 +00:00
nboyd%atg.com
0c163f803c Switch to ant for building. 2000-11-27 15:04:48 +00:00
nboyd%atg.com
0c1b050f8c Add debugger contribution from Christopher Oliver. 2000-11-27 15:00:45 +00:00
pschwartau%netscape.com
6284dfe441 Initital add - 2000-11-27 01:22:47 +00:00
pschwartau%netscape.com
c55db2b118 Adding shell.js for ECMA3 Date tests, and tests for ECMA3 15.9.5.3 - 15.9.5.7 2000-11-25 01:17:24 +00:00
beard%netscape.com
456312842b importable XML project for CWPro6. 2000-11-23 04:27:33 +00:00
beard%netscape.com
07a119a7ed removed import of non-existent org.mozilla.javascript.tools.debugger.* package. 2000-11-23 04:24:34 +00:00
nboyd%atg.com
e2c5be11b5 * 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
waldemar%netscape.com
72079cafdb Added support for white space. Removed initial / production. 2000-11-21 04:07:05 +00:00
waldemar%netscape.com
bcfad386e1 Renamed simple to span 2000-11-21 04:06:44 +00:00
brendan%mozilla.org
ebcad77254 Store real JSString*, not address of auto JSSubString, in local root (60674, r=beard, sr=jband). 2000-11-21 00:51:43 +00:00
beard%netscape.com
8831ac82be updated dependencies 2000-11-21 00:31:10 +00:00
beard%netscape.com
b36e637399 added explicit getString() method to StringFormatter, and removed operator String() methods. 2000-11-21 00:29:39 +00:00
beard%netscape.com
73fda2e03f Made getStaticSlot() static, to remove warning. 2000-11-21 00:15:39 +00:00
beard%netscape.com
9c337d0b4d fixing unsigned/signed conversion warnings. 2000-11-21 00:14:55 +00:00
nboyd%atg.com
428ac32f72 Merge debugger changes into trunk. 2000-11-20 16:16:32 +00:00
nboyd%atg.com
439a621e0a Fix for updated filename. 2000-11-20 14:44:56 +00:00
cls%seawood.org
66a18fcbbf Resurrect REQUIRES so that we have some sort of means to track intermodule dependencies. Bug #59454 r=blizzard@mozilla.org 2000-11-20 07:16:06 +00:00
pavel%gingerall.cz
989cb4c77a - script compilation support (JS::CompileScript)
- compiled script may be executed (JS::exec)
- memory leak fixed
  (JSVALtoSV returning objects; magic has to to a mortal value)
2000-11-19 14:40:33 +00:00
beard%netscape.com
fa3c57b737 CW Pro 6 compatibility. 2000-11-18 03:14:07 +00:00
nboyd%atg.com
0d26acf3ed timestamping file 2000-11-18 02:24:06 +00:00
nboyd%atg.com
ec7864e0d5 Add support in Rhino for BSF without the bsfengines.jar. 2000-11-18 02:14:46 +00:00
danm%netscape.com
2c6d578e14 removing glowcode directives. won't affect you unless you use an obsolete version of glowcode. 2000-11-18 02:13:42 +00:00
nboyd%atg.com
571a5c5624 Fix 60184, and add SwingApplication.js example, with change
to shell to prevent early exit.
2000-11-17 13:05:46 +00:00
rogerl%netscape.com
e5147e7dc9 Added lexutils & exception... to default build. 2000-11-16 23:58:53 +00:00
rogerl%netscape.com
d4fc752316 Example from Waldemar's spec. 2000-11-16 23:50:37 +00:00
rogerl%netscape.com
5e1372ac60 Added BindThis argument, removed 'this' arg from Call. 2000-11-16 23:49:29 +00:00
rogerl%netscape.com
e73ca123f0 Added notion of binding a 'this' to a method to construct a mini-closure
for call semantics. Fixed MSVC warnings from lexutils. Added BindThis
instructionand removed 'this' from Call instruction (is now extracted
from target argument).
2000-11-16 23:48:42 +00:00
mccabe%netscape.com
20aac0252c Not part of the Mozilla build. Update tool paths for server build. 2000-11-16 00:03:20 +00:00
mccabe%netscape.com
5a4d42637c Not part of the Mozilla build. Add js and liveconnect config files for OSFV5.0 2000-11-15 23:57:49 +00:00
nboyd%atg.com
88a011def8 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
0c77e5b5dc Update javadoc. 2000-11-14 20:08:53 +00:00
nboyd%atg.com
f66f393b8d 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
rginda%netscape.com
2c4646c800 refactored lexer bits from icodeasm into lexutils
refactored exceptions from icodeasm into exception*
fixed LeadingCap method names to be interCapped
added string8 and string16 typedefs (as opposed to string vs String)
2000-11-14 03:11:54 +00:00
nboyd%atg.com
d550dceb79 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
jeff.dyer%compilercompany.com
7c6f29466f Fix the first startup test. 2000-11-08 21:05:58 +00:00
mccabe%netscape.com
ea579e0496 Fix to 58946.
Make try { ... } catch(exn) { return exn } work by ensuring that the return value (exn) is maintained on the stack as we pop off scopes to return from the try/catch/finally.  The newly added JSOP_SWAP opcode helps us bubble.

This fixes a regression uncovered by the fix to 56716.

(I've noticed that this causes *depend* builds of the standalone JS shell to crash on this construct, but I've tested in the Mozilla build, and the dependencies seem to solve the problem there.)

r=brendan.mozilla.org
sr=jband@netscape.com
2000-11-08 20:39:43 +00:00
beard%netscape.com
be65966d92 Replaced occurrences of $$, $1, $2 with result, first, second. CodeWarrior doesn't like $ characters in identifiers. 2000-11-08 19:50:39 +00:00
pschwartau%netscape.com
443dc25546 The const keyword is non-ECMA and not currently implemented in Rhino 2000-11-08 01:10:43 +00:00
pavel%gingerall.cz
5ea133c95a - jsperl.c compiled with js programm, not with libjs
- better JS value tie methods
- memory leaks fixed
- support of digging native js error from exception
2000-11-07 15:24:49 +00:00
nboyd%atg.com
629043f2b8 Clean up debug APIs 2000-11-07 03:20:56 +00:00
rogerl%netscape.com
ec89b08c8b Fixed warnings & bogus qualifier. 2000-11-07 01:09:45 +00:00
rogerl%netscape.com
d2f5ecf8ff Fixed statics and constructors bitrot. 2000-11-07 00:59:27 +00:00
rogerl%netscape.com
3e4ebc2d54 More tests and changed 'verify' to live separately. 2000-11-07 00:58:42 +00:00
rogerl%netscape.com
30fd08d267 Testcase for adding setter to non-final field. 2000-11-06 23:00:00 +00:00
rogerl%netscape.com
67413c204e Fixed compare bugs. Report results from js2 test cases. Rewrote generic
equal to match ECMA 1.5
2000-11-06 22:57:10 +00:00
waldemar%netscape.com
3bc827cfed Defined UseIncludesExcludes. Removed support for a:🅱️:c. 2000-11-04 10:47:47 +00:00
waldemar%netscape.com
8b66cf247e Added 'include' and 'exclude' non-reserved words 2000-11-04 10:46:24 +00:00
mccabe%netscape.com
ca67aac5d5 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
rogerl%netscape.com
2322a26c61 More tests 2000-11-03 02:42:23 +00:00
rogerl%netscape.com
06dade6b2e Fixed adding setter to virtual inherited field. 2000-11-03 02:42:01 +00:00
pschwartau%netscape.com
df5477c1c4 initial add 2000-11-03 02:27:44 +00:00
jeff.dyer%compilercompany.com
125d51cbe9 Don't care if required named come after optional named parameters. 2000-11-03 01:44:30 +00:00
rogerl%netscape.com
854f8c34f8 Fixed bogus rest reference, added named tests. 2000-11-02 19:40:42 +00:00
mccabe%netscape.com
6af283c263 Fix previous fix to conform to brendan-nit. 2000-11-02 03:38:09 +00:00
mccabe%netscape.com
b37e1ddf8a Fix to 58007. Add Date.prototype.toDateString, toTimeString methods, by commoning existing date_format helper function with toString. ECMA-262 ed. 3 conformance.
r=brendan@mozilla.org
sr=jband@mozilla.org
2000-11-01 23:57:37 +00:00
nboyd%atg.com
c82387d076 Upgrade to Ant 1.2 and remove deprecated tasks. 2000-11-01 18:43:55 +00:00
rogerl%netscape.com
0ad52b2c9b Fixed signed/unsigned whinage. 2000-11-01 02:04:04 +00:00
rogerl%netscape.com
25a870f386 Simple call tests. 2000-11-01 01:55:46 +00:00
rogerl%netscape.com
25d50d736d Fixed rest parameter index handling. 2000-11-01 01:55:13 +00:00
rogerl%netscape.com
c6dbe02e61 Fixed signed/unsigned whine. 2000-11-01 01:48:15 +00:00
rogerl%netscape.com
c8d1c1d0bb Fixed JSArray for 1.5 semantics stuff. Changed readEvalFile to stop
doing line at a time nonsense. Fixed ExprNode::Index cases to use
InvokeExprNode instead of Binary.
2000-11-01 01:39:43 +00:00
mccabe%netscape.com
a6e9551a7c Fix sense of don't-fail-on-warning check propagated from js.c.
Thanks to John Bandhauer for the catch.

Not part of Mozilla.
2000-10-30 22:42:48 +00:00
nboyd%atg.com
2a73169e97 Fix bug 57060 for/in loop enumerates array elements as numbers, not strings 2000-10-30 19:46:02 +00:00
nboyd%atg.com
0470e048ab 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
shaver%mozilla.org
3b105350a3 #56716, run finally{} before return from try{}/catch{}, r=mccabe, sr=brendan 2000-10-29 18:54:58 +00:00
brendan%mozilla.org
bc3f635a48 Use 0 - i rather than -i to avoid unsigned warning on Windows. 2000-10-29 18:08:40 +00:00
nboyd%atg.com
13c17e9f43 Fix formatting 2000-10-29 18:07:26 +00:00
brendan%mozilla.org
12e9876d3d Handle negative-int-fits-in-jsval string literals as property names equivalent to their int conversions (57043, r=shaver, sr=jband). 2000-10-29 01:30:16 +00:00
waldemar%netscape.com
76e8bcd8d6 Allowed multiple units in a unit expression 2000-10-28 05:55:47 +00:00
waldemar%netscape.com
e84153e3fc Renamed OrdinaryInitialIdentifierCharacter and OrdinaryContinuingIdentifierCharacter to InitialIdentifierCharacter and ContinuingIdentifierCharacter 2000-10-28 05:55:19 +00:00
waldemar%netscape.com
4489b4c7f0 Initial version 2000-10-28 05:54:44 +00:00
waldemar%netscape.com
8df2f5a1c4 Added JS20/Units 2000-10-28 05:53:23 +00:00
rogerl%netscape.com
71aae60c11 Fixed gcc whine about char16. 2000-10-28 00:07:36 +00:00
rogerl%netscape.com
2d9a47fce0 Removed unused parameter. 2000-10-28 00:01:58 +00:00
rogerl%netscape.com
ddf915e607 Named parameter work. 2000-10-27 23:55:31 +00:00
nboyd%atg.com
af79f7675a Add javadoc. 2000-10-27 20:17:56 +00:00
nboyd%atg.com
577b2d7b62 Fix tree and icode printing. 2000-10-27 20:17:19 +00:00
mccabe%netscape.com
bf56ffa531 Changes to update standalone JavaScript and Liveconnect library builds to the New Era of NSPR 4 and JDK 1.2.
Fixes for OSF; they they assume the existence of /share/builds/components/[jdk|nspr]/SOME_VERSION/etc/etc.  Sorry, external folks!

Not part of the Mozilla build.
2000-10-27 01:10:09 +00:00
mccabe%netscape.com
eedc61dabe Changes to update standalone JavaScript and Liveconnect library builds to the New Era of NSPR 4 and JDK 1.2.
Fixes for Linux and SunOS; they assume the existence of /share/builds/components/[jdk|nspr]/SOME_VERSION/etc/etc.  Sorry, external folks!

Not part of the Mozilla build.
2000-10-27 00:08:31 +00:00
mccabe%netscape.com
cf952461b1 Fix standalone liveconnect build to not complain about missing fdlibm when asked to clean or clobber.
Not part of the Mozilla build.
2000-10-26 23:48:16 +00:00
mccabe%netscape.com
acde6ae541 Make commandline shells for javascript and xpconnect-enabled javascript not return failure error codes when a warning occurs.
The failure codes were confusing our test drivers.

Not part of the Mozilla product.
2000-10-26 23:45:43 +00:00
jeff.dyer%compilercompany.com
e48821d2b3 Added a couple missing redesignates. 2000-10-26 19:51:31 +00:00
beard%netscape.com
6822ac75c4 adding nodefactory.h to dependency mix 2000-10-26 03:43:41 +00:00
beard%netscape.com
7ac1d2ad6d fixing confusing code for linux, static Arena() -> getArena() 2000-10-26 03:40:51 +00:00
mccabe%netscape.com
0073517078 Add magic emacs modeline comment to make it display in Makefile mode.
Not part of the Mozilla build.
2000-10-26 02:59:03 +00:00
mccabe%netscape.com
8533da2b3b Add magic emacs modeline comment to make it display in Makefile mode.
Not part of the Mozilla build.
2000-10-26 02:13:07 +00:00
jeff.dyer%compilercompany.com
83f1b1e028 Added to FunctionDefinition a pointer that marks the position in the
parameter list that the named parameter marker occurs. The names at or
after that position may or may not have aliases associated with them.
2000-10-25 12:46:23 +00:00
brendan%mozilla.org
1dbf40a31a Fix obj.toSource to get attributes using the object in which id was found (56482, r=jband, sr=shaver). 2000-10-25 07:00:31 +00:00
brendan%mozilla.org
cfb8447863 Home sp before calling js_ValueToStringAtom and js_ValueToFunction (bug 57826, r=mccabe, sr=jband). 2000-10-25 04:04:29 +00:00
jeff.dyer%compilercompany.com
bee1460e55 Fix assertions that I missed in partial debug mode. Also fixed problem with
optional parameter after the named parameter marker.
2000-10-23 22:23:32 +00:00
jeff.dyer%compilercompany.com
2fe8a9cd77 Parsing named parameters and arguments according to the Sep-23rd revision
of the grammar. WARNING: struct VariableBinding has grown. Recompile all
after getting this revision.
2000-10-23 19:39:55 +00:00
nboyd%atg.com
116febeef1 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
006574d547 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
26cffce30e Fixed typo in package target. 2000-10-23 15:44:05 +00:00
nboyd%atg.com
ca002f3c20 Fix 56883. 2000-10-23 14:31:05 +00:00
nboyd%atg.com
ec341691ee Patch from beard@netscape.com to fix 56879. 2000-10-23 14:30:40 +00:00
brendan%mozilla.org
d910b78a0c Comment change only: document TOK_TRY and TOK_CATCH nodes. 2000-10-22 22:47:40 +00:00
beard%netscape.com
b4afdbb7d0 Fixed access paths, link errors. [Not part of build.] 2000-10-21 07:29:53 +00:00
beard%netscape.com
115a9169e3 Added static library targets, JSRef.o and JSRefDebug.o. [Not part of build.] 2000-10-21 06:46:21 +00:00
beard%netscape.com
306fcd0fcf LiveConnect support for Mac. [Not part of standard build.] 2000-10-21 06:44:54 +00:00
beard%netscape.com
f6446960c2 fixed some spacing problems, Makefiles use hard tabs! 2000-10-21 00:57:54 +00:00
beard%netscape.com
60dcd1863c update depenencies for linux 2000-10-21 00:55:59 +00:00
beard%netscape.com
7b4dd42256 added xmlparser.cpp. 2000-10-21 00:51:32 +00:00
beard%netscape.com
f34200b426 fixing unsigned warnings, a leetle error checking. 2000-10-21 00:50:44 +00:00
beard%netscape.com
88fee00305 fixing unsigned/signed conversion warnings. 2000-10-21 00:43:35 +00:00
rogerl%netscape.com
1e4fe6a77b Fixed signed/unsigned warning. 2000-10-21 00:38:59 +00:00
rogerl%netscape.com
0d709f17f8 Changed ArgumentList to ArgumentList*. (Still need to handle the
destructor though).
2000-10-21 00:31:22 +00:00
rogerl%netscape.com
699cd8646f Changed ArgumentList to ArgumentList*. Changed ICodeGenerator to take a
Context instead of world & global pair. Connected to ICodeAssembler from
XMLParser.
2000-10-21 00:30:23 +00:00
rginda%netscape.com
ac1ca3b9f0 fixups for lame windows parser, and multiple parse per instance issues. 2000-10-20 22:18:52 +00:00
rginda%netscape.com
fdb5df401b lalala, things run, lalala. (well, kinda.) 2000-10-20 10:33:57 +00:00
rginda%netscape.com
d4c43e16e7 more work on producing real live instructionstreams 2000-10-20 03:33:37 +00:00
rginda%netscape.com
70055678b6 starting to turn the icode StatementNode vector into actual Instructions... 2000-10-20 01:13:03 +00:00
rogerl%netscape.com
5edeb1ee3d changes to XMLLexer etc. 2000-10-19 23:07:58 +00:00
rogerl%netscape.com
dca0647bab Adding xmlparser stuff 2000-10-19 22:34:23 +00:00
brendan%mozilla.org
1ccb4a996e - Treat 08, 09, 078, 079, etc. as decimal, but warn that they're not legal
ECMA-262 octal literals.  Old code would split 08 into 0 and 8 if JS1.2 or
  other non-ECMA version, and always split 078 into 07 and 8, resulting in
  missing ; syntax errors.

- Fix CheckFinalReturn to be aware of JS_HAS_EXCEPTIONS, finally (sic).  Lots
  of help from jag (Peter Annema, disttsc@bart.nl), thank him.

Both changes got lumped under bug 49233, and are r=jband, sr=shaver.
2000-10-19 19:21:53 +00:00
jeff.dyer%compilercompany.com
c194d27da3 b=53849, r=mstoltz@netscape.com,edburns@acm.org, a=brendan@mozilla.org.
This fix makes Liveconnect smarter about getting a security principal
when verifying that call from an applet to JS should be allowed.
2000-10-19 11:51:22 +00:00
beard%netscape.com
a85ec92774 More const String& happiness. 2000-10-19 03:37:02 +00:00
beard%netscape.com
1352d297a2 const String& to soothe g++ 2000-10-19 03:33:51 +00:00
beard%netscape.com
6561f9adaf Fixing linux breakage, incorrect constructor name. 2000-10-19 03:32:23 +00:00
rginda%netscape.com
05f1f7e5e5 made (most) parse*operand functions do the right thing... the rest choke for now. 2000-10-19 00:03:12 +00:00
rogerl%netscape.com
68b8fcce5f More warning whining. 2000-10-19 00:02:37 +00:00
rogerl%netscape.com
216cd29273 Quiet warnings 2000-10-18 23:55:47 +00:00
rogerl%netscape.com
274ac67b4a Added icodeasm & xmlparser to build 2000-10-18 23:46:39 +00:00
rogerl%netscape.com
7806a764aa Added XMLparsing to load a class. Fixed handling of forward references to
class methods/fields.
2000-10-18 23:37:44 +00:00
brendan%mozilla.org
c2d6de8a37 Don't nuke the stackPool in JS_GC if it's in use by cx->stackHeaders or cx->fp (or other future users; 57096, r=shaver, a=jband). 2000-10-18 22:21:46 +00:00
rginda%netscape.com
f983d862e9 making argument name optional in argumetlists 2000-10-18 22:01:17 +00:00
rginda%netscape.com
2662739c56 waugh, "..." isn't supported on windows. Added full icode map generated by the new perl script. Added a comment character to the assembler, and required newlines after instructions. 2000-10-18 20:44:14 +00:00
rginda%netscape.com
83ad281615 adding genmap.pl to generate the icode map 2000-10-18 20:41:03 +00:00
brendan%mozilla.org
e582a264b6 Fix cx-for-acx typo-blunder (57070, r=mccabe, a=jband). 2000-10-18 16:00:39 +00:00
rginda%netscape.com
80d2831bce fixed testcase and icodemap size 2000-10-18 04:33:54 +00:00
rginda%netscape.com
8d5c21f096 whee! the parse "tree" minimally "works" 2000-10-18 03:12:42 +00:00
rginda%netscape.com
9a4a9a865d more icodeasm work... parse "tree" is finally testable... it might even work. 2000-10-18 01:02:13 +00:00
rginda%netscape.com
ab377fd783 working in labels 2000-10-17 08:02:16 +00:00
rginda%netscape.com
169089589e icode assembler changes 2000-10-17 00:41:54 +00:00
jband%netscape.com
2fd2e32188 fix crasher bug 56843 in case of if('wrappedJSObject' in foo). Better solution for bigger problem in the works. a=brendan@mozilla.org r=shaver@mozilla.org 2000-10-16 22:34:26 +00:00
jband%netscape.com
af4e110500 remove JS gc roots on wrappedjs objects during xpconnect shutdown to avoid needless rooting and noise in root leak logs. bug 55426. a=brendan@mozilla.org r=mccabe@netscape.com 2000-10-15 05:42:25 +00:00
jband%netscape.com
c88c9a1fa4 only emit leaked root warnings when the JSRuntime is being deleted. This changes around the fix of bug 55117 and cleans up the incorrect leaked root warnings in bug 55426. a=brendan@mozilla.org r=mccabe@netscape.com 2000-10-15 00:20:48 +00:00
rginda%netscape.com
6a0f4f16a9 guess what? yep, more icode asm hacking. 2000-10-14 00:06:42 +00:00
rogerl%netscape.com
6331af284f Bug #46196, a=brendan, r=mccabe. Fixed recursive death in out of memory
situation.
2000-10-13 22:11:52 +00:00
brendan%mozilla.org
4174a19961 Checking in for rogerl (53614, r=mccabe, a=me). 2000-10-13 01:58:40 +00:00
rginda%netscape.com
074349e52d adding some comments 2000-10-12 23:59:25 +00:00
rginda%netscape.com
f74b1d34dd icode assembler still in progress 2000-10-12 23:58:51 +00:00
rginda%netscape.com
cdb2f4b71c move # to first column for Very Lame Compilers. 2000-10-12 23:58:30 +00:00
nboyd%atg.com
024a61b8eb Fix bug 56185. 2000-10-12 16:10:55 +00:00
nboyd%atg.com
dbbc5437de Fix bug 56158 2000-10-12 14:59:19 +00:00
rginda%netscape.com
a7476e025b more icodeasm hacks 2000-10-12 07:55:13 +00:00
beard%netscape.com
4966a3bd51 Outer class loader support, using ClassManager. 2000-10-12 06:30:29 +00:00
rginda%netscape.com
fad36a7a42 more hacking (flailing, maybe) on the icode assembler 2000-10-12 01:32:01 +00:00
rginda%netscape.com
8cf3b758ad initial checkin of simple query script for the icode hash 2000-10-12 01:31:33 +00:00
rogerl%netscape.com
8b43517097 Bug #55114, a=brendan, r=mccabe. Fixed failure in enumerating Java string
objects.
2000-10-12 01:23:13 +00:00
rogerl%netscape.com
629af4f7ab Bug #53614, a=brendan,r=mccabe. Fixed crash for calling RegExp literal. 2000-10-12 00:18:40 +00:00
rogerl%netscape.com
9573843374 Bug #52479 , a=brendan,r=mccabe. Fixed crash on bad \uXXXX in input. 2000-10-11 22:34:40 +00:00
rginda%netscape.com
efb89b56d0 initial checkin of icode assembler 2000-10-11 02:44:14 +00:00
rginda%netscape.com
a5b6788b8d seperate icode hash into module 2000-10-11 02:42:39 +00:00
waldemar%netscape.com
7d5f2e430b Added s flag 2000-10-11 02:28:13 +00:00