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

169 Коммитов

Автор SHA1 Сообщение Дата
crowder@fiverocks.com 403c5f1ce1 Bug 357016: spidermonkey should be buildable by a C++ compiler, patch by
crowder/Jason Orendorff, r=brendan
2007-07-05 13:37:47 -07:00
brendan@mozilla.org 556ea2ea85 Re-land fix for cloned function object prototyping (300079, r=igor/mrbkap). 2007-06-26 11:19:54 -07:00
sayrer@gmail.com b9f6bd1ac7 back out patch for bug 300079 due to leak regressions, as the new textframe code needs to land 2007-06-20 11:53:28 -07:00
brendan@mozilla.org 52a8bbb0ca Fix violation of function prototyping due to cloned function object implementation (300079, r=mrbkap; expecting r=igor after the fact, want to get this in for widespread testing tomorrow). 2007-06-19 23:37:15 -07:00
mrbkap@gmail.com 75ea2f192d Backing this patch out again to fix sessionstore. See bug 300079 and 385085 2007-06-19 19:06:00 -07:00
brendan@mozilla.org 5a3d7d88f5 Fix violation of function prototyping due to cloned function object implementation (300079, r=igor). 2007-06-19 11:49:53 -07:00
bzbarsky@mit.edu d4193fc178 Backing out bug 300079 to see whether that fixes tinderbox orange. 2007-06-18 07:32:35 -07:00
brendan@mozilla.org 6f85936f1c Fix violation of function prototyping due to cloned function object implementation (300079, r=igor). 2007-06-17 22:33:36 -07:00
crowder@fiverocks.com f48a5593aa Bug 375801: Using (void 0) instead of "undefined" in toSource and uneval(), r=mrbkap 2007-06-12 12:33:40 -07:00
igor@mir2.org 48e93e5ace Bug 384104: Fixing ALE macros to quell GCC strict-aliasing warnings. r=brendan 2007-06-12 00:27:23 -07:00
igor@mir2.org 1ab869f5ec Bug 375270: API to trace GC things graph without running the GC. r=brendan 2007-04-16 23:53:37 -07:00
igor.bukanov%gmail.com 3ae0efd172 Bug 347248: Initialize Error instance properties lazily to speed up new Error(). r=brendan 2006-09-03 12:34:18 +00:00
igor.bukanov%gmail.com 03c600cbbd Bug 347248: Taking out the prev commit as old GCC can not tolerate non-static initializers. 2006-09-02 20:53:20 +00:00
igor.bukanov%gmail.com 85e9544057 Bug 347248: Initialize Error instance properties lazily to speed up new Error(). r=brendan 2006-09-02 19:52:11 +00:00
igor.bukanov%gmail.com 76dc42d18d Bug 322135: Optimizing large index access for array elements to prevent out-of-memory when calling Array functions for huge sparse arrays. r=mrbkap sr=brendan 2006-08-12 08:41:54 +00:00
dbaron%dbaron.org cae84e9a22 Backing out Igor's checkin for bug 322135 to fix orange. 2006-08-08 23:52:08 +00:00
igor.bukanov%gmail.com 73dbbf8c4b Bug 322135: Optimizing large index access for array elements to prevent out-of-memory when calling Array functions for huge sparse arrays. r=mrbkap sr=brendan 2006-08-08 20:25:30 +00:00
igor.bukanov%gmail.com 765d801e0e Bug 341821: Running close hooks of generator objects outside GC locks. r=brendan sr=mrbkap 2006-08-06 09:23:26 +00:00
igor.bukanov%gmail.com 4cfe4081f1 Bug 341821: Taking out the fix for the bug once again. The fix exposed the problem reported in bug 341815 and it better to address everything as single patch. 2006-07-31 08:40:44 +00:00
igor.bukanov%gmail.com f690075c95 Bug 341821: close hooks are run outside GC locks. r=brendan,sr=mrbkap 2006-07-29 07:26:40 +00:00
igor.bukanov%gmail.com 63d75e09ea Bug 341821: removing the previous commit, the patch was broken. 2006-07-28 13:23:09 +00:00
igor.bukanov%gmail.com 0324194b39 Bug 341821: Close hooks are run outside GC locks. r=brendan,sr=mrbkap 2006-07-28 08:05:56 +00:00
brendan%mozilla.org ba5b32f242 Coroutine generators, a la Python 2.5 (326466, r=igor). 2006-06-04 02:19:09 +00:00
brendan%mozilla.org bcf6aea253 First big wave of js1.7 changes (326466, 336376, r=mrbkap). 2006-05-20 22:27:28 +00:00
brendan%mozilla.org 705725e02f Memoize standard class.prototype bindings, per ECMA-262 (304376, r=mrbkap). 2006-04-19 00:22:43 +00:00
igor%mir2.org 581ca02192 Bug 319719: JS scanner checks for keywords using pregenerated C source
avoiding the cost of atomizing keyword strings. This is an updated version
of the previous rather bad commit to address Makefile issues. r=brendan
2006-01-26 08:47:51 +00:00
igor%mir2.org cdf0f2bfd1 Reverting commit for bug 319719: Makefile changes broke too much builds. 2006-01-22 21:08:05 +00:00
igor%mir2.org a755447074 Bug 319719: JS scanner checks for keywords using pregenerated C source
avoiding the cost of atomizing keyword strings. r=brendan
2006-01-22 01:14:20 +00:00
mrbkap%gmail.com 11127076c8 bug 132949: fix some of the more egregious bugs in jsfile.c, this also cleans up some of the style nits, but is nowhere a complete patch. Use jsfile.c at your own risk! rs=shaver 2005-08-22 17:30:44 +00:00
brendan%mozilla.org c003312974 Fix * and function:: magic object management (299593, r+sr=bz/shaver). 2005-07-06 04:49:35 +00:00
brendan%mozilla.org fb36f6a978 Add JS_EnumerateResolvedStandardClasses, and fix a few lazy-standard-class-init glitches hindering it (292903, r=shaver, a=me). 2005-06-16 04:24:03 +00:00
brendan%mozilla.org 40e8b7f18a Another 293782 followup, to restore lost perf in call_enumerate (called from js_PutCallObject, imp. for closure perf). 2005-05-17 17:44:57 +00:00
brendan%mozilla.org 71f828e98c Followup patch for bug 293782 etc., to unregress 137000 (r/a=shaver). 2005-05-17 01:06:35 +00:00
brendan%mozilla.org f4dc897f49 Fix empty-XMLList-literal basis case bug (290499, r/a=me). 2005-04-15 20:08:33 +00:00
jst%mozilla.jstenback.com 0472c0073e Fixing bug 265174. Quiet down compiler warnings on Linux x86_64. r+sr=brendan@mozilla.org 2005-01-12 19:56:32 +00:00
brendan%mozilla.org 92552356eb Revamp the GC to fix E4X private data dueling GC bugs, to reduce malloc costs for small-ish objects and functions, and to pave the way for further GC wins (123668, r=shaver, TAKE 2). 2005-01-05 06:15:03 +00:00
brendan%mozilla.org 412eb31b82 Back out, broke liveconnect at least. 2005-01-05 03:58:19 +00:00
brendan%mozilla.org 90eaa50664 Revamp the GC to fix E4X private data dueling GC bugs, to reduce malloc costs for small-ish objects and functions, and to pave the way for further GC wins (123668, r=shaver). 2005-01-05 02:56:36 +00:00
brendan%mozilla.org d1291966ce - Added strict warning "reference to undefined XML name {0}" to cope with
ECMA-357 botch where * or @b or (given valid namespace reference n) n::id
  results in undefined, instead of a TypeError.

