Commit Graph

454 Commits

Author SHA1 Message Date
Jeff Walden
257c90c2ca Bug 576034 - Remove aliased properties APIs. r=jorendorff
--HG--
extra : rebase_source : 09c9947953d6ae6d2f359e1cfedde0ea09c338ab
2011-08-04 14:38:00 -07:00
Jim Blandy
32f475624f Bug 672736: Implement the 'findReferences' shell function. r=jorendorff
findReferences(thing)

Walk the entire heap, looking for references to |thing|, and return a
"references object" describing what we found.

Each property of the references object describes one kind of reference. The
property's name is the label supplied to MarkObject, JS_CALL_TRACER, or what
have you, prefixed with "edge: " to avoid collisions with system properties
(like "toString" and "__proto__"). The property's value is an array of things
that refer to |thing| via that kind of reference. Ordinary references from
one object to another are named after the property name (with the "edge: "
prefix).

Garbage collection roots appear as references from 'null'. We use the name
given to the root (with the "edge: " prefix) as the name of the reference.

Note that the references object does record references from objects that are
only reachable via |thing| itself, not just the references reachable
themselves from roots that keep |thing| from being collected. (We could make
this distinction if it is useful.)

If any references are found by the conservative scanner, the references
object will have a property named "edge: machine stack"; the referrers will
be 'null', because they are roots.

js> var o = { x: { y: { z: {} } }}
js> findReferences(o.x.y.z)
({'edge: z':[{z:{}}], 'edge: machine stack':[null, null, null, null, null]})
js> o = { get x() { return 42 } }
({get x () {return 42;}})
js> findReferences(Object.getOwnPropertyDescriptor(o, 'x').get)
({'edge: shape; x getter':[{get x () {return 42;}}],
  'edge: constructor':[{}],
  'edge: machine stack':[null, null, null, null, null],
  'edge: get':[{configurable:true,
                enumerable:true,
                get:#1=(function () {return 42;}),
                set:(void 0)}]})
