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

72359 Коммитов

Автор SHA1 Сообщение Дата
Jan de Mooij ee9632c4ba Bug 1576567 part 3 - Use real NOPs for debug trap handler calls in interpreter loop. r=tcampbell
We now use real NOPs on all platforms. On x86/x64 this used to be a CMP
instruction and on ARM64 this involved an unconditional LDR with some
other instructions.

Depends on D43413

Differential Revision: https://phabricator.services.mozilla.com/D43414

--HG--
extra : moz-landing-system : lando
2019-08-27 15:57:33 +00:00
Jan de Mooij 1072abd991 Bug 1576567 part 2 - Allow using nopPatchableToCall outside Wasm code and fix non-sensical return value. r=lth
Depends on D43398

Differential Revision: https://phabricator.services.mozilla.com/D43413

--HG--
extra : moz-landing-system : lando
2019-08-28 06:35:24 +00:00
Jan de Mooij fd93357cf9 Bug 1576567 part 1 - Optimize table address loads in interpreter code. r=lth
This affects the following platforms:

* x64: use a RIP-relative LEA instead of an immediate MOV. This saves a few
  hundred bytes total and seems to be a little bit faster on interpreter
  micro-benchmarks.

* arm64: use ADR instead of LDR. Seems to be a measurable speedup running
  Speedometer on Pixel 2 with the JITs disabled.

Differential Revision: https://phabricator.services.mozilla.com/D43398

--HG--
extra : moz-landing-system : lando
2019-08-28 06:30:56 +00:00
Ted Campbell 9e850c74a6 Bug 1576865 - Add missing call to ReportOutOfMemory in LazyScriptCreationData. r=jwalden
The closedOverBinding set uses the SystemAllocPolicy so we must manually
raise OOM exceptions.

Differential Revision: https://phabricator.services.mozilla.com/D43650

--HG--
extra : moz-landing-system : lando
2019-08-27 23:02:37 +00:00
Mike Hommey 02f319bd8c Bug 1577046 - Tie extra-bindgen-flags file creation to cranelift. r=chmanchester
We only recurse into js/src/rust when jsrust is built, which it may not
be in Gecko builds. But cranelift, which may be enabled either way,
needs the extra-bindgen-flags file.

Differential Revision: https://phabricator.services.mozilla.com/D43699

--HG--
extra : moz-landing-system : lando
2019-08-27 23:19:17 +00:00
Mike Hommey 37be9d3076 Bug 1575198 - Reenable cranelift on central. r=nalexander
Bug 1555894 disabled it for gecko builds, but since then bug 1576003
and https://github.com/CraneStation/cranelift/pull/924 landed, which
should make its cost to the build less problematic.

Differential Revision: https://phabricator.services.mozilla.com/D43581

--HG--
extra : moz-landing-system : lando
2019-08-27 16:08:40 +00:00
Brindusan Cristian 1c3044638e Backed out changeset 48fe03f87287 (bug 1576865) for spidermonkey bustages at bug-1576865-1.js:46:1. CLOSED TREE 2019-08-27 22:31:09 +03:00
Ted Campbell 6eee55e15d Bug 1576865 - Add missing call to ReportOutOfMemory in LazyScriptCreationData. r=jwalden
The closedOverBinding set uses the SystemAllocPolicy so we must manually
raise OOM exceptions.

Differential Revision: https://phabricator.services.mozilla.com/D43650

--HG--
extra : moz-landing-system : lando
2019-08-27 18:08:43 +00:00
Sylvestre Ledru d264b841c9 Bug 1576502 - Fix some wording issues r=mhoye
Differential Revision: https://phabricator.services.mozilla.com/D43363

--HG--
extra : moz-landing-system : lando
2019-08-27 15:38:58 +00:00
Christian Holler 6784c1b46d Bug 1576922 - Don't build JS fuzz-tests when JS shell is disabled. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D43615

--HG--
extra : moz-landing-system : lando
2019-08-27 14:56:50 +00:00
Mark Banner 676f82a489 Bug 1540982 - Upgrade to ESLint 6.2.2 and switch to ECMA version 11 (BigInt support, Dynamic imports). r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D43590

