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

82370 Коммитов

Автор SHA1 Сообщение Дата
Jan de Mooij 0ee07778cc Bug 1706246 part 13 - Import JS::PropertyKey in the js namespace. r=jonco
Typing the JS:: prefix every time this type is used was getting annoying.

Differential Revision: https://phabricator.services.mozilla.com/D112719
2021-04-21 07:53:42 +00:00
Jan de Mooij 84314d8bf1 Bug 1706246 part 12 - Make Shape::propid and related methods private. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D112717
2021-04-21 07:53:42 +00:00
Jan de Mooij 243b33d626 Bug 1706246 part 11 - Make Shape::slot and related methods private. r=jonco
This adds `NativeObject::getLastProperty`. The similar `lastProperty` method returning
a Shape* still exists, at some point we will probably have to replace that with `shape`.

Depends on D112715

Differential Revision: https://phabricator.services.mozilla.com/D112716
2021-04-21 07:53:41 +00:00
Jan de Mooij 4b6f38f2e9 Bug 1706246 part 10 - Remove Shape::isDataProperty and StackShape::isDataProperty. r=jonco
Depends on D112714

Differential Revision: https://phabricator.services.mozilla.com/D112715
2021-04-21 07:53:41 +00:00
Jan de Mooij bc741fd089 Bug 1706246 part 9 - Make Shape::isCustomDataProperty private. r=jonco
Depends on D112713

Differential Revision: https://phabricator.services.mozilla.com/D112714
2021-04-21 07:53:41 +00:00
Jan de Mooij cf206302cb Bug 1706246 part 8 - Make Shape::attributes private. r=jonco
Also changes `ShapeProperty(shape)` to `shape->property()` so that we don't have
to make `ShapeProperty` a friend class of `Shape`.

Depends on D112712

Differential Revision: https://phabricator.services.mozilla.com/D112713
2021-04-21 07:53:40 +00:00
Jan de Mooij 4b02124b3d Bug 1706246 part 7 - Use ShapeProperty in more places, remove Shape::isAccessorDescriptor. r=jonco
Depends on D112711

Differential Revision: https://phabricator.services.mozilla.com/D112712
2021-04-21 07:53:40 +00:00
Jan de Mooij 52d4c8225c Bug 1706246 part 6 - Use ShapeProperty in more places, remove Shape::writable and Shape::configurable methods. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D112711
2021-04-21 07:53:39 +00:00
Jan de Mooij cceb68f044 Bug 1706246 part 5 - Use ShapeProperty for the shape snapshot testing code. r=jonco
Depends on D112709

Differential Revision: https://phabricator.services.mozilla.com/D112710
2021-04-21 07:53:39 +00:00
Jan de Mooij d6a7548080 Bug 1706246 part 4 - Remove some unused Shape methods. r=jonco
Depends on D112708

Differential Revision: https://phabricator.services.mozilla.com/D112709
2021-04-21 07:53:39 +00:00
Jan de Mooij 10a4e68380 Bug 1706246 part 3 - Remove unnecessary assertion. r=jonco
I noticed this assertion that's no longer valid because getter/setter properties
now also go through addProperty. It's not an actual problem because we never call
this overload for getter/setter properties.

We could change the assertion to check for custom-data-properties, but that's
already asserted by addPropertyInternal that we end up calling.

Depends on D112707

Differential Revision: https://phabricator.services.mozilla.com/D112708
2021-04-21 07:53:38 +00:00
Jan de Mooij dbaa39b5b0 Bug 1706246 part 2 - Change addProperty, putProperty and similar methods to return a bool instead of the property's shape. r=jonco
For the methods where the caller needs to know the property's slot, add a slotOut
out-parameter.

Depends on D112706

Differential Revision: https://phabricator.services.mozilla.com/D112707
2021-04-21 07:53:38 +00:00
Jan de Mooij 35c37ac9fc Bug 1706246 part 1 - Assert ShapePropertyIter is only used with NativeObject shapes. r=jonco
In the future it would be nice to have a NativeObjectShape subtype so we can use the
type system for this.

