Commit Graph

27713 Commits

Author SHA1 Message Date
Bobby Holley
6934cef71d Bug 887334 - Fix JSAPI test harness to not fail when the initial compartment is null. r=luke
I don't know why it's done this way, but it sure needs to change.
2013-07-17 11:53:53 -07:00
Bobby Holley
b6dac750a0 Bug 887334 - Miscellaneous JSAutoCompartments. r=luke 2013-07-17 11:53:53 -07:00
Bobby Holley
017bc7491e Bug 887334 - Add a JSAutoCompartment to AutoCxPusher. r=luke,gabor
This should hopefully take care of any cases where consumers expect to be in
the default compartment.
2013-07-17 11:53:52 -07:00
Bobby Holley
ba7f2199ac Bug 887334 - Use the new AutoCompartment overload for the atoms compartment and remove AutoEnterAtomsCompartment. r=bhackett
We have to do some temporary hackiness to deal with some of the new PJS work.
This patch stays as true to the old world as possible, so that we can more
easily backport it.
2013-07-17 11:53:52 -07:00
Bobby Holley
3c5aaefdba Bug 887334 - Don't rethrow in quickstubs if there's already an exception pending. r=luke 2013-07-17 11:53:52 -07:00
Bobby Holley
72a7f93f19 Bug 887334 - Add a JSCompartment* to AutoCompartment and use it in JS_NewGlobalObject. r=luke
This gets rid of the wonky setCompartment usage in that function.
2013-07-17 11:53:52 -07:00
Bobby Holley
f8f0c7796d Bug 887334 - Move faulty JSAutoRequest in initSelfHosting. r=luke
The call to JS_SetGlobalObject causes cx->compartment_ to be set to the self-
hosting global, which means that the JSAutoCompartment picks up that compartment
as the 'previous' compartment. So despite the attempt to restore things with
JS_SetGlobalObject at the end of the function, the JSAutoCompartment destructor
actually ends up leaving cx in the self-hosting global's compartment at the end
of this function. Moving the JSAutoCompartment construction above the call to
JS_SetGlobalObject fixes the problem.
2013-07-17 11:53:51 -07:00
Bobby Holley
73d2852f5d Bug 887334 - Null-check compartment() in JS_GetGlobalForScopeChain(). r=luke
cx->global() assumes a non-null compartment(). When we fix up various bugs
related to being in a compartment when we shouldn't be, we start to crash here.
Fix it.
2013-07-17 11:53:51 -07:00
Bobby Holley
18c1d08a65 Bug 887334 - Rejigger the string manipulation in OnJSContextNew to avoid depending on being in a compartment. r=luke
The current code makes calls that assume (implicitly, via assertions) that |cx|
is in a compartment, which isn't a valid assumption going forward.
2013-07-17 11:53:51 -07:00
Bobby Holley
ea06c3d7e0 Bug 887334 - Remove AutoSwitchCompartment. r=luke
This thing is...yikes.
2013-07-17 11:53:50 -07:00
Nicolas B. Pierron
8b65d18c25 Bug 867856 - Fix intermittent timeout of bug743094.js test case. r=h4writer 2013-07-17 11:51:19 -07:00
Nicolas B. Pierron
dac3810b4d Bug 892426 - Add an additional temp-Register to SetElementIC. r=jandem 2013-07-17 11:51:19 -07:00
Till Schneidereit
3718002644 Bug 894948 - Remove effectively-dead analysis-related code from interpreter. r=jandem
--HG--
extra : rebase_source : 037764b4c11746ee52d5347c76e2a5242b35afab
2013-07-17 19:21:10 +02:00
Luke Wagner
7ddebe9e84 Bug 882008 - OdinMonkey: fix subtraction to take doublish, rm Use (r=bbouvier)
--HG--
extra : rebase_source : 819570ab142518328aa41a1c6b81ffa0a5d7b96f
2013-07-02 11:38:43 -07:00
Luke Wagner
9f7de824b9 Bug 880538 - LifoAlloc::release after parsing every function (r=bbouvier)
--HG--
extra : rebase_source : 9ead29e3dc5110f2b1f30c5218c41cbbc26555e5
2013-06-21 16:20:47 -07:00
Luke Wagner
84aa193982 Bug 880538 - move 'hasDestructuringArgs' flag into the FunctionBox (r=bhackett)
--HG--
extra : rebase_source : d65025cd591c7faf9e64f4768da0b2b8352ee393
2013-06-28 10:29:58 -07:00
Luke Wagner
4cf02d1c92 Bug 880538 - store a pointer from ParseContext to it's PNK_FUNCTION ParseNode (r=bhackett)
--HG--
extra : rebase_source : acb4b0e5d94d0c1777173a4b0f378c46591805b3
2013-06-28 10:29:58 -07:00
Luke Wagner
97f82d46cf Bug 880538 - set pn->pn_funbox immediately (r=bhackett)
--HG--
extra : rebase_source : 11b265e64f8355989632bd2556ed119a397cb10a
2013-06-21 16:07:25 -07:00
Luke Wagner
d060f8f8b8 Bug 880538 - OdinMonkey: don't create an IonContext in MacroAssembler (r=sstangl)
--HG--
extra : rebase_source : c949b8337141681eb983ca4792849a726a059e18
2013-06-28 10:29:57 -07:00
Luke Wagner
53ff11b8ad Bug 880538 - OdinMonkey: make a single pass over the parse tree (r=bbouvier)
--HG--
extra : rebase_source : c5aafde69f44906750d1d62d6878bfbab9e048ee
2013-06-13 11:48:47 -07:00
Ryan VanderMeulen
5131a6768c Backed out 4 changesets (bug 893858, bug 868859, bug 886903) for Linux debug mochitest-other crashes on a CLOSED TREE.
Backed out changeset 0ded4854067b (bug 886903)
Backed out changeset ca8afb897e13 (bug 893858)
Backed out changeset c15f503a96cc (bug 868859)
Backed out changeset 6a788f399a7f (bug 868859)
2013-07-17 12:43:59 -04:00
Ed Morley
477df96442 Backed out changeset ad74eb485a87 (bug 891695) for startup crashes on a CLOSED TREE 2013-07-17 17:18:11 +01:00
Dan Gohman
2c331edac2 Bug 891739 - IonMonkey: Make or_ and xor_ range analysis even more precise, and avoid calling js_bitscan_clz32 with a zero operand. r=nbp,waldo 2013-07-17 08:16:05 -07:00
Dan Gohman
5f3265c7c4 Bug 891695 - IonMonkey: Avoid passing pointers by const reference. r=rpearl 2013-07-17 07:32:48 -07:00
Jan de Mooij
f704f16388 Bug 894447 - Avoid unnecessary monitor instructions and bailouts with JSOP_SETELEM accessing named properties and backout bug 894463. r=bhackett 2013-07-17 16:21:22 +02:00
Tom Schuster
40feac8ae5 Bug 893858 - More testing for CPOWs and two small bug fixes. r=dvander 2013-07-17 09:27:49 -04:00
Shu-yu Guo
0fd512ba48 Bug 894782 - Fix callsite cloning interaction with inline dispatch in Ion. (r=jandem) 2013-07-17 06:11:18 -07:00
Brian Hackett
74efe04844 Bug 894669 - Add analysis for finding variables unnecessarily entrained by inner functions, r=luke. 2013-07-16 18:54:47 -06:00
Ryan VanderMeulen
abd55eab39 Backed out changeset 56423bbe9a13 (bug 891695) because it didn't un-bust itself automagically. 2013-07-17 08:54:01 -04:00
Carsten "Tomcat" Book
48676fdbcb Relanding after backout Bug 891695 - IonMonkey: Avoid passing pointers by const reference. r=rpearl 2013-07-17 14:16:17 +02:00
Carsten "Tomcat" Book
4af925f9ad Backed out changeset 5939320824b1 (bug 894242) "CLOSED TREE" 2013-07-17 10:36:12 +02:00
Mike Hommey
65b3f87662 Bug 894242 - Make C++0x/C++11 mode of gcc/clang mandatory. r=ted 2013-07-17 16:19:25 +09:00
Mike Hommey
4d432d33fa Backout changeset cd67ffb5ca47 (bug 883381), effectively restoring bug 877937 2013-07-17 16:18:46 +09:00
Mike Hommey
ca5817dcf5 Bug 894240 - Fix pointer dereference in js::cli::OptionParser::extractValue. r=Waldo 2013-07-17 16:16:55 +09:00
Wes Kocher
1973c61af8 Backout 1372b813d76f (bug 891695) for suspicion of causing bustage on a CLOSED TREE
--HG--
extra : amend_source : 9e9d1d7792df7060a2d61d5e8721b67602e14451
2013-07-16 20:47:17 -07:00
Bobby Holley
ea7a9f6f09 Bug 889911 - Switch xpcshell to SystemErrorReporter with a little bit of special magic. r=mrbkap
XPCShell currently overrides all the JSContexts whose creation it observes with
its own custom error reporter. This reporter does all sorts of funny things which
we try to clean up for the most part. But there are a few very intricate
considerations at play.

