Commit Graph

211 Commits

Author SHA1 Message Date
Jim Blandy
8bd7752c01 Backed out changeset d02083014f57; build problems in nsXPConnect.cpp 2011-06-06 09:01:47 -07:00
Jason Orendorff
6a958619a0 Automatically turn debug mode on/off when adding/removing debuggees.
This allows most of the tests to run without the -d command-line flag.

Now a compartment is in debug mode if
 * JSD1 wants debug mode on, thanks to a JS_SetDebugMode* call; OR
 * JSD2 wants debug mode on, because a live Debug object has a debuggee
   global in that compartment.

Since this patch only adds the second half of the rule, JSD1 should be
unaffected.

The new rule has three issues:

1. When removeDebuggee is called, it can cause debug mode to be turned
   off for a compartment. If any scripts from that compartment are on
   the stack, and the methodjit is enabled, returning to those stack
   frames will crash.

2. When a Debug object is GC'd, it can cause debug mode to be turned off
   for one or more compartments. This causes the same problem with
   returning to deleted methodjit code, but the fix is different: such
   Debug objects simply should not be GC'd.

3. Setting .enabled to false still does not turn off debug mode
   anywhere, so it does not reduce overhead as much as it should.

A possible fix for issue #1 would be to make such removeDebuggee calls
throw.  The fix to issues #2 and #3 is to tweak the rule--and to tweak
the rule for Debug object GC-reachability.