js> findReferences(Math.atan2)
({'edge: atan2':[Math], 'edge: machine stack':[null, null, null, null, null]})
js> findReferences(o)
({'edge: o':[{o:{get x () {return 42;}}}], 'edge: machine stack':[null, null, null, null, null]})
js>
2011-08-03 20:19:38 -07:00
Igor Bukanov
d05c6783df bug 674480 - add memory reporter for the number of empty GC chunks. r=njn 2011-07-30 00:17:41 +02:00
Luke Wagner
1f831c5948 Bug 668915 - JSAutoStructuredCloneBuffer shouldn't require a 'cx' (r=bent,jorendorff)
--HG--
extra : rebase_source : f2fe9ab1e25188223f75e8d2ddcbdf977e62782b
2011-07-12 10:42:24 -07:00
Luke Wagner
640dd6a5c2 Backout 2e0fea2cbd9b for windows linker lameness 2011-07-28 14:35:38 -07:00
Luke Wagner
c0bacd6aa9 Bug 668915 - JSAutoStructuredCloneBuffer shouldn't require a 'cx' (r=bent,jorendorff) 2011-07-12 10:42:24 -07:00
Bill McCloskey
b8f0545e72 Bug 662646 - Add stack snapshotting API for crash reports (r=dmandelin) 2011-07-07 17:31:18 -07:00
Luke Wagner
c9e1bf13c0 Bug 667915 - Don't let content JS consume all the stack and cause chrome JS to OOM (r=waldo,mrbkap) 2011-06-30 09:26:56 -07:00
Jeff Walden
0dfbe6d91b Bug 657298 - Various bugs in setting the length of an array. r=dmandelin
--HG--
extra : rebase_source : f27bd4d0141df46d7ef054c91c2601d3b50d9690
2011-06-28 10:05:53 -07:00
Dave Herman
324dbe8390 Bug 590973 - Reflect.parse(): expose to chrome as a toolkit component (r=gal) 2011-06-28 10:57:16 -07:00
Jeff Walden
1a51bb7cb1 Bug 645922 - Remove nsIJSON.encode/decode, because their functionality is subsumed by JSON.parse and JSON.stringify, and their idiosyncrasies are hindering code improvements. Also remove js_TryJSON and JS_TryJSON, which are no longer used after these changes and have no clear use cases. r=brendan, r=jst 2011-03-28 19:27:15 -07:00
Jeff Walden
0a61156473 Bug 665835 - Remove JSOPTION_ANONFUNFIX. r=cdleary
--HG--
rename : js/src/tests/js1_5/extensions/regress-376052.js => js/src/tests/ecma_5/misc/unnamed-function.js
2011-06-21 09:53:19 -07:00
Steve Fink
e760bcc0f4 Bug 637393 - Add an option to count number of executions of each JSOp, broken down by "run mode" (method JIT/trace JIT/interpreter)
--HG--
extra : rebase_source : ba9a916197f8c2e449b3096f1c31fe2b154feef4
2011-05-10 11:26:39 -07:00
Luke Wagner
0d7bf8cc22 Bug 656462, part 4 - Simplify stack code, keep track of native calls, create new iterator over native/scripted callstack, make JS_SaveFrameChain fallible (r=waldo,mrbkap)
--HG--
extra : rebase_source : 756a640568464d11fe6bb00104a2fdb6f6d02d02
2011-05-13 08:56:26 -07:00
Alon Zakai
2f4274045c Bug 644241, part 1 - Remove script stack quota. r=igor 2011-06-03 17:54:26 -07:00
Bill McCloskey
b902b98248 Bug 650978 - Add gczeal setting to GC on every allocation (r=gwagner) 2011-06-01 17:48:52 -07:00
Luke Wagner
e25124700b Bug 659462 - remove no-op JS_ClearNewbornRoots and uses in xpconnect (r=mrbkap) 2011-05-13 08:56:25 -07:00
Philipp von Weitershausen
4cba1e98dd Bug 655641 - Expose RegExp flags and source in JS API. r=gal 2011-05-08 22:10:21 -05:00
Paul O'Shannessy
c6e3f311c7 Bug 650931 - No API to determine if a JSObject is a RegExp. r=gal 2011-05-17 20:04:28 -07:00
Chris Leary
a7253cc393 Bug 654301: Better interned string API, take 2. (r=Waldo) 2011-05-17 12:15:12 -07:00
Chris Leary
089bf2c468 Back out bug 654301 to run again on try. 2011-05-16 19:03:20 -07:00
Chris Leary
338cf025af Bug 654301: Better interned string API. (r=Waldo) 2011-05-16 18:18:59 -07:00
Gregor Wagner
dc5385284e Bug 603916 - unifying GC sheduling. r=igor 2011-05-10 22:37:11 -07:00
Jeff Walden
a8a0234d77 Bug 641655 - Add a js::GlobalObject subtype of JSObject. r=njn 2011-04-18 16:50:47 -04:00
Jeff Walden
77e6fd7646 Backed out changeset c8ba5bd72b0c, we have too many test harnesses and I forgot to run one. r=tree-decorator 2011-04-21 16:29:54 -04:00
Jeff Walden
f7e9104cd4 Bug 641655 - Add a js::GlobalObject subtype of JSObject. r=njn 2011-04-18 16:50:47 -04:00
Luke Wagner
6e9ef90124 Bug 651041 - add API to store private data to an external string (r=njn) 2011-04-20 18:34:49 -07:00
Bill McCloskey
4a9bde3182 Bug 648647 - Eliminate JSObjectMap (r=jorendorff) 2011-04-08 14:21:08 -07:00
Colin Walters
2a0395d63b Bug 648102 - Make shell REPL/snarf/run always take UTF-8 input; add JS_DecodeUTF8; add UTF-8 flag to JS_BufferIsCompilableUnit. r=gal 2011-04-16 14:11:10 -04:00
Jeff Walden
d3676c4409 Bug 649819 - Remove JS_BeginJSONParse/JS_ConsumeJSONText/JS_EndJSONParse now that these APIs are no longer used and the cleaner API is available and works. r=brendan 2011-03-21 11:42:14 -07:00
Gregor Wagner
99a0150f57 Bug 627200 - Background Finalization for Strings and Objects r=gal 2011-04-13 13:43:33 -07:00
Luke Wagner
64207228c7 Bug 602994 - Clean up eval, remove unneeded security checks, assert equivalence of principal lookup (r=waldo,mrbkap) 2011-04-08 10:52:51 -07:00
Jeff Walden
b80782b484 Bug 643532 - Implement JS_ParseJSON and JS_ParseJSONWithReviver, a first step toward moving away from a begin-consume-finish-based JSON parsing process. r=luke 2011-03-21 11:42:06 -07:00
Paul Biggar
43b850291d Bug 643548: Remove mozalloc_undef_macro_wrappers hack from JS engine. (r=luke,rs=brendan)
mozalloc_undef_macro_wrappers are brittle and have side-effects that are hard
to debug and fix. The alternative is the just stick an underscore on the end of
malloc, free, etc, which is a comparatively small burden.
2011-03-31 01:14:12 -07:00
Paul Biggar
72c7701093 Bug 634155: Account for NewCompartment's memory, and change allocation APIs (r=nnethercote)
This changes the allocation API, in the following way:

  js_malloc -> {cx->,rt->,OffTheBooks::}malloc
  js_calloc -> {cx->,rt->,OffTheBooks::}calloc
  js_realloc -> {cx->,rt->,OffTheBooks::}realloc
  js_free -> {cx->,rt->,Foreground::,UnwantedForeground::}free
  js_new -> {cx->,rt->,OffTheBooks::}new_
  js_new_array -> {cx->,rt->,OffTheBooks::}new_array
  js_delete -> {cx->,rt->,Foreground::,UnwantedForeground::}delete_

