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

70742 Коммитов

Автор SHA1 Сообщение Дата
Ted Campbell d14b20c96c Bug 1548903 - Remove unused JS TypeInference methods. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D29865

--HG--
extra : moz-landing-system : lando
2019-05-03 18:17:39 +00:00
Iain Ireland 0512ebbbac Bug 1533890: Minor cleanups r=mgaudet
1. In bug 1545278, Ted is making our story about guarding on object pointer identity more robust. Since I am adding a new guardSpecificObject call in the ConstStringSplit patch, it seemed reasonable to add guardSpecificFunction now instead of later.
2. It's not directly relevant in the current patch, but in a previous version of the StringSplit patch (before I realized we could delete the whole thing) it turned out that calling isSelfHostedFunctionWithName on an arbitrary function can trigger assertions, because GetSelfHostedFunctionName assumes isExtended, but isSelfHostedBuiltin does not necessarily imply isExtended (in the case of nested anonymous functions).
3. Fixing the format string in a JitSpew message I added in a previous stack.

Depends on D29535

Differential Revision: https://phabricator.services.mozilla.com/D29536

--HG--
extra : moz-landing-system : lando
2019-05-01 20:35:16 +00:00
Iain Ireland 3604082d9d Bug 1533890: Remove StringSplit call IC r=mgaudet
I started changing StringSplit to attach outside of self-hosted code, to match ConstStringSplit. Upon closer examination, the StringSplit IC doesn't actually add any value, and we're better off deleting it. The generated code calls StringSplitHelper, which ends up doing almost exactly the same thing as the call to intrinsic_StringSplitString it replaces. When we first wrote the patch (bug 1366377), the advantage was that we got to skip a lookup to determine the group of the resulting object. However, a subsequent patch created a single group for every StringSplitString result, which is basically free to look up.

I couldn't write a microbenchmark where the StringSplit IC made any difference, so let's just delete it and simplify our codebase.

Depends on D29534

Differential Revision: https://phabricator.services.mozilla.com/D29535

--HG--
extra : moz-landing-system : lando
2019-05-01 20:32:15 +00:00
Iain Ireland 906d1e5086 Bug 1533890: Create template objects for native constructors called without "new" r=mgaudet
Some native functions (for example, the Array constructor) have constructor-like behaviour even when called in a non-constructing context. We still want to create template objects for these cases. This fixes a noticeable regression in Speedometer (particularly in EmberJS-debug).

Depends on D29533

Differential Revision: https://phabricator.services.mozilla.com/D29534

--HG--
extra : moz-landing-system : lando
2019-05-01 20:13:07 +00:00
Iain Ireland 085f399820 Bug 1533890: Rewrite ConstStringSplit to work outside of microbenchmarks r=mgaudet
While trying to pin down a performance regression, I realized that both the new and the old implementations of ConstStringSplit are broken. Three years ago, as part of some ES6 work, we changed String.prototype.split to call a self-hosted String_split function instead of native str_split. In turn, String_split calls intrinsic_StringSplitString in the case we care about. However, because the call to intrinsic_StringSplitString is in self-hosted code, we would only get value out of this stub if there was only one caller of String_split in the entire program.

This patch changes ConstStringSplit to look for the self-hosted String_Split function, which means we can attach a stub to the user script instead of self-hosted code. It also adds support in BaselineInspector for extracting metadata about the string split from the stub, which enables the Ion version of this optimization.

Depends on D29532

Differential Revision: https://phabricator.services.mozilla.com/D29533

--HG--
extra : moz-landing-system : lando
2019-05-02 06:57:27 +00:00
Iain Ireland 1cbb4acb72 Bug 1533890: Don't push callee unnecessarily for jit calls r=mgaudet
When pushing arguments for a JIT call, we push the callee value onto the stack, and then immediately pop it off. This is a remnant of the old implementation.

This patch removes that wart, with a small detour to rewrite/recomment alignJitStackBasedOnNArgs for clarity.

Differential Revision: https://phabricator.services.mozilla.com/D29532