Differential Revision: https://phabricator.services.mozilla.com/D112706
2021-04-21 07:53:37 +00:00
Jan de Mooij 2733f50922 Bug 1703760 - Fix invalid early return in BaselineFrame::trace. r=tcampbell
We were not tracing debugger environments for Baseline frames without any local/expression slots.

Differential Revision: https://phabricator.services.mozilla.com/D112741
2021-04-21 07:14:21 +00:00
Tooru Fujisawa 7bbcf3182f Bug 1705762 - Check null script when iterating and traversing lazy script in debugger. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D112834
2021-04-20 22:30:08 +00:00
Garima 31b2ccbec3 Bug 1705197 Remove uses of JSID_TO_ATOM in js/src/vm directory. r=mgaudet
Resolved merge conflict

Differential Revision: https://phabricator.services.mozilla.com/D112252
2021-04-20 17:11:24 +00:00
Iain Ireland 37145ea7e6 Bug 1701787: Make guardNoAllocationMetadataBuilder safe to share across realms r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112623
2021-04-20 16:45:20 +00:00
Iain Ireland 92149949ce Bug 1701787: Remove LoadNewObjectFromTemplateResult r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D110434
2021-04-20 16:45:19 +00:00
Matthew Gaudet 810f80185c Bug 1702278 - Defer setting debug metadata until after script compilation is finished. r=tcampbell,smaug
Differential Revision: https://phabricator.services.mozilla.com/D110459
2021-04-20 15:31:14 +00:00
Matthew Gaudet ac23d0ea49 Bug 1702278 - Assert initialization of ScriptSourceObject r=tcampbell
This is a diagnostic patch to help catch misuse of the two phase initialization
of ScriptSourceObject. One potential enhancement would be to make this
modification debug only.

Differential Revision: https://phabricator.services.mozilla.com/D107565
2021-04-20 15:31:14 +00:00
Matthew Gaudet ce69455a49 Bug 1648090 - Implement Ergonomic brand checks r=arai
Note: The test262 tests for this feature are not yet merged, however, local
testing with the pull request at https://github.com/tc39/test262/pull/2963
suggests we are compatible with those tests.

Differential Revision: https://phabricator.services.mozilla.com/D86572
2021-04-20 15:21:38 +00:00
Matthew Gaudet 183afd855e Bug 1648090 - Add context option for ergnomic brand checks r=arai
Differential Revision: https://phabricator.services.mozilla.com/D86571
2021-04-20 15:21:38 +00:00
Ryan Hunt b125df23dc Bug 1703105 - wasm: Fix cranelift validation for global.set. r=lth
Cranelift uses global.isConstant() for determining if the global is mutable or not.

This isn't correct, and causes a spec-test failure when the global is an import.

Differential Revision: https://phabricator.services.mozilla.com/D111455
2021-04-20 14:36:30 +00:00
Ryan Hunt 27cb397a89 Bug 1703105 - wasm: Update SIMD tests for renamed iXX.widen_YY instructions. r=lth
The i16x8.widen_XX and i32x4.widen_XX instructions were renamed to use
the word 'extend' instead of 'widen'. This commit updates the tests so they
pass with the new wat version.

Differential Revision: https://phabricator.services.mozilla.com/D111307
2021-04-20 14:36:30 +00:00
Ryan Hunt 8ac7e3ebca Bug 1703105 - wasm: Update wat to latest version. r=lth
Some SIMD instructions rely on a newer version of wat then we
have vendored.

Differential Revision: https://phabricator.services.mozilla.com/D111230
2021-04-20 14:36:29 +00:00
Ryan Hunt 7fe255e307 Bug 1703105 - wasm: Start vendoring simd proposal. r=lth
This commit adds the SIMD proposal to the vendored test suites.

Differential Revision: https://phabricator.services.mozilla.com/D111229
2021-04-20 14:36:27 +00:00
Ryan Hunt d3d34743b3 Bug 1703105 - wasm: Update spec/reftypes/bulk-memory pinned version for spec tests. r=lth
This commit updates the pinned version of the spec repo to the latest
version. This allows us to remove the separate reftypes/bulk-memory
repo's, as they are no merged in 'spec'.

