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

77543 Коммитов

Автор SHA1 Сообщение Дата
Ted Campbell dc0f2f597c Bug 1647309 - Account for closed generators in debugger stepperCount assert. r=loganfsmyth
Errors during async generator operations can close the generator but leave
entries in the Debugger::generatorFrames map. This trips up asserts in the
single-step code. Since a closed generator will not match the targettedScript
we simply ignore such entries while checking the assert.

Differential Revision: https://phabricator.services.mozilla.com/D81552
2020-06-29 15:51:00 +00:00
André Bargull 6fb11b8325 Bug 1648757 - Part 4: Update test262 exclusion list. r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D81365
2020-06-29 10:08:48 +00:00
André Bargull 612dc507cb Bug 1648757 - Part 3: Update test262 June 2020. r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D81358
2020-06-29 10:02:52 +00:00
André Bargull 24c6595fd2 Bug 1648757 - Part 2: Update unsupported features list. r=yulia
Depends on D81324

Differential Revision: https://phabricator.services.mozilla.com/D81325
2020-06-27 06:11:51 +00:00
André Bargull 3ed87a4453 Bug 1648757 - Part 1: Allow more than one argument in IsHTMLDDA_Call. r=yulia
Allow more than one argument per <https://github.com/tc39/test262/pull/2674>.

Differential Revision: https://phabricator.services.mozilla.com/D81324
2020-06-27 06:11:51 +00:00
Lars T Hansen 37b5d029fa Bug 1646787 - Mask i32 wasm results. r=luke
See bug for further information.

Differential Revision: https://phabricator.services.mozilla.com/D80820
2020-06-26 15:22:50 +00:00
Yoshi Cheng-Hao Huang 7bf85e3823 Bug 1647115 - Add a runTaskLocked method in SourceCompressionTask. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D80893
2020-06-27 18:25:51 +00:00
Kris Maglione 6aa06b33a7 Bug 1645510: Part 2 - Avoid using the unprivileged junk scope where possible. r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D79720
2020-06-27 03:06:28 +00:00
Kris Maglione f6b7b4f451 Bug 1645510: Part 1 - Make unprivileged junk scope creation lazy, weak, and fallible. r=mccr8,bholley
Differential Revision: https://phabricator.services.mozilla.com/D79719
2020-06-27 03:06:26 +00:00
Kris Maglione 61f75eb9ff Bug 1645510: Part 0 - Handle first system zone compartment having system principal. r=jandem
Prior to this patch set, XPConnect always created the first compartment in the
system zone with a content principal. The subsequent patches make that
global's creation lazy, which leads us to create the first compartment in the
system zone with the system principal and the NewCompartmentInSystemZone
specifier. In that case, we call `setIsSystemZone()` when we create the zone,
because the compartment has the system principal, and then call it again when
we try to store it in `rt->gc.systemZone`, which leads to a failed assertion.

This patch fixes that.

Differential Revision: https://phabricator.services.mozilla.com/D79718
2020-06-27 03:06:18 +00:00
André Bargull 4c855c60d7 Bug 621061: Add a testing function to return a double-typed number. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D81317
2020-06-26 17:44:24 +00:00
Razvan Maries 51299eda62 Bug 1648623 - Removing extra characters. r=RyanVM CLOSED TREE 2020-06-26 22:51:18 +03:00
Razvan Maries 1cad2081c9 Bug 1648623 - Follow-up to fix SM bustages. r=RyanVM CLOSED TREE 2020-06-26 22:45:49 +03:00
Ryan Hunt 1dbce8f783 Bug 1648623 - Properly gate gc/binary.js test on GC proposal. r=RyanVM on a CLOSED TREE
This test uses GC features, not reftypes features.

Differential Revision: https://phabricator.services.mozilla.com/D81367
2020-06-26 17:58:41 +00:00
Ryan VanderMeulen 3f2e1624c6 Backed out changeset a44f97359a10 (bug 1648623) because the wrong phab revision landed. 2020-06-26 14:52:21 -04:00
Ryan Hunt aeadfab422 Bug 1648623 - Properly gate gc/binary.js test on GC proposal. r=RyanVM
This test uses GC features, not reftypes features.

Differential Revision: https://phabricator.services.mozilla.com/D81367
2020-06-26 17:58:41 +00:00
Nathan Froyd fbe3f4f77f Bug 1648790 - annotate AutoProfilerCallInstrumentation as MOZ_RAII; r=jandem
This annotation better describes the intent, and clang `-Wvexing-parse`
captures the erroneous use of this class that `MOZ_GUARD_OBJECT*` was
attempting to catch.