--HG--
extra : moz-landing-system : lando
2019-08-27 14:51:29 +00:00
Ted Campbell 1f82932860 Bug 1575077 - Use SharedImmutableStringCache for SharedScript urls r=jandem
Pages that use 'new Function' heavily create a lot of ScriptSource
objects and waste memory duplicating filenames. This is particularly
problematic if the filename is a data-url. Use the existing runtime
strings cache as a straightforward way to share this. The source text
already is using this cache.

For the XDR case, we expect filenames to almost always be unique so we
can eagerly allocate the owned strings without worrying.

Differential Revision: https://phabricator.services.mozilla.com/D43186

--HG--
extra : moz-landing-system : lando
2019-08-27 12:48:31 +00:00
Ted Campbell bcd4f2a178 Bug 1575077 - Cleanup ScriptSource::sourceMapURL/displayURL r=jandem
Add accessors to avoid direct access to fields so storage can be changed
later.

Differential Revision: https://phabricator.services.mozilla.com/D43185

--HG--
extra : moz-landing-system : lando
2019-08-27 12:46:05 +00:00
Ted Campbell cbdc34e90d Bug 1575077 - Cleanup handling of ScriptSource::setFilename/setIntroducerFilename r=jandem
Use accessors instead of directly accessing fields so that we can later
do automatic deduplication. Add setters that can be passed owned strings
when they are available.

Replace the XDRState::codeCString mechanism entirely. First restrict
string lengths to JSString::MAX_LENGTH as a reasonable upper bound.
Introduce XDRState::codeCharsZ to generate owned strings while decoding.
In practice we would duplicate the string anyways and this better
supports unaligned and endian-safe char16_t strings as well.

Together we do the same number of copies as before.

Differential Revision: https://phabricator.services.mozilla.com/D43184

--HG--
extra : moz-landing-system : lando
2019-08-27 12:45:58 +00:00
Mike Hommey 3cf5ef2f97 Bug 1576082 - Don't build jsapi-tests, gdb-tests and js tests when disabling js shell. r=sfink
For starters, js tests require the js shell, so recursing js/src/tests
make no sense.

As for the other, it feels like it's reasonably that if one didn't
opt-in to build the js shell for Gecko builds, they are not interested
in jsapi-tests and gdb-tests either.

The default for Spidermonkey standalone build being to build the shell,
nothing changes for them.

Building jsapi-tests and gdb-tests forces to build jsrust, which can be
a drag when building Firefox.

Differential Revision: https://phabricator.services.mozilla.com/D43537

--HG--
extra : moz-landing-system : lando
2019-08-27 05:33:58 +00:00
Mihai Alexandru Michis ac5564a095 Merge mozilla-central to autoland. 2019-08-27 02:02:26 +03:00
Mihai Alexandru Michis 42b26a5a1a Merge inbound to mozilla-central. a=merge
--HG--
rename : dom/base/Location.cpp => dom/base/LocationBase.cpp
rename : dom/base/Location.h => dom/base/LocationBase.h
2019-08-27 01:31:58 +03:00
Mike Hommey 8afaba2056 Bug 1575760 - Make `mach vendor rust` create a .cargo/config and check it in the tree. r=nalexander
Maybe back when .cargo/config.in was added, the directory indicated for
vendored crates needed to be absolute. That is at least not the case
with the current supported versions of rust.

The current setup has a few caveats:
- .cargo/config.in has shown to become stale (it currently contains
  multiple unused entries)
- non-gecko build tasks have to generate a .cargo/config on their own if
  they want to use vendored crates
- in turn, non-gecko build tasks that don't, may unknowingly get their
  dependencies from crates.io (see the recent attempt at moving
  geckodriver builds to a separate task).

By checking in a .cargo/config file, we can alleviate the last two, but
that comes at the price of `cargo update` not wanting to act when
.cargo/config exists, because of the source replacement configuration.

But rust vendor gently generates a suitable configuration on its own, so
we can use that to generate a .cargo/config automatically. Which
addresses the first caveat of the current setup. That leaves us with
`cargo update` not working out of the box, but that just requires people
running it to manually remove .cargo/config first. Which is arguably
what rust wants you to do in the first place. It's kind of incidental
that we started with a .cargo/config.in rather than .cargo/config.