Differential Revision: https://phabricator.services.mozilla.com/D111228
2021-04-20 14:36:26 +00:00
Ryan Hunt 856ac1d5aa Bug 1703105 - wasm: Vendor spec tests with new translation tool. r=lth
This commit uses the new version of wasm-generate-testsuite which uses
our new wast2js [1] tool to vendor the spec tests.

[1] https://github.com/eqrion/wasm-generate-testsuite/blob/master/wast2js/src/convert.rs

Differential Revision: https://phabricator.services.mozilla.com/D111227
2021-04-20 14:36:22 +00:00
Lars T Hansen fce1c9835f Bug 1678239 - Do not flush the masm buffer in the prologue. r=jseward
When the flushing of the buffer before the prologue was inserted (bug
1350550), a flush was also added before the secondary unchecked call
entry prologue.  But this flush causes code bloat on ARM and ARM64 (as
explained in a comment in the code) and it is not necessary because
the pool will never need to be spilled until after the prologue code
has been emitted completely: we know what's in the pool and we know no
references into the pool will go out of range until later.

So remove the flush and add an assertion that checks this assumption,
resulting in tighter code in the prologue.

Differential Revision: https://phabricator.services.mozilla.com/D112243
2021-04-20 06:45:50 +00:00
Lars T Hansen d63d8245bb Bug 1678239 - Shrink WasmCheckedTailEntryOffset. r=jseward
It turns out that WasmCheckedTailEntryOffset -- which defines an entry
point for a jump from a trampoline that needs to perform a signature
check but has already allocated a frame header, and which may require
some nop-fill in the function prologue so as to place the entry point
at a constant offset -- only needs to be large enough to accomodate
every possible callable prologue (architecture-dependent).  The value
can therefore be made smaller than it currently is on x86, x64, arm,
and arm64, leading to more compact prologues on those platforms,
conserving code size.

In addition, the code in GenerateFunctionPrologue and associated
functions that uses this constant can be tidied up a little bit and
commented better.

Differential Revision: https://phabricator.services.mozilla.com/D112173
2021-04-20 06:45:49 +00:00
Chris Fallin 70efa07aa7 Bug 1704757 part 7 - Disable wasm stuff. r=lth,wingo
WASI doesn't support Wasm for now so in this patch all wasm functionality
in js shell are stubbed out.

Differential Revision: https://phabricator.services.mozilla.com/D111796
2021-04-20 05:15:29 +00:00
Chris Fallin c0d9956b61 Bug 1701885 part 6 - Fix signals for WASI. r=jandem,wingo
WASI lacks of the signals support yet, so this patch stubs out
uses of signals for WASI.

Differential Revision: https://phabricator.services.mozilla.com/D110216
2021-04-20 05:15:28 +00:00
Dmitry Bezhetskov 3cc53df2c0 Bug 1701879 part 5 - Add stub atomics implementation for WASI. r=wingo,glandium
WASI lacks of the <atomic> support yet, so this patch is adding stub
implementation of atomics for WASI.

Differential Revision: https://phabricator.services.mozilla.com/D110215
2021-04-20 05:15:28 +00:00
Tooru Fujisawa 5508a33216 Bug 1695349 - Part 3: Remove endian handling from ObjLiteralStencil. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D112497
2021-04-19 23:02:52 +00:00
Tooru Fujisawa be0a6bf070 Bug 1695349 - Part 2: Rename XDRState::peekRawUint32 to XDRState::peekUint32. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D112496
2021-04-19 23:02:52 +00:00
Tooru Fujisawa 463c38b9ee Bug 1695349 - Part 1: Remove endian handling from XDRState methods. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D112495
2021-04-19 23:02:52 +00:00
Yoshi Cheng-Hao Huang c63ca4d51c Bug 1705733 - Replace threads.empty() check with CanUseExtraThreads(). r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D112532
2021-04-19 21:59:33 +00:00
mr.robot b9fba56cf6 Bug 1695396: Moved isFirstStub_ into IRGenerator in CacheIR.h r=iain
Differential Revision: https://phabricator.services.mozilla.com/D111649
2021-04-19 21:35:28 +00:00
Tom Schuster a137d1ce39 Bug 1704293 - Use Maybe<PropertyDescriptor> for GetOwnPropertyOp. r=jandem
Also switches the "default" GetOwnPropertyDescriptor implementation to Maybe<PropertyDescriptor>.

