Commit Graph

3912 Commits

Author SHA1 Message Date
nboyd%atg.com
b52f96cd91 Hi, Norris!
In our browser we need to support scripts that use as an identifier name future reserved keywords such as interface. The scripts are rather old and perfectly legal under previous revisions of EcmaScript which does not included the list of almost every Java keyword to the future reserve.

To support this I added an option to query Context.hasFeature for FEATURE_RESERVED_KEYWORD_AS_IDENTIFIER:

    /**
     * if hasFeature(RESERVED_KEYWORD_AS_IDENTIFIER) returns true,
     * treat future reserved keyword (see  Ecma-262, section 7.5.3) as ordinary
     * identifiers but warn about this usage
     */
    public static final int FEATURE_RESERVED_KEYWORD_AS_IDENTIFIER = 3;

The corresponding code in TokenStream checks for it and issues just a warning when this feature is enabled.

I also think that it would be better not to return RESERVED as a token from TokenStream.getToken but report the specific syntax error immediately because it is very unclear from the error message:

js> x.interface = 1
js: "<stdin>", line 1: uncaught JavaScript exception: SyntaxError: missing name after . operator (<stdin>; line 1)
js: x.interface = 1
js: ..........^

what exactly went wrong. I can send a patch later for that.

Regards, Igor
2001-11-23 20:38:50 +00:00
nboyd%atg.com
1ce9a8feb9 Update for new failures. 2001-11-23 01:20:56 +00:00
nboyd%atg.com
4ef25a301c Hi,
I'm working on a project which uses rhino. I wanted to have finer
control over class generation and saving so I've done some patching
and clean up on the current rhino tip.

The biggest change I've made is the replacement of ClassOutput with
ClassRepository that has the single method:

    public boolean storeClass(String className, byte[] classBytes,
                           boolean isTopLevel) throws IOException;

This interface allows any arbitary storage method, such as a
Hashtable/Map. In addition it also allows you to specify whether a
class should be loaded, via returning true or false.  You can still use
ClassOutput as I've coded an internal wrapper.

With this interface it has also been possible to strip out the file
saving code from Codegen and OptClassNameHelper.  The file
saving code is now an inner class FileClassRepository in Context. As
a consequence of this  I've stripped out some methods from ClassNameHelper.
The resulting code is much more cleaner then before hand and everything
still works as per usual.

Other small additions are:
  o  Annonymous functions are now named class$1 instead of class1
  o  get/setClassName added to ClassNameHelper exposed in Context.

My final thoughts are, since all methods in ClassNameHelper except reset()
are now exposed whould n't it be much more "cleaner" to simply to some
how work around to eliminate reset() and provide getClassNameHelper()
via Context?  You could then remove the numerous ClassNameHelper shadow
methods from Context.

Likewise, FileClassRepository could be made a public class very easily
and combined with the above result in a dozen or so less public methods in
Context.

Anyway, the changes can be found on http://www.cins.co.uk/rhino.zip

Hope it is of use to some

Kemal Bayram
2001-11-22 15:48:21 +00:00
brendan%mozilla.org
106186f720 Thanks to scole@planetweb.com (Steven Cole) for fixing date_format to respect PRMJ_FormatTime's return value (102159, r=beard, sr=brendan). 2001-11-21 23:53:54 +00:00
brendan%mozilla.org
3350a394b5 Don't eagerly allocate fatlock freelist chunks; don't preallocate so much, and use a smaller global lock hashtable (109218, r=shaver/sr=jband). 2001-11-21 23:28:52 +00:00
pschwartau%netscape.com
e3560ba177 Removing two tests from the skip list because they have been removed from the repository. 2001-11-21 22:16:19 +00:00
pschwartau%netscape.com
63bbacdb75 Removing test from repository. It contains very large blocks.
But because of the fix to bug 80981, these are no longer large enough
to trigger the internal error and exit code 3 that the test looked for.
2001-11-21 21:59:31 +00:00
pschwartau%netscape.com
f3c83ec62e Skipping another test with a large switch() statement 2001-11-21 21:34:25 +00:00
pschwartau%netscape.com
a929ee24ec Initial add. Regression test for bug 80981. 2001-11-21 21:17:31 +00:00
nboyd%atg.com
46b8e5185c Hi,
I'm working on a project which uses rhino. I wanted to have finer
control over class generation and saving so I've done some patching
and clean up on the current rhino tip.

The biggest change I've made is the replacement of ClassOutput with
ClassRepository that has the single method:

    public boolean storeClass(String className, byte[] classBytes,
                           boolean isTopLevel) throws IOException;

