searching for reviewer(jandem)
21f755c04005255c5305a13ad9087420e4489b7b: Bug 1580246: Remove object-literal singleton objects allocated at parse. r=mgaudet,jandem
Chris Fallin <cfallin@mozilla.com> - Mon, 18 Nov 2019 20:57:50 +0000 - rev 502478
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1580246: Remove object-literal singleton objects allocated at parse. r=mgaudet,jandem Instead, this patch introduces a new `ObjLiteral` mini-bytecode format that is used to carry object-literal information from parse time to a later time at which GC objects are safe to allocate. The mini-bytecode simply specifies a list of fields and constant field values. The original intent of this patch (realized in previous versions of it) was to make this an opcode, and completely replace object creation sequences (NEWINIT, INITPROP, INITPROP, ...) with one OBJLITERAL opcode. However, there are quite a few performance regressions that occur when replacing the finely-tuned set of optimizations around this with a new mechanism. As a result, this patch only defers allocation of the objects until the very end of parse. Each object literal adds an ObjLiteralCreationData instance to the GC-things list, and when the GC-things list is processed to perform deferred allocations, the described objects will be created. This is a rebased version of the original patch (landed as D47985 and then backed out) with the Kraken regression (bug 1594753) fixed as noted in the bug above. Differential Revision: https://phabricator.services.mozilla.com/D52383
41919e4ed34d693e9bc16755957f27f95936c8a9: Bug 1556033 - Properly skip frame execution if the debugger overrides it. r=jandem
Logan Smyth <loganfsmyth@gmail.com> - Mon, 18 Nov 2019 01:02:31 +0000 - rev 502377
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1556033 - Properly skip frame execution if the debugger overrides it. r=jandem The debugger allows its hooks to return explicit completion values that should take the place of any completion value of the function beig executed. It also handles tearing down any in-progress generators and such. In this case, we were attempting to treat the return completion from the debugger as if it were a real inline 'return' statement, but that attempts to evaluate the frame and run `finally` blocks and such, which we do not want because debugger completions are more like function termination with a result. Differential Revision: https://phabricator.services.mozilla.com/D52805
6c468a5b599635fc091ea77b888283ada23abfae: Bug 1596572 - make CompareStringInfinityOrNaN work with clang 5.x and C++17; r=jandem
Nathan Froyd <froydnj@mozilla.com> - Fri, 15 Nov 2019 10:29:33 +0000 - rev 502173
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1596572 - make CompareStringInfinityOrNaN work with clang 5.x and C++17; r=jandem clang 5.x (which is now our minimum supported clang version as of bug 1579189) doesn't quite work with inline variables and C++17. Fortunately, we can make some straightforward changes to make the code for `CompareStringInfinityOrNan` work in such situations. Differential Revision: https://phabricator.services.mozilla.com/D53082
1c3c775faf994b0cb12be28fc5afca9f444569af: Bug 1468789 - Part 2: Collect inner window id information for js interpreter frames and add a mechanism to get that for jit frames r=gerald,jandem,mstange
Nazım Can Altınova <canaltinova@gmail.com> - Fri, 15 Nov 2019 08:01:30 +0000 - rev 502164
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1468789 - Part 2: Collect inner window id information for js interpreter frames and add a mechanism to get that for jit frames r=gerald,jandem,mstange Differential Revision: https://phabricator.services.mozilla.com/D51860
0c93e34bc1f3b2e56d53a48ff6d6c09b083c8bba: Bug 1468789 - Part 1: Add window id inside realm creation options. r=jandem,bzbarsky
Nazım Can Altınova <canaltinova@gmail.com> - Thu, 14 Nov 2019 12:26:25 +0000 - rev 502163
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1468789 - Part 1: Add window id inside realm creation options. r=jandem,bzbarsky Differential Revision: https://phabricator.services.mozilla.com/D51859
bba1ab697faa083c7fe335061b8ca607bd83a2c7: Bug 1596288 - Move some code in Bailouts.h into Bailouts.cpp that is the sole user of it. r=jandem
Jeff Walden <jwalden@mit.edu> - Thu, 14 Nov 2019 22:53:04 +0000 - rev 502065
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1596288 - Move some code in Bailouts.h into Bailouts.cpp that is the sole user of it. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D52936
4cf8f3f89042f4622a349e2fd75a849155ffa75b: Bug 1594998 - Make standalone SpiderMonkey use libxul-like panic. r=froydnj,jandem
Mike Hommey <mh+mozilla@glandium.org> - Wed, 13 Nov 2019 22:07:08 +0000 - rev 501850
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1594998 - Make standalone SpiderMonkey use libxul-like panic. r=froydnj,jandem This moves the parts of toolkit/library/rust/shared/lib.rs related to panic hooking to a new mozglue subdirectory, which will be used for things that can be statically linked to e.g. libxul, rather than in a "shared library". The panic hook is disabled when building spidermonkey via the mozjs_sys crate. Differential Revision: https://phabricator.services.mozilla.com/D52793
ddc6fa7e24f2eb5e96e0e0215a943b06d4607b95: Bug 1566141 - implement nullish coalescence in ion monkey r=jandem
yulia <ystartsev@mozilla.com> - Tue, 12 Nov 2019 16:57:39 +0000 - rev 501728
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1566141 - implement nullish coalescence in ion monkey r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51640
2a8c35575189a16dcdf6af014a12b046817b28b2: Bug 1566141 - make baseline work with JSOP code for coalesce r=jorendorff,jandem
yulia <ystartsev@mozilla.com> - Tue, 12 Nov 2019 16:57:21 +0000 - rev 501727
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1566141 - make baseline work with JSOP code for coalesce r=jorendorff,jandem Differential Revision: https://phabricator.services.mozilla.com/D51639
9b150dd56999e1c2b7aa47cf9c0e8d96c6c8eff3: Bug 1566141 - make interpreter work with JSOP code for coalesce r=jorendorff,jandem
yulia <ystartsev@mozilla.com> - Tue, 12 Nov 2019 17:33:55 +0000 - rev 501726
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1566141 - make interpreter work with JSOP code for coalesce r=jorendorff,jandem Differential Revision: https://phabricator.services.mozilla.com/D51638
c3a0f52402f856f9ef747ef6aca49d7123431f0d: Bug 1593971: Add type policy to MTypedArrayIndexToInt32. r=jandem
André Bargull <andre.bargull@gmail.com> - Fri, 08 Nov 2019 09:48:50 +0000 - rev 501603
Push 114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1593971: Add type policy to MTypedArrayIndexToInt32. r=jandem MTypedArrayIndexToInt32's input can be replaced with MPhi nodes after construction. Use a type policy to ensure these MPhi node have the expected type (either Int32 or Double). Differential Revision: https://phabricator.services.mozilla.com/D52151
a8826071744bd06e4e300f3ab220952f1f92d82c: Bug 1594640 - Implement a new jit/FlushICache.h header, delegating to architecture-specific headers, to expose js::jit::FlushICache in a single location. r=jandem
Jeff Walden <jwalden@mit.edu> - Mon, 11 Nov 2019 22:10:22 +0000 - rev 501530
Push 114170 by malexandru@mozilla.com at Tue, 12 Nov 2019 21:58:32 +0000
Bug 1594640 - Implement a new jit/FlushICache.h header, delegating to architecture-specific headers, to expose js::jit::FlushICache in a single location. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D52122
caf55914ccddba34d462a1206530d7868b6c4992: Bug 1594961 - Split FrameIter-related functionality out of vm/Stack.h to vm/FrameIter.h, Activation-related functionality to vm/Activation.h, and JitActivation functionality to vm/JitActivation.h. r=jandem CLOSED TREE
Jeff Walden <jwalden@mit.edu> - Fri, 08 Nov 2019 23:27:36 +0100 - rev 501360
Push 114168 by dluca@mozilla.com at Sun, 10 Nov 2019 03:08:55 +0000
Bug 1594961 - Split FrameIter-related functionality out of vm/Stack.h to vm/FrameIter.h, Activation-related functionality to vm/Activation.h, and JitActivation functionality to vm/JitActivation.h. r=jandem CLOSED TREE Differential Revision: https://phabricator.services.mozilla.com/D52315
933f3452a368cddf7a67bf71e2956ee7cac9a718: Bug 1593801: Fix conditional load of BigInt digits. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 05 Nov 2019 15:28:34 +0000 - rev 500653
Push 114166 by apavel@mozilla.com at Thu, 07 Nov 2019 10:04:01 +0000
Bug 1593801: Fix conditional load of BigInt digits. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51797
8d0f2ca33ee84b7e6154af67bd2ea367a0a93b24: Bug 1591405 - Add BaseScript::function() and simplify code. r=jandem
Ted Campbell <tcampbell@mozilla.com> - Fri, 01 Nov 2019 21:46:55 +0000 - rev 500455
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1591405 - Add BaseScript::function() and simplify code. r=jandem Instead of checking for canonical function using scope chain, we can directly use the functionOrGlobal field. By moving this to the BaseScript class we can also simplify the debugger acccess. Differential Revision: https://phabricator.services.mozilla.com/D47071
b3a76c2b11b343f6170ccb599d1af7d8cfd06858: Bug 1585372 - Run InitScriptCoverage after initialization. r=jandem,nbp
Ted Campbell <tcampbell@mozilla.com> - Mon, 04 Nov 2019 20:21:28 +0000 - rev 500453
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1585372 - Run InitScriptCoverage after initialization. r=jandem,nbp To allow InitScriptCoverage to be more flexible, we need to delay the call until the JSScript is actually initialized. This moves the calls from JSScript constructor until the JSScript is actually initialized. This is similar to the debugger onNewScript call, but more cleanup would be needed to unify these. Differential Revision: https://phabricator.services.mozilla.com/D51473
821b104d357b899ba03415a82066e96db6aa269b: Bug 1593354 - Add BaseScript::IsFunction flag. r=jandem
Ted Campbell <tcampbell@mozilla.com> - Mon, 04 Nov 2019 07:56:09 +0000 - rev 500452
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1593354 - Add BaseScript::IsFunction flag. r=jandem Set this flag for scripts that are for functions. This is equivalent to checking the kind of the bodyScope() but is safe to call in GC contexts such as finalization. Also use an isFunction() accessor instead of checking if JSScript::function() is nullptr throughout the codebase. Similarly, cleanup similar uses of JSScript::module(). Differential Revision: https://phabricator.services.mozilla.com/D51472
ae8a16518084434ca7ff1af082d321923c490787: Bug 1582348 - Enable writable streams in the browser when the javascript.options.{,writable_}streams prefs are set. (Writable streams are only half-implemented; DO NOT start reporting bugs yet, it *will* crash in all sorts of trivial ways.) r=jandem
Jeff Walden <jwalden@mit.edu> - Fri, 01 Nov 2019 22:55:05 +0000 - rev 500239
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1582348 - Enable writable streams in the browser when the javascript.options.{,writable_}streams prefs are set. (Writable streams are only half-implemented; DO NOT start reporting bugs yet, it *will* crash in all sorts of trivial ways.) r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51049
90583a5ead34b46c110a78b9f74c2af9a16dafe9: Bug 1526870 - Part 16: Change Proxy CacheIR VM functions to use unboxed returned types when possible. r=jandem
André Bargull <andre.bargull@gmail.com> - Fri, 01 Nov 2019 16:06:12 +0000 - rev 500201
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 16: Change Proxy CacheIR VM functions to use unboxed returned types when possible. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51072
8d51d8075975b44f0d49d2506c1d46c342cb37e6: Bug 1526870 - Part 15: Use AutoCallVM for additional CacheIR emitters. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:23:43 +0000 - rev 500200
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 15: Use AutoCallVM for additional CacheIR emitters. r=jandem Use a single implementation in CacheIRCompiler.cpp for CacheIR emitters which can be updated to the changed AutoCallVM class. Differential Revision: https://phabricator.services.mozilla.com/D49922
63af736edacb0bb35d26558b246151623c733324: Bug 1526870 - Part 14: Deduce return types in AutoCallVM. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:22:23 +0000 - rev 500199
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 14: Deduce return types in AutoCallVM. r=jandem The previous parts had separate Baseline and Ion implementations for some CacheIR ops, because AutoCallVM only supports Values as the return type. With this patch AutoCallVM can deduce the return types from VM calls, so more return types than just Values can be supported. Differential Revision: https://phabricator.services.mozilla.com/D49921
1934ce1a9d59d5f9d385c14e4d512f1927191592: Bug 1526870 - Part 13: Support BigInt x String comparisons. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:22:00 +0000 - rev 500198
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 13: Support BigInt x String comparisons. r=jandem Comparisons between BigInts and Strings is the only remaining unsupported sloppy equality operation. Add support for these operand types, so there's no unexpected performance cliff for non-Object operands in equality comparisons. Differential Revision: https://phabricator.services.mozilla.com/D49920
1f6613c96ad355d9ddee8b4b876d8a25fbca9892: Bug 1526870 - Part 12: Specialise BigInt x Int32 comparisons. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:21:37 +0000 - rev 500197
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 12: Specialise BigInt x Int32 comparisons. r=jandem When comparing a BigInt against an Int32, it's not actually necessary to call into the VM, because we only need to perform some range checks and unsigned comparisons, which can all be performed directly in inline assembly. This gives another easy >2x performance improvement compared to the previous part. Differential Revision: https://phabricator.services.mozilla.com/D49918
bb7bc8d4265bf1309a0851d2cb8ab060da8b0f2f: Bug 1526870 - Part 11: Support BigInt x Number comparisons. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:32:34 +0000 - rev 500196
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 11: Support BigInt x Number comparisons. r=jandem Adds support to compare BigInt and Number values against each other. In contrast to binary operations, comparison operations allow mixing BigInts and Numbers. For example when testing if a BigInt value is negative, `bigInt < 0` can be used in addition to `bigInt < 0n`. Differential Revision: https://phabricator.services.mozilla.com/D49917
d2654be900532dbdf2b7f731d875dea5ff3121aa: Bug 1526870 - Part 11.a: Add support for (double, int) -> int ABI calls to the ARM simulators. r=jandem
André Bargull <andre.bargull@gmail.com> - Fri, 01 Nov 2019 09:14:30 +0000 - rev 500195
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 11.a: Add support for (double, int) -> int ABI calls to the ARM simulators. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51263
358c6ecdbab9789dd775557b685b73f129cd9744: Bug 1526870 - Part 10: Support the missing equality ops cases for Boolean values. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:32:34 +0000 - rev 500194
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 10: Support the missing equality ops cases for Boolean values. r=jandem Comparing Booleans with either Doubles or Strings always performs ToNumber on the Boolean operand. So when we add a Boolean to (boxed) Number operation to CacheIR, we can reuse the existing support for comparing Numbers resp. comparing Numbers and Strings and further trim down the list of unsupported sloppy equality operations. Differential Revision: https://phabricator.services.mozilla.com/D49916
b64e4fd10c32e38de2017452b10ea75721a38d00: Bug 1526870 - Part 9: Support the missing equality ops cases for Symbol values. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:49:21 +0000 - rev 500193
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 9: Support the missing equality ops cases for Symbol values. r=jandem Comparing a Symbol with one of {String,Boolean,Number,BigInt} is always false (resp. true for NE/STRICTNE), so it's easy to support this case, too. Differential Revision: https://phabricator.services.mozilla.com/D49915
fc1eb2962e75c3ff16737dabfacda33d36e67e86: Bug 1526870 - Part 8: Update list of unsupported sloppy equality ops. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:59 +0000 - rev 500192
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 8: Update list of unsupported sloppy equality ops. r=jandem The list of unsupported operations with missing some entries and wasn't consistent when to omit equivalent cases. Differential Revision: https://phabricator.services.mozilla.com/D49914
7f2c547a9ab942f7c8b31cae8bf1bb8fa4bd6b66: Bug 1526870 - Part 7: Replace LBitOpV with LBinaryV. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:36 +0000 - rev 500191
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 7: Replace LBitOpV with LBinaryV. r=jandem The separate `LBitOpV` class is no longer needed, because `LBitOpV` and `LBinaryV` now both use `Value` for their input and output parameters. Differential Revision: https://phabricator.services.mozilla.com/D49913
1834c4372f1665eb796cdc8fb5db08419af371d9: Bug 1526870 - Part 6: Support bitwise- and shift-operations in Ion CacheIR. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 10:18:45 +0000 - rev 500190
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 6: Support bitwise- and shift-operations in Ion CacheIR. r=jandem Ion never emitted MBinaryCache for bitwise- and shift-operations, so we never used Ion CacheIR for these operations on BigInt values and instead always emitted a LBitOpV, i.e. a VM call. With this patch, the changes in part 4 now also lead to a performance improvement in Ion code. Differential Revision: https://phabricator.services.mozilla.com/D49912
12c37a20a1c2e7ba7195c001298a505406deafcc: Bug 1526870 - Part 5: Handle BigInts via abi-call in CompareIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:09 +0000 - rev 500189
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 5: Handle BigInts via abi-call in CompareIRGenerator. r=jandem Adds new CacheIR ops to support comparison operations with BigInt operands. All methods simply call into the VM to perform the actual operation. Comparisons between two BigInt values can't GC or perform any side-effects, so we can use an ABI call, which saves us an extra indirection through a VM function wrapper and makes it possible to use a shared implementation in CacheIRCompiler.cpp. Differential Revision: https://phabricator.services.mozilla.com/D49911
c1b72e0bcfc1cfa37e24ea7d663e032bce3ca2e9: Bug 1526870 - Part 4: Handle BigInts via vm-call in BinaryArithIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:07 +0000 - rev 500188
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 4: Handle BigInts via vm-call in BinaryArithIRGenerator. r=jandem Adds new CacheIR ops to support binary operations with BigInt operands. All methods simply call into the VM to perform the actual operation. JSOP_URSH isn't supported because it always throws when used with BigInts. Parts 14/15 move the separate Baseline and Ion implementations into a single implementation in CacheIRCompiler. Differential Revision: https://phabricator.services.mozilla.com/D49910
59e32702b1a62adff0c021bbc9f43762e885a60b: Bug 1526870 - Part 3: Handle BigInts via vm-call in UnaryArithIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:46:54 +0000 - rev 500187
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 3: Handle BigInts via vm-call in UnaryArithIRGenerator. r=jandem Adds new CacheIR ops to support unary operations with BigInt operands. All methods simply call into the VM to perform the actual operation. Parts 14/15 move the separate Baseline and Ion implementations into a single implementation in CacheIRCompiler. Differential Revision: https://phabricator.services.mozilla.com/D49909
ccdc3d34f617718e04685aa91b2d073be9f82177: Bug 1526870 - Part 2: Support BigInts in ToBoolIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:46:31 +0000 - rev 500186
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 2: Support BigInts in ToBoolIRGenerator. r=jandem Adds the 'LoadBigIntTruthyResult' CacheIR op to handle BigInts in boolean contexts. Differential Revision: https://phabricator.services.mozilla.com/D49908
1863bee21f04cd1ca8e7e528e392bfc2cd5db7fb: Bug 1526870 - Part 1: Support BigInts in VMFunctions. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:46:08 +0000 - rev 500185
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 1: Support BigInts in VMFunctions. r=jandem Adds support for BigInt argument and return types to VM functions. Differential Revision: https://phabricator.services.mozilla.com/D49907
443669b4e79144aedd90d53d03a293d0fa9cedeb: Bug 1592936 - Remove unncessary check that helper threads have been started in GCParallelTask::startWithLockHeld r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Fri, 01 Nov 2019 10:52:05 +0000 - rev 500146
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592936 - Remove unncessary check that helper threads have been started in GCParallelTask::startWithLockHeld r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51274
9c304ce34a04364bf6e8a57f3a41a14c1ae1d574: Bug 1592537 - When waiting for a GC task, run it on the main thread if has not yet been picked up by a helper thread r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Fri, 01 Nov 2019 10:22:47 +0000 - rev 500133
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592537 - When waiting for a GC task, run it on the main thread if has not yet been picked up by a helper thread r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51104
50b918f617568bfc0f015e11be164477cc4f31ae: Bug 1592537 - Give GCParallelTask a new 'running' state and refactor r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Fri, 01 Nov 2019 10:22:40 +0000 - rev 500132
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592537 - Give GCParallelTask a new 'running' state and refactor r=jandem The new state is entered when the task starts executing on a helper thread. This is so we can tell the difference between tasks we have dispatched and those that have actually started running. Differential Revision: https://phabricator.services.mozilla.com/D51103
7da36585e596e5230b79a7bef3a7ad1fff5ad90d: Bug 1592958 - Ensure new WebAssembly blocks have slots enough for predecessor results r=jandem
Andy Wingo <wingo@igalia.com> - Fri, 01 Nov 2019 10:11:21 +0000 - rev 500130
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592958 - Ensure new WebAssembly blocks have slots enough for predecessor results r=jandem Differential Revision: https://phabricator.services.mozilla.com/D51259
78949522297626cb5029a331aec9ba0b3a0613d0: Bug 1590694 - Use const GCPtrs where possible r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 12:53:31 +0000 - rev 500027
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Use const GCPtrs where possible r=jandem This replaces GCPtr members with const GCPtr where trival to do so. Depends on D50618 Differential Revision: https://phabricator.services.mozilla.com/D50619
cfb65a5e10c0a1c1c08437be67bc5bc9fd83e29c: Bug 1590694 - Make it possible to use const GC wrappers r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 14:12:15 +0000 - rev 500026
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Make it possible to use const GC wrappers r=jandem The main change is to make BarrieredBase::unsafeUnbarrieredForTracing() const and use const_cast to get return the non-const pointer. This makes sense because the GC is allowed to update the pointer used while preseving the logical value of the cell, e.g. when compacting. Differential Revision: https://phabricator.services.mozilla.com/D50618
f65f3003e407afaff8eb3ddc7703e684639f1f9b: Bug 1590694 - Use const GCPtrs where possible r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 11:01:10 +0000 - rev 499963
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Use const GCPtrs where possible r=jandem This replaces GCPtr members with const GCPtr where trival to do so. Depends on D50618 Differential Revision: https://phabricator.services.mozilla.com/D50619
e42641548cb74ff4283343a970da30ee4b2d2e55: Bug 1590694 - Make it possible to use const GC wrappers r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 11:00:25 +0000 - rev 499962
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Make it possible to use const GC wrappers r=jandem The main change is to make BarrieredBase::unsafeUnbarrieredForTracing() const and use const_cast to get return the non-const pointer. This makes sense because the GC is allowed to update the pointer used while preseving the logical value of the cell, e.g. when compacting. Differential Revision: https://phabricator.services.mozilla.com/D50618
7b07bb35e7b26ded4cb66242764aa86c42e52b1c: Bug 1129202 - Part 10: Handle TypedArray non-int32 indices in GetPropIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 08:22:37 +0000 - rev 499947
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 10: Handle TypedArray non-int32 indices in GetPropIRGenerator. r=jandem That way CacheIR can still attach an IC and Baseline/Ion don't need to take the slow path when a TypedArray access happens through a Double not representable as an Int32. Differential Revision: https://phabricator.services.mozilla.com/D39045
cbeae82d295cf342b231f5d8adec71dbc2b8f924: Bug 1129202 - Part 9: Handle TypedArray non-int32 indices in HasPropIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:34:59 +0000 - rev 499946
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 9: Handle TypedArray non-int32 indices in HasPropIRGenerator. r=jandem That way CacheIR can still attach an IC and Baseline/Ion don't need to take the slow path when a TypedArray access happens through a Double not representable as a (positive) Int32. Differential Revision: https://phabricator.services.mozilla.com/D39044
371d2efe156c928788d8ae55adbf436cadecc507: Bug 1129202 - Part 8: Handle TypedArray non-int32 indices in SetPropIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:34:57 +0000 - rev 499945
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 8: Handle TypedArray non-int32 indices in SetPropIRGenerator. r=jandem Negative int32 and doubles can both be optimised for TypedArray accesses due to the fact that any number is a canonical numeric index. With this change any TypedArray access with a double index can be optimised without regressing bug 1535031 or bug 1526315. Differential Revision: https://phabricator.services.mozilla.com/D39043
825e8843d0b1b7737f3010c4c1b9a70f7b1f668a: Bug 1129202 - Part 7: Add MTypedArrayIndexToInt32 for accessing TypedArrays with any Double index. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:38:46 +0000 - rev 499944
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 7: Add MTypedArrayIndexToInt32 for accessing TypedArrays with any Double index. r=jandem The definition of canonical numeric index strings means that any access into a TypedArray with a Double index never reads from the prototype chain. Instead if the Double is not representable as an Int32, the access is equivalent to an out-of-bounds access. That means we can substitute any non-Int32 Double index with an arbitrary index which is OOB. This helps to avoid deoptimising TypedArray accesses with non-Int32 Double values by handling them as normal out-of-bounds accesses, which are already optimisable. Differential Revision: https://phabricator.services.mozilla.com/D39041
288125d24d237d72ece0af61b011bcebfbc291d3: Bug 1129202 - Part 6: Add constant for maximum TypedArray length. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 10:18:38 +0000 - rev 499943
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 6: Add constant for maximum TypedArray length. r=jandem The next parts use this constant in static_asserts. Differential Revision: https://phabricator.services.mozilla.com/D39040
055d1cad290aafc6947cf2706439723bcf0e49b6: Bug 1129202 - Part 5: Enable now passing test262 tests. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:32:49 +0000 - rev 499942
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 5: Enable now passing test262 tests. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D39039
77c80b5f79eadeb3d41d27f0b4baae2dffa27f77: Bug 1129202 - Part 4: Allow numbers with fractional parts or exponents for canonical numeric indices. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:32:27 +0000 - rev 499941
Push 114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 4: Allow numbers with fractional parts or exponents for canonical numeric indices. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D39038