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

76546 Коммитов

Автор SHA1 Сообщение Дата
Jon Coppeard 34b313001d Bug 1386298 - Replace the unused GCTrace framework r=sfink
The tracing framework is unused but Matthew found the hook points useful, so this changes those into empty inline functions that can be used to insert probes.

Differential Revision: https://phabricator.services.mozilla.com/D73816
2020-05-05 16:35:14 +00:00
Nicolas B. Pierron 0428de2a66 Bug 1635464 - Deref BoxedParseError to read the content. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D73902
2020-05-05 16:26:45 +00:00
Ted Campbell b77108c518 Bug 1631048 - Remove FunctionBox:initLazyScript. r=djvj
Differential Revision: https://phabricator.services.mozilla.com/D71374
2020-05-05 13:53:49 +00:00
Ted Campbell b1c8b301f9 Bug 1631048 - Remove JSFunction::initLazyScript/clearLazyScript. r=djvj
Also move the pre-barrier to JSFunction::maybeRelazify for consistency even
though currently barriers are disabled while running relazification.

JSScript::fullyInitFromStencil does not encounter self-hosted lazy scripts so
remove the dead code.

Differential Revision: https://phabricator.services.mozilla.com/D71373
2020-05-05 13:52:45 +00:00
Ted Campbell 3e881282e1 Bug 1620654 - Defer init of FunctionScope::Data::canonicalFunction. r=mgaudet
Defer initializing the canonicalFunction while the FunctionScope::Data is
owned by the ScopeCreationData. When the data is released to create the
concrete js::Scope, we fill in the canonicalFunction.

Depends on D73765

Differential Revision: https://phabricator.services.mozilla.com/D73772
2020-05-05 13:14:59 +00:00
Ted Campbell 977ffc33a8 Bug 1635289 - Remove AbstractScopePtr::canonicalFunction. r=mgaudet
Add accessors for the specific pieces of data needed so that an actual
function is not needed.

Differential Revision: https://phabricator.services.mozilla.com/D73765
2020-05-05 13:11:48 +00:00
Ted Campbell 5db4da9bbb Bug 1635119 - Cleanup SharedContext/FunctionBox fields and comments. r=mgaudet
Use field initializers when possible (not on bitfields) and organize and
comment the fields better.

Differential Revision: https://phabricator.services.mozilla.com/D73706
2020-05-05 13:10:16 +00:00
Ted Campbell 6f04433c31 Bug 1635119 - Cleanup SharedContext::immutableFlags accessors. r=mgaudet
Use similar helper methods as js::BaseScript for consistency. Also fix the
inconsistent accessor names so they match js::BaseScript and the flag itself.

Depends on D73704

Differential Revision: https://phabricator.services.mozilla.com/D73705
2020-05-05 13:00:45 +00:00
Ted Campbell 00ec9f2ca1 Bug 1635119 - Replace FunctionBox::usesArguments with ArgumentsHasVarBinding. r=mgaudet
These flags are always set to the same values by
declareFunctionArgumentsObject.

Depends on D73697

Differential Revision: https://phabricator.services.mozilla.com/D73704
2020-05-05 12:53:58 +00:00
Ted Campbell bb381e4365 Bug 1635115 - Inline SourceAwareCompiler::prepareScriptParse and friends. r=mgaudet
As we progress towards Stencil, these "prepare" abstractions make less sense
as their original purpose was to allocate GC-things.

Differential Revision: https://phabricator.services.mozilla.com/D73697
2020-05-05 13:17:51 +00:00
Ted Campbell f6c63d7e86 Bug 1635115 - Initialize "input" ImmutableFlags in SharedContext constructor. r=mgaudet
This removes all other locations through the frontend where these flags would
be set. The transitive options are applied to all SharedContext, while the
non-transitive flags are only applied to top-level (non-function)
SharedContext. Also update frontend to stop reading these CompileOptions
flags directly and instead rely on the SharedContext::immutableFlags.

Depends on D73695

