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

85768 Коммитов

Автор SHA1 Сообщение Дата
Butkovits Atila faaa6997b3 Backed out 4 changesets (bug 1763609) for causing SM bustages.
Backed out changeset 23f5e75f33bd (bug 1763609)
Backed out changeset 6cd80539b341 (bug 1763609)
Backed out changeset 9a03b4c954f1 (bug 1763609)
Backed out changeset c4ce7383ae07 (bug 1763609)
2022-04-07 21:27:09 +03:00
André Bargull 02bb2c9e54 Bug 1763609 - Part 4: Update test262 exclusion list. r=mgaudet
Depends on D143165

Differential Revision: https://phabricator.services.mozilla.com/D143166
2022-04-07 17:50:20 +00:00
André Bargull a70d5b9864 Bug 1763609 - Part 3: Update test262 April 2022. r=mgaudet
Depends on D143164

Differential Revision: https://phabricator.services.mozilla.com/D143165
2022-04-07 17:50:17 +00:00
André Bargull 7445c52729 Bug 1763609 - Part 2: Update Github URL. r=mgaudet
"git://" protocol is no longer supported.

Depends on D143163

Differential Revision: https://phabricator.services.mozilla.com/D143164
2022-04-07 17:50:16 +00:00
André Bargull 7436356710 Bug 1763609 - Part 1: Update list of unsupported features. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D143163
2022-04-07 17:50:16 +00:00
Nicolò Ribaudo a4f19fddbc Bug 1744967 - Run Records&Tuples tests on ci r=mgaudet,glandium
Differential Revision: https://phabricator.services.mozilla.com/D132467
2022-04-07 15:41:02 +00:00
Jan de Mooij 0a5cb6f449 Bug 1760944 - Update array length in ArrayShiftMoveElements. r=iain,jonco
Differential Revision: https://phabricator.services.mozilla.com/D141964
2022-04-07 11:51:35 +00:00
André Bargull 9d4012cbd3 Bug 1763103 - Part 5: Don't require extended functions when |super| isn't used. r=arai
Methods only need to be created as extended functions when they need to store
their home-object. So any method which doesn't use `super` can actually be
created as a normal, non-extended function.

Depends on D142932

Differential Revision: https://phabricator.services.mozilla.com/D142933
2022-04-07 11:12:54 +00:00
André Bargull 4d5a126c0f Bug 1763103 - Part 4: Only initialise home object for private instance accessors when neeeded. r=arai
Private instance accessors were always initialising the home object, even when
`needsHomeObject()` was `false`.

Depends on D142931

Differential Revision: https://phabricator.services.mozilla.com/D142932
2022-04-07 11:12:54 +00:00
André Bargull 47c3eea2cb Bug 1763103 - Part 3: Clean-up emitPrivateMethodInitializer. r=arai
Change `emitPrivateMethodInitializer()` to accept a `ClassMethod*` instead of
receiving the separate child parse nodes of `ClassMethod`.

Drive-by change:
- Use less casts.
- Remove unreachable `PrivateNameKind::Method` case from switch.

Depends on D142930

Differential Revision: https://phabricator.services.mozilla.com/D142931
2022-04-07 11:12:53 +00:00
André Bargull 5635ae8e8d Bug 1763103 - Part 2: Stop passing redundant FunctionFlags when initialising a FunctionBox. r=arai
The FunctionBox is created with the exact same FunctionFlags, so we don't have
to pass the flags as a separate parameter, but instead can read them from the
`FunctionBox::flags_` member.

Depends on D142929

Differential Revision: https://phabricator.services.mozilla.com/D142930
2022-04-07 11:12:53 +00:00
André Bargull 93571c3d7e Bug 1763103 - Part 1: Update a comment to no longer mention object groups. r=arai
Object groups have been removed.

Differential Revision: https://phabricator.services.mozilla.com/D142929
2022-04-07 11:12:52 +00:00
André Bargull 0f9a92b24d Bug 1763501: Treat ".newTarget" as unscopable. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D143121
2022-04-07 09:01:17 +00:00
Jan de Mooij 573568e8c3 Bug 1763351 part 2 - Always use a register for LInstanceOf* RHS. r=iain
We can simplify the code a bit now that RHS is usually a register instead of a
constant.

A constant object can still show up for inlined `isPrototypeOf`, because that uses
the same CacheIR/MIR instruction, but this is uncommon (shows up on one jit-test
with `--ion`).