Differential Revision: https://phabricator.services.mozilla.com/D112371
2021-04-19 19:51:59 +00:00
Tom Schuster b728526ade Bug 1704293 - Use Maybe<PropertyDescriptor> for BaseProxyHandler::getOwnPropertyDescriptor in DOM and XPConnect. r=jandem,smaug
Differential Revision: https://phabricator.services.mozilla.com/D112037
2021-04-19 19:51:59 +00:00
Tom Schuster 3ad7d3318b Bug 1704293 - Use Maybe<PropertyDescriptor> for BaseProxyHandler::getOwnPropertyDescriptor in js/. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D111730
2021-04-19 19:51:58 +00:00
Jason Orendorff afe498ed92 Bug 1662559 - Part 20: Tweak some comments in NameOpEmitter.h. r=arai
Depends on D108301

Differential Revision: https://phabricator.services.mozilla.com/D108302
2021-04-19 19:28:11 +00:00
Jason Orendorff c3249f07a1 Bug 1662559 - Part 19: Emit DeclarationKind::PrivateName declarations and use all the optimized paths in PrivateOpEmitter. r=arai
At the same time, the initialization and storage of private methods is changed
to what the PrivateOpEmitter expects.

There are some barely-observable differences in behavior, resulting in two jit-test changes:

*   fields/bug1683784.js - An error message changed. Not really better or worse.

*   js/src/jit-test/tests/parser/script-source-extent.js - The debugger is able
    to observe initializers as individual scripts. We are no longer using
    initializers for private methods that can be optimized, and the debugger
    therefore observes the change.  I adjusted the test to expect the new
    behavior.

All js/src/tests pass.

Depends on D108300

Differential Revision: https://phabricator.services.mozilla.com/D108301
2021-04-19 19:28:11 +00:00
Jason Orendorff a8f5d32e87 Bug 1662559 - Part 18: Remove all support for private members from ElemOpEmitter. r=arai
Depends on D108299

Differential Revision: https://phabricator.services.mozilla.com/D108300
2021-04-19 19:28:10 +00:00
Jason Orendorff af06f97c61 Bug 1662559 - Part 17: Change BytecodeEmitter to use the new PrivateOpEmitter class. r=arai
Depends on D108298

Differential Revision: https://phabricator.services.mozilla.com/D108299
2021-04-19 19:28:10 +00:00
Jason Orendorff 10dffc1a2e Bug 1662559 - Part 16: Add PrivateOpEmitter, based on PropOpEmitter. r=arai
Depends on D108297

Differential Revision: https://phabricator.services.mozilla.com/D108298
2021-04-19 19:28:10 +00:00
Jason Orendorff 755d9c5c9e Bug 1662559 - Part 15: Add AST node types for private member access expressions (`obj.#member`). r=arai
The new parse nodes then need to be handled throughout the BytecodeEmitter. No
change in behavior.

Depends on D108296

Differential Revision: https://phabricator.services.mozilla.com/D108297
2021-04-19 19:28:09 +00:00
Jason Orendorff 3db4301f3e Bug 1662559 - Part 14: Minor refactor for BytecodeEmitter::emitSetOrInitializeDestructuring. r=arai
The diff is a mess, but this is very straightforward--we have a combination of
if-statements and a switch that could just be a single switch.

Depends on D108295

Differential Revision: https://phabricator.services.mozilla.com/D108296
2021-04-19 19:28:09 +00:00
Matthew Gaudet 8f80d4fb4c Bug 1662559 - Part 13: Disallow invocation of private methods inside of evalInFrame r=arai
In order to correctly support this with the optimized storage for methods we
would need new bytecode like GetAliasedVar which is able to traverse
non-EnvironmentObject environments like DebugEnvironmentProxy.

Unfortunately, for safety this means we will ultimately disable this for a number of
different private field and accessor invocations.

Differential Revision: https://phabricator.services.mozilla.com/D109402
2021-04-19 19:28:08 +00:00
Matthew Gaudet 0e4955e1f7 Bug 1662559 - Part 12: Modify effectiveScopePrivateFieldCache to store NameLocations as well. r=arai
By storing NameLocations we also get a BindingKind, which allows us to disambiguate between
PrivateMethods and Synthetics.