Now, while a simple .cargo/config works, that's not enough for the case
where the objdir doesn't live inside the source directory. In that case
cargo looks for the configuration from the objdir, and fails to find it.
So we still need a .cargo/config.in, which we generate with a little
trick.

Differential Revision: https://phabricator.services.mozilla.com/D43012

--HG--
rename : .cargo/config.in => .cargo/config
extra : moz-landing-system : lando
2019-08-26 22:20:32 +00:00
Andreea Pavel fb6a57f9b8 Backed out 2 changesets (bug 1532994) for build bustages on a CLOSED TREE
Backed out changeset 5b1337b35e30 (bug 1532994)
Backed out changeset c906462eddc7 (bug 1532994)
2019-08-26 21:22:39 +03:00
Kris Maglione 4814bcf9a6 Bug 1532994: Part 2 - Support SetHref() and Replace() in RemoteLocationProxy. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D43328

--HG--
extra : moz-landing-system : lando
2019-08-26 11:45:16 +00:00
Tom Ritter 93683129de Bug 1456544 - Remove mms-bitfields from the MinGW build r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D43459

--HG--
extra : moz-landing-system : lando
2019-08-26 16:16:36 +00:00
Chris Fallin cbea32c6d9 Bug 1571911: avoid uint32_t overflow in js shell by checking size of Uint8Array allocation for file buffer. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D43165

--HG--
extra : moz-landing-system : lando
2019-08-26 14:39:39 +00:00
Kris Maglione 06bd2c54e9 Bug 1532994: Part 2 - Support SetHref() and Replace() in RemoteLocationProxy. r=farre
MANUAL PUSH: Can't update phabricator patch.

Differential Revision: https://phabricator.services.mozilla.com/D43328