Differential Revision: https://phabricator.services.mozilla.com/D73696
2020-05-05 13:29:33 +00:00
André Bargull acbc34d97d Bug 1635396: Remove always-false if-statement in IonBuilder::jsop_newtarget. r=jandem
`JSOp::NewTarget` is only emitted in function contexts.

Differential Revision: https://phabricator.services.mozilla.com/D73832
2020-05-05 12:59:27 +00:00
André Bargull f62c1cb2a8 Bug 1633836 - Part 2: Reimport test262 after enabling Unified NumberFormat API by default. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D72921
2020-05-05 10:43:43 +00:00
André Bargull 9eea8836d9 Bug 1633836 - Part 1: Enable Unified NumberFormat API by default. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D72920
2020-05-05 09:23:40 +00:00
André Bargull 33f9342668 Bug 1589095 - Part 4: Enable Intl.ListFormat by default. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D72919
2020-05-05 09:45:06 +00:00
André Bargull 3df79b0d50 Bug 1589095 - Part 3: Add ListFormat optimisation when list contains less two elements. r=jwalden
We can avoid initialising the ICU list formatter and calling into C++ when the
list contains less than two elements.

Differential Revision: https://phabricator.services.mozilla.com/D72918
2020-05-05 09:22:43 +00:00
André Bargull 59b1c27c75 Bug 1589095 - Part 2: Enable additional Intl.ListFormat test cases. r=jwalden
"conjunction-long.js" can be removed, because the more thorough
"conjunction-type.js" test gets enabled in this patch.

Differential Revision: https://phabricator.services.mozilla.com/D72917
2020-05-05 09:22:18 +00:00
André Bargull d71e7542f4 Bug 1589095 - Part 1: Call new ICU API for list formatters to set style/width options. r=jwalden
`ulistfmt_openForType` is a draft API, so it may not be available when compiling
against a system ICU. Instead of disabling `Intl.ListFormat` completely, this
patch adds a boolean parameter to `InitializeListFormat` to conditionally enable
the "type" and "style" options when ICU draft APIs are available.

Differential Revision: https://phabricator.services.mozilla.com/D72916
2020-05-05 09:21:48 +00:00
André Bargull eb9171ca8f Bug 1632434 - Part 6: Update test case results after update to ICU 67. r=jwalden
Depends on D72913

Differential Revision: https://phabricator.services.mozilla.com/D72914
2020-04-30 07:13:41 +00:00
André Bargull c4a1e03db6 Bug 1632434 - Part 5: Remove guards around previous ICU draft APIs. r=jwalden
These APIs were stabilised in ICU 67.

Depends on D72912

Differential Revision: https://phabricator.services.mozilla.com/D72913
2020-04-29 23:47:56 +00:00
André Bargull 2367c4a53b Bug 1632434 - Part 3: Update language tag mappings for CLDR 37. r=jwalden
Depends on D72910

Differential Revision: https://phabricator.services.mozilla.com/D72911
2020-04-29 23:47:41 +00:00
Jan de Mooij 081eb32294 Bug 1634698 part 2 - Pass the right newTarget value for eval frames so we don't have to recover it using a frame iter. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D73458
2020-05-04 13:23:05 +00:00
Jan de Mooij 47bffad7de Bug 1634698 part 1 - Use proper stack rooting for Execute/ExecuteKernel arguments. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D73457
2020-05-05 11:08:14 +00:00
Simon Giesecke cbc8da0cf3 Bug 1626570 - Improve handling of copying arrays in js/xpconnect/. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D72349
2020-05-05 10:40:31 +00:00
Razvan Maries c2b627950c Backed out 10 changesets (bug 1626570) for build bustages. CLOSED TREE
Backed out changeset a3f17d392234 (bug 1626570)
Backed out changeset 5247e1ddd5d6 (bug 1626570)
Backed out changeset c339fd44c9f8 (bug 1626570)
Backed out changeset 4c69a4c013b3 (bug 1626570)
Backed out changeset e85450d69351 (bug 1626570)
Backed out changeset 793f978248b3 (bug 1626570)
Backed out changeset 68b4c2418d83 (bug 1626570)
Backed out changeset 52d0911d4ad3 (bug 1626570)
Backed out changeset a7d4e3a59ee3 (bug 1626570)
Backed out changeset 6c06d397a5d2 (bug 1626570)
2020-05-05 13:37:08 +03:00
Simon Giesecke f13b476ee4 Bug 1626570 - Improve handling of copying arrays in js/xpconnect/. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D72349
2020-05-05 09:49:40 +00:00
Tom Schuster 8021c38d67 Bug 1635250 - Warp: Transpile double/number comparison. r=jandem
Depends on D73750