- Lazily bootstrap AnyName and AttributeName classes, instead of leaving the
  former uninitialized, and initializing the latter only if QName is init'ed.
  These classes, representing ECMA-357 internal types, must be initialized
  in order to string conversion and default value on them to return useful
  results.  So this change also requires the shared qname_toString to cope
  with these classes, which ape QName in having a JSXMLQName as private data.

- Revise Filtering Predicate Expressions bytecode schema to avoid bogo-script
  creating in js_FilterXMLObject.  With a new JSOP_ENDFILTER bytecode acting
  in lieu of JSOP_POPV, but also exiting the nested js_Interpret() call, the
  runtime can avoid trying to fake a JSScript for the subsequence of script
  bytecode in parens in x.(e), that contains the bytecode for e plus the pop
  or endfilter op.

  This requires a historic reparameterization of js_Interpret to take the
  starting pc!  I cleaned up order of declaration, use, and useless init nits
  for a few variables while messing with it.

- Based on the above change, fix the decompiler to handle filtered predicate
  expressions -- that code was stubbed out till now, and I forgot to go back.
  All better now, especially thanks to JSOP_ENDFILTER.

- Also while fixing filtered predicates, eliminate the useless TOK_RP parse
  node above the parenthesized expression, to avoid a JSOP_GROUP bytecode.

