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

85050 Коммитов

Автор SHA1 Сообщение Дата
Tooru Fujisawa 3262a82616 Bug 1746382 - Remove static string lookup from stencil instantiation. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D135099
2022-01-18 12:48:26 +00:00
Jan de Mooij 9c43486404 Bug 1750558 part 3 - Remove unnecessary setIsUsedAsPrototype call. r=iain
Drive-by change to remove some code we no longer need after Stencil removed the
off-thread parse/XDR global.

Note that we still assert/check isUsedAsPrototype under getInitialOrPropMapShape.

Depends on D136146

Differential Revision: https://phabricator.services.mozilla.com/D136147
2022-01-18 10:34:29 +00:00
Jan de Mooij 6b93058e9e Bug 1750558 part 2 - Support prototype objects in assign fast path. r=iain
In bug 1738020 we moved the shape teleporting code into NativeObject::addProperty,
which we call from TryAssignPlain, so this should just work now.

Exception is the shape-reuse fast path, but the previous patch ensures we no longer
use that if the object is a prototype object, so we can just add an assertion there.

Differential Revision: https://phabricator.services.mozilla.com/D136146
2022-01-18 10:34:29 +00:00
Jan de Mooij 3a6016f147 Bug 1750558 part 1 - Fix NativeObject::canReuseShapeForNewProperties to handle the HasEnumerable flag. r=iain
We were checking the old and new shapes have the same object flags, but this was
(almost) never the case after we added the HasEnumerable flag in bug 1733075,
disabling the optimization in practice.

With this patch we hit the fast path again on Reddit.

Differential Revision: https://phabricator.services.mozilla.com/D136145
2022-01-18 10:34:28 +00:00
criss ebdd8a29de Backed out 6 changesets (bug 1746380, bug 1746382) for causing multiple failures. CLOSED TREE
Backed out changeset 7269c2e3b6f8 (bug 1746380)
Backed out changeset 9e4cdff09263 (bug 1746380)
Backed out changeset cafa79c30500 (bug 1746380)
Backed out changeset 006da995143d (bug 1746380)
Backed out changeset eeb21b8d0aa9 (bug 1746380)
Backed out changeset d0aa76da755c (bug 1746382)
2022-01-18 09:49:45 +02:00
Tooru Fujisawa d42f265200 Bug 1746380 - Part 5: Optimize well-known symbol construction and remove unnecessary check for null-zone. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D135104
2022-01-18 07:16:56 +00:00
Tooru Fujisawa 9880a32000 Bug 1746380 - Part 4: Remove length validation and static string lookup from non-atom string instantiation. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D135103
2022-01-18 07:16:56 +00:00
Tooru Fujisawa 60f1753f38 Bug 1746380 - Part 3: Remove length validation from atom instantiation. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D135102
2022-01-18 07:16:56 +00:00
Tooru Fujisawa 484e486950 Bug 1746380 - Part 2: Move atom-specific path out of string allocation code. r=nbp
Split `cx->zone()->isAtomsZone()` branch into 2 functions, for atom case and
non-atom case.

Also removed reduncent steps (static string lookup, length validation,
deflation) from atom case, based on the atomization progress.

Differential Revision: https://phabricator.services.mozilla.com/D135101
2022-01-18 07:16:55 +00:00
Tooru Fujisawa f2eae8d1c1 Bug 1746380 - Part 1: Clarify atomization progress in the function name. r=nbp
To avoid duplicate steps through the atomization process:
 * If the function assumes the input doesn't match static strings
   (static strings case is already handled), append `NoStatic`
 * If the function assumes the length is valid, append `ValidLength`

Differential Revision: https://phabricator.services.mozilla.com/D135100
2022-01-18 07:16:55 +00:00
Tooru Fujisawa 46cecf21bb Bug 1746382 - Remove static string lookup from stencil instantiation. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D135099
2022-01-18 07:16:54 +00:00
Yury Delendik 2d7467c0d1 Bug 1708743 - Add HasAVX2() to assembler; detect via CPUID. r=lth
Adds CPUID detection, if avxPresent set.

The isAvxPresent function interface is modified to check if AVX V2 is active.

