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

76401 Коммитов

Автор SHA1 Сообщение Дата
André Bargull 5f9f012d29 Bug 1608168 - Part 2: Reimport test262 to reflect changed feature flags. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D70196
2020-04-28 16:16:26 +00:00
André Bargull 500966af98 Bug 1608168 - Part 1: Enable String.prototype.replaceAll by default. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D70195
2020-04-28 16:15:04 +00:00
caroline 6cbf7f9400 Bug 1632286 - Make ImmutableFlags::HasNonSyntacticScope an input flag. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D72491
2020-04-28 14:27:00 +00:00
Jon Coppeard 1eb29cdd62 Bug 1633664 - Make it a compile error to delete a GC thing pointer r=jandem
Deleting the delete operator seems to work.

Differential Revision: https://phabricator.services.mozilla.com/D72799
2020-04-28 15:45:08 +00:00
Noemi Erli 6f36651965 Backed out 3 changesets (bug 1608771) by lth's request
Backed out changeset 02be9fd2d743 (bug 1608771)
Backed out changeset 91bc171d94e3 (bug 1608771)
Backed out changeset 3588d7de8ea8 (bug 1608771)
2020-04-28 18:57:27 +03:00
Noemi Erli 4c32a7b523 Backed out 2 changesets (bug 1632761) fo conflicting with requested backout
Backed out changeset fc5dc25fe53a (bug 1632761)
Backed out changeset 77e67f5caa2b (bug 1632761)
2020-04-28 18:52:08 +03:00
Noemi Erli 12b7518de9 Backed out 2 changesets (bug 1608771) for causing SM bustages in bigint.js CLOSED TREE
Backed out changeset cd8af175ae50 (bug 1608771)
Backed out changeset 7b6dbbb27b74 (bug 1608771)
2020-04-28 17:45:20 +03:00
Jon Coppeard 3f616ab772 Bug 1633405 - Remove dynamic GC options that are enabled everywhere r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D72696
2020-04-28 07:59:47 +00:00
Ted Campbell 83d8e3a96a Bug 1633464 - Use a jump to enter Ion invalidation trampoline. r=jandem
On x86/x64 platforms, we were using a call and then immediately popping and
ignoring the return value, so use a jump instead. For architectures that use
a link-register, we no longer clobber it but it was already ignored.

Differential Revision: https://phabricator.services.mozilla.com/D72697
2020-04-28 08:28:08 +00:00
Ted Campbell 443c8f4d19 Bug 1633425 - Cleanup IonScript parameter name mismatches. r=jandem
Depends on D72675

Differential Revision: https://phabricator.services.mozilla.com/D72732
2020-04-28 08:28:10 +00:00
Ted Campbell 9def5ab0fd Bug 1633425 - Use offsets to delimit arrays in IonScript. r=jandem
Use helper methods to access the size and length of each trailing array.
We shave 40 bytes off each IonScript by using the difference between two
arrays to compute size rather than storing a dedicated size field.

Differential Revision: https://phabricator.services.mozilla.com/D72675
2020-04-28 08:22:01 +00:00
Ted Campbell 2517461245 Bug 1633425 - Reorder IonScript arrays to avoid padding. r=jandem
Order the trailing arrays by descending alignment requirements and use a
similar approach to JitScript for computing sizes and initializing.

Differential Revision: https://phabricator.services.mozilla.com/D72674
2020-04-28 07:59:04 +00:00
Ted Campbell 2b8fa5e423 Bug 1633425 - Use field initializers for js::jit::IonScript. r=jandem
Also initialize more of the required fields in the constructor directly
instead of the New method.

Differential Revision: https://phabricator.services.mozilla.com/D72673
2020-04-28 07:37:19 +00:00
Ted Campbell 6513f435fd Bug 1633425 - Add js::TrailingArray type for script data structures. r=jandem
This type is a mixin with helper methods for casting and initializing arrays
that follow a struct in the same allocation. Use this for existing JitScript,
PrivateScriptData, RuntimeScriptData, ImmutableScriptData types.