Depends on D143022

Differential Revision: https://phabricator.services.mozilla.com/D143023
2022-04-07 08:15:30 +00:00
Jan de Mooij 4feec60a26 Bug 1763351 part 1 - Don't guard on a specific prototype object in instanceof CacheIR. r=iain
We used to rely on knowing the specific `.prototype` object in `BaselineInspector`,
but now that we no longer do that there's no value in guarding on a specific object
here. By supporting any object we can handle polymorphism better.

Differential Revision: https://phabricator.services.mozilla.com/D143022
2022-04-07 08:15:30 +00:00
André Bargull 9a2cd431c1 Bug 1763163 - Part 6: Use temp-unbox registers for LNotV and LTestVAndBranch. r=iain
That way it matches the temp-unbox register use in `LIsNullOrLikeUndefined(AndBranch)V`.

Depends on D142958

Differential Revision: https://phabricator.services.mozilla.com/D142959
2022-04-07 07:53:50 +00:00
André Bargull c24400218d Bug 1763163 - Part 5: Reduce temp registers for LIsNullOrLikeUndefinedV. r=iain
We can use the output register as an additional temp register for
`branchTestObjectEmulatesUndefined()`.

Depends on D142957

Differential Revision: https://phabricator.services.mozilla.com/D142958
2022-04-07 07:53:50 +00:00
André Bargull 856dbb1232 Bug 1763163 - Part 4: Update a comment about TI. r=iain
TI is gone.

Depends on D142956

Differential Revision: https://phabricator.services.mozilla.com/D142957
2022-04-07 07:53:49 +00:00
André Bargull 12d2a01868 Bug 1763163 - Part 3: Reduce temp registers for LNotV. r=iain
We can use the output register as a temp register for `testValueTruthy()`.

Depends on D142955

Differential Revision: https://phabricator.services.mozilla.com/D142956
2022-04-07 07:53:49 +00:00
André Bargull d90afc8c37 Bug 1763163 - Part 2: Use registers instead of definitions for testValueTruthy. r=iain
For the next patches, `testValueTruthy` needs to work on `Register` instead of
`LDefinition*`.

Depends on D142954

Differential Revision: https://phabricator.services.mozilla.com/D142955
2022-04-07 07:53:48 +00:00
André Bargull 7c74970010 Bug 1763163 - Part 1: Use no temp registers for strict equality against null or undefined. r=iain
Split the strict equality case from `LIsNullOrLikeUndefined(AndBranch)V`, which
saves two registers on 64-bit systems.

Differential Revision: https://phabricator.services.mozilla.com/D142954
2022-04-07 07:53:48 +00:00
André Bargull 260c123f84 Bug 1737500: Return fallback for unsupported values in GetStringOrBooleanOption. r=platform-i18n-reviewers,gregtatum
Updates `GetStringOrBooleanOption` per <https://github.com/tc39/proposal-intl-numberformat-v3/pull/9>.

Differential Revision: https://phabricator.services.mozilla.com/D142681
2022-04-07 07:39:37 +00:00
André Bargull 9e7b607148 Bug 1762923: Fold s[idx].charCodeAt(0) to s.charCodeAt(idx). r=iain
[1] and [2] show that this pattern is used in real-world code.

[1] https://searchfox.org/mozilla-central/search?q=%5D.charCodeAt(0)&case=true&path=
[2] https://searchfox.org/mozilla-central/search?q=).charCodeAt(0)&case=true&path=

Differential Revision: https://phabricator.services.mozilla.com/D142846
2022-04-07 07:35:30 +00:00
Iain Ireland ab022b52e4 Bug 1761947: Visit stolen resume points in MNodeIterator r=jandem
`EmulateStateOf<T>::run` uses `MNodeIterator` to iterate over the instructions in a block. `MNodeIterator` has some internal cleverness to visit the resume point attached to an instruction, unless that instruction has been discarded. In `visitApplyArray`, we steal the resume point from the applyArray, attach it to a new call, and discard the applyArray. Because the applyArray was discarded, MNodeIterator skips the resume point. We don't update the list of stores, so the recovery code allocates an empty array instead of an initialized array, causing us to get the wrong answer if we invalidate due to GC inside the replaced spread call.

This patch changes MNodeIterator to store the resume point instead of the instruction, which simplifies the code somewhat and seems more robust.