Differential Revision: https://phabricator.services.mozilla.com/D109401
2021-04-19 19:28:08 +00:00
Jason Orendorff 7b26efc077 Bug 1662559 - Part 11: Move .privateBrand to a fixed location and add BytecodeEmitter::lookupPrivate() to find it. r=arai
Depends on D108294

Differential Revision: https://phabricator.services.mozilla.com/D108295
2021-04-19 19:28:08 +00:00
Jason Orendorff 55b0d43bc5 Bug 1662559 - Part 10: Propagate BindingKind::PrivateMethod to scope data. r=arai
This would cause private methods to be marked as such on scopes, except that
the parser still declares them as `DeclarationKind::Synthetic` for now.

Depends on D108293

Differential Revision: https://phabricator.services.mozilla.com/D108294
2021-04-19 19:28:07 +00:00
Jason Orendorff a5daf64dea Bug 1662559 - Part 9: Migrate all ClassBodyScope bindings to be Synthetic. r=arai
This affects bytecode, as Synthetic bindings do not get TDZ checks.

This patch also tightens up some assertions when creating ScopeData. There are
several methods that create ScopeData, and they had gotten out of sync. The
assertions check that the ScopeData is not silently dropping bindings that were
present in ParseContext::Scope::declared_.

Depends on D108292

Differential Revision: https://phabricator.services.mozilla.com/D108293
2021-04-19 19:28:07 +00:00
Jason Orendorff c84b4481e3 Bug 1662559 - Part 8: Add BindingKind::PrivateMethod. r=arai
This is how the frontend will later identify private methods in order to emit
special bytecode.

Depends on D108291

Differential Revision: https://phabricator.services.mozilla.com/D108292
2021-04-19 19:28:06 +00:00
Jason Orendorff c892c5bda6 Bug 1662559 - Part 7: Add BindingKind::Synthetic, a kind of binding for pseudo-bindings. r=arai
This is currently used only by the bindings in a ClassBodyScope.

The behavior of these bindings is like Var bindings. There is no longer a TDZ
check, and we don't bother marking them as Uninitialized. So the special case
introduced in bug 1683746, peeking at the binding name to see if we should skip
the TDZ check, is no longer needed.

Depends on D108290

Differential Revision: https://phabricator.services.mozilla.com/D108291
2021-04-19 19:28:06 +00:00
Jason Orendorff d6362b6fc0 Bug 1662559 - Part 6: Stamp the private brand on instances. r=arai
This adds a hasPrivateBrand bit to the MemberInitializers struct in the
stencil. It is necessary to persist this bit across compilation units because
emitInitializeInstanceMembers can be called in direct eval code inside a
derived-class constructor.

Since .privateBrand is currently a `let` binding, this currently emits an
unnecessary CheckAliasedLexical instruction in the constructor for each class
that has nonstatic private methods. We'll eliminate these later on.

Depends on D108289

Differential Revision: https://phabricator.services.mozilla.com/D108290
2021-04-19 19:28:05 +00:00
Jason Orendorff 563580840a Bug 1662559 - Part 5: Add .privateBrand to class body scopes. r=arai
Not every class gets this special binding. It will be needed for all classes
that have any nonstatic private methods, getters, or setters. With this patch,
we create a .privateBrand binding in the scopes for such classes, and populate
it with a symbol when initializing the class. However, it is not yet being used
anywhere; the constructor does not yet stamp instances with the private brand.

Depends on D108288

Differential Revision: https://phabricator.services.mozilla.com/D108289
2021-04-19 19:28:05 +00:00
Jason Orendorff 812b030d0b Bug 1662559 - Part 4: Introduce ClassBodyLexicalEnvironmentObject. r=arai
It is a copy of BlockLexicalEnvironmentObject. Note that

-   ClassBodyScope is *not* a LexicalScope, BUT

-   ClassBodyLexicalEnvironmentObject *is* a LexicalEnvironmentObject

