We already have an accessor to make sure this is can only be set but not
cleared so hide the underlying storage.
Differential Revision: https://phabricator.services.mozilla.com/D42559
--HG--
extra : moz-landing-system : lando
The hasIntroductionInfo flag is equivalent to checking for the existance
introducerFilename so use that instead. Also remove unused setter for
the introducer script.
Differential Revision: https://phabricator.services.mozilla.com/D42558
--HG--
extra : moz-landing-system : lando
The configure sandbox has wrapped subprocess methods to add its own
encoded environment if none is provided, since bug 1520394. It only
makes sense that it normalizes the environment that comes in too,
avoiding caller in the configure sandbox to have to do it themselves.
OTOH, and while we're here, none of get_cmd_output, old_configure or the
sandbox were actually using the right encoding for this conversion, so
fix the configure sandbox to use the right one, and make it stop using
encode(), which does deep recursion that is not necessary here, and that
I'm trying to remove entirely.
Also while here, remove an unused import of encode().
Differential Revision: https://phabricator.services.mozilla.com/D42608
--HG--
extra : moz-landing-system : lando
This helps ensure that when running `--fix` across the entire tree, all places that can be are fixed correctly.
Differential Revision: https://phabricator.services.mozilla.com/D37272
--HG--
extra : moz-landing-system : lando
This renames:
HeapSize::gcBytes -> bytes (it's not just for GC heaps any more)
ZoneThreshold -> HeapThreshold (to go with HeapSize)
HeapThreshold::triggerBytes -> bytes (what else could it be?)
I renamed the ZoneAllocator members to make them more uniform/consitent so we now have gcHeapSize/gcHeapThreshold, mallocHeapSize/mallocHeapThreshold etc.
I also renamed the heap threshold classes.
Differential Revision: https://phabricator.services.mozilla.com/D42868
--HG--
extra : moz-landing-system : lando
This patch restores the order of the slow script checks in
XPJSContext::InterruptScript to avoid filling our logs with useless warnings
in debug builds.
Differential Revision: https://phabricator.services.mozilla.com/D42587
--HG--
extra : moz-landing-system : lando
I replaced the values with -moz-inline-box in the crashtests
rather than removing them. I think they are still valuable
after replacing the display value.
Differential Revision: https://phabricator.services.mozilla.com/D42551
--HG--
extra : moz-landing-system : lando
We now only construct AutoWritableJitCode if a pointer embedded in the code
needs to be updated, instead of always when we are doing a compacting or nursery
GC. This matters because mprotect (twice) is pretty slow.
Differential Revision: https://phabricator.services.mozilla.com/D42629
--HG--
extra : moz-landing-system : lando
Cancelling compilations from other runtimes is racy. We could restrict to the
caller's runtime, but waiting for all threads to finish should end up draining
the Ion compilation queue anyway (for that runtime) and we don't cancel other
task types there (except for Wasm but that has more complicated helper thread
usage).
Differential Revision: https://phabricator.services.mozilla.com/D42485
--HG--
extra : moz-landing-system : lando
An absent name and an empty string as the inferred name are now
indistinguishable, so we can remove the special case for empty strings in
ObjectEmitter.
Depends on D42154
Differential Revision: https://phabricator.services.mozilla.com/D42155
--HG--
extra : source : 9d1a72c0bb0cb0f3350302187bd68ee013640d7a
Default the "name" property of anonymous class expressions to the empty string
by removing the special case in `JSFunction::infallibleGetUnresolvedName()`.
With that change applied, `infallibleGetUnresolvedName()` never returns nullptr,
so we can remove nullptr handling in its callers. And additionally
`JSFunction::getUnresolvedName()` can be changed back to use `MutableHandleValue`
as its parameter, which also (re-)aligns the function with `getUnresolvedLength()`.
Depends on D42153
Differential Revision: https://phabricator.services.mozilla.com/D42154
--HG--
extra : source : 721c8caa85e358e4ecc7943a30a9f9fda20cd753
An absent name and an empty string as the inferred name are now
indistinguishable, so we can remove the special case for empty strings in
ObjectEmitter.
Depends on D42154
Differential Revision: https://phabricator.services.mozilla.com/D42155
--HG--
extra : moz-landing-system : lando
Default the "name" property of anonymous class expressions to the empty string
by removing the special case in `JSFunction::infallibleGetUnresolvedName()`.
With that change applied, `infallibleGetUnresolvedName()` never returns nullptr,
so we can remove nullptr handling in its callers. And additionally
`JSFunction::getUnresolvedName()` can be changed back to use `MutableHandleValue`
as its parameter, which also (re-)aligns the function with `getUnresolvedLength()`.
Depends on D42153
Differential Revision: https://phabricator.services.mozilla.com/D42154
--HG--
extra : moz-landing-system : lando
Update test262 to get the changes from <https://github.com/tc39/test262/pull/2299>.
Differential Revision: https://phabricator.services.mozilla.com/D42158
--HG--
rename : js/src/tests/test262/language/statements/class/elements/prviate-accessor-is-visible-in-computed-properties.js => js/src/tests/test262/language/statements/class/elements/private-accessor-is-visible-in-computed-properties.js
rename : js/src/tests/test262/language/statements/class/elements/prviate-method-is-visible-in-computed-properties.js => js/src/tests/test262/language/statements/class/elements/private-method-is-visible-in-computed-properties.js
extra : moz-landing-system : lando
This field used to match "LocalTZA" from the ECMAScript specification when "LocalTZA"
was still a constant value. But in the current specification "LocalTZA" was changed to
a function to compute the local time zone adjustment at a given time. To avoid
confusion between `localTZA_` and "LocalTZA" from the specification, remove `localTZA_`
and instead only expose the `DateTimeInfo::localTZA()` function in contexts where the
old "LocalTZA" definition is still used (non-Intl or system ICU builds).
`localTZA_` was also used as a cache key for `DateObject` slots, replace the usage there
with `DateTimeInfo::utcToLocalStandardOffsetSeconds()` to make clear that the cache key
isn't tied to any spec calls to "LocalTZA".
Differential Revision: https://phabricator.services.mozilla.com/D41375
--HG--
extra : moz-landing-system : lando
Give these functions and fields a more general name to make clear they aren't tied
to the `localTZA_` field.
Differential Revision: https://phabricator.services.mozilla.com/D41373
--HG--
extra : moz-landing-system : lando
Part 1 ensures `DateTimeInfo::updateTimeZoneAdjustment()` is no longer called during
start-up, which enables us to resync ICU's time zone status right away. Furthermore
this change won't lead to a performance regression, because all callers to
`DateTimeInfo::updateTimeZoneAdjustment()` either also require an up-to-date ICU time
zone state (`DTI::{getDSTOffsetMilliseconds,getOffsetMilliseconds,timeZoneDisplayName}`)
or trigger an ICU time zone update anyway (`DTI::localTZA()` when called in
`DateObject::fillLocalTimeSlots()`).
Differential Revision: https://phabricator.services.mozilla.com/D41372
--HG--
extra : moz-landing-system : lando
That way `js::ResetTimeZoneInternal` is calling `js::DateTimeInfo::resetTimeZoneAdjustment`,
which aligns the use of 'reset' in the function names. And the method which actually checks
for updates is then called `js::DateTimeInfo::updateTimeZoneAdjustment`.
Differential Revision: https://phabricator.services.mozilla.com/D37250
--HG--
extra : moz-landing-system : lando
This ensures the ICU time zone state is only resync'ed when an actual time zone
change was detected. Without this change the following script will resync the
ICU time zone state in each call to Intl.DateTimeFormat:
```
// js::DateTimeInfo is here in its initial state where no time zone info has
// been retrieved yet.
for (var i = 0; i < 10; ++i) {
// Creating a new Realm triggers a time zone check. Because no time zone
// info is yet available, a forced reset of the ICU time zone state is
// requested.
newGlobal();
// The ICU time zone state was just resetted above, so this call will again
// fetch the current system time zone.
new Intl.DateTimeFormat();
}
```
Differential Revision: https://phabricator.services.mozilla.com/D37248
--HG--
extra : moz-landing-system : lando
- Changes `DateTimeInfo::internalUpdateTimeZoneAdjustment` to set a flag to
request an update instead of directly calling the system time functions.
- DateTimeInfo functions which require a valid time zone have been modified to
call the new `acquireLockWithValidTimeZone` helper.
Differential Revision: https://phabricator.services.mozilla.com/D37247
--HG--
extra : moz-landing-system : lando
Now that the private slot accessors already handle `undefined`, we might as
well keep the initial value instead of manually setting the slots to nullptr.
Differential Revision: https://phabricator.services.mozilla.com//D41946
--HG--
extra : histedit_source : 3b9c630abdb7ef2fdb0188f6f715606be8f82984
Entering the atoms zone with AutoAllocInAtomsZone is a bit of a special case and we don't support entering another realm in this state. Unfortunately this can happen during GC in a couple of place. The patch temporarily leaves the atoms zone during GC so that callbacks can enter whatever zones they like.
Differential Revision: https://phabricator.services.mozilla.com/D42312
--HG--
extra : moz-landing-system : lando
This makes it easier to change the jitScript_ field in later patches.
Depends on D42288
Differential Revision: https://phabricator.services.mozilla.com/D42289
--HG--
extra : moz-landing-system : lando
maybeJitScript() will become a bit slower in the future but many callers know
statically they have a script with a JitScript so by calling jitScript() there
we can avoid the hasJitScript() check in opt builds.
This is also consistent with the baselineScript() and ionScript() accessors.
I renamed jitScript() to jitScriptX() and then fixed all callers to call
the right method.
Differential Revision: https://phabricator.services.mozilla.com/D42288
--HG--
extra : moz-landing-system : lando