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

74006 Коммитов

Автор SHA1 Сообщение Дата
Coroiu Cristina 71c9b69680 Backed out changeset 1bd1069fa2b2 (bug 1566466) on request by tcampbell for causing ccov Jit6 permafails on a CLOSED TREE
--HG--
extra : histedit_source : 36b1957c9dffe9638634d89dab93b96eba43f293
2019-12-03 00:38:53 +02:00
Matthew Gaudet d0751bba57 Bug 1588158 - Add FunctionFlags member to FunctionBox, and delegate relevant queries to it r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D55315

--HG--
extra : moz-landing-system : lando
2019-12-02 20:26:39 +00:00
Ted Campbell e91b3c8dd0 Bug 1566466 - Clean up relazification conditions. r=jandem
Move the relazification decisions to JSScript since the check is made after
delazification happens. The JSScript::isRelazifiable check inspects
characteristics of the script itself, while JSScript::canRelazify includes
additional checks for runtime conditions outside the script.

Depends on D55362

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

--HG--
extra : moz-landing-system : lando
2019-12-02 19:38:17 +00:00
Ted Campbell 442b6dd6c3 Bug 1600439 - Move the PrivateScriptData pointer to js::BaseScript. r=jandem
Now that both LazyScript and JSScript have the same pointer field, we can
move to the BaseScript class. The inner-function pointers in the gcthings
array will have the same meaning for both LazyScript and JSScript, but the
other members of gcthings may have different interpretations.

This adds poisoning of the PrivateScriptData in the LazyScript case for
consistency.

Depends on D55361

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

--HG--
extra : moz-landing-system : lando
2019-12-02 19:38:19 +00:00
Ted Campbell aca8ac0477 Bug 1600439 - Move js::PrivateScriptData before js::BaseScript. r=jandem
Reorder the classes in JSScript.h so that we can use PrivateScriptData from
within BaseScript.

Depends on D55360

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

--HG--
extra : moz-landing-system : lando
2019-12-02 19:38:22 +00:00
Ted Campbell ab9e3e595a Bug 1600439 - Replace LazyScriptData with PrivateScriptData. r=jandem
It it straight-foward for users of LazyScriptData to support a single array
for closedOverBindings and innerFunctions. As a result, we can use
PrivateScriptData as the implementation and eliminate the LazyScriptData type
altogether.

Depends on D55035

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

--HG--
extra : moz-landing-system : lando
2019-12-02 20:18:04 +00:00
Ted Campbell 67a59d854f Bug 1591598 - Move 'warmUpData_' field to js::BaseScript. r=jandem
Unify the JSScript::warmUpData_ and LazyScript::enclosingLazyScriptOrScope_
fields into BaseScript. As a script progresses from lazy up to being JIT-ed
it the type stored in this field will change. If a script is in a compiled
state, the enclosingLazyScriptOrScope_ value can always be reconstructed
during relazification.

Depends on D55034

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

--HG--
extra : moz-landing-system : lando
2019-12-02 19:38:26 +00:00
Ted Campbell 271e720c33 Bug 1591598 - Support storing LazyScript/Scope in ScriptWarmUpData. r=jandem,jonco
Allow storing manually-barriered GC pointers in ScriptWarmUpData. This
updates the 'trace' method as needed. When switching types, the user must
first 'clear' the old type and then 'init' the new type. We continue to use
WarmUpCount(0) as the default safe state.

Depends on D55033

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

--HG--
extra : moz-landing-system : lando
2019-12-02 19:38:28 +00:00
Ted Campbell 5be6b5d9e8 Bug 1591598 - Move js::ScriptWarmUpData before js::BaseScript. r=jandem
Prepare to move the warmUpData field to BaseScript by first moving the type
definition earlier in the file.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 19:38:30 +00:00
Coroiu Cristina fb0cdfff2e Backed out 7 changesets (bug 1600439, bug 1566466, bug 1591598) for raptor crashes on a CLOSED TREE
Backed out changeset 14f33b78f0eb (bug 1566466)
Backed out changeset 617ce539db70 (bug 1600439)
Backed out changeset 47f84263339e (bug 1600439)
Backed out changeset 07471e96b2d8 (bug 1600439)
Backed out changeset 5163670bfede (bug 1591598)
Backed out changeset 5ea098cc9ef0 (bug 1591598)
Backed out changeset 42ca239ee6a6 (bug 1591598)
2019-12-02 21:27:55 +02:00
Steve Fink a9b75a63bb Bug 1597206 - Do not populate weak keys during RegularMarking yet, and allow aborting weak marking during RegularMarking r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D54580

