searching for reviewer(luke)
87a88fb8b1a60c125feb18d8cf089f857cb39f71: Bug 1466118 part 9 - Some more cleanup. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Wed, 22 Aug 2018 11:54:31 +0200 - rev 831048
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 9 - Some more cleanup. r=luke
64a85b3753acab5c776f732553139878fdcda1cb: Bug 1466118 part 8 - Change compartment check to realm check for JSScript and AbstractFramePtr. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 13:14:23 +0200 - rev 831047
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 8 - Change compartment check to realm check for JSScript and AbstractFramePtr. r=luke
ff5cb8442b5d452de5677dbacf9bec9df0bf5a83: Bug 1466118 part 6 - Rename CompartmentChecker to ContextChecks and support realm checks. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:48:03 +0200 - rev 831045
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 6 - Rename CompartmentChecker to ContextChecks and support realm checks. r=luke
af49f7a464d573a7008a301b315bd4303996e320: Bug 1466118 part 5 - Replace assertSameCompartmentImpl with JSContext::checkImpl. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:34:18 +0200 - rev 831044
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 5 - Replace assertSameCompartmentImpl with JSContext::checkImpl. r=luke
239b363ac50deb1431607b87ede33c918a45a969: Bug 1466118 part 4 - Replace assertSameCompartment with JSContext::check. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:18:21 +0200 - rev 831043
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 4 - Replace assertSameCompartment with JSContext::check. r=luke
224b09c2e661110abc9d29c7cca417cb5de5d3b4: Bug 1466118 part 3 - Replace assertSameCompartmentDebugOnly with JSContext::debugOnlyCheck. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:11:52 +0200 - rev 831042
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 3 - Replace assertSameCompartmentDebugOnly with JSContext::debugOnlyCheck. r=luke
5cb4cd7c449ecef9226496dc736d7c7325d37473: Bug 1466118 part 2 - Replace releaseAssertSameCompartment with JSContext::releaseCheck. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:07:57 +0200 - rev 831041
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 2 - Replace releaseAssertSameCompartment with JSContext::releaseCheck. r=luke
3bf5eb6fe16d1fa91924edc63da909f1b96d1307: Bug 1466118 part 1 - Use variadic templates for assertSameCompartment functions. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 11:57:49 +0200 - rev 831040
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 1 - Use variadic templates for assertSameCompartment functions. r=luke
e2b35cf75610a77c6470b370118cbd0517069718: Bug 1480725 - stress test wasm atomics. r=luke
Lars T Hansen <lhansen@mozilla.com> - Thu, 09 Aug 2018 15:47:30 +0200 - rev 831035
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1480725 - stress test wasm atomics. r=luke Atomic operations are stress-tested by having multiple workers work on the same location in ways that would reveal non-atomicity in an incorrect result. We run these tests only on native implementations, not on simulators. Our simulators don't implement atomicity well. This patch has the bare minimum, testing multiple agents that perform the same operation. It's possible to do more, notably, to combine different operations.
aa3d1b33b0e94e6dae117d2e32e5cd007debd36a: Bug 1467632 - Specialize ReadScalar<ExprType>. r=luke
Lars T Hansen <lhansen@mozilla.com> - Tue, 21 Aug 2018 09:17:05 +0200 - rev 831034
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1467632 - Specialize ReadScalar<ExprType>. r=luke Normally ReadScalar uses memcpy from the source stream to the destination object. This is only well-defined if the destination argument is a POD type, which ExprType is not. So specialize ReadScalar for ExprType and make the memcpy target the data payload in that type instead.
a0883c99c897122286c6e1711cada83d9889e093: Bug 1467632 - Make AsmJSGlobal's pod field be POD. r=luke, r=waldo
Lars T Hansen <lhansen@mozilla.com> - Mon, 20 Aug 2018 17:14:19 +0200 - rev 831033
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1467632 - Make AsmJSGlobal's pod field be POD. r=luke, r=waldo The pod member needs to be POD but has members that have evolved no longer to be POD - a ValType and a LitVal. We work around the problem locally by using ValType's representation type PackedTypeCode to represent types, and by specializing LitVal as LitValPOD for use in this structure.
c3bb26f985552814f9e35639a15acd10a15878bb: Bug 1483182 - Do report OOM failures in HashTable::reserve(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 21 Aug 2018 19:07:20 +1000 - rev 830698
Push 118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1483182 - Do report OOM failures in HashTable::reserve(). r=luke This fixes a typo.
8116d3ee3a5a5564eb0aae5cd2cea501e728deb9: Bug 1483182 - Don't allocate in HashTable::lookupOrAdd(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 21 Aug 2018 13:49:17 +1000 - rev 830697
Push 118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1483182 - Don't allocate in HashTable::lookupOrAdd(). r=luke Currently lookupOrAdd() will allocate if the table has no storage. But it doesn't report an error if the allocation fails, which can cause problems. This patch changes things so that lookupOrAdd() doesn't allocate when the table has no storage. Instead, it returns an AddPtr that is not *valid* (its mTable is empty) but it is *live*, and can be used in add(), whereupon the allocation will occur. The patch also makes Ptr::isValid() and AddPtr::isValid() non-public, because the valid vs. live distinction is non-obvious and best kept hidden within the classes.
8695f16b39ed48f002dccabf249da238bdb3e8b4: Bug 1479430 - Make sure TypeNewScript::maybeAnalyze is called in the group's realm. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 16 Aug 2018 11:59:19 +0200 - rev 830515
Push 118839 by mixedpuppy@gmail.com at Tue, 21 Aug 2018 18:59:46 +0000
Bug 1479430 - Make sure TypeNewScript::maybeAnalyze is called in the group's realm. r=luke
5f3c40ffdfedafcf6476694d148a5c6c7601db73: Bug 1437065: Rename interpCodeRangeIndex to funcCodeRangeIndex; r=luke
Benjamin Bouvier <benj@benj.me> - Mon, 20 Aug 2018 15:38:36 +0200 - rev 830448
Push 118832 by bmo:ntim.bugs@gmail.com at Tue, 21 Aug 2018 13:33:17 +0000
Bug 1437065: Rename interpCodeRangeIndex to funcCodeRangeIndex; r=luke
3d252d6f57ecaf969db3f2a50a9374d6a415acd8: Bug 1437065: Have LookupCode reset the codeRange out-param if it didn't find a Code; r=luke
Benjamin Bouvier <benj@benj.me> - Tue, 07 Aug 2018 16:04:58 +0200 - rev 830446
Push 118832 by bmo:ntim.bugs@gmail.com at Tue, 21 Aug 2018 13:33:17 +0000
Bug 1437065: Have LookupCode reset the codeRange out-param if it didn't find a Code; r=luke
dc7413a25676e83242f0d1e539bf36015bb14550: Bug 1484605 - Tweak some lookupForAdd() uses. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 21 Aug 2018 11:53:47 +1000 - rev 830429
Push 118832 by bmo:ntim.bugs@gmail.com at Tue, 21 Aug 2018 13:33:17 +0000
Bug 1484605 - Tweak some lookupForAdd() uses. r=luke These are cases where the existing code is a little dubious or sub-optimal.
da46bfc2c089ad5e79bd9387850adc37240f26cb: Bug 1483062 - Inline and remove HashTable::{over,under}loaded(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 16 Aug 2018 09:10:17 +1000 - rev 829659
Push 118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Inline and remove HashTable::{over,under}loaded(). r=luke Because they each only have a single call site, and the "too many items removed?" test is already encapsulated within rehashIfOverloaded().
ca2edc3b4c1ab044694e836f3da6963c929bcf35: Bug 1483062 - Merge HashTable::wouldBeUnderloaded() into underloaded(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Wed, 15 Aug 2018 11:11:13 +1000 - rev 829658
Push 118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Merge HashTable::wouldBeUnderloaded() into underloaded(). r=luke
a3bf3a494b0b7c2817e3f6f3daa9cf4ec7624435: Bug 1483062 - Inline and remove HashTable::overRemoved(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Wed, 15 Aug 2018 11:10:56 +1000 - rev 829657
Push 118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Inline and remove HashTable::overRemoved(). r=luke
2d9e3360e858f6c502ae9728280efb0f12daa7e4: Bug 1483062 - Rename HashTable::rehashIfOverRemoved(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 14 Aug 2018 11:56:55 +1000 - rev 829656
Push 118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Rename HashTable::rehashIfOverRemoved(). r=luke infallibleRehashIfOverloaded() actually matches what it does. Also, the patch removes the `overloaded()` test within the function, because `rehashIfOverloaded()` has the same test.
43e351bda401e80292efbde947e56d1893b95903: Bug 1483062 - Rename some HashTable methods. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 14 Aug 2018 11:19:39 +1000 - rev 829655
Push 118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Rename some HashTable methods. r=luke Specifically: - checkOverloaded -> rehashIfOverloaded - checkUnderloaded -> shrinkIfUnderloaded - checkOverRemoved -> rehashIfOverRemoved Because I've always found that the `check` prefix doesn't clearly explain that the table might be changed, And: - shouldCompressTable -> overRemoved Because that matches `overloaded` and `underloaded`.
f1e1cf1d42ec20c547a46cee30163a0b41fa36f4: Bug 1483062 - Rename HashTable::findFreeEntry() as findNonLiveEntry(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 14 Aug 2018 09:36:00 +1000 - rev 829654
Push 118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Rename HashTable::findFreeEntry() as findNonLiveEntry(). r=luke Because that's a more accurate description of what it does -- it finds free *and* removed entries.
e483b91eafbced7dd6636139cea44240a511bb5e: Bug 1483062 - Remove HashTable::maybeCreateTable. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 09 Aug 2018 14:19:49 +1000 - rev 829653
Push 118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Remove HashTable::maybeCreateTable. r=luke It's dead.
9112406a54a2d3806112111620f25267203a992e: Bug 1481171 - Properly emit signal handling metadata for wasm on aarch64. r=luke
Lars T Hansen <lhansen@mozilla.com> - Fri, 10 Aug 2018 11:09:44 +0200 - rev 828746
Push 118704 by bmo:rcaliman@mozilla.com at Mon, 13 Aug 2018 16:58:07 +0000
Bug 1481171 - Properly emit signal handling metadata for wasm on aarch64. r=luke As the aarch64 instruction emitters do not return the BufferOffset of the access instruction, we have to resort to AutoForbidPools to keep the metadata emitted at the correct address of the access. Manual inspection of the assembler code and the addressing modes used reveals that this is viable, if it's done just so. I've added comments to highlight the fact that it is a little brittle, and the AutoForbidPools with an instruction window of 1 instruction will cause failures if assumptions about the machine code should be violated accidentally in the future.
ad30dc53e38ec41adc99f81fd8a5102ecf7775fd: Bug 1481998 - Make mozilla::Hash{Map,Set}'s entry storage allocation lazy. r=luke,sfink
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 10 Aug 2018 18:00:29 +1000 - rev 828692
Push 118697 by bmo:ntim.bugs@gmail.com at Mon, 13 Aug 2018 11:00:31 +0000
Bug 1481998 - Make mozilla::Hash{Map,Set}'s entry storage allocation lazy. r=luke,sfink Entry storage allocation now occurs on the first lookupForAdd()/put()/putNew(). This removes the need for init() and initialized(), and matches how PLDHashTable/nsTHashtable work. It also removes the need for init() functions in a lot of types that are built on top of mozilla::Hash{Map,Set}. Pros: - No need for init() calls and subsequent checks. - No memory allocated for empty tables, which are not that uncommon. Cons: - An extra branch in lookup() and lookupForAdd(), but not in put()/putNew(), because the existing checkOverloaded() can handle it. Specifics: - Construction now can take a length parameter. - init() is removed. Explicit length-setting, when necessary, now occurs in the constructors. - initialized() is removed. - capacity() now returns zero when the entry storage is absent. - lookupForAdd() is no longer `const`, because it can instantiate the storage, which requires modifications. - lookupForAdd() can now return an invalid AddPtr in two cases: - old: hashing failure (due to OOM in the hasher) - new: OOM while instantiating entry storage The existing failure handling paths for the old case work for the new case. - clear(), finish(), and clearAndShrink() are replaced by clear(), compact(), and reserve(). The old compactIfUnderloaded() is also removed. - Capacity computation code is now in its own functions, bestCapacity() and hashShift(). setTableSizeLog2() is removed. - uint32_t is used throughout for capacities, instead of size_t, for consistency with other similar values. - changeTableSize() now takes a capacity instead of a deltaLog2, and it can now handle !mTable. Measurements: - Total source code size is reduced by over 900 lines. Also, lots of existing lines got shorter (i.e. two checks were reduced to one). - Executable size barely changed, down by 2 KiB on Linux64. The extra branches are compensated for by the lack of init() calls. - Speed changed negligibly. The instruction count for Bench_Cpp_MozHash increased from 2.84 billion to 2.89 billion but any execution time change was well below noise.
223884f0ad76f8224f046311dd016b83fbb3aa6e: Bug 1481998 - Define lookup() in terms of readonlyThreadsafeLookup(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 10 Aug 2018 15:35:13 +1000 - rev 828691
Push 118697 by bmo:ntim.bugs@gmail.com at Mon, 13 Aug 2018 11:00:31 +0000
Bug 1481998 - Define lookup() in terms of readonlyThreadsafeLookup(). r=luke The two functions are almost identical. This change minimizes duplication.
6bb61989d9ae6611277918cbf320e878c55dd825: Bug 1481998 - Change sJSObjWrappers initialization. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 09 Aug 2018 14:15:42 +1000 - rev 828690
Push 118697 by bmo:ntim.bugs@gmail.com at Mon, 13 Aug 2018 11:00:31 +0000
Bug 1481998 - Change sJSObjWrappers initialization. r=luke GCHashMap will shortly lose its initialized() function, so we need another way to indicate whether this table has been created. This patch changes it to use a pointer instead.
9f73af1f3b2c6928a18cc01d64f55b75aa3c4bba: Bug 1482423 part 1 - Assert compartments don't contain both system/non-system realms. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Sat, 11 Aug 2018 13:12:49 +0200 - rev 828577
Push 118683 by bmo:gl@mozilla.com at Sat, 11 Aug 2018 20:18:50 +0000
Bug 1482423 part 1 - Assert compartments don't contain both system/non-system realms. r=luke
ac7bd965f86b3ae24921f35072eeea2204c82bba: Bug 1481171 - Remove failure path for lookupTrap(). r=luke
Lars T Hansen <lhansen@mozilla.com> - Fri, 03 Aug 2018 12:04:53 +0200 - rev 828243
Push 118651 by bmo:guptatrisha97@gmail.com at Fri, 10 Aug 2018 11:02:58 +0000
Bug 1481171 - Remove failure path for lookupTrap(). r=luke With asm.js atomics gone and wasm atomics opting in to standard trap-based OOB handling, we should never fail to find a trap site. So assert that we always find it, and remove code that is now dead.
413be91a02578a573edcb765117fc3e73ad6c427: Bug 1481171 - Wasm-specific atomics operations. r=luke
Lars T Hansen <lhansen@mozilla.com> - Mon, 06 Aug 2018 15:55:49 +0200 - rev 828242
Push 118651 by bmo:guptatrisha97@gmail.com at Fri, 10 Aug 2018 11:02:58 +0000
Bug 1481171 - Wasm-specific atomics operations. r=luke A large and mostly mechanical change: Prune the non-JS atomic APIs in MacroAssembler.h and add many wasm-specific APIs instead. The three non-JS APIs that remain in MacroAssembler.h could also be removed but are used in multiple places to implement the JS APIs, and it seemed fine to just leave them in. They are after all generally useful. Note, this patch changes MIPS code so that it compiles, but it does not insert the necessary emitting of metadata, partly because the mechanics of that for 64-bit ops on 32-bit systems depends on the implementation of those 64-bit ops, and partly because I am happy to let the MIPS maintainers do the work and check it. I have left behind FIXME comments where changes are needed. The one additional test case in jit-test is a result of closely reading existing code and finding a bug that should have caused a failure, but didn't, once the wasm/asm.js fallback for signal handling was removed.
b1bfefd4495f785edec66dcec131f498f234ba95: Bug 1481793 part 3 - Assert cross-compartment wrappers don't wrap other CCWs. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 09 Aug 2018 13:34:40 +0200 - rev 828003
Push 118619 by bmo:mtigley@mozilla.com at Thu, 09 Aug 2018 18:23:03 +0000
Bug 1481793 part 3 - Assert cross-compartment wrappers don't wrap other CCWs. r=luke
697419a81da4f0b4e3895ab86527df6c17897c11: Bug 1481793 part 2 - Do a CheckedUnwrap in JS_StructuredClone. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 09 Aug 2018 13:34:40 +0200 - rev 828002
Push 118619 by bmo:mtigley@mozilla.com at Thu, 09 Aug 2018 18:23:03 +0000
Bug 1481793 part 2 - Do a CheckedUnwrap in JS_StructuredClone. r=luke
6d258e061cb184a4e87d2977e96d36e93ad6e474: Bug 1481793 part 1 - Use assertSameCompartment instead of AutoRealm in JSStructuredCloneWriter::write. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 09 Aug 2018 13:34:40 +0200 - rev 828001
Push 118619 by bmo:mtigley@mozilla.com at Thu, 09 Aug 2018 18:23:03 +0000
Bug 1481793 part 1 - Use assertSameCompartment instead of AutoRealm in JSStructuredCloneWriter::write. r=luke
ed655b5136856c68f73d87e49a685c7a1b9c4fd1: Bug 1478713 - Add some tests for the Wasm JS API; r=luke+bbouvier
Ms2ger <Ms2ger@igalia.com> - Tue, 07 Aug 2018 10:18:34 +0200 - rev 827156
Push 118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1478713 - Add some tests for the Wasm JS API; r=luke+bbouvier
09cd991472c91745e9e14da56b7f7d227cc3c073: Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 12:01:28 +1000 - rev 827150
Push 118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke Hash{Map,Set}::putNew() can be used on a table that has had elements removed, despite some comments to the contrary. This patch fixes those comments. It also clarifies when putNewInfallible() can be used. This patch also removes the !isRemoved() assertion in findFreeEntry(), which is confusing -- !isLive() would be more precise, but also obvious from the surrounding code. MozReview-Commit-ID: q4qwKGBsHx
01dcd8f80341ec39c949e364d5f46fd9c97963da: Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:45:38 +1000 - rev 827149
Push 118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke Because it's quite strange, badly named, not that useful, and barely used. Also remove WeakMap::lookupWithDefault(), which is similar, but not used at all. MozReview-Commit-ID: IhIl4hQ73U1
49d5dcbe36ff823980946cf45b9964a04efc2c1e: Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:10:05 +1000 - rev 827148
Push 118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke Because (a) it's kinda weird, and (b) only used in a single test, where it can be easily replaced with a vanilla add(). MozReview-Commit-ID: L4RoxFb7yGG
7e1f880b5f882732370ad70d02e7378b14b302f8: Bug 1423577 - Remove asm.js atomics support. r=luke
Lars T Hansen <lhansen@mozilla.com> - Fri, 03 Aug 2018 10:09:10 +0200 - rev 826954
Push 118420 by bschouten@mozilla.com at Mon, 06 Aug 2018 14:19:46 +0000
Bug 1423577 - Remove asm.js atomics support. r=luke
3a061c9a611bbbe2ba914f9d2afbc6ca47eb7d3f: Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 12:01:28 +1000 - rev 826907
Push 118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke Hash{Map,Set}::putNew() can be used on a table that has had elements removed, despite some comments to the contrary. This patch fixes those comments. This patch also removes the !isRemoved() assertion in findFreeEntry(), which is confusing -- !isLive() would be more precise, but also obvious from the surrounding code. MozReview-Commit-ID: q4qwKGBsHx
d09008e7d9d525043cd5399374f942fbabd5e2c7: Bug 1481138 - Remove Hash{Map,Set}::putNewInfallible. r=luke draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 11:52:17 +1000 - rev 826906
Push 118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Remove Hash{Map,Set}::putNewInfallible. r=luke The difference between putNew() and putNewInfallible() is subtle -- the latter omits three checks. Omitting two of them (SimulatedOOM and checkOverloaded()) is reasonable, but omitting the EnsureHash() check is dubious. Furthermore, putNewInfallible() has very few uses; in my opinion, not enough to warrant its existence. So this patch removes it, simplifying the API and the implementation. MozReview-Commit-ID: 3KfpVERhqTh
9d96ceec60c7d9a25a3ca643fd52adbcff26cae8: Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:45:38 +1000 - rev 826905
Push 118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke Because it's quite strange, badly named, not that useful, and barely used. Also remove WeakMap::lookupWithDefault(), which is similar, but not used at all. MozReview-Commit-ID: IhIl4hQ73U1
cb701ed3ea0bfbd0c75283a80a7cd79d7352d5a9: Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:10:05 +1000 - rev 826904
Push 118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke Because (a) it's kinda weird, and (b) only used in a single test, where it can be easily replaced with a vanilla add(). MozReview-Commit-ID: L4RoxFb7yGG
a8b367f1fd79e12b2f51a3aafb1e2d2202d4a331: Bug 1480668 - Remove js::CStringHashPolicy. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 07:55:50 +1000 - rev 826903
Push 118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1480668 - Remove js::CStringHashPolicy. r=luke It's identical to mozilla::CStringHasher. Also fix a comment at the top of HashTable.h about CStringHasher.
91b59c5ea423615849aae7badd67bf63090f1ae9: Bug 1480650 - Remove mozilla::HashTable::Stats. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 11:59:26 +1000 - rev 826902
Push 118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1480650 - Remove mozilla::HashTable::Stats. r=luke I bet nobody has used them in years. The use of ad hoc profiling (printfs plus post-processing with a tool like https://github.com/nnethercote/counts) is generally a better approach. Bug 1179657 did likewise for PLDHashTable.
3abea9c60292bd8492e457c3c3c067caf35ee930: Bug 1480323 - Reorder methods in Hash{Set,Map}. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 10:25:29 +1000 - rev 826901
Push 118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1480323 - Reorder methods in Hash{Set,Map}. r=luke And add comments delimiting different operation groups. Together these changes make Hash{Set,Map} much easier to navigate.
88c19779b62620c97710a54a262d3f905284b6b1: Bug 1480588 - restrict rtdsc Time.h functions to x86ish processors on Windows; r=luke
Nathan Froyd <froydnj@mozilla.com> - Fri, 03 Aug 2018 18:07:35 -0400 - rev 826565
Push 118367 by bmo:jeremy.lempereur@gmail.com at Sat, 04 Aug 2018 13:04:55 +0000
Bug 1480588 - restrict rtdsc Time.h functions to x86ish processors on Windows; r=luke __rtdsc is not going to work so well on AArch64.
61310ac63cfd3f5fdd04420311c8273e20b2b27d: Bug 1480012 - Generalize JS shell mailbox to Wasm memories and modules. r=luke
Lars T Hansen <lhansen@mozilla.com> - Wed, 01 Aug 2018 13:21:06 +0200 - rev 826315
Push 118290 by bmo:dharvey@mozilla.com at Fri, 03 Aug 2018 15:01:59 +0000
Bug 1480012 - Generalize JS shell mailbox to Wasm memories and modules. r=luke In the old days we could only share a SharedArrayBuffer, but now we can also share WasmMemory and WasmModule objects. Rename the shell's get/setSharedArrayBuffer as get/setSharedObject and generalize them to handle the new types. Leave the old names in place as aliases of the new names. We rename /some/ uses of get/setSharedArrayBuffer in existing test cases, but leave uses in test262 alone; we need to upstream those more carefully.
6c0410ddd1f6950a7398321c10b520ac1d378ed2: Bug 1480361 - Introduce HashTable::LookupReason. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 10:03:37 +1000 - rev 826230
Push 118275 by bmo:dharvey@mozilla.com at Fri, 03 Aug 2018 11:44:33 +0000
Bug 1480361 - Introduce HashTable::LookupReason. r=luke Again inspired by PLDHashTable, this makes things a bit clearer than passing 0 or sCollisionBit. It also guarantees more strongly that we'll end up with appropriately specialized code for the Add vs. NonAdd cases. (That guarantee isn't currently needed because the compiler inlines things sufficiently anyway, but it can't hurt.)
d9baec9cf420acf68530b10bca19f67b72e3cb2b: Bug 1480361 - Tweak handling of removed entries in HashTable::lookup(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 10:03:31 +1000 - rev 826229
Push 118275 by bmo:dharvey@mozilla.com at Fri, 03 Aug 2018 11:44:33 +0000
Bug 1480361 - Tweak handling of removed entries in HashTable::lookup(). r=luke There are two improvements here. - When we're just doing a lookup (i.e. aCollisionBit==0), we don't need to do any special handling of removed entries. (Inlining means that the removed entry code is entirely removed for lookups.) - When we're doing an insertion (i.e. aCollisionBit==sCollisionBit), we now stop adding collision markings once we find a removed entry, because they're unnecessary after that point. This change brings the code in alignment with PLDHashTable::SearchTable().