Commit Graph

812 Commits

Author SHA1 Message Date
Jon Coppeard
8c99b0611f Bug 918373 - GC: Handlify various public APIs r=sfink r=bholley r=smaug 2013-09-20 10:22:59 +01:00
Joshua Cranmer
b511ee58c5 Bug 904985 - Use Char16.h in favor of NS_LL, Part 3: kill NS_LL. r=dbaron
--HG--
extra : rebase_source : bc105a8cbb87cc9b6b2db0734d9841fe599e794b
2013-09-17 22:43:21 -05:00
Olli Pettay
c7708cd597 Bug 915832, don't trigger a new GC if we're in middle of an iGC, r=billm 2013-09-13 02:07:02 +03:00
Brian Hackett
2e644832a0 Bug 906371 - Use off thread JS parsing when loading async scripts, r=bz,billm. 2013-09-11 17:42:09 -06:00
Dan Gohman
8b7074b6dc Bug 910823 - Constify static js::Class/JSClass instances. r=waldo 2013-09-11 05:49:05 -07:00
Kyle Huey
abebd382da Bug 910937: Remove xpc_UnmarkGrayObject and use JSAPI directly. r=mccr8 2013-09-08 20:28:48 -07:00
Ehsan Akhgari
36280b9569 Bug 913531 - Remove the unnecessary #includes from nsIXPConnect.idl; r=bholley 2013-09-06 13:50:24 -04:00
Bobby Holley
8c6eaad72a Bug 899367 - Followup bustage fix for some functions that were renamed out from under me. r=me CLOSED TREE 2013-09-04 14:58:23 -07:00
Bobby Holley
b8f437054d Bug 899367 - Make GetNativeGlobal consumers call GetWindowProxy and rm the former. r=mccr8
Some of the uses of this are a bit nonsensical now, but that's a problem for
another day.
2013-09-04 14:06:57 -07:00
Bobby Holley
401b0ffa0b Bug 899367 - Remove xpc_UnmarkGrayContext. r=mccr8
Default compartment objects are never gray anymore.
2013-09-04 14:06:56 -07:00
Bobby Holley
6d001e824e Bug 899367 - Stop storing the window proxy on the JSContext. r=mccr8
We need to simultaneously report the new Heap Pointer to the cycle collector,
and remove the old machinery for cycle-collecting the default object via the
JSContext.
2013-09-04 14:06:56 -07:00
Bobby Holley
7932b397fb Bug 899367 - Have nsGlobalWindow go through nsJSContext to access the outer. r=mccr8 2013-09-04 14:06:55 -07:00
Bobby Holley
9ed5f11e8d Bug 899367 - Explicitly traverse outer windows, rather than doing it via JSContext iteration. r=mccr8
Note that this machinery will go away in further patches. But we want to be
deliberate about each of these steps.
2013-09-04 14:06:54 -07:00
Bobby Holley
8abcb2d562 Bug 899367 - Explicitly trace outer windows, rather than doing it via JSContext iteration. r=mccr8 2013-09-04 14:06:54 -07:00
Bobby Holley
5cfc3855a5 Bug 899367 - Only use JSOPTION_UNROOTED_GLOBAL for DOM JSContexts. r=mccr8
We don't cycle collect any other kind, so there's no difference between marking
them gray and letting the JS engine mark them black. This also gets rid of that
nasty code which reset the flag, which billm theorizes has to do with faulty
logic in ContextHolder when creating ephemeral sandbox cxes. The assertion in
this patch should catch us if anything goes wrong.
2013-09-04 14:06:54 -07:00
Andrew McCreight
4723c7c5e3 Bug 883920 - use templates for {Hold,Drop}JSObjects. r=peterv 2013-08-16 13:10:17 -07:00
Boris Zbarsky
ec93636aa6 Bug 903419 part 2. Report unhandled rejections in promises. r=smaug,bholley,luke 2013-08-29 00:30:06 -04:00
Boris Zbarsky
7891c84fba Bug 903419 part 1. Change js::GetErrorTypeName to take a JSRuntime, not a JSContext. r=luke 2013-08-29 00:30:06 -04:00
Masatoshi Kimura
1df155c4fd Bug 910291 - Hide TraceMalloc debug functions from content. r=bz 2013-08-29 07:48:43 +09:00
Nicholas Nethercote
3f5d413d90 Bug 909597 (part 2) - Rename jsdbgapi.{h,cpp} as {js,vm}OldDebugAPI.{h,cpp}. r=luke.
--HG--
rename : js/src/jsdbgapi.h => js/public/OldDebugAPI.h
rename : js/src/jsdbgapi.cpp => js/src/vm/OldDebugAPI.cpp
extra : rebase_source : 9cd65a698e726c43d88d650f40823367bf98feae
2013-08-26 19:05:20 -07:00
Ryan VanderMeulen
2f3de4dea0 Backed out 12 changesets (bug 899367) for Windows and OSX mochitest failures on a CLOSED TREE.
Backed out changeset 46cf4c3eb447 (bug 899367)
Backed out changeset d8a876219fc7 (bug 899367)
Backed out changeset d930333f95a7 (bug 899367)
Backed out changeset efae8cc0fff8 (bug 899367)
Backed out changeset 1dd262d146a6 (bug 899367)
Backed out changeset 4c396b8a51d0 (bug 899367)
Backed out changeset c8c30176639a (bug 899367)
Backed out changeset aaa8fbcf9aaf (bug 899367)
Backed out changeset d1a782044a4b (bug 899367)
Backed out changeset b2672ab55046 (bug 899367)
Backed out changeset fc4deb0b06fa (bug 899367)
Backed out changeset b9f1018a609c (bug 899367)
2013-08-27 21:14:54 -04:00
Nicolas Pierron
5779bb4c77 Bug 908903 - Add testing function to toggle jit compiler options. r=jandem 2013-08-27 16:32:04 -07:00
Bobby Holley
6274710e79 Bug 899367 - Make GetNativeGlobal consumers call GetWindowProxy and rm the former. r=mccr8
Some of the uses of this are a bit nonsensical now, but that's a problem for
another day.
2013-08-27 15:21:40 -07:00
Bobby Holley
cff26b12ce Bug 899367 - Remove xpc_UnmarkGrayContext. r=mccr8
Default compartment objects are never gray anymore.
2013-08-27 15:21:39 -07:00
Bobby Holley
05b0b5e0f2 Bug 899367 - Stop storing the window proxy on the JSContext. r=mccr8
We need to simultaneously report the new Heap Pointer to the cycle collector,
and remove the old machinery for cycle-collecting the default object via the
JSContext.
2013-08-27 15:21:39 -07:00
Bobby Holley
5fe7a003d5 Bug 899367 - Have nsGlobalWindow go through nsJSContext to access the outer. r=mccr8 2013-08-27 15:21:39 -07:00
Bobby Holley
c93dc7b4a1 Bug 899367 - Explicitly traverse outer windows, rather than doing it via JSContext iteration. r=mccr8
Note that this machinery will go away in further patches. But we want to be
deliberate about each of these steps.
2013-08-27 15:21:38 -07:00
Bobby Holley
add3235319 Bug 899367 - Explicitly trace outer windows, rather than doing it via JSContext iteration. r=mccr8 2013-08-27 15:21:37 -07:00
Bobby Holley
b7966edcf1 Bug 899367 - Only use JSOPTION_UNROOTED_GLOBAL for DOM JSContexts. r=mccr8
We don't cycle collect any other kind, so there's no difference between marking
them gray and letting the JS engine mark them black. This also gets rid of that
nasty code which reset the flag, which billm theorizes has to do with faulty
logic in ContextHolder when creating ephemeral sandbox cxes. The assertion in
this patch should catch us if anything goes wrong.
2013-08-27 15:21:37 -07:00
Boris Zbarsky
a912d1fc13 Bug 908576 part 3. Get rid of PrototypeIDMap structs. r=smaug 2013-08-23 22:42:41 -04:00
Brian Hackett
930150cc7b Bug 907777 - Add preference for off thread parsing, coalesce with preference for off thread Ion compilation, r=billm. 2013-08-22 07:22:33 -06:00
Ms2ger
87ae95251c Merge PGO-green changeset from inbound to m-c. 2013-08-22 10:31:44 +02:00
Ms2ger
98ef73b248 Bug 906503 - Remove nsIExceptionProvider; r=bholley
It is replaced by a direct special case in the caller.
2013-08-22 08:56:02 +02:00
Olli Pettay
8b41eb2f86 Bug 906269, don't start a GC cycle so likely while we're in middle of a CC cycle, r=mccr8
--HG--
extra : rebase_source : 90d3ad3d19159613f2cb83f0d28dd37a1a429b75
2013-08-22 00:02:12 +03:00
Till Schneidereit
566ad3643e Bug 907201 - Enable activating TI and IonMonkey for chrome scripts via about:config. r=jandem
--HG--
extra : rebase_source : ee45b0108b4516cff12ecc91014cb566d432a4fa
2013-08-20 11:26:44 +02:00
Bobby Holley
fd6d48b51f Bug 901106 - Eliminate the nsJSRuntime namespace. r=mrbkap 2013-08-19 16:24:29 -07:00
Bobby Holley
7c26851804 Bug 901106 - Make nsJSRuntime initialization infallible and do it implicitly in the nsJSContext constructor. r=mrbkap
We also move the runtime out of the namespace, which requires some updates.
2013-08-19 16:24:29 -07:00
Bobby Holley
d192e30f6e Bug 901106 - Get rid of vestigial nsJSRuntime instance and make it a namespace. r=mrbkap
We'll rename the namespace shortly.
2013-08-19 16:24:29 -07:00
Bobby Holley
2eb3fdaa86 Bug 901106 - Make sure sure the nsDOMScriptObjectFactory gets instantiated.
This used to happen implicitly when we created the first nsJSContext, but that
goes away in the next patch. Without this, we get a couple of odd exception-
related failures in the IPC indexedDB tests.
2013-08-19 16:24:28 -07:00
Bobby Holley
684f16b450 Bug 901106 - Remove nsIScriptRuntime. r=mrbkap
All this stuff is now for nsGlobalWindow's use only.
2013-08-19 16:24:28 -07:00
Bobby Holley
ce13d4df7a Bug 901106 - Inline and remove nsIScriptContext::{Serialize,Deserialize}. r=smaug 2013-08-19 16:24:27 -07:00
Tom Schuster
991ead8d61 Bug 884410 - Remove JS_ValueToECMAInt32 and replace it with JS::ToInt32. r=terrence 2013-08-15 17:41:51 -04:00
Ehsan Akhgari
fcb950e309 Backed out changeset 3d9664b78ca7 (bug 884410) because of build bustage on a CLOSED TREE 2013-08-15 18:20:00 -04:00
Tom Schuster
0cd7a5fca0 Bug 884410 - Remove JS_ValueToECMAInt32 and replace it with JS::ToInt32. r=terrence 2013-08-15 17:41:51 -04:00
Ehsan Akhgari
3ec2c9b451 Bug 905353 - Minimize the #includes in dom/base; r=jst
--HG--
extra : rebase_source : e7a1d2262bf6d8c9b78057b8eb6cdbfd98262f68
2013-08-15 14:17:48 -04:00
Jan de Mooij
efb33b1fb3 Bug 905300 - Remove dead code in SpiderMonkey. r=bhackett 2013-08-15 13:45:30 +02:00
Bobby Holley
c695bf8a82 Bug 903212 - Remove explicit compartment GC machinery. r=smaug 2013-08-14 14:00:03 -07:00
Bobby Holley
2ce8f2d13b Bug 903212 - Remove nsIXPCScriptNotify machinery. r=mrbkap 2013-08-14 14:00:03 -07:00
Bobby Holley
ecce09df53 Bug 903212 - Remove ScriptEvaluated, and simplify callers. r=mrbkap 2013-08-14 14:00:03 -07:00
Bobby Holley
7f8ef2275d Bug 903212 - Remove activity tracking from nsJSContext. r=smaug
This only has an impact when we enable explict compartmental GCs, which have
been preffed off for a while.
2013-08-14 14:00:02 -07:00
Bobby Holley
81026a6fdf Bug 901364 - Remove a bunch of now-unused modal state tracking machinery. r=mrbkap 2013-08-12 12:54:51 -07:00
Bobby Holley
e923703302 Bug 901364 - Make operation callbacks runtime-wide. r=mrbkap 2013-08-12 12:54:50 -07:00
Bobby Holley
3e44192004 Bug 901364 - Switch to the XPConnect operation callback for DOM windows. r=mrbkap 2013-08-12 12:54:49 -07:00
Bobby Holley
962b3d3ad7 Bug 901364 - Hoist slow script prompt machinery into nsGlobalWindow. r=mrbkap 2013-08-12 12:54:49 -07:00
Nicholas Nethercote
12393b203a Bug 898263 (part 4) - Move |JSTrapStatus| and related function typedefs out of jsprvtd.h. r=jorendorff.
--HG--
extra : rebase_source : 68c1d3aaaa40763e073ee791c1d0078c5d5cf87e
2013-08-08 21:30:15 -07:00
Bobby Holley
819d50ab77 Bug 901362 - Refactor nsJSUtils::EvaluateString to take an EvaluateOptions structure. r=gabor 2013-08-08 16:51:35 -07:00
Bobby Holley
b5464322cb Bug 901162 - Inline ExecuteScript in the one caller. r=bz 2013-08-08 16:51:34 -07:00
Bobby Holley
4e21a1faaf Bug 901162 - Inline CompileScript into the one caller. r=bz 2013-08-08 16:51:34 -07:00
Bobby Holley
8fbaba72bb Bug 901162 - Hoist EvaluateString into nsJSUtils. r=bz 2013-08-08 16:51:34 -07:00
Bobby Holley
252d99069f Bug 901162 - Remove unused mExecuteDepth machinery. r=bz 2013-08-08 16:51:34 -07:00
Nicholas Nethercote
b756f6b258 Bug 898914 (part 1) - Remove JSBool.
--HG--
extra : rebase_source : 2d202e0e5005a7f54724b1540481c15cde3ad52e
2013-08-08 15:53:04 -07:00
Nicholas Nethercote
25d70fdd97 Bug 902332 - Replace JS_{FALSE,TRUE} with {false,true} almost everywhere. r=luke,bz.
--HG--
extra : rebase_source : 25f4de1bfae830b0af6407d260a70b787ab1dc9b
2013-08-06 23:59:54 -07:00
Nicholas Nethercote
ba723f1034 Bug 901750 - Change return type of |JSNative| from |JSBool| to |bool|. code=nnethercote,jandem. r=luke,bz.
--HG--
extra : rebase_source : 5b3d7cc339af6d93bde078322e25c6e740d1b617
2013-08-02 00:41:57 -07:00
Ms2ger
5c2b63d2c7 Merge m-c to inbound. 2013-08-02 11:07:57 +02:00
Ms2ger
023dc49091 Bug 897945 - Use an XPCOM string for nsContentUtils::ReportToConsole's category argument; r=bholley 2013-08-02 09:09:11 +02:00
Mike Hommey
d01b5df996 Bug 881323 - Re-implement CycleCollectorParticipant with actual vtables, with constexpr to avoid static initializers. r=mccr8 2013-08-02 10:29:05 +09:00
Bill McCloskey
ca26060518 Bug 899812 - Error reporters should consistently report errors to stderr (r=bholley) 2013-07-31 17:04:49 -07:00
Bobby Holley
c00f6379ec Bug 899245 - Rename JS_GetGlobalForScopeChain to JS::CurrentGlobalOrNull. r=luke
This was done with perl/grep.
2013-07-29 16:45:27 -07:00
Bobby Holley
9dbd7cffb9 Bug 899245 - Rename JS_SetGlobalObject and move it into jsfriendapi. r=luke 2013-07-29 16:45:26 -07:00
Bobby Holley
488031ac4d Bug 899245 - Rename js::GetDefaultGlobalForContext to js::DefaultObjectForContextOrNull. r=luke
This is more correct, since the object very often is not a global.
2013-07-29 16:45:25 -07:00
Olli Pettay
676d2b13e5 Bug 897433 - Telemetry for SnowWhite and more async SnowWhite freeing (patch v4), r=mccr8 2013-07-27 13:48:45 +03:00
Ryan VanderMeulen
37205dbd4a Backed out changeset 300f5b7d72e1 (bug 897433) for intermittent Linux dromaeo crashes. 2013-07-25 21:18:20 -04:00
Olli Pettay
0da836185c Bug 897433, Telemetry for SnowWhite and more async SnowWhite freeing, r=mccr8
--HG--
extra : rebase_source : 487139a95f50e69d6273c2870ed6623f175544e7
2013-07-25 22:56:20 +03:00
Bill McCloskey
daca74ad0a Bug 895340 - Fix error reporting of JS exceptions from C++ (r=bholley) 2013-07-23 08:32:36 -07:00
Olli Pettay
5f6b1e810b Bug 895578 - Make SnowWhiteKiller to use fallible TArray, r=mccr8 2013-07-19 15:53:16 +03:00
Bobby Holley
b6dac750a0 Bug 887334 - Miscellaneous JSAutoCompartments. r=luke 2013-07-17 11:53:53 -07:00
Olli Pettay
2bf2214fbe bug 789919, (snow-white) make addref/release of CCable objects faster by removing indirect refcnt increase/decrease, r=mccr8, test changes r=ehsan
--HG--
extra : rebase_source : 2a3b22425c14d6daedc91d62a652c34431acd2fb
2013-07-09 13:30:58 -04:00
Brian Hackett
0db06b2f79 Bug 890636 - Remove JSOPTION_PCCOUNT, r=jandem. 2013-07-08 09:17:35 -06:00
Bobby Holley
6cca462555 Bug 860085 - Stop using XPConnect::ReleaseJSContext in nsJSEnvironment::DestroyJSContext. r=gabor,mccr8
We now have the invariant that any in-use cx must be pushed onto the JSContext
stack with one of our stack-scoped automatic nsCxPusher classes. These classes
hold a strong ref to the nsIScriptContext associated with the JSContext they
push (if any). This means that, if this cx is in use, we will always have at
least one strong reference to the nsJSContext coming from the stack, meaning
that neither the destructor nor the Unlink() implementation will be called.
So we don't need to do any deferred destruction of the cx anymore.
2013-07-03 11:05:19 -06:00
Gregor Wagner
a6bc63ec3b Bug 887125 - Allow 0 for Memory GC Preferences. r=bent 2013-06-27 14:40:17 +08:00
Nicolas B. Pierron
ec97c44287 Bug 829841 - Add an option to enable eager compilation in the browser. r=dvander 2013-06-24 05:13:05 -07:00
Bobby Holley
0f2c2da28a Bug 875790 - Add cx push back into nsJSContext::CompileScript. r=me 2013-06-21 09:10:27 -07:00
Bill McCloskey
4c15cc1f08 Bug 871005 - Add a pref for GC decommit threshold (r=gregor) 2013-06-20 18:06:53 -07:00
Bobby Holley
2fa8b1cfb0 Bug 883450 - Miscellaneous requests. r=gabor 2013-06-20 11:05:34 -07:00
Jon Coppeard
59d5490ab4 Bug 877762 - GC: Post-barrier cycle collector participants - 5 Convert JS::Value to use Heap<T> r=smaug 2013-06-18 11:00:37 +01:00
Benjamin Peterson
ca23ac22c9 Bug 823978 - Rename JSOPTION_STRICT to JSOPTION_EXTRA_WARNINGS. r=Waldo
--HG--
extra : rebase_source : 34f95fc6017d3f3f4f091083debacbd466b51bf6
2013-06-11 12:49:11 -07:00
Ryan VanderMeulen
23aa576486 Backed out changeset 1df122edcf0d (bug 823978) for bustage (again).
CLOSED TREE (again)
2013-06-11 15:27:46 -04:00
Benjamin Peterson
1871556ad9 Bug 823978 - Rename JSOPTION_STRICT to JSOPTION_EXTRA_WARNINGS. r=Waldo
--HG--
extra : rebase_source : 1396c8ec5bd99ab35343cfff2b87d22955671243
2013-06-11 11:30:18 -07:00
Ryan VanderMeulen
9855cde4ef Backed out changeset 7e69e102a432 (bug 823978) for bustage.
CLOSED TREE
2013-06-11 14:28:17 -04:00
Benjamin Peterson
e459c55070 Bug 823978 - Rename JSOPTION_STRICT to JSOPTION_EXTRA_WARNINGS. r=Waldo
--HG--
extra : rebase_source : f5c0e9c743dadb0431eacef6b46b6e274264d3aa
2013-06-11 10:55:21 -07:00
Boris Zbarsky
e1d7ebf663 Bug 876805. Fix unsafe reference gc hazards in dom/ code. r=smaug 2013-05-29 16:16:04 -04:00
Phil Ringnalda
0f6261fe2e Merge the last PGO-green cset on m-i to m-c 2013-05-27 09:44:40 -07:00
octoploid@yandex.com
ee81a84ae6 Bug 875790 - Revert AutoPushJSContext change in nsJSContext::CompileScript due to crashes. r=bholley 2013-05-27 06:40:37 -07:00
Jon Coppeard
8a68ce4b84 Bug 874691 - Make CC participant tracing indirect r=mccr8 r=smaug r=bz 2013-05-27 12:50:49 +01:00
Bobby Holley
d1daeb827a Bug 868110 - Introduce a more private API for the consumers that really do need the default compartment object. r=luke
The primary consumer of this is the whole inner/outer DOM window setup, which
uses the default global to track the current inner. But there are few other
random ones as well.