This interface allows any arbitary storage method, such as a
Hashtable/Map. In addition it also allows you to specify whether a
class should be loaded, via returning true or false.  You can still use
ClassOutput as I've coded an internal wrapper.

With this interface it has also been possible to strip out the file
saving code from Codegen and OptClassNameHelper.  The file
saving code is now an inner class FileClassRepository in Context. As
a consequence of this  I've stripped out some methods from ClassNameHelper.
The resulting code is much more cleaner then before hand and everything
still works as per usual.

Other small additions are:
  o  Annonymous functions are now named class$1 instead of class1
  o  get/setClassName added to ClassNameHelper exposed in Context.

My final thoughts are, since all methods in ClassNameHelper except reset()
are now exposed whould n't it be much more "cleaner" to simply to some
how work around to eliminate reset() and provide getClassNameHelper()
via Context?  You could then remove the numerous ClassNameHelper shadow
methods from Context.

Likewise, FileClassRepository could be made a public class very easily
and combined with the above result in a dozen or so less public methods in
Context.

Anyway, the changes can be found on http://www.cins.co.uk/rhino.zip

Hope it is of use to some

Kemal Bayram <rhino@cins.co.uk>
2001-11-21 17:12:57 +00:00
seawood%netscape.com
7733357d51 Rename 'install' build phase to 'libs'.
Bug #56601 r=pavlov
2001-11-21 09:49:41 +00:00
brendan%mozilla.org
9b46da979c Thanks to scole@planetweb.com, no more un-ECMA error for /* in a /**/ comment (110286, r=khanson, sr=brendan). 2001-11-20 23:35:45 +00:00
brendan%mozilla.org
d2eb2bf046 Better fix than 0.9.6 minimal fix for NUL-termination assumption in replace (108832, r=shaver, sr=jband). 2001-11-20 21:26:33 +00:00
brendan%mozilla.org
5eaba7585d Don't warn or 'correct' = to == in a condition unless the right operand has greater precedence than == (106244, r=shaver, sr=jband). 2001-11-20 05:20:57 +00:00
rginda%netscape.com
43f2ce47ff bug 110903, patch=brendan, sr=shaver, r=me
Call new script hook for scripts created via xdr.
2001-11-20 02:47:41 +00:00
brendan%mozilla.org
024ffbebe7 Don't ass-u-me fp->argv => fp->fun (109635, sr=shaver/jband). 2001-11-20 02:37:01 +00:00
timeless%mac.com
060425ec59 Bugzilla Bug 110080 change !NS_SUCCEEDED(status) to NS_FAILED(status)
s/!NS_SUCCEEDED/NS_FAILED/g;s/!NS_FAILED/NS_SUCCEEDED/g;
r=dougt sr=hewitt
2001-11-19 06:45:00 +00:00
pschwartau%netscape.com
216a94f367 Initial add. Regression test for bug 110286. 2001-11-17 03:20:45 +00:00
brendan%mozilla.org
051d085765 Remove __call__ and add a callback used to check f.caller access for any function object f (109113, r=jst, sr=jband). 2001-11-16 02:56:49 +00:00
alecf%netscape.com
d49a4ba867 win32 REQUIRES cleanup 2001-11-15 03:49:13 +00:00
seawood%netscape.com
c7ca889121 Build libmozjs during the install phase.
Bug #104307 sr=jband
2001-11-14 04:52:55 +00:00
bzbarsky%mit.edu
f2ee8260a0 Use NS_LITERAL_STRING instead of NS_ConvertASCIItoUCS2 where possible
(i.e. where the string is a literal).  Bug 104159, r=jag, sr=alecf
2001-11-14 01:33:42 +00:00
pschwartau%netscape.com
0a61967ca6 Adding another case to test. 2001-11-13 19:46:27 +00:00
brendan%mozilla.org
8b9fb46499 Avoid ClaimScope (lock-free to -full transition) in JS_GetClass and js_FinalizeObject called from the GC (109183, r=shaver, sr=jband). 2001-11-11 21:25:13 +00:00
jband%netscape.com
cd8dc8ee2c not part of build. Now that null DOM strings are correctly supported we can fix the test case 2001-11-10 22:35:26 +00:00
pschwartau%netscape.com
7a9c2596f2 Fixing a typo. 2001-11-10 02:47:52 +00:00
pschwartau%netscape.com
267f1d9202 Adding another case to test. 2001-11-10 02:46:24 +00:00
brendan%mozilla.org
91397f1e55 For now (0.9.6), str_replace requires an independent replacement string (108832, r=shaver, sr=jband, a=asa). 2001-11-08 23:53:33 +00:00
pschwartau%netscape.com
b0756acf45 Initial add. Regression test for bug 108440. 2001-11-07 23:20:48 +00:00
nboyd%atg.com
e60c42afed Patch from Igor:
I suggest to move the code in ScriptableObject.get/put that deals with getter/setter
into separated methods so it would be easy to follow the code and the attached patch
does just that.
2001-11-07 14:15:48 +00:00
brendan%mozilla.org
63cb2c1077 Fix Function.call(this, 'alert(42)')() so the anonymous function finds its nearest scripted caller's principals (90546, sr=shaver&jband). 2001-11-07 06:34:04 +00:00
dbaron%fas.harvard.edu
8cd8d91750 Ensure that string literals are used as |const char*| rather than |char*|. r=jag sr=brendan b=107052 2001-11-07 06:24:10 +00:00
mkaply%us.ibm.com
5991fb004d #105476
r=os2team, sr=brendan@mozilla.org
Add ASM implementation of js_CompareAndSwap for OS/2 VACPP
2001-11-07 05:20:33 +00:00
dbaron%fas.harvard.edu
bfb2f49916 Add assertions that users of nsDependentC?String meet the requirements of nsAFlatC?String. Add nsDependentSingleFragmentC?Substring for users that don't. Additional cleanup after bug 100214. b=104651 r=jag sr=scc 2001-11-07 04:12:20 +00:00
brendan%mozilla.org
c220d0c707 Avoid recursive join/toString death (108440, r=shaver, sr=jband). 2001-11-07 00:15:44 +00:00
brendan%mozilla.org
be20b21443 Move the oversized arena back-pointer to a well-aligned header extension lying just behind a->base (108013, sr=waterson&jband). 2001-11-07 00:11:22 +00:00
jband%netscape.com
0c81cb1768 better error message when zero passed where object or null expected. bug 108284. r=dbradley sr=shaver. Also, fix uninitilized counter var in debug only code rs=jband 2001-11-06 00:40:54 +00:00
rginda%netscape.com
452f1525a4 removing dead code, see mozilla/js2 2001-11-05 21:46:17 +00:00
rginda%netscape.com
0065b1bb33 removing dead code, see mozilla/js2 2001-11-05 21:38:18 +00:00
seawood%netscape.com
be10c3b1a8 Backing out fix for remote mach-o builds as it left mach-o builds fragile.
Add TK_CFLAGS back to default CFLAGS/CXXFLAGS.
Bug #107696
2001-11-03 03:29:05 +00:00
rginda%netscape.com
2085b262f0 bug 108257, "source notes broken for functions compiled via JS_CompileUCFunctionForPrincipals", sr=brendan, r=shaver
no need to emit the function body after calling FunctionBody
2001-11-03 00:10:47 +00:00
peterv%netscape.com
3470de8c5b Add build option for the JS profiler on Mac. a=dbradley. Not part of the build. 2001-11-02 10:27:52 +00:00
pschwartau%netscape.com
c97d13ddcf Improving readability. 2001-11-02 02:17:57 +00:00
pschwartau%netscape.com
491a9eb409 Initial add. Regression test for bug 107771. 2001-11-02 02:06:54 +00:00
dbradley%netscape.com
5cb0f9371f Bug 83426 - Remove DOM exception hack. r=jst, r=dbradley, sr=jband 2001-11-01 15:52:53 +00:00
jband%netscape.com
3bcdaf198c fixing warnings from recent landing and uncommenting test cases I did not mean to comment out for the checkin 2001-11-01 05:18:35 +00:00
brendan%mozilla.org
3c38914b93 Fix nul-termination assumption hidden in lastIndexOf, broken by dependent strings fix for bug 56940 (107771, r=jag, sr=waterson). 2001-11-01 03:19:54 +00:00
jband%netscape.com
a2511b96a8 fix Mac bustage. I can't believe the Mac can't do this conversion without a cast! 2001-11-01 02:36:19 +00:00
jband%netscape.com
3ff792dd5d the HP compiler says that anonymous unions can't even have structs. So the union must be named. Fixing that bustage 2001-11-01 01:45:48 +00:00
jband%netscape.com
c052cc3bf0 fix Mac bustage (I hope). I think these names conflicted with other names 2001-11-01 01:15:53 +00:00