--HG--
extra : moz-landing-system : lando
2019-11-28 05:51:09 +00:00
Steve Fink be9b7d8e1a Bug 1597206 - Refactor GCMarker state management r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D54579

--HG--
extra : moz-landing-system : lando
2019-12-02 18:25:14 +00:00
Steve Fink 94503e692b Bug 1597206 - Refactor enterWeakMarkingMode slightly r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D54564

--HG--
extra : moz-landing-system : lando
2019-11-28 05:51:06 +00:00
André Bargull 33766e4d76 Bug 1600596: Remove unused functions UninlinedIsInsideNursery and PushArena. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D55435

--HG--
extra : moz-landing-system : lando
2019-12-02 17:18:03 +00:00
André Bargull 2f552606a6 Bug 1599465 - Part 12: Remove extra rooting. r=jwalden
Removes rooting when the allocation isn't followed by any operation which can
GC resp. takes a `JSContext` argument.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:08 +00:00
André Bargull bf1723827b Bug 1599465 - Part 11: Add fast path for BigInt subtraction with uint64 magnitude. r=jwalden
Subtraction doesn't have the same unused malloc memory problem which was present
for addition and subtraction, so the relative speed-up when adding a uint64
fast-path is less prominent (only about 10%), but it still seems worthwhile to
provide a fast-path, too.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:08 +00:00
André Bargull a3067a0c3b Bug 1599465 - Part 10: Avoid calling absoluteCompare() twice in BigInt subtraction. r=jwalden
`absoluteCompare()` is currently called twice when subtracting two BigInts,
avoiding the second call gives a slight speed-up.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:08 +00:00
André Bargull 28319c9e07 Bug 1599465 - Part 9: Add 'const' modifier to hash() and dump() methods. r=jwalden
An earlier part changed the `digit` function to be `const`, so we can now make
these two functions `const`, too.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:07 +00:00
André Bargull c206352de3 Bug 1599465 - Part 8: Remove function call indirection when calling BigInt operations from jit-code. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D54764

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:07 +00:00
André Bargull 6c0ebea0c8 Bug 1599465 - Part 7: Add "Value" suffix to BigInt operations on Values types. r=jandem
Add the suffix in preparation for part 8.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:07 +00:00
André Bargull 98cd310eca Bug 1599465 - Part 6: Change test to check if uint128 types are available. r=jwalden
We never define `HAVE_INT128_SUPPORT`, so the uint128 code path is never
enabled. Change the test to use `__SIZEOF_INT128__` to enable it on
applicable platforms.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:06 +00:00
André Bargull ccaf2a12e3 Bug 1599465 - Part 5: Add fast path for BigInt multiplication with uint64 magnitude. r=jwalden
Similar to the previous part, also add a fast-path when multiplying two Bigints
which fit into uint64_t. When the result also fits into uint64_t, this approach
avoids allocating unused malloc memory.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:06 +00:00
André Bargull 0903f6d258 Bug 1599465 - Part 4: Add fast path for BigInt addition with uint64 magnitude. r=jwalden
Add a fast path for uint64 BigInts to `BigInt::absoluteAdd`. This fast path
gives a substantial speed-up, because addition for uint64 BigInts no longer
needs allocate malloc memory when the result also fits into uint64_t.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:06 +00:00
André Bargull 3af8368be7 Bug 1599465 - Part 3: Add fitsInUint64 and uint64FromNonZero to BigInt. r=jwalden
Adds `fitsInUint64` to check if a BigInt fits into uint64_t and `uint64FromNonZero`
to extract an uint64_t value from a non-zero BigInt. Boths function are inline
because the next patches will use them in fast-paths.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:06 +00:00
André Bargull 5987154aca Bug 1599465 - Part 2: Implement in-place modification in destructivelyTrimHighZeroDigits. r=jwalden
Resolves the TODO in `destructivelyTrimHighZeroDigits` and additionally removes
`trimHighZeroDigits`, because it is no longer used. This change is especially
beneficial for functions which are most of the time over-estimating the result
digit length, like for example `BigInt::absoluteAdd`.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 17:37:06 +00:00
André Bargull 175986d76a Bug 1599465 - Part 1: Move checked arithmetic functions into their own header. r=jwalden
This allows to use these functions without pulling in the complete `jsnum.h` header.

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