--HG--
rename : js/src/jit-test/tests/debug/Debug-ctor.js => js/src/jit-test/tests/debug/Debug-ctor-01.js
2011-06-02 21:58:46 -05:00
Brian Hackett
5c5438cc38 Merge TM -> JM 2011-06-02 12:59:28 -07:00
Brian Hackett
58811dfa16 [INFER] Address array review comments, add back backedge table, bug 657412. 2011-06-01 11:15:51 -07:00
Brian Hackett
1354314184 Merge TM -> JM 2011-05-27 15:08:04 -07:00
Jason Orendorff
0305e45450 Merge from tracemonkey to jsdbg2. 2011-05-25 17:52:35 -05:00
Jason Orendorff
5323e5a91c Debuggees are globals, not compartments. 2011-05-23 11:11:09 -05:00
Igor Bukanov
3e2ef6c4ef bug 656261 - better GC arena layout. r=wmccloskey 2011-05-19 21:01:08 +02:00
Brian Hackett
131bcf7ab2 [INFER] Disable inference and infallibly discard jitcode on OOM, bug 637674. 2011-05-18 12:34:17 -07:00
Brian Hackett
4cb0c5c5ef [INFER] Cleanup for review, bug 657412. 2011-05-16 22:59:40 -07:00
Jason Orendorff
001c42745d Merge from tracemonkey to jsdbg2. This merge reveals a bug in DebugFrame_getOlder, to be fixed separately. 2011-05-16 17:50:52 -05:00
Brian Hackett
55015fcf39 Merge TM -> JM 2011-05-11 20:37:23 -07:00
Brian Hackett
769796394d [INFER] Reset use count when recompiling, bug 650163. 2011-05-09 15:11:32 -07:00
Brian Hackett
c930c3e982 Merge TM -> JM
--HG--
rename : js/src/GlobalObject.cpp => js/src/vm/GlobalObject.cpp
2011-05-09 09:49:48 -07:00
Jason Orendorff
03415943ee Merge from tracemonkey to jsdbg2. 2011-05-04 12:13:58 -05:00
Jason Orendorff
a0e4b2bf22 Merge from tracemonkey to jsdbg2. 2011-04-29 10:12:46 -05:00
Paul Biggar
15828cd649 Backed out changeset 334ada87e329 (bug 628332) - those a11y errors arrived at the same time as this landing, so backing this out to see if that fixes it. 2011-04-29 04:00:57 -07:00
Brian Hackett
838352f9db Merge TM -> JM 2011-04-28 13:02:47 -07:00
Christian Holler
faf48eb1e7 Bug 628332 - Avoid double-frees when compartment allocation fails (r=billm). 2011-04-27 16:09:00 -07:00
Jason Orendorff
782cb92948 Merge from tracemonkey to jsdbg2. 2011-04-26 14:45:06 -05:00
Chris Leary
e9c15c147e Merge mozilla-central to tracemonkey. 2011-05-09 14:27:44 -07:00
Igor Bukanov
0370e3ab43 bug 652416 - race fixes and other cleanups for background finalization. r=anygregor
--HG--
extra : rebase_source : b1685fff8fa5dab43b9b595daa6118249d3ef891
2011-04-25 22:05:30 +02:00
Brian Hackett
43c276be4a [INFER] Bytecode SSA analysis, bug 650715. 2011-04-22 07:59:45 -07:00
Christian Holler
b0902374f8 Bug 628332 - Avoid double-frees when compartment allocation fails (r=billm). 2011-05-03 04:26:40 -07:00
Jason Orendorff
d48b27e096 Rearrange some stuff. This way more js::Debug methods can be private, without making anything new public; all the event dispatch code is in one place; and we avoid having JSCompartment methods in jsdbg.cpp. 2011-04-21 14:44:53 -05:00
Brian Hackett
fe5aeaab19 Merge TM -> JM 2011-04-20 11:37:46 -07:00
Brian Hackett
68b35100e1 Merge TM -> JM 2011-04-19 08:23:41 -07:00
Jason Orendorff
5e2c73b316 Add rudimentary support for Debug.prototype.hooks.debuggerHandler. Note: A new constant JSPROP_NATIVE_ACCESSOR is added in jsapi.h, so that js_InitClass can create proper accessor properties. 2011-04-18 17:42:07 -05:00
David Anderson
cfa95c8cf3 Backed out changeset d851d44ad77a 2011-04-22 11:40:55 -07:00
David Anderson
43e7e71dd5 Refactor Call ICs (bug 638680, r=luke). 2011-04-21 11:14:49 -07:00
Bill McCloskey
3c0cd83aa3 Bug 616666 - Use explicit stack for GC marking (r=gal) 2011-04-15 16:56:08 -07:00
Brian Hackett
83e8f1e4ab Merge TM -> JM 2011-04-12 07:04:45 -07:00
Brian Hackett
8b7888dd66 Merge TM -> JM 2011-04-01 19:57:28 -07:00
Brian Hackett
1053f5510c [INFER] Make ReleaseScriptCode specify which JIT to destroy, fix inline code invariant logic, bug 619433. 2011-03-31 07:39:30 -07:00
Brian Hackett
1f1a4d216c [INFER] Ensure that inlined scripts always have JIT code for expanding, bug 645666. 2011-03-29 08:30:05 -07:00
Luke Wagner
67af97e094 Bug 656462, part 3 - Syntactic touchups (r=waldo)
--HG--
extra : rebase_source : 7a81c352a96b9e23fc8f7bee5cb1d095c5cdb998
2011-05-24 16:08:40 -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
Luke Wagner
0319982d42 Bug 665247 - Remove unused metering code (r=igor)
--HG--
extra : rebase_source : 78ec31e4236f63f8a91024f34b1b99a889dc47f5
2011-06-21 10:26:22 -07:00
Nicholas Nethercote
6ef6e862d2 Bug 665404 - Create JaegerCompartments lazily. r=luke. 2011-06-22 09:16:23 +10:00
Nicholas Nethercote
a902454a0c Bug 661068 follow-up - Fix the --disable-tracejit bustage caused by 1e464e38591e. Oh the humanity! 2011-06-21 13:18:15 +10:00
Nicholas Nethercote
a208fd35a9 Bug 661068 - Create TraceMonitors lazily. r=luke. 2011-06-21 12:47:04 +10:00
Jeff Walden
e84bb50504 Bug 662946 - Remove various headers from INSTALLED_HEADERS that shouldn't be there. r=jimb
--HG--
extra : rebase_source : a6028a859cac4625ef2f3227ce0fa3159b5e8556
2011-06-09 01:12:21 -07:00
Brian Hackett
d737bb3ddb Merge TM -> JM 2011-03-22 18:07:31 -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
05d2002b66 Bug 644074 - Simplify and consolidate VM stack code into js/src/vm/Stack* 2011-04-13 09:27:37 -07:00
Luke Wagner
be794a0b5b Bug 633690 - add HashMap::lookupWithDefault and putNew helper functions (r=billm)
--HG--
extra : rebase_source : 109b7974dac40749562c3b3ad4615029f1699b97
2011-03-23 17:40:11 -07:00
Brian Hackett
d3770c1fb6 [INFER] Sweep cloned type sets in call ICs before destroying the objects they reference, bug 641491. 2011-03-16 16:17:29 -07:00
Brian Hackett
9d86c615fc Merge TM -> JM 2011-03-14 22:41:04 -07:00
Jason Orendorff
ec6e3d3332 Backed out changeset 39de74c74b20, which is causing the browser to leak windows. 2011-03-14 17:37:04 -05:00
Luke Wagner
7c96945e3c Bug 613457 - clean up string interfaces (r=njn)
--HG--
extra : rebase_source : 3e77b67fa9fe2cc31312ad99951cf92258a98e64
2011-03-14 13:59:53 -07:00
Luke Wagner
fee4a41733 Bug 616562 - speed up JSString::isStatic (r=njn)
--HG--
extra : rebase_source : 9f0b553b8ab54bfbbd5290ba936581bda8bb40ec
2011-03-14 13:55:55 -07:00
Jason Orendorff
efd9982808 Bug 561359 - Change JSOP_LAMBDA to apply the method optimization deterministically. In particular, it no longer depends on whether enclosing Blocks have been reified. This prevents incorrect behavior and assertions when a JSOP_LAMBDA, JSOP_INITMETHOD pair apply the method optimization once, populating the property cache, but later the same JSOP_LAMBDA instruction does not (under the old code) apply the optimization. With this patch, if JSOP_LAMBDA pushes the uncloned function once, it always will. r=brendan. 2011-03-14 15:54:34 -05:00
Brian Hackett
300a849c3e [INFER] Use PICs on monitored SETNAME and SETPROP, bug 621937. 2011-03-11 16:29:38 -08:00
Andreas Gal
0dc25a462f Follow-up fix for bug 639729. 2011-03-13 19:20:06 -07:00
Brian Hackett
eaea79df6e Merge TM -> JM 2011-03-10 09:20:42 -08:00
Brian Hackett
d639ada378 Merge TM -> JM 2011-03-09 09:58:49 -08:00
Andreas Gal
e787b97701 Sweep compartments when no objects live in them (bug 639270, r=gregor). 2011-03-08 20:58:38 -08:00
Phil Ringnalda
d21d12b55b Back out 80d8431f209e (bug 639270) for failing to actually compile 2011-03-08 19:59:30 -08:00
Andreas Gal
033fce6c39 Sweep compartments when no objects live in them (bug 639270, r=gregor). 2011-03-08 18:10:47 -08:00
Brian Hackett
29b930888d [INFER] Use js_malloc instead of cx->malloc for inference data made when condensing in GC, bug 619433. 2011-03-08 10:21:54 -08:00
Brian Hackett
db3ad72d5f [INFER] Handle GCs inside eval() statements, bug 639591. 2011-03-07 18:44:21 -08:00
Jeff Walden
4dce1d9ffa Bug 640072 - Convert properties of RegExp objects into true data properties, eliminating a use of shared-permanent properties. r=jorendorff 2011-03-05 15:29:30 -08:00
Andreas Gal
29c7365b34 Make empty shape initialization lazy (bug 639254, r=billm). 2011-03-07 18:42:04 -08:00
Brian Hackett
f868e29684 [INFER] Miscellaneous fixes to get inference passing jstests. 2011-03-04 07:50:32 -08:00
Brian Hackett
41091b1bb6 [INFER] Fix OOM handling in type inference, convert inference to runtime option, bug 637674. 2011-03-03 14:07:48 -08:00
David Mandelin
4e818e3c46 Bug 625600: Update Yarr import to WebKit rev 86639, r=cdleary,dvander 2011-05-12 18:39:47 -07:00
David Mandelin
098ec8fea9 Backed out changeset 10b4c261e3d0 -- Tracemonkey tinderbox is stricter than try 2011-05-25 08:53:26 -07:00
David Mandelin
64fee2ad60 Bug 625600: Update Yarr import to WebKit rev 86639, r=cdleary,dvander
--HG--
extra : rebase_source : 80887364e39608eadb947d77ff80725642e41f31
2011-05-12 18:39:47 -07:00
Igor Bukanov
e41886ec1e bug 658510 - eliminating JSCOMPARTMENT_NEW and associated compartment initialization race. r=mrbkap 2011-05-22 12:09:28 +02:00
David Mandelin
46408c2ec4 Backed out changeset 119f17b3f03a -- still failing TB 2011-05-23 17:54:42 -07:00
David Mandelin
83c9f9dee2 Bug 625600: Update Yarr import to WebKit rev 86639, r=cdleary,dvander 2011-05-12 18:39:47 -07:00
David Mandelin
d52fa2f1b8 Backed out changeset 195f8cf8758f due to ARM bustage 2011-05-23 14:49:33 -07:00
David Mandelin
e60b7b472a Bug 625600: Update Yarr import to WebKit rev 86639, r=cdleary,dvander 2011-05-12 18:39:47 -07:00
David Mandelin
37887345d9 Backed out changeset de6dfe16fd91 due to Linux/Mac build bustage 2011-05-23 14:22:03 -07:00
David Mandelin
f7eb07c405 Bug 625600: Update Yarr import to WebKit rev 83339, r=cdleary,dvander 2011-05-12 18:39:47 -07:00
Igor Bukanov
397237b2b1 Backed out changeset 869479a8d3c8 - patch for bug 656261 caused jsreftest failure on Windows in the browser. 2011-05-19 00:59:19 +02:00
Igor Bukanov
8f8b62c845 bug 656261 - better GC arena layout. r=wmccloskey
--HG--
extra : rebase_source : d6b63d38ef586c7e1d7141c8e0859fe026803a5d
2011-04-22 00:47:46 +02:00
Brian Hackett
e5020a35b3 [INFER] Condense type information during GC, bug 613221. 2011-03-01 13:10:05 -08:00
Nicholas Nethercote
6ef173ddbb Bug 633653 - revamp about:memory. r=vlad,sdwilsh,dvander,gavin,ehsan,edwsmith; sr=benjamin. 2011-05-03 17:12:58 -07:00
Brian Hackett
0a2cdd3c56 Merge TM -> JM 2011-02-25 18:21:43 +13:00
Bill McCloskey
5ecac5c965 Bug 635873 - Fix shape marking during per-compartment GCs (r=gal,a=dmandelin) 2011-02-22 12:45:18 -08:00
Jeff Walden
7ce51759aa Backed out changeset 4d86e63ff60d, diagnostic patch; back out 3da12edf735e, followup fix; back out bug 631135 completely, unexplained intermittent orange.
--HG--
extra : rebase_source : e2e56a78bc0eea0d6e005bc976c74b33d8c22281
2011-02-19 19:50:19 -08:00
Chris Leary
30ecc46b76 Bug 614155: Lazily construct toSource cache. (r=lw)
--HG--
extra : rebase_source : cbf922c5ce45b7d656ef3fdbd4c872a4ff82aacc
2011-03-03 15:28:25 -08:00
Jeff Walden
e604ceddc7 Bug 631135 - Objects created by or on behalf of fast natives and property ops (getters or setters) are parented to the wrong proto and global. r=lw,jst,mrbkap,bz, a=jst 2011-02-08 17:20:06 -08:00
Chris Leary
369b6ada3c Backed out changeset 62a979cc89a2 due to risk (bug 614155). 2011-02-16 13:33:08 -08:00
Chris Leary
76e3096daf Bug 614155: free memory for source cache on GC. (r=lw) 2011-02-16 10:17:49 -08:00
Andreas Gal
8e653a3ac9 Don't crash when reaching a non-wrapper along the proto chain of a wrapper (bug 634236, r=mrbkap). 2011-02-15 11:17:14 -08:00
Andreas Gal
37635547a6 Bug 633879 - Stop wrappers from holding old scopes alive. r=mrbkap@gmail.com,jst@mozilla.com, a=blocker 2011-02-14 14:19:36 -08:00
Bill McCloskey
42e73fa7bc Bug 631951 - Shrink methodjit memory usage by interpreting a few times before compiling (r=dvander) 2011-02-11 16:31:32 -08:00
Chris Leary
9b75236c71 Fix --disable-methodjit build. (r=billm)
--HG--
extra : rebase_source : 4a76e8513611d8eb9ad16d5d3c0465692bfa4105
2011-02-11 13:45:56 -08:00
Jim Blandy
de75b9fa19 Bug 537873: Add a 'strict' argument to C++ property setter functions. r=brendan
This changes the type of setters to JSStrictPropertyOp, which is just like
JSPropertyOp except that it takes a 'JSBool strict' argument. Most of the
patch is introducing distinct types and using the appropriate stubs.

