b1f8fe42b1a80800368724ebbff8e5097e632511: Bug 1518075 - Fix rooting hazard r=me on a CLOSED TREE
Jon Coppeard <jcoppeard@mozilla.com> - Mon, 21 Jan 2019 14:26:24 +0000 - rev 454683
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1518075 - Fix rooting hazard r=me on a CLOSED TREE
d9ae827234990ad8ce27a2337df9dbc9dc578b05: Bug 1521334, make parser to flush its tree operation queue sooner, r=hsivonen
Olli Pettay <Olli.Pettay@helsinki.fi> - Mon, 21 Jan 2019 16:03:03 +0200 - rev 454682
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1521334, make parser to flush its tree operation queue sooner, r=hsivonen
13840080fc24aef5ca298b38f2e0b714dc75d05f: Bug 1512749 - Convert JS::gcreason::Reason to enum class JS:GCReason r=jonco r=mccr8
Jon Coppeard <jcoppeard@mozilla.com> - Mon, 21 Jan 2019 13:09:12 +0000 - rev 454681
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1512749 - Convert JS::gcreason::Reason to enum class JS:GCReason r=jonco r=mccr8
2668f097f56dff2258bfc62de51715d3627ae4d2: Bug 1519253 - Move nsSMILInterval and nsSMILRepeatCount to the mozilla namespace r=birtles
longsonr <longsonr@gmail.com> - Mon, 21 Jan 2019 13:08:12 +0000 - rev 454680
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1519253 - Move nsSMILInterval and nsSMILRepeatCount to the mozilla namespace r=birtles
d323b050b0ce2ae624fc09e8f7d204c5016d3f9e: Bug 1518075 - Add another check for null script because compilation can 'succeed' if scripting is disabled r=smaug
Jon Coppeard <jcoppeard@mozilla.com> - Mon, 21 Jan 2019 12:40:55 +0000 - rev 454679
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1518075 - Add another check for null script because compilation can 'succeed' if scripting is disabled r=smaug
48810cb8ba3fb643308bbf2c5400e1b42042ca45: Bug 1520778 - Ensure implicit edges are marked on all paths through the marking code r=sfink
Jon Coppeard <jcoppeard@mozilla.com> - Mon, 21 Jan 2019 12:40:52 +0000 - rev 454678
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1520778 - Ensure implicit edges are marked on all paths through the marking code r=sfink
c311812c530c03588f7ac2fac4fd9f6c38103529: Backed out 2 changesets (bug 1394420) for failing testAtomicOperations.cpp, ESling and jit failures CLOSED TREE
Ciure Andrei <aciure@mozilla.com> - Mon, 21 Jan 2019 14:26:34 +0200 - rev 454677
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Backed out 2 changesets (bug 1394420) for failing testAtomicOperations.cpp, ESling and jit failures CLOSED TREE Backed out changeset b2ffeeac7326 (bug 1394420) Backed out changeset 2f5be1913934 (bug 1394420)
8c452bdd54f5d7b91322422c7955066ae7019f32: Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE
Razvan Maries <rmaries@mozilla.com> - Mon, 21 Jan 2019 13:41:52 +0200 - rev 454676
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE
b2ffeeac7326d673ff09474ce3007e84687c5a62: Bug 1394420 - Consolidate feeling-lucky atomics. r=froydnj
Lars T Hansen <lhansen@mozilla.com> - Thu, 11 Oct 2018 14:54:25 +0200 - rev 454675
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1394420 - Consolidate feeling-lucky atomics. r=froydnj With jitted primitives for racy atomic access in place, we can consolidate most C++ realizations of the atomic primitives into two headers, one for gcc/Clang and one for MSVC, that will be used as default fallbacks on non-tier-1 platforms. Non-tier-1 platforms can still implement their own atomics layer, as does MIPS already; we leave the MIPS code alone here.
2f5be1913934665cf692d3e43cadbc36f5448643: Bug 1394420 - jit-generate atomic ops to be called from c++. r=nbp, r=froydnj
Lars T Hansen <lhansen@mozilla.com> - Tue, 21 Aug 2018 21:13:12 +0200 - rev 454674
Push 35410 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:51:39 +0000
Bug 1394420 - jit-generate atomic ops to be called from c++. r=nbp, r=froydnj SpiderMonkey (and eventually DOM) will sometimes access shared memory from multiple threads without synchronization; this is a natural consequence of the JS memory model + JS/DOM specs. We have always had a hardware-specific abstraction layer for these accesses, to isolate code from the details of how unsynchronized / racy access is handled. This layer has been written in C++ and has several problems: - In C++, racy access is undefined behavior, and the abstraction layer is therefore inherently unsafe, especially in the presence of inlining, PGO, and clever compilers. (And TSAN will start complaining, too.) - Some of the compiler intrinsics that are used in the C++ abstraction layer are not actually the right primitives -- they assume C++, ie non-racy, semantics, and may not implement the correct barriers in all cases. - There are few guarantees that the synchronization implemented by the C++ primitives is actually compatible with the synchronization used by jitted code. - While x86 and ARM have 8-byte synchronized access (CMPXCHG8B and LDREXD/STREXD), some C++ compilers do not support their use well or at all, leading to occasional hardship for porting teams. This patch solves all these problems by jit-generating the racy access abstraction layer in the form of C++-compatible functions that: do not trigger UB in the C++ code; do not depend on possibly-incorrect intrinsics but instead always emit the proper barriers; are guaranteed to be JIT-compatible; and support x86 properly. Mostly this code is straightforward: each access function is a short, nearly prologue- and epilogue-less, sequence of instructions that performs a normal load or store or appropriately synchronized operation (CMPXCHG or similar). Safe-for-races memcpy and memmove are trickier but are handled by combining some C++ code with several jit-generated functions that perform unrolled copies for various block sizes and alignments. The performance story is not completely satisfactory: On the one hand, we don't regress anything because copying unshared-to-unshared we do not use the new primitives but instead the C++ compiler's optimized memcpy and standard memory loads and stores. On the other hand, performance with shared memory is lower than performance with unshared memory. TypedArray.prototype.set() is a good test case. When the source and target arrays have the same type, the engine uses a memcpy; shared memory copying is 3x slower than unshared memory for 100,000 8K copies (Uint8). However, when the source and target arrays are slightly different types (Uint8 vs Int8) the engine uses individual loads and stores, which for shared memory turns into two calls per byte being moved; in this case, shared memory is 127x slower than unshared memory. (All numbers on x64 Linux.) Can we live with the very significant slowdown in the latter case? It depends on the applications we envision for shared memory. Primarily, shared memory will be used as wasm heap memory, in which case most applications that need to move data will use all Uint8Array arrays and the slowdown is OK. But it is clearly a type of performance cliff. We can reduce the overhead by jit-generating more code, specifically code to perform the load, convert, and store in common cases. More interestingly, and simpler, we can probably use memcpy in all cases by copying first (fairly fast) and then running a local fixup. A bug should be filed for this but IMO we're OK with the current solution. (Memcpy can also be further sped up in platform-specific ways by generating cleverer code that uses REP MOVS or SIMD or similar.)
4977d02e11915a93c6c80a51f3e7bdc99d5e2f08: Merge autoland to mozilla-central a=merge
Razvan Maries <rmaries@mozilla.com> - Mon, 21 Jan 2019 19:48:03 +0200 - rev 454673
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Merge autoland to mozilla-central a=merge
d536f45f5b166c4b9562caf0c41991cb5df831cc: Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Sylvestre Ledru <sledru@mozilla.com> - Mon, 21 Jan 2019 14:49:22 +0000 - rev 454672
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan # ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D17063
46a48161f4282af4708ddd3b2eed6943da864add: Bug 1494726 - Add a test for malformed top-level await expressions; r=jlast.
Nicolas Chevobbe <nchevobbe@mozilla.com> - Mon, 21 Jan 2019 14:03:32 +0000 - rev 454671
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Bug 1494726 - Add a test for malformed top-level await expressions; r=jlast. Differential Revision: https://phabricator.services.mozilla.com/D15937
22471aa9be27f7897495d4bb4b2d6fd1900e620b: Backed out 4 changesets (bug 1517025) for multiple failures e.g.: toolkit/components/telemetry/tests/unit/test_PingAPI.js CLOSED TREE
Margareta Eliza Balazs <ebalazs@mozilla.com> - Mon, 21 Jan 2019 16:13:56 +0200 - rev 454670
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Backed out 4 changesets (bug 1517025) for multiple failures e.g.: toolkit/components/telemetry/tests/unit/test_PingAPI.js CLOSED TREE Backed out changeset 1e173178e49f (bug 1517025) Backed out changeset c29889dea969 (bug 1517025) Backed out changeset 48c7d643d2fa (bug 1517025) Backed out changeset 419cb778d531 (bug 1517025)
053747e3a369cc4ec41ec4e6b2620489e655ca61: Bug 1517480 - Stop using graytext for labels in the "report a problem" subpanel. r=johannh
Dão Gottwald <dao@mozilla.com> - Mon, 21 Jan 2019 11:56:21 +0000 - rev 454669
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Bug 1517480 - Stop using graytext for labels in the "report a problem" subpanel. r=johannh Differential Revision: https://phabricator.services.mozilla.com/D16870
dc8020199c4bb3be745ba753f017c213a1fc90b5: Bug 1521212 - Unset visibility of the reset button instead of setting it to visible. r=Gijs
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 21 Jan 2019 12:58:41 +0000 - rev 454668
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Bug 1521212 - Unset visibility of the reset button instead of setting it to visible. r=Gijs CSS visibility doesn't work like `display`. `visibility: visible` elements in a `visibility: hidden` subtree still get shown. Differential Revision: https://phabricator.services.mozilla.com/D17068
2dd26100e3117b221eff2a19c83e50db3bd11bc3: Bug 1521319 - Disable selfXSS prevention for browser_jsterm_middle_click_paste.js r=nchevobbe
Sebastian Hengst <archaeopteryx@coole-files.de> - Mon, 21 Jan 2019 09:37:18 +0000 - rev 454667
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Bug 1521319 - Disable selfXSS prevention for browser_jsterm_middle_click_paste.js r=nchevobbe Differential Revision: https://phabricator.services.mozilla.com/D17101
847eaa28d60b831b20b8271efb447b3887d412af: Backed out changeset 1df92f5b3d7d (bug 1521319) for eslint failure in modified file.
Sebastian Hengst <archaeopteryx@coole-files.de> - Mon, 21 Jan 2019 14:30:35 +0200 - rev 454666
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Backed out changeset 1df92f5b3d7d (bug 1521319) for eslint failure in modified file.
2885dbea4efe7f400bef8f594c0798e8aab6bd01: Backed out changeset 9fedba33cfa3 (bug 1514396) for causing regression Bug 1521239, requested by jkt. CLOSED TREE
Margareta Eliza Balazs <ebalazs@mozilla.com> - Mon, 21 Jan 2019 14:21:30 +0200 - rev 454665
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Backed out changeset 9fedba33cfa3 (bug 1514396) for causing regression Bug 1521239, requested by jkt. CLOSED TREE
e9570ad88e6d4ac55d26342dca0ded559b8c2ff9: Bug 1519918 - Make nsFontFaceLoader::mFontFaceSet a weak reference. r=heycam
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 21 Jan 2019 11:10:26 +0000 - rev 454664
Push 35409 by rmaries@mozilla.com at Mon, 21 Jan 2019 17:48:45 +0000
Bug 1519918 - Make nsFontFaceLoader::mFontFaceSet a weak reference. r=heycam And start tracking the loader ASAP to be on the safe side. Both sides already take care of cleaning up pointers on destruction. Differential Revision: https://phabricator.services.mozilla.com/D16514
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 tip