Differential Revision: https://phabricator.services.mozilla.com/D81351
2020-06-26 17:24:15 +00:00
Emilio Cobos Álvarez 7c995807da Bug 1646936 - Generate a single metadata file in the objdir, and feed it to cbindgen. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D80360
2020-06-26 10:41:26 +00:00
Lars T Hansen 4ada6f9383 Bug 1648697 - Disable --enable-avx. r=bbouvier
I disable this with an error message and a comment, but do not remove it,
because it is currently buggy and unsupported but may well make a comeback
when we have time to clean it up and we see whether wasm SIMD on the web
starts demanding it.

It is of course possible that we will never do this in Ion but will wait
for Cranelift, but we don't have to make that decision today.

Differential Revision: https://phabricator.services.mozilla.com/D81293
2020-06-26 08:54:48 +00:00
Coroiu Cristina 302c2fa31a Backed out changeset 8f948dd74aba (bug 1646936) for SM and Toolchain failures on a CLOSED TREE 2020-06-26 13:08:09 +03:00
Emilio Cobos Álvarez 9c7c03bf30 Bug 1646936 - Generate a single metadata file in the objdir, and feed it to cbindgen. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D80360
2020-06-26 09:37:16 +00:00
Jon Coppeard d6eacd40fa Bug 1648272 - Change store buffer mutex order so as not to conflict with wasm mutexes r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D81135
2020-06-25 21:57:54 +00:00
Steve Fink 4d9132ebfd Bug 1568923 - String deduplication fixups from review r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D79583
2020-06-26 02:17:04 +00:00
Tom Schuster 4d5ed565df Bug 1647370 - Known JSClass analysis based on MIR nodes. r=jandem
This analysis is mostly useful for Warp without TI. We try to infer a known JSClass based
on MIR node types. There is very basic support for phis that is enough to handle some
if-else patterns where both sides produce the same object class.

To make sure the inferred JSClass is correct I am also adding an MAssertClass instruction
that asserts the class is correct during run-time.

Differential Revision: https://phabricator.services.mozilla.com/D80507
2020-06-25 18:20:08 +00:00
Cosmin Sabou 9a65563928 Backed out changeset 2d6665fa9b43 (bug 1640844) for causing regressions. 2020-06-25 21:08:01 +03:00
Cosmin Sabou 0e5d65f0f1 Backed out changeset decd39d62966 (bug 1647803) for build bustages on JSFunction.h. CLOSED TREE 2020-06-25 20:02:32 +03:00
Jon Coppeard 82f81f5453 Bug 1647803 - Move cell header field to the Cell class and remove CellHeader classes r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D80839
2020-06-25 15:14:37 +00:00
Lars T Hansen 57a5014959 Bug 1647991 - Allow wasmDis to return its result as a string. r=rhunt
This is useful for limited whitebox testing that inspects the assembly
output.  Ask me about details (s-s).

The code, adding a thread-local, is not completely pretty.  This
seemed like a better fix than adding the plumbing for a more elaborate
callback mechanism (basically we need to pass a context argument down
through the disassembly pipeline and adapt all the disassemblers),
though I'm open for discussion on this point.

Differential Revision: https://phabricator.services.mozilla.com/D80819
2020-06-24 19:17:40 +00:00
Ryan Hunt 87ef44e6ab Bug 1642940 - Report OOM on table allocation failure. r=lth
Table::create() returns false when allocation fails, but does
not report the OOM. This commit adds appropriate calls to
ReportOutOfMemory around calls to Table::create().

Differential Revision: https://phabricator.services.mozilla.com/D80754
2020-06-25 05:21:41 +00:00
Ryan Hunt fe6aa87a6d Bug 1642940 - Remove redundant GetLimits parameter. r=lth
This is clean-up from the refactoring that made initial/max limits the same.

Differential Revision: https://phabricator.services.mozilla.com/D80142
2020-06-25 05:21:39 +00:00
Ryan Hunt a7d5673bc3 Bug 1642940 - Consolidate and expand tests of memory/table limits. r=lth
There were some ad-hoc tests for this behavior that are now consolidated and
extended in 'limits.js'.

Differential Revision: https://phabricator.services.mozilla.com/D80141
2020-06-25 08:28:09 +00:00
Ryan Hunt e2cb431b65 Bug 1615434 - Increase maximum initial memory size to 2GiB. r=lth
The spec no longer has an initial memory size limit, so we should allow up to
the limit imposed upon us by ArrayBuffer.

Differential Revision: https://phabricator.services.mozilla.com/D80140
2020-06-25 05:21:45 +00:00
Ryan Hunt 7802c0a015 Bug 1642940 - Separate the validation and runtime table limit checks. r=lth
This commit separates the validation limit defined by the core spec and the
implementation runtime limit defined by the JS-API spec. The exception
generated for the runtime check is a WebAssembly.RuntimeError as decided upon
upstream.