We use this as an opportunity to convert a bunch of consumers from the two-step
GetNativeContext() -> JS_GetGlobalObject() into just |GetNativeGlobal()|. This
will make things much easier to convert when we start tracking the current inner
explicitly.
2013-05-22 15:42:44 -06:00
Bobby Holley
91448a9dac Bug 868130 - Remove the lion's share of JSAutoRequests in gecko. r=gabor
There are still a handful that either are used with other runtimes, or that
happen very early/late in cx the lifetime of various things where it doesn't
necessarily make sense to have a cx on the stack. This should definitely ensure
that we're not doing double-duty with the nsCxPusher change, though.
2013-05-22 10:05:28 -06:00
Bobby Holley
54ef3d2952 Bug 868130 - Include nsCxPusher.h everywhere we need it, and stop including it from nsContentUtils.h. r=gabor 2013-05-22 10:05:26 -06:00
Bobby Holley
3df3babf7b Bug 868130 - Make sure mContext is stack-top in the various places where nsJSEnvironment uses it. r=gabor
I also replaced some uses of mJSContext with AutoJSContext upon auditing that
they're only ever called by other nsJSContext functions that just pushed. This
makes the code much easier to audit because we know that we're just inheriting
the caller's cx (which is stack-top) rather than injecting a potentially-
unrelated cx.
2013-05-22 10:05:24 -06:00
Bobby Holley
fffaff5b13 Bug 868130 - Make sure mContext is stack-top in nsJSContext::CompileScript. r=gabor 2013-05-22 10:05:23 -06:00
Jan de Mooij
d1d46a2f99 Bug 857845 part 3 - Remove JM JSAPI flags, memory reporters and browser prefs. r=djvj
--HG--
extra : rebase_source : 8b2ed85801fcd8c8fd0fc16a89b1a275add1a310
2013-05-22 14:50:45 +02:00