Differential Revision: https://phabricator.services.mozilla.com/D73751
2020-05-05 09:03:14 +00:00
Tom Schuster 3c73b60ee4 Bug 1635250 - Warp: Transpile more compare ops. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73750
2020-05-05 09:03:16 +00:00
Tom Schuster eeb66b241f Bug 1634534 - Warp: support basic transpilation of GuardSpecificAtom. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73340
2020-05-05 09:45:16 +00:00
Tom Schuster eaaf244f45 Bug 1634742 - Warp: support StoreDynamicSlot transpilation. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73579
2020-05-05 09:03:18 +00:00
Tom Schuster 10ee22f2f7 Bug 1634742 - Support transpiling JSOp::SetProp. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73478
2020-05-05 09:03:20 +00:00
Tom Schuster 0c48a19991 Bug 1634742 - Assert that effectful instructions have resume points in the transpiler. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73477
2020-05-05 09:03:23 +00:00
Razvan Maries 1261b692d1 Backed out 6 changesets (bug 1635250, bug 1634742, bug 1634534) for build bustages. CLOSED TREE
Backed out changeset ab0d509be250 (bug 1635250)
Backed out changeset ba606ebab22d (bug 1635250)
Backed out changeset 40be76d9a56b (bug 1634534)
Backed out changeset e44aec48cebf (bug 1634742)
Backed out changeset b595ee1683eb (bug 1634742)
Backed out changeset 7dc4c8dcf2ec (bug 1634742)
2020-05-05 11:58:30 +03:00
Tom Schuster 289aa341f5 Bug 1635250 - Warp: Transpile double/number comparison. r=jandem
Depends on D73750

Differential Revision: https://phabricator.services.mozilla.com/D73751
2020-05-05 07:09:18 +00:00
Tom Schuster 9032b3b3be Bug 1635250 - Warp: Transpile more compare ops. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73750
2020-05-05 08:38:53 +00:00
Tom Schuster 6cc4c5befc Bug 1634534 - Warp: support basic transpilation of GuardSpecificAtom. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73340
2020-05-05 08:44:26 +00:00
Tom Schuster 697458cf7f Bug 1634742 - Warp: support StoreDynamicSlot transpilation. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73579
2020-05-05 08:43:45 +00:00
Tom Schuster c0c98d01f6 Bug 1634742 - Support transpiling JSOp::SetProp. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73478
2020-05-05 08:43:45 +00:00
Tom Schuster dfc9c15973 Bug 1634742 - Assert that effectful instructions have resume points in the transpiler. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D73477
2020-05-04 15:42:04 +00:00
Lars T Hansen fce4be7da9 Bug 1478632 - wasm simd, part 9: shell switches. r=bbouvier
Distinguish between SSE 4.1 and SSE 4.2, and also make it possible to
talk about SSSE3 [sic].

Differential Revision: https://phabricator.services.mozilla.com/D72627
2020-05-05 08:26:17 +00:00
Lars T Hansen 62c1959ca1 Bug 1478632 - wasm simd, part 8: spec test cases. r=rhunt
Import a rough-and-ready translation of the SIMD spec test cases.  We
place these in wasm/simd/spec instead of in wasm/spec/simd since the
latter location will eventually be occupied by the canonical
translation, after which the tests imported by the present patch can
be deleted.

