4934 Commits

Author SHA1 Message Date
igor%mir2.org
7770fee318 1.More checks are added for bad usage of ClassFileWriter methods.
2. Hashtable is replaced by ObjToIntMap or UintMap to minimize memory usage.

3. Converting of strings to utf8 encoding is coded  explicitly to avoid overhead  of creating many objects.


git-svn-id: svn://10.0.0.236/trunk@139378 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-13 09:31:01 +00:00
igor%mir2.org
45c178b5bb Making class public
git-svn-id: svn://10.0.0.236/trunk@139376 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-13 07:52:07 +00:00
beard%netscape.com
23e5da2ba1 Fix for bug #53593, sr=brendan, r=beard
git-svn-id: svn://10.0.0.236/trunk@139372 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-13 05:37:07 +00:00
brendan%mozilla.org
d6a5cd1a9f Fix JS_[GS]etContextThread return type; add JSCLASS_NEW_RESOLVE_GETS_START (196966, r=shaver).
git-svn-id: svn://10.0.0.236/trunk@139345 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-12 20:29:16 +00:00
dbradley%netscape.com
dc703ab238 bug 196241 - Refactors script evaluation pre and post logic into a class. r=timeless, sr=brendan
git-svn-id: svn://10.0.0.236/trunk@139344 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-12 20:26:21 +00:00
dbradley%netscape.com
63ca81d64d bug 188229 - [AxPlugin] Security policy should be per-domain configurable r=adamlock, sr=alecf NOTE: these changes are not part of the regular build.
git-svn-id: svn://10.0.0.236/trunk@139341 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-12 20:05:54 +00:00
dbradley%netscape.com
92efcb5438 Bug 194043 - Refactor exception logic between IDispatch and XPConnect. r=adamlock@netscape.com, sr=jst@netscape.com
git-svn-id: svn://10.0.0.236/trunk@139327 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-12 15:21:06 +00:00
igor%mir2.org
f5ee9d0a39 Removal of generation of non-operational dup/pop when creating function objects for function statements.
git-svn-id: svn://10.0.0.236/trunk@139325 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-12 09:39:16 +00:00
brendan%mozilla.org
d282bac114 Give JSScope a proper flags member, without increasing its size (part of 196097, r=shaver).
git-svn-id: svn://10.0.0.236/trunk@139287 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 20:30:55 +00:00
igor%mir2.org
d1fdaf2c07 Fixing a regression in Codegen.transform which effectively disabled direct call optimization: FunctionNode.FUNCTION_STATEMENT should be compared against fn.getFunctionType(), not fn.getType()
git-svn-id: svn://10.0.0.236/trunk@139281 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 17:17:57 +00:00
igor%mir2.org
a23c37fddf Introduction of Codegen.mainCodegen to hold the main generator object and layout cosmetics.
git-svn-id: svn://10.0.0.236/trunk@139270 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 10:01:32 +00:00
igor%mir2.org
12dbf4a3e8 Use (size + 31) >> 5, not (size >> 5) + 1 as a size for int array buffer so in the case when size % 32 == 0 array would not hold a never used tail element.
git-svn-id: svn://10.0.0.236/trunk@139268 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 09:59:39 +00:00
igor%mir2.org
c7bbfa5fda 1. Consistently use Context.inFunction and Context.fnCurrent instead of calling instanceof/cast for OptFunctionNode on Context.scriptOrFn
2. Removal of Codegen.superClassSlashName field since Codegen.superSlashName since it is never used as a part of a signature and ClassFileWriter converts . into / in type name automatically.


git-svn-id: svn://10.0.0.236/trunk@139262 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 07:25:13 +00:00
cls%seawood.org
3e1e711a04 Adding mingw support to js.
Bug #134113 r=brendan


git-svn-id: svn://10.0.0.236/trunk@139249 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 03:27:07 +00:00
seawood%netscape.com
c0d2295c8f Remove unneeded local win32 jsinterop.obj target that's causing dependency issuees.
Thanks to John Morrison <jrgm@netscape.com> for the patch.
Bug #196633 r=cls sr=brendan