This is strictly a matter of how much implementation is shared. The word
"Lexical" in LexicalEnvironmentObject, and to some extent throughout
SpiderMonkey, is alas already pretty meaningless. In the language
specification, all environments are lexical environments.

Depends on D108286

Differential Revision: https://phabricator.services.mozilla.com/D108287
2021-04-19 19:28:05 +00:00
Jason Orendorff 0e2e568c6b Bug 1662559 - Part 3: Tighten up type of the ClassMemberList node kind. r=arai
Depends on D108285

Differential Revision: https://phabricator.services.mozilla.com/D108286
2021-04-19 19:28:04 +00:00
Jason Orendorff 047f6f7838 Bug 1662559 - Part 2: Clone LexicalScope{Node} -> ClassBodyScope{Node}. r=arai
Note: This revision will have to be folded with Parts 3 and 4 before landing, as
the op PushLexicalEnv breaks here, and is replaced with PushClassBodyEnv in Part 4.

Depends on D108283

Differential Revision: https://phabricator.services.mozilla.com/D108284
2021-04-19 19:28:04 +00:00
Jason Orendorff 6bf2f324b8 Bug 1662559 - Part 1: Rename NameLocation::fromBinding() -> BindingIter::nameLocation(). r=arai
Differential Revision: https://phabricator.services.mozilla.com/D108283
2021-04-19 19:28:03 +00:00
Ted Campbell 840a19df94 Bug 1705819 - Resolve _SetIsInlinableLargeFunction during BCE. r=arai
Use the existing intrinsic function call processing of self-hosting, the BCE
can also resolve _SetIsInlinableLargeFunction. To do this, we also track the
latest top-level FunctionBox that was processed to allow easily updating
flags without a dedicated hashmap. This change lets us make the flag
immutable now.

Differential Revision: https://phabricator.services.mozilla.com/D112411
2021-04-19 18:48:08 +00:00
Steve Fink de7f8edd6f Bug 1706118 - Minor updates to spidermonkey source package r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D112629
2021-04-19 18:11:06 +00:00
Jon Coppeard a67f594910 Bug 1705777 - Replace bufferIfNursery with tenured checks r=jandem
This ends up doing the same thing but is easer to follow IMO.

Differential Revision: https://phabricator.services.mozilla.com/D112394
2021-04-19 16:52:55 +00:00
Jon Coppeard 366e5d7182 Bug 1705777 - Rearrange finish_node so the function exit is at the end of the function r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112393
2021-04-19 16:52:55 +00:00
Jon Coppeard 8ac8154d85 Bug 1705777 - Factor out a function to check whether we can reuse the buffer of the leftmost leaf node r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112392
2021-04-19 16:52:54 +00:00
Jon Coppeard 3f7525952d Bug 1705777 - Move simulated traversal part of algorithm into the main loop r=jandem
Currently when resuing the leftmost leaf's buffer we have duplicate code to run
the traversal up until we reach the leftmost rope, because the left child has
been already been processed as a sepcial case. This removes this and checks a
flag in the main traversal code to handle this situation.

Differential Revision: https://phabricator.services.mozilla.com/D112391
2021-04-19 16:52:54 +00:00
Jon Coppeard d0caf22772 Bug 1705777 - Factor out a function to update the list of buffers associated with nursery cells when we transfer a buffer between cells r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112390
2021-04-19 16:52:53 +00:00
Jon Coppeard f690cfea73 Bug 1705777 - Make the main flattenInternal method static r=jandem
I found it confusing using |this| in a method that operated on a many different
nodes. This makes it static and passes the root as a named parameter so it's
clearer what's going on.

Differential Revision: https://phabricator.services.mozilla.com/D112389
2021-04-19 16:52:53 +00:00
Jon Coppeard d3895a2f39 Bug 1705777 - Handle allocation failure in one place and remove maybecx parameter from flattening methods r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112388
2021-04-19 16:52:53 +00:00
Jon Coppeard 52f689677d Bug 1705777 - Factor out rope pre-barrier into a separate method and tidy up r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112387
2021-04-19 16:52:52 +00:00
Jon Coppeard eb4e076247 Bug 1705777 - Factor out a function to set the JSString::LATIN1_CHARS_BIT flag based on the character type r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112386
2021-04-19 16:52:52 +00:00
Cosmin Sabou 785f9b8a87 Backed out changeset d4a5d8567977 (bug 1696251) for non-unified build bustages. CLOSED TREE 2021-04-19 19:43:31 +03:00
Alex Lopez 75dfe35468 Bug 1696251 - Pass MachCommandBase object as first argument for Mach Commands. r=mhentges,remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers
As an intermediate step to allow mach commands as standalone functions, the MachCommandBase
subclass instance that currently corresponds to self has to be made available as a separate
argument (named command_context).