Additionally, there is no longer the concept of an initial limit. The code is
updated to reflect this.

Differential Revision: https://phabricator.services.mozilla.com/D80139
2020-06-25 05:21:48 +00:00
Ryan Hunt a7d7a2f65b Bug 1642940 - Separate the validation and runtime memory limit checks. r=lth
This commit separates the validation limit defined by the core spec and the
implementation runtime limit defined by the JS-API spec. The exception
generated for the runtime check is a WebAssembly.RuntimeError as decided upon
upstream.

Additionally, there is no longer the concept of an 'initial' limit, so code
is updated to reflect this.

Differential Revision: https://phabricator.services.mozilla.com/D80138
2020-06-25 05:21:50 +00:00
Ryan Hunt 55957b9c23 Bug 1642940 - Factor out data/elem segment implementation limits. r=lth
Data and element segment decoding used the initial memory/table limit values
which will be removed in a later commit, this commit gives data/elem segments
their own implementation defined limit to prevent interference.

Differential Revision: https://phabricator.services.mozilla.com/D80137
2020-06-25 05:21:36 +00:00
Ryan Hunt e88b049c20 Bug 1642940 - Widen Limits::{initial, maximum} to uint64_t. r=lth
There are two kinds of limits to table and memory types. A limit applied during
validation defined by the core spec, and a limit applied during instantiation
by the JS-API embedders spec. Our current implementation combines both and
applies them at validation time.

The validation limit is 2^16 for memory and 2^32-1 for tables.

(actually the limit for tables is 2^32 in the core spec and fixed to 2^32-1 in
the reference-types proposal, which should be merged soon)

Unfortunately, memory types are defined in pages and our implementation
eagerly converts from pages to bytes upon decoding. This allows for an overflow
when the maximum memory size is used (2^16 * PageSize == UINT32_MAX + 1).

Additionally, the memory64 proposal is planning on widening the encoding of
limit values to u64, which will put us in this same situation also for tables.

(the current memory64 validation limit for 64-bit memories is 2^48 which
would overflow even uint64_t when converted to bytes, so we may want to lobby
for a lower limit there)

This commit widens the fields of Limits to uint64_t to make overflow impossible
in these situations and (less importantly) to get ready for memory64.

The wasm array buffer code stores the runtime value of maximum length and was
widened. We don't need to change the byte length representation because our
implementation limit will fail memory allocations well before UINT32_MAX.

The table code used Limits in TableDesc and was re-written to store just the
initial/maximum values in 32-bit form so that no table code has to worry
about 64-bit values. This has the small nice effect of dropping the shared
flag, which was never used and won't be in the future.

There should be no functional changes in this commit.

Differential Revision: https://phabricator.services.mozilla.com/D80136
2020-06-25 05:21:52 +00:00
Narcis Beleuzu d5f6bcfb75 Backed out 8 changesets (bug 1615434, bug 1642940) for SM bustages on limits.js . CLOSED TREE
Backed out changeset b4a816af3fdf (bug 1642940)
Backed out changeset 5660e8f9b0f5 (bug 1642940)
Backed out changeset 3f3f63e1156b (bug 1642940)
Backed out changeset 068ffb754356 (bug 1615434)
Backed out changeset daa7bbbfe721 (bug 1642940)
Backed out changeset 4312510d2a52 (bug 1642940)
Backed out changeset 0fde857a66d9 (bug 1642940)
Backed out changeset 534530689a10 (bug 1642940)
2020-06-25 08:16:03 +03:00
Ryan Hunt 948e22eaaf Bug 1637884 - Wasm: Enable reference-types by default. r=lth
This commit enable reference-types by default. The existing config/ifdef'ery is
spared to allow for an easier backout and to support Cranelift until it gains
support for the feature.

Depends on D81012

Differential Revision: https://phabricator.services.mozilla.com/D81013
2020-06-25 04:52:05 +00:00
Ryan Hunt 34491c6ee8 Bug 1528294 - Wasm: Enable bulk-memory-operations by default. r=lth
This commit enables the bulk-memory-operations feature by default. The config/
ifdef'ery is spared to allow for easier backouts if needed.

Differential Revision: https://phabricator.services.mozilla.com/D81012
2020-06-25 04:52:22 +00:00
Ryan Hunt 0c490d558c Bug 1642940 - Report OOM on table allocation failure. r=lth
Table::create() returns false when allocation fails, but does
not report the OOM. This commit adds appropriate calls to
ReportOutOfMemory around calls to Table::create().