Differential Revision: https://phabricator.services.mozilla.com/D136033
2022-01-17 21:29:21 +00:00
Philip Chimento a5427de8be Bug 1735200 - Add cause argument to JS::CreateError(). r=jandem
Add a cause argument to JS::CreateError(), in order to be able to create
errors with cause through the public API.

Differential Revision: https://phabricator.services.mozilla.com/D135931
2022-01-17 15:23:40 +00:00
Philip Chimento 9b93037993 Bug 1735200 - Add JSAPI for getting Error.cause. r=jandem
JS::GetExceptionCause() simply wraps ErrorObject::getCause().

Differential Revision: https://phabricator.services.mozilla.com/D135930
2022-01-17 15:23:40 +00:00
Lars T Hansen 14118d2896 Bug 1749671 - Make more data bits available in LAllocation on 64-bit. r=nbp
This is a simple fix for a too-small field for the virtual register number on arm64,
where the field gets only 18 bits.  This change expands the field to 21 bits.  This
is enough to solve compilation problems on web.autocad.com.

Differential Revision: https://phabricator.services.mozilla.com/D136106
2022-01-17 13:03:38 +00:00
Jon Coppeard d0cf1d6aad Bug 1749797 - Treat gray bits as initially valid r=sfink,mccr8
Previously the 'gray mark bits are valid state' was initially false, and set to
true after the first full GC. But there's no reason that the gray state is
invalid initially. The state is only marked as invalid when we abort gray
unmarking due to OOM, which does lead to an actually incorrect state where some
things are marked gray when they should be black. The initial state of cells
being marked white is not invalid, although cycles through white cells cannot
be collected at this time.

This patch has no impact on AWSY.

Differential Revision: https://phabricator.services.mozilla.com/D136026
2022-01-17 09:24:16 +00:00
Matthew Gaudet aa1c355a89 Bug 1746653 - Support ReadableStream in Sandbox's wantGlobalObject r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D135289
2022-01-14 21:09:23 +00:00
Matthew Gaudet 7b19fce73c Bug 1746651 - Move nukeCCW helper to make it available in xpcshell tests r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D135288
2022-01-14 21:09:22 +00:00
Kagami Sascha Rosylight 624a3640bf Bug 1669552 - Add TestUtils support for WPT r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D135942
2022-01-14 18:36:59 +00:00
Julian Seward e6144ebd9f Bug 1750046 - Add comprehensive testing of the wasm i32/i64 compare-select idiom. r=lth.
Bug 1748700 shows a regression introduced by bug 1716580, which incorrectly
optimised some wasm compare-select cases.  The underlying problem was
inadequate testing in the latter bug.

This bug adds comprehensive testing of compare-select for the following
cases:
```
  compare     in  i32 i64
  select      in  i32 i64
  compare-op  in  eq ne lt_s lt_u gt_s gt_u le_s le_u ge_s ge_u
```

It is verified as able to detect the regression introduced by bug 1716580.

Differential Revision: https://phabricator.services.mozilla.com/D135919
2022-01-14 13:18:32 +00:00
Andre Natal c3cc53a701 Bug 1722102 - Adding vendor intgemm library r=yury,lth,firefox-build-system-reviewers,glandium
Differential Revision: https://phabricator.services.mozilla.com/D120770
2022-01-13 21:27:37 +00:00
Iain Ireland 14d4d44fb1 Bug 1745907: Treat oversized string/bigint allocations as nondeterministic r=jandem
The testcase triggers a bailout loop in the bigint case. It's not possible to write an equivalent testcase for string concatenation, because we don't attach a stub unless the concatenation succeeds.

I've also verified that this prints a message for the fuzzer in all the differential testcases I could find.

Differential Revision: https://phabricator.services.mozilla.com/D135619
2022-01-13 19:25:27 +00:00
Iain Ireland b0f78edeb4 Bug 1749460: Check for any overridden element in OptimizeArgumentsSpreadCall r=jandem
DefineProperty on an arguments object doesn't have the same magic as SetProperty for updating the ArgumentsData array, so we have to make sure that no elements have been overridden in OptimizeArgumentsSpreadCall before calling ArrayFromArgumentsObject.

This is a regression from anba's patches in bug 1740737 to optimize `...arguments`. It's the rare bug that only fails in the interpreter. (In higher tiers, we already always guarded on the HasOverriddenElement flag.)