Differential Revision: https://phabricator.services.mozilla.com/D72672
2020-04-28 13:53:52 +00:00
Ted Campbell 5903f79933 Bug 1633425 - Add js::jit::CodegenSafepointIndex type. r=jandem
This is used during codegen only so we can simplify the SafepointIndex that
is stored in the IonScript. The resolve method is replaced by a constructor
from CodegenSafepointIndex to SafepointIndex.

Differential Revision: https://phabricator.services.mozilla.com/D72671
2020-04-28 07:08:27 +00:00
Ted Campbell 19a414e48c Bug 1633222 - Cleanup js::jit::alignDoubleSpillWithOffset. r=jandem
This exists for mips-32 targets which expect double values to be 8-byte
aligned. This patch removes the `offset` argument which was misleading.
Instead a `alignedForABI` method is added to the ExitFrameFooter type. This
skips over additional padding added in the MIPS32 trampolines.

Differential Revision: https://phabricator.services.mozilla.com/D72549
2020-04-28 06:38:46 +00:00
André Bargull 743046e3ef Bug 1632561: Self-host Object.prototype.__proto__ accessors. r=tcampbell
We don't support mixing self-hosted and native accessors in `JSPropertySpec`,
therefore we need to move the setter into self-hosted code, too, even though
we only need to have the getter self-hosted to be able to inline it.

Differential Revision: https://phabricator.services.mozilla.com/D72670
2020-04-28 13:18:39 +00:00
André Bargull 1265aecea0 Bug 1633331: Update tzdata in ICU data files to 2020a. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D72588
2020-04-28 08:47:11 +00:00
Noemi Erli ccaad0ebc4 Backed out changeset 1fc50aa5c6bc (bug 1633405) for causing bustages in bigint.js CLOSED TREE 2020-04-28 13:49:51 +03:00
Tom Schuster f71769891f Bug 1632468 - Define @@toStringTag on ctypes objects. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D72148
2020-04-28 08:59:04 +00:00
Jan de Mooij 4af8ebbefc Bug 1632761 part 2 - Use IC for JSOp::ToNumeric in IonBuilder. r=evilpie
Differential Revision: https://phabricator.services.mozilla.com/D72334
2020-04-28 09:50:06 +00:00
Jan de Mooij 7ff87f238a Bug 1632761 part 1 - Add IC support for JSOp::ToNumeric. r=evilpie
This is based on the similar changes for JSOp::Pos (bug 1626297 part 3).

JSOp::Pos and JSOp::ToNumeric are very similar and are now optimized the same
way. Baseline had a fast path for numbers and we now use an IC. The IC should
be faster for BigInt code and has optimizations for string inputs. This will also
give us better type information in Warp.

Differential Revision: https://phabricator.services.mozilla.com/D72333
2020-04-24 12:36:38 +00:00
Jon Coppeard 896414dfa7 Bug 1633405 - Remove dynamic GC options that are enabled everywhere r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D72696
2020-04-28 07:59:47 +00:00
Jon Coppeard 4f7be62fe4 Bug 1632846 - Refactor auto rooter tracing so we can more easily convert these to use Rooted<> instead r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D72595
2020-04-28 07:58:56 +00:00
Jon Coppeard 87d409b266 Bug 1632846 - Split auto rooter list into separate lists for each kind so we can only trace the onse we care about r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D72594
2020-04-28 07:58:18 +00:00
Razvan Maries 2bfe3415fb Backed out changeset 7fedd8fbdd5e (bug 1620776) for SM bustages. CLOSED TREE 2020-04-28 04:34:50 +03:00
caroline c698e71df5 Bug 1620776 - Make ImmutableFlags::HasNonSyntacticScope an input flag. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D72491
2020-04-28 00:35:19 +00:00
Asumu Takikawa b73a0a9886 Bug 1608771 - Part 5, BigInt<>I64 conversion for inlined calls r=lth
This is part 5 of implementing the Wasm BigInt<>I64 conversion proposal for inlined Ion to Wasm calls.

This part adds additional Wasm BigInt tests that are aimed specifically to test limits of the inlined calls and
to test more conversion cases that should be covered (e.g., to test ToBigInt instruction cases).