--HG--
extra : moz-landing-system : lando
2019-05-01 19:50:41 +00:00
Geoff Brown 0f0beaf249 Bug 1546553 - Disable some xpcshell tests on Android x86_64; r=jmaher
These tests need to be disabled to get a green run on the Android x86_64
test platform. The failures in toolkit/components/extensions are
concerning and definitely require follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D29843

--HG--
extra : moz-landing-system : lando
2019-05-03 16:50:15 +00:00
Boris Zbarsky e6c83d06e3 Bug 1548613. Get rid of FastGetGlobalJSObject. r=mccr8,jonco
Marking GetGlobalJSObject and GetGlobalJSObjectPreserveColor final and inline
on inner/outer windows allows compilers to de-virtualize and inline them, which
makes them just as fast as calling FastGetGlobalJSObject is now (in the case of
GetGlobalJSObjectPreserveColor; GetGlobalJSObject has to do the gray-unmarking,
which is a bit more work).

In WindowDestroyedEvent::Run we want to switch to GetGlobalJSObject(), because
we want to root the object and hence should unmark gray.

In nsGlobalWindowInner::RunTimeoutHandler we likewise want to unmark gray.  The
AutoEntryScript constructor likely did that already, but it's not that
expensive when it doesn't need to do any work.

Differential Revision: https://phabricator.services.mozilla.com/D29711

--HG--
extra : moz-landing-system : lando
2019-05-03 10:08:07 +00:00
Boris Zbarsky 517a6ebdd7 Bug 1547923 part 6. Make nsIGlobalObject::GetGlobalJSObject always expose to active JS. r=mccr8
See callsite audit in https://bugzilla.mozilla.org/attachment.cgi?id=9061976
for details on why the remaining GetGlobalJSObject callers should switch to the
"always expose" behavior.

Differential Revision: https://phabricator.services.mozilla.com/D29707

--HG--
extra : moz-landing-system : lando
2019-05-02 21:36:15 +00:00
Boris Zbarsky ff72e84ac1 Bug 1547923 part 4. Add nsIGlobalObject::HasJSGlobal(). r=mccr8
Consumers that just care about this boolean state should use this instead of
getting the JSObject* directly.

Differential Revision: https://phabricator.services.mozilla.com/D29705

--HG--
extra : moz-landing-system : lando
2019-05-02 21:32:17 +00:00
Boris Zbarsky 5c1d789bfa Bug 1547923 part 3. Add nsIGlobalObject::GetGlobalJSObjectPreserveColor(). r=mccr8
This can be used in things like assertions or some other rare circumstances
where not exposing the object to active JS is OK.

Differential Revision: https://phabricator.services.mozilla.com/D29704

--HG--
extra : moz-landing-system : lando
2019-05-02 21:23:35 +00:00
Jan de Mooij 1d6260396f Bug 1548510 part 2 - Deduplicate GeckoProfilerRuntime::allocProfileString and JitcodeGlobalEntry::createScriptString. r=jonco
These functions did the same thing in a slightly different way.

Differential Revision: https://phabricator.services.mozilla.com/D29799

--HG--
extra : moz-landing-system : lando
2019-05-03 10:15:51 +00:00
Jan de Mooij 48c9eed618 Bug 1548510 part 1 - Remove unnecessary GeckoProfilerRuntime::strings lock. r=jonco
This lock was necessary when the JITs used these strings (off-thread Ion compilation),
but now the lock was just adding overhead to each script we finalize etc.

This replaces ExclusiveData<> with MainThreadData<> to assert on-main-thread in debug
builds.

Differential Revision: https://phabricator.services.mozilla.com/D29798

--HG--
extra : moz-landing-system : lando
2019-05-03 10:11:16 +00:00
Jan de Mooij df3e7047f4 Bug 1544792 - Abort on try-catch blocks when doing definite properties analysis. r=nbp
Ion does not compile the catch block so the analysis fails to account for code
there.

Differential Revision: https://phabricator.services.mozilla.com/D29475