--HG--
rename : js/src/jsnum.h => js/src/util/CheckedArithmetic.h
extra : moz-landing-system : lando
2019-12-02 17:37:05 +00:00
Chris Fallin 68ac49527e Bug 1598347, part 2: pass "inner singleton" to NEWOBJECT group logic. r=djvj,iain
This change passes through the "inner singleton" status of a particular
object literal to the group-assignment logic for JSOP_NEWOBJECT by
instead using a variant opcode, JSOP_NEWOBJECT_WITHGROUP.  "Inner
singleton" status is meant to emulate old behavior (prior to ObjLiteral)
in which the frontend built an entire tree of objects/arrays with a
top-level singleton. In the old world, these objects were allocated by
ParseNode::getConstantValue() in the frontend and built by
ObjectGroup::newPlainObject, which looked up an object group by property
names. In the new world, the default NEWOBJECT logic uses a separate
test for whether an allocation site should have a singleton group, and
even after we carefully emulate the old group behavior in the frontend,
the new-object allocation itself will decide to allocate singleton
groups. In the particular regression case motivating this change, these
singleton groups break the TI information for a singleton array (typeset
for all elems no longer has a single group) and as a result, a simple
property access can no longer be inlined. This patch matches the old
behavior and allows the inlining to occur.

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

--HG--
extra : moz-landing-system : lando
2019-11-27 22:49:33 +00:00
Chris Fallin ecb5852eeb Bug 1598347, part 1: Handle the inner-singleton case for array elem objs. r=djvj,iain
This patch extends the "inner singleton" hack to array element object
literals in the parser. With the new ObjLiteral system, we are
attempting to emulate the old (sometimes incidental) behavior of the
parser's literal object allocation as closely as possible, to avoid
regressions (such as this bug). The "inner singleton" status indicates
that an object would have been allocated as part of a tree objects, with
a singleton at the top, in the old world. In this case, we do something
slightly different with the group setup. The second half of this patch
will extend the inner-singleton bit back through to object allocation
during execution.

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

--HG--
extra : moz-landing-system : lando
2019-11-27 22:48:40 +00:00
Noemi Erli a500b741f0 Backed out changeset f7fb3affa4fb (bug 1598377) for causing failures in wasm-testharness.js CLOSED TREE 2019-12-02 20:13:45 +02:00
Matthew Gaudet 74cf2006fe Bug 1600160 - Sync source information from lazyScript to FunctionBox r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D55200

--HG--
extra : moz-landing-system : lando
2019-12-02 16:53:57 +00:00
Matthew Gaudet ec6a900104 Bug 1600160 - Remove function() uses that don't need to be there r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D55199

--HG--
extra : moz-landing-system : lando
2019-12-02 16:53:42 +00:00
Matthew Gaudet 2b0ed7f24e Bug 1600162 - Initialize skipped lazy function funbox in the same manner as regular lazy function funboxen r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D55198

--HG--
extra : moz-landing-system : lando
2019-12-02 16:53:33 +00:00
Matthew Gaudet 8033b3a789 Bug 1600160 - Rename buf{End,Start} to source{End,start} in FunctionBox to match BaseScript r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D55197

--HG--
extra : moz-landing-system : lando
2019-12-02 16:53:23 +00:00
Ciure Andrei e473bd5f57 Backed out 10 changesets (bug 1582512) for causing browser_preferences_usage.js to permafail CLOSED TREE
Backed out changeset a615a2c07523 (bug 1582512)
Backed out changeset 7dd0266da0a1 (bug 1582512)
Backed out changeset dfdefc6ede97 (bug 1582512)
Backed out changeset 59db30e1915f (bug 1582512)
Backed out changeset 1eb6f6b02149 (bug 1582512)
Backed out changeset 391ed11326fb (bug 1582512)
Backed out changeset 02865605c1c3 (bug 1582512)
Backed out changeset 017582048986 (bug 1582512)
Backed out changeset 1374c08302f9 (bug 1582512)
Backed out changeset 40dd63b6910a (bug 1582512)
2019-12-02 19:23:12 +02:00
Jon Coppeard b8f1aa26cd Bug 1600575 - Replace use of gc/PrivateIterators-inl.h header from outside the GC component r=allstarschh
None of these uses actually need this header.  Mostly they need the definitions in GC-inl.h.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 13:38:27 +00:00
Ryan Hunt 0971174cfe Bug 1598377 - Only allow function types with one result when CL is enabled. r=lth
Differential Revision: https://phabricator.services.mozilla.com/D55029

--HG--
extra : moz-landing-system : lando
2019-12-02 16:02:23 +00:00
Tom Ritter 3002020702 Bug 1582512 - Disable script filename validation in Browser Toolbox console debugging r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D53234