git-svn-id: svn://10.0.0.236/trunk@139235 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-11 00:13:44 +00:00
igor%mir2.org
12783ca6b9 Since NodeTransformer.transform(tree) never replaces tree, change its signature to return void which allows to eliminate ScriptOrFnNode.replaceFunctionNode.
git-svn-id: svn://10.0.0.236/trunk@139214 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-10 20:26:58 +00:00
igor%mir2.org
84ef3fcaa9 Simplification of optimized node transformer: search for direct call optimization targets in Codegen.transform before constructing ObjTransformer instance to avoid additional checks for top-level script in ObjTransformer.transform
git-svn-id: svn://10.0.0.236/trunk@139213 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-10 20:24:06 +00:00
igor%mir2.org
540c7a5c5b Added API to make array read only, after which any attempt to modify it will trigger RuntimeException
git-svn-id: svn://10.0.0.236/trunk@139211 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-10 20:19:22 +00:00
igor%mir2.org
da06697c6e 1. Removal of unused fields and methods:
Codegen.java:
-    private int ordinal;
-    private short scriptRuntimeIndex;
-    private short debug_pcLocal;
-    private short debugStopSubRetLocal;

OptFunctionNode.java
-    private ObjArray itsDirectCallTargets;
-    void addDirectCallTarget(FunctionNode target) {
-    ObjArray getDirectCallTargets() {

2. Better naming and method moves in Codegen.java for better readability


git-svn-id: svn://10.0.0.236/trunk@139202 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-10 17:46:32 +00:00
seawood%netscape.com
e420e5df5d Fix dependency problems with local targets.
Bug #196633 r=jrgm


git-svn-id: svn://10.0.0.236/trunk@139185 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-10 05:16:06 +00:00
brendan%mozilla.org
22dc15707d [Second check-in attempt; last night's was backed out, but I claim it was because of bad dependencies or timestamp problems in the Win32 builds. /be] Add cx->lastAtom, a long overdue addition to the per-context GC root set (196461, r=shaver).
git-svn-id: svn://10.0.0.236/trunk@139175 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-09 18:16:27 +00:00
jrgm%netscape.com
7073103e1a backout changes for bug 196461, due to startup crash on win32
git-svn-id: svn://10.0.0.236/trunk@139164 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-09 05:57:23 +00:00
brendan%mozilla.org
a1be04d6cb Add cx->lastAtom, a long overdue addition to the per-context GC root set (196461, r=shaver).
git-svn-id: svn://10.0.0.236/trunk@139163 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-09 03:12:56 +00:00
cls%seawood.org
dac8d1a090 Adding mingw makefile changes.
Bug #134113 r=bryner


git-svn-id: svn://10.0.0.236/trunk@139140 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-08 05:57:15 +00:00
brendan%mozilla.org
1e6fa1298d Reorder static and const to match tradition; reomve DEBUG_brendan cruft.
git-svn-id: svn://10.0.0.236/trunk@139130 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-08 01:28:02 +00:00
cls%seawood.org
609a196b54 XP code changes required for mingw landing.
Add NS_STDCALL macros for functions that require stdcall declarations.
Add NS_STDCALL_FUNCPROTO macro for stdcall function prototype typedefs.
Bug #134113 r=dougt sr=dbaron


git-svn-id: svn://10.0.0.236/trunk@139083 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-07 06:07:56 +00:00
brendan%mozilla.org
7ca23cd385 Infrastructure for bug 92773, r=shaver@mozilla.org:
- call the JSRuntime's checkObjectAccess callback, if configured, for each
  get or set that invokes a user-defined function (a user-defined function is
  a scripted or native function object, not a native JSPropertyOp C function).
  The value passed as an in-out parameter in *vp is the function object, so
  the callback could, e.g., clone function objects and configure them with
  different parent objects, if that helped import them into a trust domain.
- Fix a long-standing bug that broke the deprecated, old-style, and rarely-
  used top-level getter/setter function declaration form:

    getter function f()  { return ++x; }
    setter function f(y) { return x = y; }

  We want js_CheckRedeclaration to complain only if a permanent getter is
  being redefined by another getter, likewise for a setter -- but not when
  (as above) a setter is being added to a top-level object for the same id
  as a pre-existing getter (or vice versa).


git-svn-id: svn://10.0.0.236/trunk@139038 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-06 19:45:18 +00:00
igor%mir2.org
d2b2a8974a Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=196017 :
Use Thread.getContextClassLoader() as the last resort when searching for classes.


git-svn-id: svn://10.0.0.236/trunk@139016 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-06 09:29:00 +00:00
dougt%netscape.com
17b4467f60 removing NS_MT_SUPPORTED define. b=186494, r=dougt, r=seawood
git-svn-id: svn://10.0.0.236/trunk@138992 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-05 23:30:22 +00:00
dougt%netscape.com
f177f9378c backing out js changes which may have caused tbox test failures
git-svn-id: svn://10.0.0.236/trunk@138926 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-05 05:05:39 +00:00
timeless%mozdev.org
aa19f479ed Bug 195289 Enable people to use DumpJSStack and friends from nondebug builds if they list themselves as xpc_hackers
r=dbradley sr=jst


git-svn-id: svn://10.0.0.236/trunk@138912 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-05 03:12:04 +00:00
brendan%mozilla.org
5dd4c1fa6f Infrastructure for bug 92773, r=shaver@mozilla.org:
- call the JSRuntime's checkObjectAccess callback, if configured, for each
  get or set that invokes a user-defined function (a user-defined function is
  a scripted or native function object, not a native JSPropertyOp C function).
  The value passed as an in-out parameter in *vp is the function object, so
  the callback could, e.g., clone function objects and configure them with
  different parent objects, if that helped import them into a trust domain.
- Fix a long-standing bug that broke the deprecated, old-style, and rarely-
  used top-level getter/setter function declaration form:

    getter function f()  { return ++x; }
    setter function f(y) { return x = y; }

  We want js_CheckRedeclaration to complain only if a permanent getter is
  being redefined by another getter, likewise for a setter -- but not when
  (as above) a setter is being added to a top-level object for the same id
  as a pre-existing getter (or vice versa).


git-svn-id: svn://10.0.0.236/trunk@138898 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-05 01:33:19 +00:00
igor%mir2.org
5fb918e45a Integration of VariableTable into ScriptOrFnNode to avoid the need to have a separated wrapper class around ObjArray/ObjToIntMap
git-svn-id: svn://10.0.0.236/trunk@138863 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-04 15:10:20 +00:00
brendan%mozilla.org
8acc5df2d8 Quick followup to patch for 174341.
git-svn-id: svn://10.0.0.236/trunk@138816 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-04 00:01:21 +00:00
brendan%mozilla.org
b3048a359d My take on a patch and great idea from igor@icesoft.com (Igor Bukanov) for bug 195385, r=shaver.
git-svn-id: svn://10.0.0.236/trunk@138753 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-01 06:39:51 +00:00
timeless%mozdev.org
3629507ac7 Bug 136264 HTMLCollection Object wrapped by XPConnect has members whose names shadow each other
r=jst sr=jst


git-svn-id: svn://10.0.0.236/trunk@138710 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-28 19:07:51 +00:00
brendan%mozilla.org
d162180fd1 Fix typo in old comment.
git-svn-id: svn://10.0.0.236/trunk@138698 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-28 07:18:40 +00:00
brendan%mozilla.org
e35c8b596b Constipation of (JS|PL)DHashTableOps (195298, r/sr=shaver/alecf).
git-svn-id: svn://10.0.0.236/trunk@138697 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-28 07:17:59 +00:00
timeless%mozdev.org
62339cf898 Bug 136260 ChromeWindow Object wrapped by XPConnect has members whose names shadow each other
r=jst sr=jst


git-svn-id: svn://10.0.0.236/trunk@138671 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-28 02:34:01 +00:00
pschwartau%netscape.com
702ab26e7e Adding an early return to this test, due to problems on Linux RedHat8. See bug 174341 comment 24 and following.
git-svn-id: svn://10.0.0.236/trunk@138663 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-28 00:33:44 +00:00
brendan%mozilla.org
452ecec045 - Move left-associative binary tree flattening from the post-order position
in js_FoldConstants where it was added (suboptimally: it worked, but it ran
  so late that js_FoldConstants recursion was not reduced, only js_EmitTree
  recursion), to NewBinary, where it avoids JSParseNode allocations up front
  and reduces recursion in all parse-tree walking.
- This change enables js_FoldConstants to see a very long concatenation of
  string literals as a PN_LIST node, so it can quickly concatenate without
  running afoul of O(n^2) problems inherent in js_ConcatStrings applied to
  two atomized strings (the old way of folding string concatenations, still
  used for any pairwise string literal concatenation).
- Further optimize the first change for the second by having NewBinary set a
  new pn_strcat flag (overlaying the pn_extra field) of the PN_LIST arm of
  the JSParseNode.pn_u union, whenever it sees at least one string literal in
  a concatenation that might be folded (whose operands might all be constants
  of string or number type).
- Notes:
  - only string and number constants are folded (not boolean or null
  constants);
  - only all-constant left-associated binary expression chains are folded,
    so 2 * foo * 3 is not folded using commutativity of * over numbers, nor
    is "hi" + " there" + foo folded to "hi there" + foo.
  - gcc3.2 -O and objdump -x say I added 708 bytes of instructions with this
    change.  I tried to keep it down to what was necessary for common script;
    I don't think JS needs an optimizing-compiler-strength constant folder,
    and I don't think this 1K bloat is too high a price to pay for this fix.
    But I'll certainly work on reducing footprint elsewhere, if I can.
- Bug 174341, r=shaver.


git-svn-id: svn://10.0.0.236/trunk@138638 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-27 23:04:46 +00:00
pschwartau%netscape.com
ea9dc79cc0 Get JS standalone building with Makefile.ref on Mac OSX (195134, r=cls). Not part of browser build.
git-svn-id: svn://10.0.0.236/trunk@138627 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-27 21:52:13 +00:00
brendan%mozilla.org
12f0b8252d Checking in heap-sort speedup from Igor Bukanov <igor@icesoft.no> (bug 181828, r=me).
git-svn-id: svn://10.0.0.236/trunk@138577 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-27 01:43:44 +00:00
mkaply%us.ibm.com
b2bae05129 #156505
r=dbradley, sr=brendan
If you ask for input, you should fflush after the fprintf


git-svn-id: svn://10.0.0.236/trunk@138544 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-26 15:22:03 +00:00
brendan%mozilla.org
4d9fdd04df Optimize the foo = '' + bar; case in js_ConcatStrings to do foo = bar -- patch from Tim Lundeen <tlundeen@webcrossing.com>, r=me.
git-svn-id: svn://10.0.0.236/trunk@138501 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-26 01:49:32 +00:00
brendan%mozilla.org
dd8fb1a973 Fix misspelling in comment.
git-svn-id: svn://10.0.0.236/trunk@138496 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-26 01:29:55 +00:00
igor%mir2.org
ec3c445ca3 Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=96270 :
proper implementation of Scriptable.has in ImporterTopLevel and NativeJavaPackages


git-svn-id: svn://10.0.0.236/trunk@138436 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-25 09:17:43 +00:00
igor%mir2.org
35675e18fe Fix http://bugzilla.mozilla.org/show_bug.cgi?id=194364:
no assignment of function expression statements to script result


git-svn-id: svn://10.0.0.236/trunk@138435 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-25 09:15:08 +00:00
mkaply%us.ibm.com
bbacb99561 Overzealous -removed a paren
git-svn-id: svn://10.0.0.236/trunk@138429 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-25 05:59:50 +00:00
mkaply%us.ibm.com
4f9d4b9cf9 IRIX bustage - for anyone blaming this code in the future, checkin was Bug 146873 by mstoltz
git-svn-id: svn://10.0.0.236/trunk@138428 18797224-902f-48f8-a5cc-f745e15eee43
2003-02-25 05:58:21 +00:00