--HG--
extra : moz-landing-system : lando
2019-05-02 17:51:24 +00:00
Jan de Mooij c4167e27e8 Bug 1541404 part 19 - Add BaselineInterpreter class and use it in various places. r=tcampbell
I considered adding BaselineInterpreter.{h,cpp} files but there are shared
helper functions so this might get awkward. Maybe once the rest of the code is
in we can experiment with changes in this area.

Differential Revision: https://phabricator.services.mozilla.com/D29158

--HG--
extra : moz-landing-system : lando
2019-05-03 07:42:31 +00:00
Jan de Mooij 95888b91d6 Bug 1546228 - Check for dynamic protos in AddClearDefiniteGetterSetterForPrototypeChain. r=tcampbell
This likely was exposed to fuzzing when we added WindowProxy to the shell.

Differential Revision: https://phabricator.services.mozilla.com/D28667

--HG--
extra : moz-landing-system : lando
2019-04-24 19:36:17 +00:00
Jan de Mooij 05ef7dabfe Bug 1546594 - Move JitRuntime::generateDebugTrapHandler to shared code. r=nbp
This trampoline isn't performance sensitive so platform-specific optimizations
are not worth it.

Differential Revision: https://phabricator.services.mozilla.com/D28601

--HG--
extra : moz-landing-system : lando
2019-05-02 12:20:40 +00:00
Gurzau Raul b4e790d05f Merge inbound to mozilla-central. a=merge 2019-05-03 07:16:59 +03:00
Bogdan Tara 6d06f3decd Backed out 5 changesets (bug 1546138) for WasmTypes.h related spidermonkey builds bustages
Backed out changeset f9d1ae270d58 (bug 1546138)
Backed out changeset 094145132b7f (bug 1546138)
Backed out changeset 9f78bcde2e81 (bug 1546138)
Backed out changeset 54beb5e36110 (bug 1546138)
Backed out changeset 2b42fdbc6f6b (bug 1546138)
2019-05-03 02:28:05 +03:00
Luke Wagner a3d36caa05 Bug 1546138 - Baldr: remove indirection from table.get return value (r=lth)
Differential Revision: https://phabricator.services.mozilla.com/D29596

--HG--
extra : rebase_source : b2ac38d09e25e709ea4e75faeff5ac60eb59e969
2019-05-01 15:13:43 -05:00
Luke Wagner abf7ea566e Bug 1546138 - Baldr: do failure checking in masm.wasmCallBulitinInstanceMethod (r=lth)
This patch further centralizes builtin signature information into
SymbolicAddressSignature, removing more than 100 lines of code
and preparing the way for the next patch, which will use this
eager error check to return a JSObject* from Instance::tableGet.

Differential Revision: https://phabricator.services.mozilla.com/D29595

--HG--
extra : rebase_source : d2c7f27b80ebe3c0884845b471c3de61c0979047
2019-05-01 16:55:05 -05:00
Chris Martin 973f7ba7af Bug 1052579 - Remove arenaId member that was introduced in D25705 r=sfink
In D25705, I added a new arenaId member to the js::BaseAllocPolicy. This
increased the size of everything that uses a JS AllocPolicy, which is a
lot.

This change follows suit from earlier work, which is to make everything
allocation-related have an "arena" version and a "default" version that
uses the arena version with the implied default arena.

StringBuffer is then changed to use this new functionity to define its
own alloc policy that uses the new StringBufferArena.

Differential Revision: https://phabricator.services.mozilla.com/D29685

--HG--
extra : moz-landing-system : lando
2019-05-02 16:31:53 +00:00
Jim Porter c62f65e325 Bug 1548565 - Fix crash in XPCJSContext::InterruptCallback from bug 1493225; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D29710

--HG--
extra : moz-landing-system : lando
2019-05-02 19:35:08 +00:00
Robin Templeton fe9c5481dd Bug 1531647 - Implement atomic operations on BigInt TypedArrays r=lth
Differential Revision: https://phabricator.services.mozilla.com/D21648