First, the old xpcshell error reporter does some mumbo jumbo with the
XPCCallContext stack to try to guess whether some other code might catch the
exception. This is total garbage on a number of fronts, particularly because
the XPCCallContext stack has no concept of saved frame chains, nested event
loops, sandbox boundaries, origin boundaries, or any of the myriad of
complicating factors that determine whether or not an exception will propagate.

So we get rid of it. But this causes some crazy debugger tests to fail, because
they rely on an exception from uriloader/exthandler/nsHandlerService.js getting
squelched, and can't handle anybody reporting errors to the console service at
the particular moment of contortionism when the exception is raised. So we need
to introduce an explicit mechanism to disable the error reporter here to keep
things running.

Second, we have to be very careful about tracking the return status of the
xpcshell binary. The old code would simply flag an error code if the error
handler was invoked, and we can mostly continue to do that. But there are some
complications. See the comments.

Finally, we don't anything analogous in XPCShellEnvironment, because I have
patches in bug 889714 to remove its state-dependence on the error reporter.
I'll switch it to SystemErrorReporter in that bug.
2013-07-16 20:38:44 -07:00
Bobby Holley
7abe607721 Bug 889911 - Replace mozJSLoaderErrorReporter with SystemErrorReporter and remove the former. r=mrbkap 2013-07-16 20:38:44 -07:00
Bobby Holley
643e96377a Bug 889911 - Introduce xpc::SystemErrorReporter, roughly based on mozJSComponentLoader's error reporter. r=mrbkap 2013-07-16 20:38:44 -07:00
Benoit Girard
2dca0e78cb Bug 838803 - Remove HAVE_STDCALL to work around clang bug. r=glandium
--HG--
extra : rebase_source : e1cdb524a4f7f0742f2051e5915e5e21db4c0423
2013-07-16 22:01:50 -04:00
Wes Kocher
23c1ec0374 Backout 399362c3e135 (bug 894669) for bustage 2013-07-16 18:41:52 -07:00
Ryan VanderMeulen
ec49bf763f Backed out 10 changesets (bug 889911, bug 889714) due to merge conflicts on a CLOSED TREE.
Backed out changeset 1a1a536121da (bug 889714)
Backed out changeset 2cd88ef9eea5 (bug 889714)
Backed out changeset 489723887eca (bug 889714)
Backed out changeset 2b38ce22cf97 (bug 889714)
Backed out changeset 87b0a59a5d51 (bug 889714)
Backed out changeset 13229bab2ba4 (bug 889714)
Backed out changeset 234bd6d1fbed (bug 889714)
Backed out changeset 4f5f62284917 (bug 889714)
Backed out changeset 18537c4436c7 (bug 889911)
Backed out changeset ca7060ab1588 (bug 889911)
2013-07-16 21:16:31 -04:00
Bobby Holley
b5be668356 Bug 889911 - Switch xpcshell to SystemErrorReporter with a little bit of special magic. r=mrbkap
XPCShell currently overrides all the JSContexts whose creation it observes with
its own custom error reporter. This reporter does all sorts of funny things which
we try to clean up for the most part. But there are a few very intricate
considerations at play.