Differential Revision: https://phabricator.services.mozilla.com/D109650
2021-04-19 16:15:11 +00:00
Steve Fink 06fa1e33cc Bug 1697929 - Make mach work in the spidermonkey release package r=firefox-build-system-reviewers,glandium
Differential Revision: https://phabricator.services.mozilla.com/D108129
2021-04-19 14:21:43 +00:00
Steve Fink ca40ebd352 Bug 1697929 - autospider: remove use of tooltool r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D109164
2021-04-19 14:21:43 +00:00
Steve Fink 9ede1c5e81 Bug 1697929 - Switch autospider.py to use mach for configure, builds, recurse_syms using an autogenerated mozconfig r=firefox-build-system-reviewers,glandium
Differential Revision: https://phabricator.services.mozilla.com/D108128
2021-04-19 14:21:43 +00:00
Steve Fink df6f52ac53 Bug 1697929 - Create a breakpad injector toolchain build. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D109504
2021-04-19 14:21:42 +00:00
Lars T Hansen cd13a3bb4f Bug 1705869 - Fix wasm build error in tier-3 config. r=rhunt
Cranelift tier-3 compile failed on buildbot due to a disabled feature
that exposed a private field as unused.  Make the field conditional on
the feature.

Differential Revision: https://phabricator.services.mozilla.com/D112467
2021-04-19 13:34:30 +00:00
smolnar 81811c374d Backed out 9 changesets (bug 1705777) for causing multiple mochitest failures. DONTBUILD CLOSED TREE
Backed out changeset 0b87e36e899f (bug 1705777)
Backed out changeset 0f2f2be13e03 (bug 1705777)
Backed out changeset 7bd9513c661a (bug 1705777)
Backed out changeset a0bca47b08bf (bug 1705777)
Backed out changeset b4118eb87e2a (bug 1705777)
Backed out changeset 8c1078f3f43c (bug 1705777)
Backed out changeset a4ccc315540c (bug 1705777)
Backed out changeset 420b8e7515ec (bug 1705777)
Backed out changeset db751afb6234 (bug 1705777)
2021-04-19 12:17:15 +03:00
Jon Coppeard 3b8fa4cdc1 Bug 1705777 - Replace bufferIfNursery with tenured checks r=jandem
This ends up doing the same thing but is easer to follow IMO.

Differential Revision: https://phabricator.services.mozilla.com/D112394
2021-04-19 08:44:46 +00:00
Jon Coppeard c34d1d2778 Bug 1705777 - Rearrange finish_node so the function exit is at the end of the function r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112393
2021-04-19 08:44:45 +00:00
Jon Coppeard 75ead5d3ef Bug 1705777 - Factor out a function to check whether we can reuse the buffer of the leftmost leaf node r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112392
2021-04-19 08:44:45 +00:00
Jon Coppeard 63a32b8c33 Bug 1705777 - Move simulated traversal part of algorithm into the main loop r=jandem
Currently when resuing the leftmost leaf's buffer we have duplicate code to run
the traversal up until we reach the leftmost rope, because the left child has
been already been processed as a sepcial case. This removes this and checks a
flag in the main traversal code to handle this situation.

Differential Revision: https://phabricator.services.mozilla.com/D112391
2021-04-19 08:44:44 +00:00
Jon Coppeard 06eb932710 Bug 1705777 - Factor out a function to update the list of buffers associated with nursery cells when we transfer a buffer between cells r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112390
2021-04-19 08:44:44 +00:00
Jon Coppeard 87db0d57ef Bug 1705777 - Make the main flattenInternal method static r=jandem
I found it confusing using |this| in a method that operated on a many different
nodes. This makes it static and passes the root as a named parameter so it's
clearer what's going on.