--HG--
extra : moz-landing-system : lando
2019-04-29 23:20:17 +00:00
Robin Templeton fa340ddad3 Bug 1527902 - Enable javascript.options.bigint by default r=jandem,kmag
Differential Revision: https://phabricator.services.mozilla.com/D29182

--HG--
extra : moz-landing-system : lando
2019-05-02 19:19:00 +00:00
Jan de Mooij 9818272c76 Bug 1548223 - Don't assert in Realm's destructor if we have shutdown GC leaks. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D29623

--HG--
extra : moz-landing-system : lando
2019-05-02 11:35:52 +00:00
Jan de Mooij 6f28e94619 Bug 1537908 part 4 - Replace overflow check with a static_assert. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D29470

--HG--
extra : moz-landing-system : lando
2019-05-01 15:40:11 +00:00
Tom Schuster 069f9b2851 Bug 1547131 - JS shell: show the stack for thrown values that are not Error objects. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D28967

--HG--
extra : moz-landing-system : lando
2019-05-02 11:12:27 +00:00
Jan de Mooij 5e3db1106f Bug 1541404 part 18 - Various minor changes for debugger support. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D28993

--HG--
extra : moz-landing-system : lando
2019-05-02 08:38:06 +00:00
Luke Wagner 88fdbed8e4 Bug 1546138 - Baldr: rename TableKind::TypedFunction to AsmJS (r=lth)
Differential Revision: https://phabricator.services.mozilla.com/D29299

--HG--
extra : rebase_source : 5e03322e1ebc5ffaa8f55de0fa5c359b492dc647
2019-04-24 16:57:07 -05:00
Luke Wagner 45279425f2 Bug 1546138 - Baldr: add FuncRef to ValType (r=lth)
Differential Revision: https://phabricator.services.mozilla.com/D28724
***
Bug 1546138 - Baldr: remove (ref T) special case from Val union (r=lth)

Differential Revision: https://phabricator.services.mozilla.com/D29298

--HG--
extra : rebase_source : f0f259bb893900d4402cfa9f88b13dcbd31caa16
2019-04-29 19:13:55 -05:00
Luke Wagner d42d918d39 Bug 1546138 - Baldr: reflect 'anyfunc' to 'funcref' renaming in methods (r=lth)
Differential Revision: https://phabricator.services.mozilla.com/D28723

--HG--
extra : rebase_source : bead7ea1c74b2dad2163974eee6da6fae1f2e322
2019-04-29 18:00:26 -05:00
Jeff Walden 597302311d Bug 1546300 - Add a runtime check for structured-clone of RegExp flags not producing an invalid value, rather than merely asserting it. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D29579

--HG--
extra : rebase_source : c94ed1d4764da494fc3f5d1e2372b2de38657bdd
2019-05-01 14:56:22 -07:00
Jeff Walden e471f6923b Bug 1547478 - Flip the sense of a |mode == XDR_ENCODE| so that BinAST source data is properly XDR'd. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D29266

--HG--
extra : rebase_source : 1bff647a52389a4a89cf12c5cd94683b34eac68b
2019-04-29 20:30:39 -07:00
Jeff Walden 8444b0508a Bug 1547478 - Add more assertions verifying that ScriptSources contain expected types of data during the XDR process. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D29315

--HG--
extra : rebase_source : 939e81484ba149e70f8c05b02db488848b3551af
2019-04-29 16:44:16 -07:00
Jeff Walden d4794cc364 Bug 1547478 - Root fresh BinAST metadata created during XDR decoding until it's transferred into its ScriptSource. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D29314