The following are left for subsequent patches:

x Similar fixes to the browser outside SpiderMonkey.

x Actually *using* the newly available strictness information. This patch
  should have no user-visible effect. I didn't want the interesting stuff
  to get lost in this noise.
2011-02-09 11:31:40 -08:00
Brian Hackett
b5bb63ceba [INFER] Decouple type sets computed by inference from analysis information, store in new TypeScript struct, bug 621301. 2010-12-28 14:53:50 -05:00
Brian Hackett
89bb1d08e8 Merge TM -> JM 2010-12-20 09:06:43 -08:00
Brian Hackett
baf09eaede [INFER] Objects with same shape have same type, objects with same type have same prototype, bug 619271. 2010-12-18 20:44:51 -08:00
Brian Hackett
9cac74e3d5 Periodically discard JIT code during GC, bug 617656. r=dmandelin 2010-12-17 16:33:04 -08:00
Luke Wagner
d8719356c0 Bug 609440, part 4 - make JSString::chars() fallible (r=waldo,dvander,igor,dwitte,njn) 2010-12-06 10:26:58 -08:00
Brian Hackett
fb8384eed2 [INFER] Introduce packed arrays, bug 604045. 2010-11-05 07:37:09 -07:00
Brian Hackett
d0775091ec Merge TM -> JM 2010-11-01 15:37:33 -07:00
Robert Sayre
03513401da Bug 595243 - Expose debugMode to JSD. Relanding test bustage fixed up. r=gal. 2010-10-30 12:13:02 -04:00
Jeff Walden
f48a8e6d43 Merge backout. 2010-10-29 22:36:37 -07:00