Differential Revision: https://phabricator.services.mozilla.com/D112389
2021-04-19 08:44:44 +00:00
Jon Coppeard 68cda7d0a9 Bug 1705777 - Handle allocation failure in one place and remove maybecx parameter from flattening methods r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112388
2021-04-19 08:44:43 +00:00
Jon Coppeard 47ee356f18 Bug 1705777 - Factor out rope pre-barrier into a separate method and tidy up r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112387
2021-04-19 08:44:43 +00:00
Jon Coppeard f872437ef1 Bug 1705777 - Factor out a function to set the JSString::LATIN1_CHARS_BIT flag based on the character type r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112386
2021-04-19 08:44:42 +00:00
Jan de Mooij 4ca75e2057 Bug 1705665 part 5 - Remove dead code in AddLengthProperty. r=jonco
This probably became dead code when shapes started implying a realm.

Depends on D112331

Differential Revision: https://phabricator.services.mozilla.com/D112332
2021-04-19 07:03:04 +00:00
Jan de Mooij 1ce626ef2b Bug 1705665 part 4 - Use ShapePropertyIter instead of manually walking over the shape list in a few places. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D112331
2021-04-19 07:03:04 +00:00
Jan de Mooij 923e887650 Bug 1705665 part 3 - Use ShapePropertyIter in more places. r=jonco
These uses are a bit more complicated because they collect the properties in a Vector.

Differential Revision: https://phabricator.services.mozilla.com/D112330
2021-04-19 07:03:03 +00:00
Jan de Mooij 21daa3010d Bug 1705665 part 2 - Add ShapePropertyIter and start using it. r=jonco
The iterator is based on Shape::Range, but is a bit more ergonomic and doesn't expose
the property's Shape. This means when we change the shape's property representation
later on we only have to change the iterator implementation.

Also start using `shape()` instead of `lastProperty()` because `lastProperty` will
either be removed or changed in the future, to decouple shapes and properties more.

The code generated by Clang for some of these functions looks good: the compiler
is able to optimize away the iterator and ShapePropertyWithKey code.

Differential Revision: https://phabricator.services.mozilla.com/D112329
2021-04-19 07:03:03 +00:00
Jan de Mooij d0d1be6432 Bug 1705665 part 1 - Remove CX template parameter from FakeRooted constructors. r=jonco
This was probably needed for ExclusiveContext back then.

Differential Revision: https://phabricator.services.mozilla.com/D112328
2021-04-19 07:03:03 +00:00
Cosmin Sabou c6e0f47a92 Backed out 2 changesets (bug 1705113) for causing js related webgl crashes. CLOSED TREE
Backed out changeset 7ba65785616a (bug 1705113)
Backed out changeset 07210c06a0d8 (bug 1705113)
2021-04-16 19:59:56 +03:00
Jon Coppeard 5b0df4d6a2 Bug 1705113 - Fix NewPlainObject stub to not use AutoCallVM for conditional VM call r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112338
2021-04-16 15:56:59 +00:00
Jon Coppeard 93a2a7250b Bug 1705113 - Add an IC stub for the NewArray op and compile it in basline r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D112054
2021-04-16 15:56:58 +00:00
Evgenia Kotovich 0b4bdf4fa0 Bug 1705198: Remove uses of JSID_To_ATOM from js/src/jit directory r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D112150
2021-04-16 15:17:50 +00:00
Lars T Hansen e43b373f10 Bug 1705446 - Fix Firefox pref names in WasmFeatures. r=rhunt
The features rewrite got the names of the Firefox wasm prefs wrong, they
all have a wasm_ prefix that got chopped off.  This puts it back.

It sucks that we don't have meaningful test cases for this.  A manual
test case (see bug) is easy, but how to automate it?

Differential Revision: https://phabricator.services.mozilla.com/D112325
2021-04-16 14:20:49 +00:00
Evgenia Kotovich 9a5ce6fadd Bug 1703598: Uses of JSID_IS_ATOM are replaced with JS::PropertyKey::isAtom r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D112147
2021-04-15 21:16:47 +00:00