Differential Revision: https://phabricator.services.mozilla.com/D65238
2020-04-27 15:25:39 +00:00
Asumu Takikawa 4314699661 Bug 1608771 - Part 4, BigInt<>I64 conversion for inlined calls r=lth,wingo
This is part 4 of implementing the Wasm BigInt<>I64 conversion proposal for inlined Ion to Wasm calls.

This part adds the support for I64/BigInt arguments for inlined calls in the MCallOptimize.cpp part of
the IonBuilder. With this commit, the I64 arguments will work on 64-bit platforms, except where arguments
are required to be spilled to the stack due to the ABI (this case is more complicated to support).

On 32-bit platforms, this commit disables the BigInt/I64 support for the inlined call as it does not work
without further changes.

Differential Revision: https://phabricator.services.mozilla.com/D65237
2020-04-27 15:25:13 +00:00
Ted Campbell 93f86eedd0 Bug 1633527 - Use field initializers in JitRuntime. r=iain
This also makes sure `disambiguationId_` is properly initialized.

Differential Revision: https://phabricator.services.mozilla.com/D72735
2020-04-27 21:30:26 +00:00
Razvan Maries 759f0f2255 Backed out 2 changesets (bug 1633527) for perma failures on test_ext_geckoProfiler_control.js. CLOSED TREE
Backed out changeset 6781a7371f6e (bug 1633527)
Backed out changeset e63cd75d1774 (bug 1633527)
2020-04-28 00:26:55 +03:00
Ted Campbell 3151316f0a Bug 1633527 - Cleanup typedefs in JitRuntime. r=iain
Depends on D72735

Differential Revision: https://phabricator.services.mozilla.com/D72736
2020-04-27 19:53:57 +00:00
Ted Campbell 1ea943548d Bug 1633527 - Use field initializers in JitRuntime. r=iain
This also makes sure `disambiguationId_` is properly initialized.

Differential Revision: https://phabricator.services.mozilla.com/D72735
2020-04-27 19:50:05 +00:00
Ted Campbell f9f8939bf9 Bug 1633444 - Cleanup Nursery buffer pointer forwarding. r=jonco
Add a `BufferRelocationOverlay` type and use placement-new when inserting
direct-forward pointers. Also avoid the `HeapSlot*` type since elements may
be free-form in the case of typed-arrays.

Differential Revision: https://phabricator.services.mozilla.com/D72683
2020-04-27 17:33:36 +00:00
Mihai Alexandru Michis c4eb80d8bf Backed out changeset af13eadc6370 (bug 1629998) for causing sm failures in js/src/gc/Cell.h
CLOSED TREE
2020-04-27 18:51:23 +03:00
Andrew McCreight 6bc3c0572e Bug 1632338 - Allow remote window proxies before SetNewDocument. r=peterv
In BrowsingContext::SetDocShell(), we indicate that any remote outer window
proxies need to be cleaned up, if we've transitioned from a remote window
proxy to a local one. However, we don't actually do the cleanup until
nsGlobalWindowOuter::SetNewDocument(), so don't assert if we find remote
window proxies when we're in between these two periods.

Also includes a formatting fix by clang-format.

Differential Revision: https://phabricator.services.mozilla.com/D72251
2020-04-27 15:22:53 +00:00
Ryan Hunt d0959c658c Bug 1629998 - Use correct prototype for Wasm JS-API objects when subclassed. r=jwalden
Wasm JS-API objects should be subclassable, and the following should work:
```js
class M extends WebAssembly.Module {};
m = new M(...)
m instanceof M // true
```

The current code will always set the prototype to the original Wasm prototype,
and not the derived prototype.

This commit was written by following the example of
`ArrayBufferObject::class_constructor` which handles this situation.

Differential Revision: https://phabricator.services.mozilla.com/D70965
2020-04-21 02:34:45 +00:00
Ted Campbell a591f8e572 Bug 1633216 - [mips64] Fix MacroAssembler warnings. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D72548
2020-04-27 14:21:24 +00:00
Ted Campbell d9755f9557 Bug 1633216 - [mips32] Use the extractTag return value. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D72547
2020-04-27 14:21:19 +00:00
Ted Campbell 3f78041c84 Bug 1633216 - [mips32] Add missing MacroAssembler definitions. r=iain
Fix regressions so that mips32 simulator builds compile again.