- Fix js_GetAttributeNameObject so it doesn't take over its QName parameter's
  object and rebind it to an object of class AttributeName -- instead, clone
  the qn if necessary.  This is important to cope with the errata, noticed a
  while ago but finally recorded:

9.2.1.2 Step 2(e)(i, ii),
9.2.1.2 Step 7(e)(i),
9.2.1.3 Step 2(b)(ii)(1)(a)
        All uses of a.[[Name]] for an attribute a in these sections that pass
        that QName object to [[Delete]] must pass an AttributeName cloned from
        a.[[Name]].  The [[Name]] internal property is always a QName instance
        and never an AttributeName or AnyName instance.  But [[Delete]] will
        not operate on x.[[Attributes]] when given a QName by these sections,
        so a child could be wrongly deleted instead of the attribute of the
        same name.

  This rework exposed a bug in the XML.prototype.name() impl, where it was
  returning an AttributeName, not a QName, for attribute-class XML objects.
  Clearly wrong -- the E4X spec makes plain early on that [[Name]] is always
  a QName -- but the spec and e4x testsuite seemed to require it due to the
  above-noted errata.
2004-12-18 02:28:21 +00:00
brendan%mozilla.org 428b8a8546 E4X, configured off, code-complete. 2004-11-17 07:43:01 +00:00
brendan%mozilla.org 5eb78fc669 Initial E4X check-in, configured off (246441, rs=shaver). 2004-10-05 10:19:07 +00:00
brendan%mozilla.org 13512ddbd3 NARCISSUS ifdefs and related general fixes (r=shaver). 2004-02-11 07:21:59 +00:00
gerv%gerv.net 29cfd51965 Bug 205418 - Relicense Spidermonkey (js/src) to MPL/LGPL/GPL. Patch by gerv; r,a=brendan. 2003-11-15 00:11:16 +00:00
brendan%mozilla.org a15916b480 Add __noSuchMethod__ handler support, and clean up js_ValueToFunction/js_ReportIsNotDefined error diagnosis hard cases (196097, r=sparky). 2003-10-22 06:26:03 +00:00
brendan%mozilla.org 4fa5213a91 Big dynamic footprint win via script filename caching, plus line number fix for strict/const diags (see http://bugzilla.mozilla.org/attachment.cgi?id=127130&action=view for detailed checkin comments; 208030, r/rs=shaver, r=rginda on the jsd change, r=jst on the dom change). 2003-07-26 22:37:11 +00:00
timeless%mac.com dec943eb10 Bug 106386 rid source of misspellings
r=db48x sr=blake a=asa
2002-03-19 04:30:17 +00:00
gerv%gerv.net 1856815ff1 Oops. 2001-09-20 00:02:59 +00:00
scc%mozilla.org bc444f528a bug #98089: ripped new license 2001-09-19 22:39:41 +00:00
brendan%mozilla.org f319c1d822 Check keyword version when scanning, not by installing different keywords on version selection (when starting to compile; bug 96562, r=rogerl, sr=shaver&jband, a=dbaron). 2001-08-24 03:32:31 +00:00
brendan%mozilla.org 8952a0a28f Lazily pin the less likely atoms when resolving standard class names (77861, r=jst, sr=jband). 2001-05-23 04:02:06 +00:00
brendan%mozilla.org 1f8f87f711 Re-init pinned atoms after 1=>0=>1 contexts-in-runtime transition (80619, sr=jband&shaver). 2001-05-15 19:39:16 +00:00
brendan%mozilla.org 14a268aa85 Don't zap atom state on last destroy-context in a runtime if interned strings are held by atoms, and/or rooted objects reach atoms -- there may be a new-first-context in the future (72043, r=jband, sr=shaver). 2001-04-13 08:06:15 +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
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
brendan%mozilla.org 9f53fa4c3a Fix bungled GC_KEEP_ATOMS logic (51954, r=mccabe, a=jband). 2000-09-29 00:18:15 +00:00
brendan%mozilla.org c77f05ae2e Clean up JSObjectOps layering violations by adding mark and clear ops; JSClass gets a corresponding mark op so classes with unregistered roots in private data can mark them. The JS API gets a new JS_MarkGCThing entry point for JSObjectOps.mark implementors. Prerequisite check-in for bug 49816 and others (r=shaver). 2000-08-26 02:30:22 +00:00
brendan%mozilla.org f59c35edb2 Support lazy initialization of standard classes and their associated global functions/properties (46703, r=jband,rogerl). 2000-08-19 08:37:07 +00:00
rogerl%netscape.com 9d79d55a1b r,a=brendan@mozilla.org. Adding missing ECMA3 compliance toLocaleXXX
functions to built-in Array, Date and Object object prototypes.
2000-08-09 21:46:03 +00:00
brendan%mozilla.org 58ffa1e2e0 Make it safe to nest a GC from js_AllocGCThing, ultimately from the interpreter; also make sure we collect all garbage (even garbage created by finalizers who unroot or unlock GC-things) when destroying the last context (39125, 44376, r=mccabe@netscape.com). 2000-07-08 02:06:01 +00:00
rogerl%netscape.com b76e51bc61 Bug #32677, r=rginda bugs in Win32 optimized version for edge cases in
Math.exp and Math.pow
Bug #32937, r=rginda, implement missing toLocaleString
2000-03-29 23:45:07 +00:00
rogerl%netscape.com 34fb934c53 r=brendan@mozilla.org
Prepare for new setter/getter syntax.
2000-02-11 22:19:33 +00:00
brendan%mozilla.org db78bfb8b1 JS1.5 fixes (17290, 21618, plus shaver's 22243 fix, r=shaver@mozilla.org). 2000-01-18 11:06:05 +00:00
dmose%mozilla.org 16e0d1f95e update license boilerplate to NPL-1.1 dual-licensed with the GPL. a=brendan, r=brendan. 1999-09-28 23:12:09 +00:00
brendan%mozilla.org 94a86fe442 - Bumped default compile-time JS version from 1.4 to 1.5.
- Add JS1.5 getter/setter support in all its glory:

  * getter function SN() {return ++x} at top-level or as a closure binds an SN
    property getter than returns the incremented value of x.  Likewise for
    setter function SN(y) {return y = x}.

  * getters and setters may be defined in an object literal:
      o = {p getter:function() {return ++this.x},
           p setter:function(y){return this.x = y},
           x:42};

  * getter= and setter= operators (compound tokens) may be used to bind getter
    and setter properties dynamically:
      o = new Object;
      o.p getter= function() {return ++this.x};
      o.p setter= function(y){return this.x = y};
      o.x = 42;

    Waldemar is concerned that this form will collide semantically with JS2, so
    I am not committing to keeping it in JS1.5.  I'd like to check my code in
    ASAP so shaver can use it, and I'd also like to see this form get used (or
    not) during Mozilla betas.  Caveat emptor, and if you find this "dynamic"
    or "imperative" form necessary and hard to substitute, please let me know.
    If this proves important to users, then I think JS1.5 should keep it.

- Cleaned up property flags (in a binary-incompatible fashion -- who cares?) by
  eliminating JSPROP_ASSIGNHACK and JSPROP_TINYIDHACK.

- Added JS_DONT_PRETTY_PRINT flag to be ORed with the indent argument to the
  several JS_Decompile*() API calls.  This avoids any newlines or identation in
  the decompiled string.
 
- Improved and extended (for getter/setter non-reservation) scanner lookahead
  by using a circular (power-of-2 sized) token buffer.

- Fix ECMA Edition 3 deviation where function f(){function g(){}} bound f.g by
  mistake (it should arrange to make a closure named g in activations of f, but
  it should not bind a property of function f).
1999-09-21 00:13:48 +00:00
waldemar%netscape.com dddce9e3c3 Added NaN atom 1999-09-16 07:09:24 +00:00
brendan%mozilla.org 1eed515ae6 Rip out assign hack, simplify boolean value synthesis, minor cleanups. 1999-07-01 02:24:32 +00:00
fur%netscape.com 7b75221d8c Checkpoint JS1.4 from JS_STABLE_10131998_BRANCH. Changes include:
+ merging of js/src and js/ref
 + elimination of most dependencies on NSPR
 + JS1.4 feature additions and accumulated bug fixes

More details are in last week's mozilla status report.
1998-10-14 10:22:38 +00:00
fur ddc67e87cf Initial checkin of JavaScript 1.3, migrated from JSFUN13_BRANCH in /m/src repository 1998-04-24 00:31:11 +00:00
ltabb 3b56a9af51 Free the lizard 1998-03-28 02:44:41 +00:00