Differential Revision: https://phabricator.services.mozilla.com/D135770
2022-01-13 19:25:23 +00:00
Noemi Erli 09dc5b2ce7 Backed out changeset 4959d55a439a (bug 1722102) for causing SM bild bustage CLOSED TREE 2022-01-13 18:29:02 +02:00
Andre Natal 7352475230 Bug 1722102 - Adding vendor intgemm library for Firefox Translations r=yury,lth,firefox-build-system-reviewers,glandium
Differential Revision: https://phabricator.services.mozilla.com/D120770
2022-01-13 15:55:06 +00:00
Yury Delendik ece708abfa Bug 1708743 - Add javascript.options.wasm_simd_avx preference. r=jandem
Allows AVX SIMD instructions on x86/x64. Mostly as experiment for benchmarking --
if success, it will be on if available.

Differential Revision: https://phabricator.services.mozilla.com/D135561
2022-01-12 22:31:30 +00:00
Yulia Startsev 054098f80a Bug 1749496 - Add groupby and groupbytomap to xrayToJS only in nightly build r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D135604
2022-01-12 12:22:56 +00:00
Tom Ritter a2a3b5a205 Bug 1748870 - Do not leave a pending JS Exception on the stack r=mgaudet
In 1746231 the JS Exception stuff was moved from the
callback call site into the callback itself.
However, when it was moved, an exception could be
added even if we were going to permit the script
execution.  This is wrong.

Move the exception stuff back to the callback site
and use the result of the callback to determine if
we add anything to the stack or not

Differential Revision: https://phabricator.services.mozilla.com/D135250
2022-01-11 19:16:38 +00:00
Sebastian Hengst 7f0feb90f6 Bug 1749500 - adjust ifdef for diagnostic assert to be controlled by early beta switch r=nbp DONTBUILD
Bug 1748969 changed diagnostic asserts from working in Nightly and Dev Edition
to early Beta and more bleeding edge.

Differential Revision: https://phabricator.services.mozilla.com/D135625
2022-01-11 18:16:32 +00:00
Tooru Fujisawa 395f0f1eec Bug 1745664 - Part 2: Add length-3 static string for 100-255 range. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D133621
2022-01-11 17:40:22 +00:00
Tooru Fujisawa e61f35b587 Bug 1745664 - Part 1: Extend Length1StaticParserString to non-ASCII range. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D133620
2022-01-11 17:40:22 +00:00
Yury Delendik 7b2c6799e8 Bug 1708743 - [wasm] Use IsAvxPresent flag in build ID. r=lth
Differential Revision: https://phabricator.services.mozilla.com/D135560
2022-01-11 17:15:27 +00:00
Tooru Fujisawa e58b6a54d9 Bug 1743623 - Part 5: Initialize classStaticBlocks_ field. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D133979
2022-01-11 15:55:51 +00:00
Tooru Fujisawa 334acce369 Bug 1743623 - Part 1: Remove worker-specific override from JS context options. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D133975
2022-01-11 15:55:50 +00:00
Julian Seward 5b4f4c320b Bug 1748700 - wasm-via-Ion: fix incorrect 64-bit compare-select merging introduced in bug 1716580. r=lth.
Prior to bug 1716580, Ion could in some cases merge a 32-bit wasm compare and
a 32-bit wasm select into just two machine instructions.  Bug 1716580 expanded
that to include 64-bit operands on some targets.  Unfortunately the resulting
code was incorrect for the case where the comparison is of unsigned-64-bit
values, and this was not adequately covered by testing.

This patch:

* fixes the problem, which is a missing test in JSOpToCondition().

* enhances existing test cases for the transformation so as to check for
  correct handling of signedness in the comparisons.

Differential Revision: https://phabricator.services.mozilla.com/D135605
2022-01-11 15:50:09 +00:00
Andi-Bogdan Postelnicu 120496a230 Bug 1519636 - Reformat recent changes to the Google coding style. r=sylvestre
Updated with clang-format version 13.0.0 (taskcluster-dn0nWlPhT22vaQNfMnFkSg)