Differential Revision: https://phabricator.services.mozilla.com/D71006
2020-05-05 08:25:59 +00:00
Lars T Hansen 060bd91e65 Bug 1478632 - wasm simd, part 7: functional test cases. r=rhunt
Test cases for all instructions and all aspects of the JS interface.

Differential Revision: https://phabricator.services.mozilla.com/D68853
2020-05-05 08:25:00 +00:00
Lars T Hansen 6852f14d69 Bug 1478632 - wasm simd, part 6: baseline compiler support. r=jseward
This fleshes out the V128 cases throughout the baseline compiler and
adds decoders for all the opcodes.

Differential Revision: https://phabricator.services.mozilla.com/D59378
2020-05-05 08:24:42 +00:00
Lars T Hansen 53a2f768da Bug 1478632 - wasm simd, part 5b: new porting interfaces and x86/x64 assembler work. r=bbouvier
Clean up porting APIs and implement many new ones.  Also implement
many new instructions required by the new porting APIs.

We only care about x64, sse4.1, non-avx, and only register operands,
and this simplifies things a lot for the new instructions.

Differential Revision: https://phabricator.services.mozilla.com/D69381
2020-05-05 08:24:34 +00:00
Lars T Hansen 168837c2ec Bug 1478632 - wasm simd, part 5a: extract porting interfaces and x86/x64 impls. r=bbouvier
Here we're *only* extracting porting APIs from the -SIMD.cpp file and
exposing them in MacroAssembler.h, along with a little bit of
renaming.  Almost all the interesting action happens in the next patch.

Differential Revision: https://phabricator.services.mozilla.com/D60856
2020-05-05 08:23:28 +00:00
Lars T Hansen 3c9e1d4b5f Bug 1478632 - wasm simd, part 4: test cases for the validator. r=rhunt
These test that validation works as it should, but do not compile or
execute anything.

Differential Revision: https://phabricator.services.mozilla.com/D59111
2020-05-05 08:31:29 +00:00
Lars T Hansen f054b90b38 Bug 1478632 - wasm simd, part 3: opcodes and validator. r=rhunt
We add all the opcodes and all the switches to decode them.

Differential Revision: https://phabricator.services.mozilla.com/D57942
2020-05-05 08:22:58 +00:00
Lars T Hansen db273436b1 Bug 1478632 - wasm simd, part 2: the v128 type. r=rhunt
We add V128 to the ValType enum and insert it in all switches
throughout the engine.  In many cases we insert MOZ_CRASH() that
will be resolved in later patches.

Note we're currently using MIRType::Int8x16 to represent V128.  This
will change later, when we do the Ion work.

Differential Revision: https://phabricator.services.mozilla.com/D57941
2020-05-05 08:22:20 +00:00
Lars T Hansen 414fee387b Bug 1478632 - wasm simd, part 1: feature gating and related prep. r=rhunt
We add a configuration option for SIMD and apply ENABLE_WASM_SIMD
throughout the engine as appropriate, mostly to insert #error or
MOZ_CRASH where things need to be done in later patches or for
architectures that we won't currently consider.

We add a command line switch for the shell and an option for
about:config and plumb the value of this through the engine.

Differential Revision: https://phabricator.services.mozilla.com/D57940
2020-05-05 08:17:47 +00:00
Jan de Mooij 9a231bef58 Bug 1635039 - Add a BaseShape flag for frozen elements. r=anba
The BaseShape flag ensures a shape guard can be used to guard against frozen
elements. This is nice for ICs and Warp because it means they don't need to check
the ObjectElements flag on every dense element store.

The ObjectElements flag still exists because it's useful for assertions and JIT code
(MFallibleStoreElement, hopefully that can be removed with IonBuilder).

Without TI there are no copy-on-write and double arrays so this patch adds the
guards for those in an IsTypeInferenceEnabled() if-statement.

Differential Revision: https://phabricator.services.mozilla.com/D73610
2020-05-05 06:21:55 +00:00