Differential Revision: https://phabricator.services.mozilla.com/D72546
2020-04-27 14:21:17 +00:00
Ted Campbell b34d4881c8 Bug 1633216 - Fix includes for MIPS simulators. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D72545
2020-04-27 14:21:05 +00:00
André Bargull ccbf88b7b0 Bug 1626587 - Part 4: Remove mozilla::IsPod for HashMapEntry. r=jwalden
The `mozilla::IsPod<HashMapEntry` specialisation was only needed for the static
assertions in "js/src/frontend/NameCollections.h". Part 3 removed those, so we
can now also remove `mozilla::IsPod<HashMapEntry`.

Drive-by change:
- Remove no longer needed "mozilla/PodOperations.h" include in mfbt/HashTable.h.
- And then fix up previously transitively included files for RootingAPI.h,
  jsfriendapi.h, and Bench.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D69201
2020-04-27 12:00:48 +00:00
André Bargull c1255fd9e0 Bug 1626587 - Part 3: Replace mozilla::IsPod in InlineTablePool. r=jwalden
We can't use `std::is_trivial` for the table entry type, because the entry value
isn't trivially default constructible. (Neither `mozilla::HashMapEntry` nor
`RecyclableAtomMapValueWrapper` are trivially default constructible.)

So instead of using `std::is_trivial<EntryType>` directly, we have to check
`std::is_trivial<KeyType>` and `std::is_trivial<ValueType>` separately, where
we potentially need to unwrap `ValueType` in case it's
`IsRecyclableAtomMapValueWrapper`.

This allows to remove the `mozilla::IsPod` specialisations for `NameLocation`,
`DeclaredNameInfo`, `MaybeCheckTDZ`, and `RecyclableAtomMapValueWrapper`.

Differential Revision: https://phabricator.services.mozilla.com/D69200
2020-04-27 10:11:20 +00:00
André Bargull 72abea5f1b Bug 1626587 - Part 2: Replace mozilla::IsPod in VectorPool. r=jwalden
Similar to part 1, use both `std::is_trivial` and `std::is_trivially_destructible`
instead of `mozilla::IsPod` to ensure the vector elements are POD values, so we
can skip constructor/destructor calls.

There's no `mozilla::IsPod` specialisation to remove for this part.

Differential Revision: https://phabricator.services.mozilla.com/D69199
2020-04-27 10:11:16 +00:00
André Bargull 57307c7b8e Bug 1626587 - Part 1: Replace mozilla::IsPod in LifoAlloc. r=jwalden
Replace `mozilla::IsPod` with `std::is_trivial` and `std::is_trivially_destructible`,
which should cover the requirements for LifoAlloc. (`std::is_trivial` implies
`is_trivially_default_constructible` and `is_trivially_copyable`.)

`IsPod<OffsetAndDefIndex>` can then be removed.

Differential Revision: https://phabricator.services.mozilla.com/D69198
2020-04-27 10:09:58 +00:00
Tooru Fujisawa 68c7f2f41e Bug 1628784 - Pass TOPSRCDIR environment variable to jsapi-tests, in order to read test files. r=Yoric
Differential Revision: https://phabricator.services.mozilla.com/D71255
2020-04-27 11:37:13 +00:00
Tom Schuster 7403eebdae Bug 1633207 - Remove JS_DefineConst(Doubles|Integers). r=arai
Depends on D72543

Differential Revision: https://phabricator.services.mozilla.com/D72544
2020-04-26 17:32:26 +00:00
Tom Schuster cd8661d9a1 Bug 1633207 - Define double constants via ClassSpec. r=arai
Depends on D72542

Differential Revision: https://phabricator.services.mozilla.com/D72543
2020-04-26 17:32:24 +00:00
Tom Schuster b3744b6ba2 Bug 1633207 - JSPropertySpec support for doubles. r=arai
Depends on D72540

Differential Revision: https://phabricator.services.mozilla.com/D72542
2020-04-26 18:16:55 +00:00
Tom Schuster f1e35cb3f7 Bug 1633145 - Add JS::PropertyKey::toGCCellPtr. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D72540
2020-04-26 17:02:30 +00:00