Differential Revision: https://phabricator.services.mozilla.com/D135325
2022-01-11 15:49:03 +00:00
criss 64df8411ef Backed out 5 changesets (bug 1743623) for causing hybrid bustages on RuntimeService. CLOSED TREE
Backed out changeset f671659046b1 (bug 1743623)
Backed out changeset 2f2368b8f931 (bug 1743623)
Backed out changeset 51820e97c1eb (bug 1743623)
Backed out changeset 824c5cd5ea17 (bug 1743623)
Backed out changeset cee175fa09e7 (bug 1743623)
2022-01-11 15:31:35 +02:00
Lars T Hansen b387f3e525 Bug 1747870 - Account for large SIMD types in the stack map. r=jseward
Centrally this introduces a static_assert that the stack map's
frame-offset-from-top field can hold the values it needs to hold.

This static_assert turns out to fail on x86-32 with SIMD enabled, and
we can also provoke a release assert that guards against overflow with
the enclosed test case, which is valid code.

To fix this, the field must be expanded by one bit, and it might as
well be expanded on all platforms.

Differential Revision: https://phabricator.services.mozilla.com/D135032
2022-01-11 12:13:27 +00:00
Tooru Fujisawa 9b317dbcdb Bug 1743623 - Part 5: Initialize classStaticBlocks_ field. r=jandem
Depends on D133978

Differential Revision: https://phabricator.services.mozilla.com/D133979
2022-01-11 12:03:55 +00:00
Tooru Fujisawa 05784d7f5c Bug 1743623 - Part 1: Remove worker-specific override from JS context options. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D133975
2022-01-11 12:03:54 +00:00
Cristian Tuns dea3b789a7 Backed out 2 changesets (bug 1617369, bug 1519636) for causing lint failures on multiple files. CLOSED TREE
Backed out changeset 6726892a0012 (bug 1617369)
Backed out changeset c08caa5f8504 (bug 1519636)
2022-01-11 04:38:34 -05:00
Andi-Bogdan Postelnicu f4ea362111 Bug 1519636 - Reformat recent changes to the Google coding style. r=sylvestre
Updated with clang-format version 13.0.0 (taskcluster-dn0nWlPhT22vaQNfMnFkSg)

Differential Revision: https://phabricator.services.mozilla.com/D135325
2022-01-11 09:16:56 +00:00
Jon Coppeard 55aad8b788 Bug 1749329 - Record GC time spent on helper threads r=sfink
This records parallel task time as part of the current GC slice and reports it
in the JS_GC_PROFILE output, plus some misc tidyup.

Differential Revision: https://phabricator.services.mozilla.com/D135524
2022-01-11 08:47:09 +00:00
Yulia Startsev 61139f5a41 Bug 1739648 - enable on Nightly and add tests; r=arai
Differential Revision: https://phabricator.services.mozilla.com/D134133
2022-01-10 15:24:49 +00:00
Rolf Martin Glomsrud 76f7ae64cf Bug 1739648 - implement groupBy r=arai
Depends on D133870

Differential Revision: https://phabricator.services.mozilla.com/D133881
2022-01-10 15:24:49 +00:00
Rolf Martin Glomsrud f9bf8cee28 Bug 1739648 - add groupByToMap test; r=yulia
Depends on D132792

Differential Revision: https://phabricator.services.mozilla.com/D133870
2022-01-10 15:24:48 +00:00
Rolf Martin Glomsrud c12832a0eb Bug 1739648 - implement groupByToMap; r=yulia
Depends on D132791

Differential Revision: https://phabricator.services.mozilla.com/D132792
2022-01-10 15:24:48 +00:00
Rolf Martin Glomsrud 8ce48bd786 Bug 1739648 - add Map constructor to self hosted GetBuiltinConstructor; r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D132791
2022-01-10 15:24:48 +00:00
Ryan Hunt f4bf42dc63 Bug 1748602 - Backout bug 1642412. r=lth
Differential Revision: https://phabricator.services.mozilla.com/D135346
2022-01-07 20:43:16 +00:00
Csoregi Natalia 682e5a82d4 Backed out 5 changesets (bug 1739648) for causing failures on test_xrayToJS.xhtml. CLOSED TREE
Backed out changeset 9473997f9d35 (bug 1739648)
Backed out changeset 3f6f68e74c50 (bug 1739648)
Backed out changeset 45d663b4c79e (bug 1739648)
Backed out changeset fd3c8641a135 (bug 1739648)
Backed out changeset b555a7d312e1 (bug 1739648)
2022-01-06 19:52:15 +02:00