--HG--
extra : rebase_source : 66fc9a03238921b6f72b0e6a88b1ee7769edc940
extra : histedit_source : 57e8defe42bc9954bab8455bfd1f15aa2f45d01f
2019-08-23 16:20:37 -07:00
Jeff Walden c0dc1f2142 Bug 1575947 - AtomizeUTF8OrWTF8Chars should look up non-ASCII, Latin-1 single-code-point static strings itself. (Static strings are not recorded as permanent atoms or in the normal atom table, so it's always necessary to specially look them up.)... r=jonco
...r=jonco

Differential Revision: https://phabricator.services.mozilla.com/D43219

--HG--
extra : moz-landing-system : lando
2019-08-24 03:05:54 +00:00
Mike Hommey 9fb1027270 Bug 1576079 - Only build binast when building Spidermonkey standalone. r=nalexander
Bug 1454613 enabled binast (binsource back then) so that automation
would catch trivial build errors. The caveat is that it incurs build
times for everyone, while the tool is not even used during the build:
the result of running it is checked into the tree.

Ideally, it would be built in entirely separate tasks, but the overhead
of setting up a task (checking out the repository, downloading
toolchains, etc.) is actually large enough that it's overkill to build
completely separately.

However, it makes sense to limit to spidermonkey standalone builds.

Differential Revision: https://phabricator.services.mozilla.com/D43208

--HG--
extra : moz-landing-system : lando
2019-08-23 23:48:05 +00:00
Benjamin Bouvier 160cdeadeb Bug 1576591: Cranelift: don't collect metadata for FillNop; r=jseward
Differential Revision: https://phabricator.services.mozilla.com/D43408

--HG--
extra : moz-landing-system : lando
2019-08-26 10:18:36 +00:00
Benjamin Bouvier f2b3b057fc Bug 1576591: Bump Cranelift to 164f91a1f473e582e18e48d056c51787d9a1c24d; r=jseward
Differential Revision: https://phabricator.services.mozilla.com/D43407

--HG--
extra : moz-landing-system : lando
2019-08-26 10:18:17 +00:00
Jon Coppeard e6728a8a36 Bug 1575895 - Don't start GC slices due to malloc allocation if we're already collecting the zone r=sfink
At some point we can think about triggering incremental slices here the way we do for the GC heap allocations but for now it's simplest to just not trigger any more slices if we're already allocating.

Differential Revision: https://phabricator.services.mozilla.com/D43099

--HG--
extra : moz-landing-system : lando
2019-08-23 16:03:08 +00:00
Jon Coppeard 7766340a8a Bug 1575794 - Fix INCREMENTAL_TOO_SLOW trigger to check the non-incremental threshold r=sfink
I missed changing this when I changed the threshold to be the incremental trigger rather than the non-incremental one. I'm not entirely sure we need this chech at all - I think it will only happen in the case where we've requested a non-incremental GC but the interrupt hasn't caused one to run yet.

Differential Revision: https://phabricator.services.mozilla.com/D43035

--HG--
extra : moz-landing-system : lando
2019-08-23 16:02:46 +00:00
Csoregi Natalia 31eced3689 Merge mozilla-central to autoland. CLOSED TREE 2019-08-23 18:41:20 +03:00
Ted Campbell 41dfa283b7 Bug 1575077 - Return UniqueChars from FormatIntroducedName r=jandem
This was already transferring ownership to caller so use appropriate
types instead.

Depends on D43182

Differential Revision: https://phabricator.services.mozilla.com/D43183

--HG--
extra : moz-landing-system : lando
2019-08-23 13:39:55 +00:00
Ted Campbell 2126101005 Bug 1575077 - Factor out NoteContentParse calls in XDR r=jandem
Move this record/replay-specific code out of the ScriptSource XDR code.

Differential Revision: https://phabricator.services.mozilla.com/D43182

--HG--
extra : moz-landing-system : lando
2019-08-23 13:38:09 +00:00
Will Hawkins 9e72ec1f8d Bug 1551313: Insert profiler markers when preferences are accessed. r=squib,gregtatum
Reviewers: squib, mstange, gregtatum

Reviewed By: squib, gregtatum

Subscribers: julienw, Fallen, reviewbot, mixedpuppy, mstange

Bug #: 1551313

Differential Revision: https://phabricator.services.mozilla.com/D39796

--HG--
extra : rebase_source : e7e0b41b2a4c6f7228f3d6c19ede1fe2e4e42343
extra : histedit_source : 55daf5b19e4f262f522339b5b00ee31130abbf1b
2019-08-23 13:12:51 +03:00
Brindusan Cristian 103921e690 Backed out 1 changesets (bug 1551313) for build bustages at ProfilerMarkerPayload.cpp. CLOSED TREE
Backed out changeset 7fd9b797a83e (bug 1551313)
2019-08-23 04:22:03 +03:00
Will Hawkins 282a19afbf Bug 1551313: Insert profiler markers when preferences are accessed. r=squib,gregtatum
Differential Revision: https://phabricator.services.mozilla.com/D39796

--HG--
extra : moz-landing-system : lando
2019-08-23 00:21:53 +00:00
Chris Fallin 1c38bd4e40 Bug 1492920: remove restriction on IC attachment for instanceof: allow RHS with a reassigned __proto__. r=djvj,jandem
Based on discussions with :djvj, it seems that this IC attachment logic is
overly conservative. We're seeing a case where the `__proto__` of a constructor
function is reassigned, which causes all instanceof ICs to fail to attach. The
test case is like:

    function C() { /* ... */ }
    C.__proto__ = D;
    var o = new C();
    var result = o instanceof C;  // this IC fails to attach

This change generalizes the IC attachment logic to check whether @@hasInstance
is defined anywhere below Function in the prototype chain of the RHS. If not,
it is still safe to attach the IC; the IC simply needs to guard on the
prototype chain to ensure no @@hasInstance override is inserted later.

Differential Revision: https://phabricator.services.mozilla.com/D42366

--HG--
extra : moz-landing-system : lando
2019-08-22 18:08:37 +00:00
Narcis Beleuzu 1d3737ff0d Backed out changeset d99e941429d0 (bug 1568923) for SM bustages on RelocationOverlay.h . CLOSED TREE 2019-08-22 20:31:45 +03:00
krystal fdda6b6a38 Bug 1568923 - String deduplication during tenuring. r=sfink
Most live nursery strings can be deduplicated in moveToTenured through a hashset. 
Dependent strings are complicated to deal with since their chars need to be updated with the newly deduplicated base chars.
If the dependent string is tenured, its bases cannot be deduplicated since a tenured dependent string chars cannot be updated. Otherwise, the following steps will be able to update its chars.
1. Preserve the nursery base chain by saving dependent string nursery bases in its relocation overlay. This allows dependent string nursery root base to be reached.
2. Calculate the original dependent string base offset: dependent string nursery chars - dependent string root base nursery chars. Root base nursery chars is saved in its relocation overlay.
3. Update the dependent string chars with its new root base chars and the calculated offset.
4. Assign either the root base or the undepended string in which the dependent string uses chars from as the new base to unchain any potentially long dependency chain.

Differential Revision: https://phabricator.services.mozilla.com/D39440

--HG--
extra : moz-landing-system : lando
2019-08-22 17:09:27 +00:00
Iain Ireland c8c773d698 Bug 1571918: Split more double moves r=sstangl
Differential Revision: https://phabricator.services.mozilla.com/D42242

--HG--
extra : moz-landing-system : lando
2019-08-16 19:01:41 +00:00
Jon Coppeard 3985fb3dc9 Bug 1575801 - Move all GC scheduling method definitions to new Scheduling.cpp file r=allstarschh
This is just code motion, there shouldn't be any change to functionality.

Differential Revision: https://phabricator.services.mozilla.com/D43041

--HG--
extra : moz-landing-system : lando
2019-08-22 12:50:33 +00:00
Cosmin Sabou 8b02e5fb07 Backed out 5 changesets (bug 1575055) for xpcshell failures on js/CompileOptions.h. CLOSED TREE
Backed out changeset 6ba35efeddf6 (bug 1575055)
Backed out changeset 6039cf3a63f0 (bug 1575055)
Backed out changeset aa3a237d49d8 (bug 1575055)
Backed out changeset aa9f3f8f1f2c (bug 1575055)
Backed out changeset 400ea400fba2 (bug 1575055)
2019-08-22 17:08:22 +03:00
Jan de Mooij 9a25fb72c5 Bug 1575470 - Move icache flushing code to Architecture-*.h/cpp files. r=tcampbell,lth
This makes it easier to see the implementation for a particular platform
without getting confused by code for other platforms.

The SPARC code was deleted because we don't have a JIT backend for it anymore.

Differential Revision: https://phabricator.services.mozilla.com/D42804

--HG--
extra : moz-landing-system : lando
2019-08-22 13:37:03 +00:00
Ted Campbell bb991b5d3a Bug 1575055 - Avoid duplicating CompileOptions constructor code. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D42562

--HG--
extra : moz-landing-system : lando
2019-08-22 13:08:03 +00:00
Ted Campbell a48949b99c Bug 1575055 - Remove redundant overrides in ReadOnlyCompileOptions. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D42561

--HG--
extra : moz-landing-system : lando
2019-08-22 13:08:01 +00:00
Ted Campbell 179e9bf7ab Bug 1575055 - Unify JS::CompileOptions::canLazilyParse and forceFullParse_. r=jandem
If either the Realm or the request needs full-parsing, we disable lazy
parsing.

Differential Revision: https://phabricator.services.mozilla.com/D42560

--HG--
extra : moz-landing-system : lando
2019-08-22 13:07:57 +00:00
Ted Campbell 3cab8e70c6 Bug 1575055 - Privatize js::CompileOptions::strictMode. r=jandem
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
2019-08-22 13:08:10 +00:00
Ted Campbell 6e9b305ee3 Bug 1575055 - Cleanup CompileOptions::setIntroductionInfo. r=jandem
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
2019-08-22 13:07:53 +00:00
Noemi Erli 1353cb7336 Backed out 5 changesets (bug 1575055) for causing build bustages in mozJSComponentLoader.cpp CLOSED TREE
Backed out changeset e29819477913 (bug 1575055)
Backed out changeset f770e1398276 (bug 1575055)
Backed out changeset 3ee4fd0e20e0 (bug 1575055)
Backed out changeset 51f0929a5c8d (bug 1575055)
Backed out changeset 45f0e989e56e (bug 1575055)
2019-08-22 15:15:16 +03:00
Ted Campbell 64ba0d5e30 Bug 1575055 - Avoid duplicating CompileOptions constructor code. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D42562

--HG--
extra : moz-landing-system : lando
2019-08-22 11:59:42 +00:00
Ted Campbell 094cb37502 Bug 1575055 - Remove redundant overrides in ReadOnlyCompileOptions. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D42561

--HG--
extra : moz-landing-system : lando
2019-08-21 16:17:03 +00:00