--HG--
extra : moz-landing-system : lando
2019-12-02 15:45:57 +00:00
Tom Ritter fc663a0a8d Bug 1582512 - Disable script filename restrictions in Marionette r=jandem,marionette-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D51676

--HG--
extra : moz-landing-system : lando
2019-12-02 15:46:21 +00:00
Tom Ritter fdbdcf71e8 Bug 1582512 - Disable javascript filename validation on all entry points from xpcshell r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D51336

--HG--
extra : moz-landing-system : lando
2019-12-02 15:46:11 +00:00
Tom Ritter 40826aaf6c Bug 1582512 - Register a ScriptValidationCallback to examine script loads in the parent process r=Gijs,ckerschb
Additionally, we disable validation on PAC scripts.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 15:45:13 +00:00
Mu Tao 041dc842ad Bug 1591047 part 5 - [mips] Pass heapBase to memCopy/memFill and use that to acquire length. r=lth
Differential Revision: https://phabricator.services.mozilla.com/D55242

--HG--
extra : moz-landing-system : lando
2019-12-02 15:02:12 +00:00
Mu Tao 041812db1b Bug 1581572 - [mips] Allow AnyRef on JS/wasm fast paths, part 1. r=lth
Differential Revision: https://phabricator.services.mozilla.com/D55244

--HG--
extra : moz-landing-system : lando
2019-12-02 15:40:44 +00:00
Jon Coppeard ad4b558a2e Bug 1600070 - Update test262 tests r=jandem
The result of running test262-update.py.

Depends on D55121

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

--HG--
extra : moz-landing-system : lando
2019-12-02 12:36:13 +00:00
Jon Coppeard a32d49f115 Bug 1600070 - Enable test262 FinalizationGroup tests on infra r=jandem
This adds the shell option for all the FinalizationGroup tests and updates the test262 update script. We still need to run the update script so that the tests do feature detection.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 12:36:13 +00:00
Jon Coppeard 5718264798 Bug 1598683 - Add a way to enable conditional features in test262 shell tests r=jandem
The patch adds a new option that can be used from jstests.list to pass additional shell command line options. With feature detection (skip-if) this allows us to have tests running on infra for experimental features that are not yet supported in the browser.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 11:24:35 +00:00
André Bargull b0a4cb0d30 Bug 1474914: Skip elementsRangeWriteBarrierPost for nursery objects. r=jonco
`StoreBuffer::putSlot` when called with a nursery object as its `obj` parameter
is a no-op, because `StoreBuffer::put` is a no-op when `Edge::maybeInRememberedSet`
return false, which, in the case of `SlotsEdge`, happens when `SlotsEdge::object()`
is in the nursery. This enables us to skip the linear traversal of the elements
array in `elementsRangeWriteBarrierPost` when the current object is in the nursery.

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

--HG--
extra : moz-landing-system : lando
2019-12-02 12:50:30 +00:00
Ted Campbell dd2de5a33d Bug 1566466 - Clean up relazification conditions. r=jandem
Move the relazification decisions to JSScript since the check is made after
delazification happens. The JSScript::isRelazifiable check inspects
characteristics of the script itself, while JSScript::canRelazify includes
additional checks for runtime conditions outside the script.

Depends on D55362

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

--HG--
extra : moz-landing-system : lando
2019-12-02 14:32:16 +00:00
Ted Campbell 932d0d59fe Bug 1600439 - Move the PrivateScriptData pointer to js::BaseScript. r=jandem
Now that both LazyScript and JSScript have the same pointer field, we can
move to the BaseScript class. The inner-function pointers in the gcthings
array will have the same meaning for both LazyScript and JSScript, but the
other members of gcthings may have different interpretations.

This adds poisoning of the PrivateScriptData in the LazyScript case for
consistency.

Depends on D55361

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

--HG--
extra : moz-landing-system : lando
2019-12-02 14:32:00 +00:00
Ted Campbell 05dd0bca38 Bug 1600439 - Move js::PrivateScriptData before js::BaseScript. r=jandem
Reorder the classes in JSScript.h so that we can use PrivateScriptData from
within BaseScript.

Depends on D55360

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

--HG--
extra : moz-landing-system : lando
2019-12-02 14:30:04 +00:00
Ted Campbell 8ec1a14c33 Bug 1600439 - Replace LazyScriptData with PrivateScriptData. r=jandem
It it straight-foward for users of LazyScriptData to support a single array
for closedOverBindings and innerFunctions. As a result, we can use
PrivateScriptData as the implementation and eliminate the LazyScriptData type
altogether.

Depends on D55035

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

--HG--
extra : moz-landing-system : lando
2019-12-02 14:31:42 +00:00