--HG--
extra : rebase_source : 5b7c855256b117ea39eacab6f56f1b38d20ef574
2019-04-29 14:33:55 -07:00
Brindusan Cristian 05b6a8de1e Backed out 6 changesets (bug 1392408) for build bustages at nsContentPolicy.cpp and nsFrameLoaderOwner.cpp. CLOSED TREE
Backed out changeset a32ab60deb60 (bug 1392408)
Backed out changeset 69cbc0afb1f1 (bug 1392408)
Backed out changeset cd9081aac4bf (bug 1392408)
Backed out changeset d88d5959f4a6 (bug 1392408)
Backed out changeset 01fd757e335b (bug 1392408)
Backed out changeset 872645a5122c (bug 1392408)
2019-05-02 19:57:25 +03:00
Brian Hackett 961e486752 Bug 1392408 Part 1 - Add interface to help convert SavedFrames to JSON, r=jimb.
--HG--
extra : rebase_source : 994a07e6f5af10d4f1c94e459d9af5b7db22703e
2019-04-19 06:57:06 -10:00
Paul Bone 6a6e6728fd Bug 1548161 - Add a JSGC parameter for zoneAllocDelayBytes r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D29476

--HG--
extra : moz-landing-system : lando
2019-05-01 12:30:46 +00:00
Ted Campbell 39a94f4b88 Bug 1545537 - Disable some jit-tests on android due to harness issues. r=sstangl
Disable certain jit-tests until Bug 1532654 is fixed.

Differential Revision: https://phabricator.services.mozilla.com/D28843

--HG--
extra : moz-landing-system : lando
2019-05-01 22:08:40 +00:00
Ted Campbell deb97066b7 Bug 1545537 - Add 'android' as a jsshell buildConfiguration property. r=sstangl
Differential Revision: https://phabricator.services.mozilla.com/D28842

--HG--
extra : moz-landing-system : lando
2019-05-01 22:06:53 +00:00
Ashley Hauck f81622c868 Bug 1547130 - Always use a tdzCache for class scopes. r=jorendorff
This was incorrectly implemented in bug 1542448 - for a class without a
name, the .initializers varaible would correctly use the class scope,
but would incorrectly use the tdzCache of the *surrounding* scope.
Having two distinct .initializer variables use the same tdzCache caused
the crash in this bug.

Differential Revision: https://phabricator.services.mozilla.com/D29574

--HG--
extra : moz-landing-system : lando
2019-05-01 22:11:41 +00:00
Ashley Hauck bee60b265c Bug 1540789 - Correctly scope .this in field initializers. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D27950

--HG--
extra : moz-landing-system : lando
2019-05-01 22:08:47 +00:00
Mike Conley bff8e0ac63 Bug 1533955 - Show some UI to indicate that a subframe has crashed. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D29238

--HG--
extra : moz-landing-system : lando
2019-05-01 20:05:24 +00:00
Ashley Hauck e0e53baaf8 Bug 1547915 - Correctly handle private identifiers with escapes. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D29392

--HG--
extra : moz-landing-system : lando
2019-05-01 18:04:42 +00:00
Andreea Pavel accc389b66 Merge mozilla-inbound to mozilla-central. a=merge 2019-05-01 18:56:07 +03:00
Sylvestre Ledru e226046cb8 Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

Differential Revision: https://phabricator.services.mozilla.com/D28956

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Jan de Mooij a3adeb35b2 Bug 1546620 - Add a numDebuggeeRealms counter to JSRuntime. r=jorendorff
The Baseline Interpreter will use incrementNumDebuggeeRealms and
decrementNumDebuggeeRealms to toggle some debugging things if needed.

Differential Revision: https://phabricator.services.mozilla.com/D28636

--HG--
extra : moz-landing-system : lando
2019-05-01 08:07:31 +00:00
Jim Porter 04d397e55f Bug 1493225, part 1 - Cancel content JS when navigating through history to prevent hangs r=smaug
This patch passes a message through the HangMonitor channel when navigating
through history to cancel content JS that could hang the chrome JS in the
content process responsible for history navigation. If the content JS is
actually canceled, this also disables the BF cache for the current page, since
it could end up in an inconsistent state due to the JS cancellation.

Differential Revision: https://phabricator.services.mozilla.com/D23089

--HG--
extra : moz-landing-system : lando
2019-04-30 23:56:17 +00:00
Ashley Hauck 6d0ca3e27e Bug 1545212 - Use more explicit types for ParseNodes. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D27962

--HG--
extra : moz-landing-system : lando
2019-04-30 23:36:04 +00:00