Differential Revision: https://phabricator.services.mozilla.com/D142579
2022-04-06 21:59:57 +00:00
Yury Delendik ef456bd57f Bug 1762899 - Fix {f32,f64}.copysign for Aarch64. r=lth
Using defineReuseInput in LIRGenerator to prevents rhs == output && lhs != output,
which is the case that would clobber the rhs in copySignDouble().

Differential Revision: https://phabricator.services.mozilla.com/D142994
2022-04-06 18:42:42 +00:00
Frederik Braun 86ba751d18 Bug 1577122 - mozJSComponentLoader::Import() should only work for internal URLs, and update some tests r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D140058
2022-04-06 14:36:47 +00:00
Lars T Hansen 9db44075c2 Bug 1763054 - adjust the encoding of arm64 fp constants. r=nbp
Following Clang11, encode a 0.0 as MOVI and a -0.0 as MOVI+FNEG.  This
avoids gpr->fpr moves and loads from memory everywhere and probably
insulates us a little from microarchitectural differences.

Differential Revision: https://phabricator.services.mozilla.com/D143018
2022-04-06 11:49:19 +00:00
Gerald Squelart 2b46462940 Bug 1763255 - Remove unused nsIAddonInterposition name declarations - r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D142997
2022-04-06 08:15:23 +00:00
Noemi Erli 6a8c96bc09 Backed out changeset ad9857e4fb96 (bug 1440727) for causing build bustages in clone-errors.js CLOSED TREE 2022-04-06 05:09:13 +03:00
Steve Fink 134475e4dd Bug 1440727 - Disallow extra data at the end of serialized data buffer r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D141391
2022-04-06 01:44:02 +00:00
André Bargull b7ac405143 Bug 1763107 - Part 2: Remove unused DefineAsIntrinsic enum. r=jandem
Not related to part 1, just further clean-ups.

Depends on D142936

Differential Revision: https://phabricator.services.mozilla.com/D142937
2022-04-05 16:16:39 +00:00
André Bargull a0257b03d9 Bug 1763107 - Part 1: Ensure IsPackedArray intrinsic matches C++ function. r=jandem
Also update `IsConcatSpreadable` to match Tuple spec proposal.

Differential Revision: https://phabricator.services.mozilla.com/D142936
2022-04-05 16:16:39 +00:00
André Bargull 56df46cee6 Bug 1762575 - Part 2: Add ArgumentsObject::isElement(). r=iain
Add `ArgumentsObject::isElement()` so we can make `isElementDeleted()` a
private method to avoid repeating the same kind of bug in the future.

Differential Revision: https://phabricator.services.mozilla.com/D142667
2022-04-05 16:15:26 +00:00
André Bargull fbd1fcd0f0 Bug 1762575 - Part 1: Use slow-path when any arguments element is overridden. r=iain
`UnmappedArgumentsObject` doesn't mark an element as deleted when it is
redefined through `Object.defineProperty()`, that means the current element
value can only be read through `ArgumentsObject::element()` when the
`ELEMENT_OVERRIDDEN_BIT` isn't set.

Alternatively to this patch, we could also add a `ObjectOps::defineProperty`
hook for `UnmappedArgumentsObject` to properly update the element value instead
of redefining the property. But reassigning argument elements should be
relatively uncommon, so it should be fine to just always take the slow-path
when `ELEMENT_OVERRIDDEN_BIT` is set.

The tests in "bug1762575-1.js" work on mapped arguments objects and already
pass without this patch. "bug1762575-2.js" uses mapped arguments objects and
only passes with this patch. "bug1762575-3.js" tests some implementation
details when arguments object keep a strong reference to their elements.

Differential Revision: https://phabricator.services.mozilla.com/D142666
2022-04-05 16:15:25 +00:00
Yury Delendik f2a268bf51 Bug 1762413 - Optimize emscripten's sequence for _mm_maddubs_epi16. r=lth
Differential Revision: https://phabricator.services.mozilla.com/D142587
2022-04-05 15:33:07 +00:00
Jan Rio Krause 057785b6d5 Bug 1519200 - Remove `NS_ERROR_FILE_TARGET_DOES_NOT_EXIST` in favor of `NS_ERROR_FILE_NOT_FOUND`. r=xpcom-reviewers,nika,dom-storage-reviewers,jstutte
Differential Revision: https://phabricator.services.mozilla.com/D77575
2022-04-05 15:17:03 +00:00
André Bargull d89fe4f801 Bug 1763099 - Part 7: Remove duplicated check for numeric comparisons. r=jandem,nbp
`compare->isNumericComparison()` is already checked at the start of the loop,
so we don't have to check for it another time when handling strict equality
operators.