This is to move as many allocations as possible through a JSContext (so that they may be aken into account by gcMallocBytes) and to move as many deallocations to the background as possible (except on error paths).
2011-03-31 01:13:49 -07:00
Chris Leary
2ef1aa6439 Bug 642274: Add loose equality to JSAPI. (r=Waldo)
--HG--
extra : rebase_source : 3001604e6e6bfc9c8e73aafc1498a71ae7ade9cd
2011-03-21 10:04:43 -07:00
Andreas Gal
707f928b25 Expose public APIs for converting doubles to signed/unsigned int per ECMA spec (bug 631132, r=bzbarsky). 2011-03-29 19:19:15 -07:00
Bill McCloskey
0f733168cb Bug 569422 - Allocate js::Shape from the GC heap (r=brendan) 2011-03-23 11:57:44 -07:00
Mike Hommey
2ec52f1e18 Backed out changeset d4c0875dc41a -- tinderbox build bustage 2011-03-21 18:31:02 +01:00
Chris Leary
1ef870e8d1 Bug 642274: Add loose equality to JSAPI. (r=Waldo) 2011-03-21 10:04:43 -07:00
Luke Wagner
0db79e7ad5 Bug 640274 - rm {JS_,js_,}GetExternalStringGCType (r=brendan)
--HG--
extra : rebase_source : 1a2b1df8c7ed9cdbf0455e6e8c117382cb1fb2bb
2011-03-14 13:55:43 -07:00
Jeff Walden
fc5075d1f7 Bug 608473 - |var eval = otherWindow.eval; eval(...)| should behave like indirectly calling that eval from a script in that other window. r=jorendorff
--HG--
extra : rebase_source : 9accca7e9a2b8304c2c823852cfd71b13c595afe
2011-03-02 20:56:37 -08:00
Andreas Gal
532405b940 Remove ObjectOps trace hook (bug 639227, r=dvander). 2011-03-06 22:31:43 -08:00
Andreas Gal
831efbf9e8 Backout bug 639227 due to orange. 2011-03-06 21:37:13 -08:00
Andreas Gal
52c4d6513a Remove ObjectOps trace hook (bug 639227, r=dvander). 2011-03-06 20:49:54 -08:00
Andreas Gal
f5b9aeb7d0 Remove obsolete JSMarkOp API (bug 638291, r=jorendorff). 2011-03-05 14:50:11 -08:00
Jeff Walden
2db290c32a Bug 638312 - Add JS_IsBuiltinEvalFunction and JS_IsBuiltinFunctionConstructor APIs. r=gal 2011-03-02 19:57:44 -08:00
Igor Bukanov
b9b1577eec bug 630209 - (Compile|Execute)Script that are GC-safe. r=jorendorff 2011-02-03 14:06:21 +01:00
Blake Kaplan
239d15c104 Fixing bug 623810. r=jst@mozilla.org, gal@uci.edu, a=blocker. CLOSED TREE 2011-02-11 16:17:25 -08:00
Andreas Gal
9a7cc712a8 When idle the GC holds on to unused chunks indefinitely (bug 631733, r=brendan, a=blocker). (relanding in a CLOSED TREE) 2011-02-19 22:59:49 -08:00