Differential Revision: https://phabricator.services.mozilla.com/D80754
2020-06-24 06:54:02 +00:00
Ryan Hunt 813131c727 Bug 1642940 - Remove redundant GetLimits parameter. r=lth
This is clean-up from the refactoring that made initial/max limits the same.

Differential Revision: https://phabricator.services.mozilla.com/D80142
2020-06-23 23:17:20 +00:00
Ryan Hunt b9b4fd8f3e Bug 1642940 - Consolidate and expand tests of memory/table limits. r=lth
There were some ad-hoc tests for this behavior that are now consolidated and
extended in 'limits.js'.

Differential Revision: https://phabricator.services.mozilla.com/D80141
2020-06-23 23:16:43 +00:00
Ryan Hunt 8e87798b9f Bug 1615434 - Increase maximum initial memory size to 2GiB. r=lth
The spec no longer has an initial memory size limit, so we should allow up to
the limit imposed upon us by ArrayBuffer.

Differential Revision: https://phabricator.services.mozilla.com/D80140
2020-06-23 23:06:34 +00:00
Ryan Hunt f8f16d85fd Bug 1642940 - Separate the validation and runtime table limit checks. r=lth
This commit separates the validation limit defined by the core spec and the
implementation runtime limit defined by the JS-API spec. The exception
generated for the runtime check is a WebAssembly.RuntimeError as decided upon
upstream.

Additionally, there is no longer the concept of an initial limit. The code is
updated to reflect this.

Differential Revision: https://phabricator.services.mozilla.com/D80139
2020-06-23 23:05:29 +00:00
Ryan Hunt b522b98a15 Bug 1642940 - Separate the validation and runtime memory limit checks. r=lth
This commit separates the validation limit defined by the core spec and the
implementation runtime limit defined by the JS-API spec. The exception
generated for the runtime check is a WebAssembly.RuntimeError as decided upon
upstream.

Additionally, there is no longer the concept of an 'initial' limit, so code
is updated to reflect this.

Differential Revision: https://phabricator.services.mozilla.com/D80138
2020-06-23 23:03:10 +00:00
Ryan Hunt 5fcbd2d352 Bug 1642940 - Factor out data/elem segment implementation limits. r=lth
Data and element segment decoding used the initial memory/table limit values
which will be removed in a later commit, this commit gives data/elem segments
their own implementation defined limit to prevent interference.

Differential Revision: https://phabricator.services.mozilla.com/D80137
2020-06-23 23:01:01 +00:00
Ryan Hunt def391a019 Bug 1642940 - Widen Limits::{initial, maximum} to uint64_t. r=lth
There are two kinds of limits to table and memory types. A limit applied during
validation defined by the core spec, and a limit applied during instantiation
by the JS-API embedders spec. Our current implementation combines both and
applies them at validation time.

The validation limit is 2^16 for memory and 2^32-1 for tables.

(actually the limit for tables is 2^32 in the core spec and fixed to 2^32-1 in
the reference-types proposal, which should be merged soon)

Unfortunately, memory types are defined in pages and our implementation
eagerly converts from pages to bytes upon decoding. This allows for an overflow
when the maximum memory size is used (2^16 * PageSize == UINT32_MAX + 1).

Additionally, the memory64 proposal is planning on widening the encoding of
limit values to u64, which will put us in this same situation also for tables.

(the current memory64 validation limit for 64-bit memories is 2^48 which
would overflow even uint64_t when converted to bytes, so we may want to lobby
for a lower limit there)

This commit widens the fields of Limits to uint64_t to make overflow impossible
in these situations and (less importantly) to get ready for memory64.

The wasm array buffer code stores the runtime value of maximum length and was
widened. We don't need to change the byte length representation because our
implementation limit will fail memory allocations well before UINT32_MAX.

The table code used Limits in TableDesc and was re-written to store just the
initial/maximum values in 32-bit form so that no table code has to worry
about 64-bit values. This has the small nice effect of dropping the shared
flag, which was never used and won't be in the future.

There should be no functional changes in this commit.

Differential Revision: https://phabricator.services.mozilla.com/D80136
2020-06-25 04:06:58 +00:00
Jeff Walden e88268be75 Bug 1502355 - Fill in most of the body of the "finalize" operation in the piping algorithm. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D80785
2020-06-24 18:41:15 +00:00
Jeff Walden 4e41734ac2 Bug 1502355 - Implement some of the process of performing an action and then finalizing, in the shutdown with an action process. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D80784
2020-06-24 18:41:07 +00:00
Jeff Walden 7cc9de0a71 Bug 1502355 - Wait for completed reads to finish writing before finalizing, during pipe-to shutdown with an action. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D80783
2020-06-24 18:41:00 +00:00