Depends on D142927

Differential Revision: https://phabricator.services.mozilla.com/D142928
2022-04-05 14:08:57 +00:00
André Bargull dd81e56ec0 Bug 1763099 - Part 6: Remove MBasicBlock::discardDef(). r=jandem,nbp
Both callers to `MBasicBlock::discardDef()` can be changed to call
`MBasicBlock::discard()`.

Depends on D142926

Differential Revision: https://phabricator.services.mozilla.com/D142927
2022-04-05 14:08:57 +00:00
André Bargull 74176c41e8 Bug 1763099 - Part 5: Remove unused eliminateList vector. r=jandem
Depends on D142925

Differential Revision: https://phabricator.services.mozilla.com/D142926
2022-04-05 14:08:56 +00:00
André Bargull 35c6b0c14a Bug 1763099 - Part 4: Remove unused labels. r=jandem
Depends on D142924

Differential Revision: https://phabricator.services.mozilla.com/D142925
2022-04-05 14:08:56 +00:00
André Bargull 631a120de1 Bug 1763099 - Part 3: Remove unused LIR nodes AssertResultT and AssertResultV. r=jandem
Depends on D142923

Differential Revision: https://phabricator.services.mozilla.com/D142924
2022-04-05 14:08:55 +00:00
André Bargull 88cf35cea7 Bug 1763099 - Part 2: Remove unused ExtractTemp0 and ExtractTemp1 registers. r=jandem
Depends on D142922

Differential Revision: https://phabricator.services.mozilla.com/D142923
2022-04-05 14:08:55 +00:00
André Bargull ba4b337674 Bug 1763099 - Part 1: Remove unused fallback value from MaybeReadFallback. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D142922
2022-04-05 14:08:55 +00:00
André Bargull 8169edb3db Bug 1762933 - Part 3: Fix implicit this-capture in lambdas. r=tcampbell
Implicit `this` capture through `=` is deprecated in C++20.

Differential Revision: https://phabricator.services.mozilla.com/D142857
2022-04-05 11:53:42 +00:00
André Bargull 359b1f9448 Bug 1762933 - Part 2: Fix implicit coercion between different enum types. r=tcampbell
Use `std::underlying_type_t` to convert from an enum to its underlying type.

Depends on D142855

Differential Revision: https://phabricator.services.mozilla.com/D142856
2022-04-05 11:53:41 +00:00
André Bargull 2b225bbe9a Bug 1762933 - Part 1: Avoid static_cast on non-integral types. r=tcampbell
Otherwise we can for example end up with generating `static_cast` between const and non-const pointers.

Differential Revision: https://phabricator.services.mozilla.com/D142855
2022-04-05 11:53:41 +00:00
Lars T Hansen 8195e9adaa Bug 1763054 - Make ARM64 loadConstantDouble/Float32 the source of truth. r=nbp
Remove local decisions about how to load FP constants and centralize
that knowledge in loadConstantDouble / loadConstantFloat32.  Code that
needs to load eg -0.0 can just pass that value to those functions and
expect optimal code.

Note in those functions that the optimal way of loading negative zero
is to load it PC-relative from memory, not to construct it with a
multi-instruction sequence.

Differential Revision: https://phabricator.services.mozilla.com/D142917
2022-04-05 09:55:01 +00:00
André Bargull d574e0a2c9 Bug 1740683: Scalar replace rest array spread calls with extra formals. r=iain
Pass through the number of formals, so we know how many initial arguments we have to skip
in `CodeGenerator::emitPushArguments()`. The actual number of arguments (`argc`) for
`M(Apply|Construct)Args` is computed through `Math.max(numActuals - numFormals, 0)`.

Differential Revision: https://phabricator.services.mozilla.com/D142848
2022-04-05 07:37:30 +00:00
André Bargull 913b8a3a78 Bug 1282976 - Part 13: Remove new.target access from frame classes. r=jandem
Depends on D142806

Differential Revision: https://phabricator.services.mozilla.com/D142835
2022-04-04 18:31:19 +00:00
André Bargull 7919564686 Bug 1282976 - Part 12: Remove EvalNewTarget. r=jandem
EvalNewTarget is now also no longer needed.

Differential Revision: https://phabricator.services.mozilla.com/D142806
2022-04-04 18:31:18 +00:00