First, the old xpcshell error reporter does some mumbo jumbo with the
XPCCallContext stack to try to guess whether some other code might catch the
exception. This is total garbage on a number of fronts, particularly because
the XPCCallContext stack has no concept of saved frame chains, nested event
loops, sandbox boundaries, origin boundaries, or any of the myriad of
complicating factors that determine whether or not an exception will propagate.

So we get rid of it. But this causes some crazy debugger tests to fail, because
they rely on an exception from uriloader/exthandler/nsHandlerService.js getting
squelched, and can't handle anybody reporting errors to the console service at
the particular moment of contortionism when the exception is raised. So we need
to introduce an explicit mechanism to disable the error reporter here to keep
things running.

Second, we have to be very careful about tracking the return status of the
xpcshell binary. The old code would simply flag an error code if the error
handler was invoked, and we can mostly continue to do that. But there are some
complications. See the comments.

Finally, we don't anything analogous in XPCShellEnvironment, because I have
patches in bug 889714 to remove its state-dependence on the error reporter.
I'll switch it to SystemErrorReporter in that bug.
2013-07-16 18:04:49 -07:00
Bobby Holley
36f5bb58ac Bug 889911 - Introduce xpc::SystemErrorReporter, roughly based on mozJSComponentLoader's error reporter. r=mrbkap 2013-07-16 18:04:48 -07:00
Dan Gohman
70ae960f85 Bug 891695 - IonMonkey: Avoid passing pointers by const reference. r=rpearl 2013-07-16 16:00:03 -07:00
Brian Hackett
b03f3f0bcd Bug 894669 - Add analysis for finding variables unnecessarily entrained by inner functions, r=luke. 2013-07-16 18:54:47 -06:00
Jan de Mooij
e21a3f1f94 Bug 852421 - Remove MarkTypeObjectUnknownProperties call from Object.create. r=bhackett
--HG--
extra : rebase_source : efbc9855ea3b548838b7c2b74feac3db987814e5
2013-07-16 21:34:02 +02:00
Till Schneidereit
1292b67088 Bug 827396 - rm TypeObject::CONTRIBUTION_LIMIT and TypeObject::contribution. r=bhackett
--HG--
extra : rebase_source : c564216435bafeea58c0bfb32bdae07a3587fa72
2013-07-16 20:42:44 +02:00
Norbert Lindenberg
3ef755b01e Bug 853706 - Fixed a test case that depended on incorrect number of significant digits for 0. r=jwalden
--HG--
extra : rebase_source : a0789030f25b4541d7c3262200f840bda8f10e52
2013-07-16 11:22:57 -07:00
Jeff Walden
92550d7425 Bug 853706 - Fix nits noted in review of a new test. r=me 2013-07-16 11:09:56 -07:00
Norbert Lindenberg
185fcc7016 Bug 853706 - Added new test case for formatting 0 with significant digits. r=jwalden
--HG--
extra : rebase_source : 359a1afdbe2132ebf135809e3d1c121457c5b595
2013-07-16 10:40:33 -07:00