1380030 - Remove color constants from public API and replace with an internal MarkColor enum.
1380030 - Simplify and refactor use of isMarked*() methods.
I only had one part of this before: Refactor isMarked() methods into separate methods for each color and any.
903519 - Disable nursery strings in a Zone if too many get tenured among with other fixes, won't fix startup crash assert though.
Also small fix for expanding macro correctly.
903519 part 2: Reparent JSString from TenuredCell to Cell.
903519 Part 3: Make js::Allocate cast strings to requested type.
903519 Part 4: Force non-atom strings to have their low flag bit set in order to distinguish them from JSObjects in the nursery.
903519 Part 5: Strings in the nursery: allocation.
Mixed reset later.
Various fixes. INIT_ROPE_FLAGS does not exist in this time of js engine, unsure why it was added. String.h fix closure. Don't comment out new code in Barrier.h. Mir.h change back to MAryInstruction<4>, since MQuaternaryInstruction does not work and calls MAryInstruction<4> anyway. Note this likely need parts of 1412912 hopefully solve failing static asserts.
903519 Part 6: Strings in the nursery: tracing and tenuring.
903519 Part 7: Strings in the nursery: barriers.
903519 Part 8: Discard nursery keys from EvalCache.
903519 Part 9: Strings in the nursery: allow any thread to access zone of permanent atoms.
903519 Part 10: Strings in the nursery: MIR node.
903519 Part 11: Change Relocated marker to not confuse string vs object bit.
903519 Part 12: Default nursery strings to off, add ability to enable.
903519 Part 13: Strings in the nursery: JIT, partial due CodeGenerator.cpp differences startin from: // Follow any base pointer if the input is itself a dependent string.
This is due file changed: 1434230: Spectre mitigations for strings
1344173 - Fix performance cliff involving OBJECT_FLAG_ITERATED and array natives.
1323782: Check iterated-flag before proceeding to fast path in Array.prototype.unshift.
1352506: Remove dead code in the backtracking allocator;
1352506: Automatically setPerformsCall for LIR call instructions.
1352506: Don't conflate need for overrecursed check and static alignment in MIRGenerator;
1286948 - Adds debug mode for WASM baseline compiler.
1286948 - Adds scope and environment for wasm calls (Adds artificial JS scope and environment for wasm frames. That allows
debugger to properly handle call stack).
1286948 - Adds prolog and epilog debug traps and handlers (Using toggled call/traps to invoke handler to process enter and leave
frame events).
1286948 - onEnterFrame/onLeaveFrame wasm events and callstack (Handles onEnterFrame and onLeaveFrame trap handling. The FrameIter is used in
the DebuggerFrame instead of ScriptFrameIter. The debug wasm frame is created
and can be found on callstack during those event).
Does not compile without 1331452 - Keep scope in a slot in WasmFunctionCallObjects along with 1335773 - Inspects wasm function locals to build
1326027: Remove RawF32 and RawF64;
I did not do 1326027: include SSE2 flags in autospider due they were not even in js/src/moz.build so does SSE2 matter to UXP?
1316814 - Split wasm iterator's readEnd and popEnd.
1316814 - wasm baseline, use the iterator's control stack.
1329096 - Wasm baseline, remove the label pool and use NonAssertingLabel instead.
1316814 is for preparation later for 1277562 (
Wasm: tiered compiler).
1316634: Use ModuleEnvironment in the FunctionDecoder.
1316634: Move function validation to WasmBinaryFormat.h/cpp && rename it WasmValidate.
1316634: Implement efficient WebAssembly.validate
1316634: Use CheckedInt before checking against maximum limits
1317319: Factor out Table section decoding.
1317319: Factor out Global section decoding.
1317319: Factor out Export section decoding.
1317319: Factor out Start section decoding.
1317319: Factor out Elem section decoding.
1317319: Move sections decoding around to follow their order in the binary.
1317319: Rename ModuleGeneratorData to ModuleEnvironment.
1317319: Embed most section decoding under DecodeModuleEnvironment.
1317319: Account imported globals when checking against the maximum number of globals.
1317319: Fix BinaryToAST function validation.
Fix error losing PrevEncodingVersion when refactoring for 1317319 part 2.
1317319: Tweak AstDecodeFunctionBody;
1438645 - Prevent XDR from reading past its buffer.,
1325345 - Add compartment asserts to JS_FireOnNewGlobalObject and other APIs.
1339411 - Rewrite and optimize object allocation paths, NatibeObject.h, NativeObject-inl.h and jsiter.cpp were not updated use JS::Result for stability, do that now.
1369337 - Forcibly create length and @@iterator properties for arguments when redefining.
1369680 - Use HasOwnProperty when resolving lazy properties to avoid triggering proxy traps in the proto-chain.
1319443 - Fix GlobalScopes XDR to encode global function bindings.
1335571 - Use template craziness to allow covering more cases with compartment asserts.
1322724: IonMonkey - Add the hit count information on the extra false branch blocks
1322932: IonMonkey - Only iterate the backedge of the inner-loop when it has already be visited
1329901 - Remove expensive isObservableOperand() loop guards.
1330667: IonMonkey - Create a new constant for every optimized arguments use.
1342016 - Fast-path for isObservableSlot().
1388045 - Branch Pruning: Check the compile info associated with the resume point.
1357680 part 1 - Track Ion-inlined scripts explicitly so we can inline functions with unknown properties.
1357680 part 2 - Remove unnecessary setNewGroupUnknown call in SetClassAndProto.
1357680 part 3 - Don't mark the new group as having unknown properties when changing an object's proto.
1365518 - Fix polymorphic inlining to work correctly for functions that had their group/proto changed.
1368570 - Fix js::FinishCompilation to handle OOM correctly.
1395919 - Don't copy the unknown-properties flag in AddPropertyTypesAfterProtoChange.
1544386 part 1 - Call ElementAccessHasExtraIndexedProperty instead of ArrayPrototypeHasIndexedProperty when inlining array natives.
1538006 - Propagate unknownProperties when changing prototype.
1538006 - Don't emit unbarriered writes to an object if its group might change.
Bug 1335146: IonMonkey - Don't do flow-aa on blocks without entry predecessor.
1329665 - Use fallible allocator in FlowAliasAnalysis::saveStoreDependency.
1329651: IonMonkey - Ensure ballast in EliminateDeadResumePointOperands.
Sec-fix: 1355050 - Root the RegExpShared in RegExpMacroAssembler
1375436: Assertion failure: throwing, at js/src/jscntxt.cpp:1466 with Debugger and async
Fix typo while at it in CodeGenerator.cpp
Master merge. .setStreams(streams) was missing Issue #1442 - Part 2: Add a run-time preference for toggling the streams API one part somehow get that in now also.
This patch avoids a rooting hazard involving the atoms compartment. There is code in jsatom.cpp that enters the atoms compartment while unrooted pointers are on the stack. Now that enterZoneGroup can potentially yield, this leads to a rooting hazard. This patch avoids the hazard by using a totally separate path that avoids enterZoneGroup when entering the atoms compartment.
Make this work.It seems scheduler is not even used for GC and CC,
Hopefully actually make scheduler used for CC and GC.. instead merely returning 0/nulltpr thus not scheduling GC/CC at all using undefined setting.
Further attempt to hook this up to GC and CC hopefully correctly.
TriggerGCOrGCSlice definition cannot be eGC due 3 values it could be.
Same goes to IsGCScheduled unless use || that it can be any of 3 values.
Use 3 values it can be.
Attempting add CCDelay again making it equal to NS_CC_DELAY to schedule.
Assert for CCDelay, also makeCCDelay similar order as original NS_CC_DELAY, before ForgetSkippable.
Restore this at least for now due being unsure due 1251463 done after this removing timer making scheduling of it not possible and thus removing definition removing it entirely even though definition was still left after 1251463.
Compiles and does not crash. Anything further unsure for testing.
Potentially performance gains in terms of significantly less pausing/better scheduling for async slow GC and CC tasks. Still unsure overall impact for memory usage tradeoff etc.
Fix for one more compilation error.
nsCancelableRunnable no longer exists. its CancelableRunnable now.
This still won't compile due nsCycleCollectorTraceJsHelpers.cpp undeclared identifier, identifier not found, AddToCCKind not being member of Mozilla.
1168990 attempt. Mozilla should be ashamed for old system with one liner copying or numbered lines when pasting attachement (one that never got into central or earlier pushed so its attachement only is outdated system)
eForgetSkippable should be same as setting changed before.
Fix idle runnable DOM issues 1367905 fixes.
Sadly this still does not compile. It just get further.
nsThreadUtils.cpp is still not fully fixed and nsCOMPtr.h has some conversion errors.
1325254 P1 Make TimerThread::mTimers store RefPtr<nsTimerImpl> objects.
1325254 P2 Make TimerThread list store an entry struct and just drop nsTimerImpl ref on cancel.
1325254 P3 Sort TimerThread list as a binary heap.
1325254 P4 Dynamically allocate Entry structs stored in TimerThread::mTimers.
1325254 P5 Make nsITimer::Cancel() O(c).
Prepare for handling several sources of idleness.
Make idle callbacks aware of nsITimers.
Add pref for how far into the timer queue.
1311425 - Avoid expiration timers when scheduling idle runnables.
review comment fix to ensure low priority timers aren't taken into account when calling NS_GetTimerDeadlineHintOnCurrentThread.
1367905 - Try to run GC/CC slices, including forgetSkippable, during idle time.
1367905 - Try to run GC/CC slices, including forgetSkippable, during idle time, tweaks to keep reftest memory usage lower.
Fix ASAN. It no longer crashes at start.
Win64 ASan relies on a VectoredExceptionHandler to create shadow memory regions on demand.
If WasmFaultHandler gets the exception first, it can itself fault while looking at shadow memory, leading to an infinite recursion.
Unfortunately, due to an ordering problem, we also have to disable the MemoryProtectionExceptionHandler when we do this.
1341889 - Part 1: Add more checks during reallocation to rule out other possibilities.
1341889 - Part 2: Add a hazard suppression for malloc_usable_size.
1329499 - Part 1: Detect the jemalloc freed memory poison pattern during append calls.
1329499 - Part 2: Keep outside actors from messing with our old buffer during realloc.
1332594 - Part 1: Simplify PageProtectingVector and make it initialize new buffers.
1332594 - Part 2: Check AssemblerBuffer for corruption during realloc.
1371215 part 1 - Use the memchr optimization on OS X too, as it's fast now.
1371215 part 2 - Remove FirstCharMatcher16bit as it's not used much and has some perf issues.
1371215 part 3 - Optimize and simplify Matcher a bit more.
1351947 - Remove bias in skiplist tower height.
This was generating a random int, counting number of consecutive low-order bits, and returning max(that, 1), which would result in a 3/4 chance of returning 1, 1/8 of returning 2, 1/16 of returning 3, etc. But we don't want the spike in probably at height 1. So instead, just add one to the number of bits to get a plain ½^i distribution of i=1..MAX_HEIGHT.
1344476 - Add BytecodeEmitter::emitPopN to emit shorter bytecode for given pop count.
Actually use this helper function instead just having added it before already.
1354554 - Remove iterator result object from the stack and place IteratorNext at the top of the loop to avoid having unnecessary values at the backedge.
1366696 - Part 1: Only create new splitter if sticky flag is present in input regexp.
1366696 - Part 2: Improve performance of RegExp.prototype.@@replace with non-global regexp.
1366696 - Part 3: Improve performance of RegExp.prototype.@@replace with global regexp.
1366696 - Part 4: Remove unnecessary rooting in SelfHosting.cpp for return values
1352006 - Inline NewArrayIterator in Ion.
1367088 - Part 1: Generalize NewArrayIterator so it can be reused for other iterator types.
1367088 - Part 2: Inline NewStringIterator in Ion.
1367088 - Part 3: Add inline paths when calling String.fromCodePoint with non-Latin1 code points.
1273858 - Support LexicalEnvironmentObjects during Ion bailout.
1273858 - Ion-compile JSOP_PUSHLEXICALENV/JSOP_POPLEXICALENV.
1273858 - Ion-compile JSOP_FRESHENLEXICALENV/JSOP_RECREATELEXICALENV.
1675153. In UXP settings is in DOM.
Try increase delay to 5 min.
It does work to stop pausing for 5 minutes but causes even bigger pausing after delay period ends.
At some point we can think about triggering incremental slices here the way we do for the GC heap allocations but for now it's simplest to just not trigger any more slices if we're already allocating.
This is different to what happens in maybeAllocTriggerZoneGC where we have a delay between triggering slices implemented with gcDelayBytes.
We don't check this threshold on every malloc allocation, but this could still result in us doing back-to-back slices, effectively a non-incremental GC.
1382275 - Refactor incremental sweeping to more clearly express the control flow.
1385833 - Simplify incremental sweeping and combine script and JIT code finalization phases.
1409751 part 1 - Make incremental sweep actions call a method on GCRuntime rather than a function. (skipped part 2/renaming).
1409751 part 3 - Move sweep group iteration inside the sweep action tree
Rename to not confuse with existing ZoneGroupIter.
1405274 - Always update runtime malloc counter too when malloc memory is associated with a zone.
1405274 - Make malloc counters count up instead of down.
1405274 - Add a dynamic malloc bytes threshold.
1376954 part 1. Ensure that we don't try to nursery-allocate non-wrappercached DOM objects.
1376954 part 2. Support nursery allocation of DOM proxy objects.
1376954 part 3. Allow nursery allocation of DOM nodelists.
1378717 - Speed up gray root buffering tracer by removing a virtual dispatch and some release asserts.
1378717 - Allow inlining of TraceEdge API's null check.
1378717 - Store JS holders in a vector for faster iteration.
1400278 - Move definition of ZoneAllocPolicy to jsalloc.h
1400278 - Fix compilation errors to do with unreachable return statements
1400278 - Replace use of RuntimeAllocPolicy with ZoneAllocPolicy
1400278 - Replace runtime allocation with system or zone allocation where possible.
1400278 - Remove RuntimeAllocPolicy now it's no longer used.
This change reverts the modification added in Bug 852331. It is outdated for
or multiple reasons:
- We no longer have the bytecode analysis straight after the full parse.
- We have Lazy parsing now.
- We replaced the analysis by using IonBuilder at the time of the first Baseline
compilation which uses a LifoAlloc, and which are discarded right
away. (almost as mentioned in Bug 852331 comment 1)
- LARGE_SCRIPT_LENGTH is above the HUGE_LENGTH heuristics of the
CanCompileOffThread function, which takes another path for executing the
code compiled off-main-thread.
1396936 - Simplify tenuring of objects with unique IDs and remove hash table lookup for every tenured object.
Hoping removing hash table lookup has performance gain.
1407314 - Improve tenuring performance by rearranging allocKindForTenure() methods and adding fast path for plain objects
Fix rooting hazards by updating annotations for renamed function.
Fix remaning rooting hazards by telling the analysis that the object moved hook can't GC.
JSONPrinter.cpp and .h addition to VM (1322560).
Also:
1322560 - Convert GC statistics over to JSONPrinter.
1322560 - Add APIs for retrieving major GC timing info.
1326096 part 1. Add a way to set an external string memory runtime callback.
1326096 part 2. If there is an external string memory runtime callback, call it from memory reporting code.
1326096 part 3. Pass a useful external string memory reporter to SpiderMonkey from Gecko code.
1326096 followup. Suppress the false-positive GC analysis failure due to us doing an indirect call that the static analysis doesn't understand.
1326096 another followup: fix build bustage on CLOSED TREE.
Also includes 1336957, use diagnostic assert for wrapper existence.
55 js xpconnect:
1332172 - Remove XPC_MAP_WANT_*. (touches dom, toolkit, storage also (Use XPC_SCRIPTABLE mentioned))
1325542 - Remove XPCNativeScriptableFlags (js xpconnect only)
1324330 (part 2) - Make XPC_MAP_FLAGS non-optional when using xpc_map_end.h.
1324330 (part 5) - Remove nsDOMClassInfo::mName.
1324330 (part 1) - Mark js::Class and related types as NONHEAP.
Use XPC_SCRIPTABLE
Use XPC_SCRIPTABLE in toolkit.
Use XPC_SCRIPTABLE in storage.
use XPC_SCRIPTABLE in DOM.
1329846 (part 1) - Remove XPCNativeScriptableInfo.
1335654 part 1. Propagate AutoEnterPolicy's mayThrow argument to the enter() methods of proxy handlers, so they know whether it's OK to throw some sort of custom exception or whether they should just silently deny.
1306538 - Move js::ReportASCIIErrorWithId to AddonWrapper.cpp.
ASAN changes to fix assertions and stack and heap buffer overflow.
ASAN changes to fix assertions and stack overflow part 1 of ASAN changes.
Including: 1494030 - Fix an assertion,
1291413 - Fix assertion when resuming an Animation with both a start time and hold time,
1322770: Remove bogus assertion from SMIL motion code,
1322849 - Add a range check when the duration is multiplied by the repeat count,
1352453 - Check image dimension when computing border space size,
1359397 - Don't allow Selection in nodes not in the document (resolves some assertions),
1361052 - DeleteSelectionAndPrepareToCreateNode should be more safety (libeditor/EditorBase.cpp in UXP),
1381541 - queryCommandState should consider that parent node of selection is null,
1394405 - Relax the assertion in CalculateDistanceToEllipticArc to deal with the floating point precision problem,
1397795 - Fix stack overflow crash due to box-shadow,
1401726 - Fix crash in nsLabelsNodeList::PopulateSelf,
1407895 - ensure mDecoder->Suspend() is called on a newly created decoder if mPausedForInactiveDocumentOrChannel is true,
1418477 - Part 1. Should check error status of unum_open, no crash test so part 1 only.
1429523 - Make IMEContentObserver ignore character data change notifications of invisible data nodes,
1494380 - Ignore emphasis marks on combined text with horizontal writing mode,
1499099 - Clamp result codes to NS_ERROR_MODULE_DOM_FILEHANDLE result codes in ActorsParent,
1499854 - Binary should not be affected by locale,
1505817 - Handle the case where a float is dynamically inserted inside a continuation,
1507961 - Check that an SVG DOM item wasn't removed from its list before scheduling its animation update,
1536892 - Check a frame does maintain overflow before adding to OverflowChangedTracker,
1596516 - NodeIsBlockStatic should return false for non-element,
1614360 - Signal error to child on attempts to read beyond EOF instead of asserting,
1626970 - Use saturating operators to avoid scrolling position overflow,
1626973 - Add assertions for result of MaybeUpdateSize,
1626973 - Make attempt to increase the file size via IDBFileHandle.truncate an error,
1358135 part 1 - Fix some browser tests to trigger a shrinking GC instead of a normal GC.
1358135 part 2 - Preserve a Zone's JIT code also when it has Baseline code on the stack.
1332321. Make all cycle collection participants explicitly say whether they need skippability themselves, or just want whatever skippability their descendants want.
This way we can't end up with a situation in which an ancestor doesn't care about skippability but a descendant does and doesn't get it, because the ancestor just claimed no skippability was needed.
1333391 - move GetCPUCount to the threading layer.
For background see bug 1333059. The JS engine does not use PR_GetProcessorCount, because it does not use NSPR, instead it has its own definition (GetCPUCount) tucked away in the garbage collector.
816784 part 1 - Use a 2d hashmap to store cross compartment wrappers.
816784 part 2 - Optimize NukeCrossCompartmentWrappers() to iterate only the targetting wrappers.
816784 part 3 - Optimize the other places that iterate CCWs.
816784 part 4 - Fix the rooting hazards that the analysis report.
We don't have access to an appropriate context to create the dead wrapper in when the callback is nuked, so instead, this patch creates a new dead wrapper in the caller compartment each time the property is accessed. This is the same behavior we'd get when trying to re-wrap a cross-compartment dead wrapper, so it's consistent with the way we handle these situations elsewhere.
1273251: Part 1 - Mark nuked sandboxes as nuked and non-scriptable.
1273251: Part 2 - Mark extension window compartments as nuked, and nuke all wrappers.
1273251: Part 3 - Allow CallbackObject to contain a null callable.
1273251: Part 4 - Drop CallbackObject's JS objects for nuked compartments during CC.
1273251: Part 5 - Add tests for event listeners in nuked sandboxes.
Part 6 dropped due webextensios. I'm taking this to test CC performance impact combined with later porting.
1382023 - Fold repeated assertions.
This is a pull of v8 commit c8e4c8b9263b5009716804f06f39225a9dd7fc68, reviewed at https://codereview.chromium.org/2768443003.
1382023 - Optimize better in presence of lookaround.
This is a pull of v8 commit 8df7c2a21b07174c3704894ca1d149b2711dfa58, reviewed at https://codereview.chromium.org/2777583003.
1368461 part 1 - Allow nursery allocation for RegExps allocated by CloneRegExpObject.
1368461 part 2 - Pass NewObjectKind to RegExpAlloc so most callers can use nursery allocation.
Clean up RegExp code a bit.
This removes some unnecessary roots and makes sure we fire the pre-barrier in initIgnoringLastIndex by using sharedRef instead of NativeObject::setPrivate(nullptr). Before bug 1378736 we didn't have that pre-barrier.
When bug 1472211 reordered the operands of GetElemSuper, we got our register assignments out of sync. Our GetElemSuper baseline ICs have been silently failing ever since.
This patch re-establishes a consistent assignment between BaselineCodeGen::emit_GetElemSuper, GetPropIRGenerator, and BaselineCacheIRCompiler::init:
obj = input operand 0 = baseline frame slot 0
id/key = input operand 1 = R1
receiver = input operand 2 = R0
We have a testcase for megamorphic GetElemSuper, but it didn't catch this bug because our ICs just failed silently (either because a property name is not a valid receiver, or because the superbase object is not a valid property name) and let the fallback handle it. The testcase I've attached to this bug doesn't fail prior to bug 1661211 part 1, where we added support for non-object receivers for GetElemSuper, but I checked out old revisions immediately before and after bug 1472211 and verified in rr that GetNativeDataPropertyByValuePure was passed the correct id before, and the receiver object after.
Drive-by: while investigating this bug, I realized that `attachMegamorphicNativeSlot` had an unused argument left over from TI removal.
Differential Revision: https://phabricator.services.mozilla.com/D114513
[Waterfox note: That last comment regarding `attachMegamorphicNativeSlot` isn't
actually true in Waterfox, so that part of the patch has been left out.]
This opcode has been blocked on other missing opcodes for a long
time and requires further testing before it is unblocked again.
MozReview-Commit-ID: 7oKkJwxjVu5
1169743 - Rework JSOP_CLASSHERITAGE to be jit-friendly.
1169743 - Implement class decls with extends in Baseline
1169743 - Implement class decls with extends in Baseline (cont.)
Add baseline support for
JSOP_INITHOMEOBJECT
JSOP_CLASSCONSTRUCTOR
SOP_DERIVEDCONSTRUCTOR
Include IfEmitter.h for ObjectEmitter.cpp for ifThenElse.
1355058 part 1 - Try the TypedObject optimizations last as typed objects are disabled by default.
1355058 part 2 - Avoid creating unnecessary type constraints in IonBuilder::typedObjectPrediction.
1353679 part 1 - Optimize the Object case in Object.prototype.toString because it's very common.
1353679 part 2 - Atomize strings returned from Object.prototype.toString to avoid allocating duplicate strings.
1345205 - Bump MaxCodeBytesPerProcess to 140mb on 32-bit and decrease BufferSize to 8mb.
Zen Garden Wasm demo is no longer available even so this should be ported.
1341087 - Implement symbol equality comparison in Ion.
1341087 - Implement bitwise symbol equality comparison in Ion.
1341087 - Implement symbol equality comparison in SharedIC.
1364346 part 1 - Optimize Array.prototype.unshift fast path and use it more.
1364346 part 2 - Rename unshiftElements to moveShiftedElements, tweak heuristics.
1364346 part 3 - Optimize Array.prototype.unshift by taking advantage of shifted elements.
1348772 - Optimize Array.prototype.shift to have O(1) perf instead of O(n).
JS code often uses arrays as queues, with a loop to shift() all items, and this resulted in quadratic behavior for us. That kind of code is much faster now.
1355065 - Remove unused read barrier API.
Following bug 1353758 can remove the public read barrier API, since it was only used for the external string cache.
1360961 - Assert that dying objects are not passed into the JSAPI
1360961 - Add a barrier to the plugin object wrapper table to handle incrementally finalized JSObjects
1360961 - Fix spurious rooting hazard
1352430 - Finalize foreground objects incrementally.
1352430 - Update the GC finalize callback to communicate the new state.
1352430 - Update XPConnect sweeping to handle incrementally finalized objects.
1352430 - Add barrier to wrapper cache to clear dying objects that have not yet been finalized.
1352430 - Add barrier to CPOWs table to remove dying objects.
1359001 - Make AutoAssertGCCallback a no-op in opt builds.
This class is used to assert that we're currently running inside a GC callback. It doesn't do anything in opt builds, but currently it calls into the JS engine anyway.
Preparation for 1352430.
1317761 - Standardise names of tracing methods.
The rule will be:
- a method that traces all contained GC things will be called 'trace' and take a JSTracer*
- a method that's specific to GC marking will have the word 'mark' in the name and take a GCMarker*
Hopefully this solves debug crash when done completely.
1326302 - Part 1: Redesign PageProtectingVector for minimum overhead.
1326302 - Part 2: Expose the ability to fully or partially disable protection and use it for WASM.
1326302 - Part 3: Guard against reentrancy in PageProtectingVector.
1326302 - Part 4: Guard against reentrancy when patching jumps as well.
1358596. Restore check for sanity of slot indices on DOM objects that got lost.
https://hg.mozilla.org/mozilla-central/rev/35ba8c31d7f3 removes js::shadow::Object::MAX_FIXED_SLOTS and the DOM assert that used it.
But that assert is critical: We have jit code that depends on it. Specifically, CodeGenerator::visitGetDOMMemberV and CodeGenerator::visitGetDOMMemberT both assume the slot is a fixed slot. The assert used to assert that the slot index was small enough that this was true. At the moment nothing prevents the DOM from ending up with a slot index that doesn't fit in fixed slots here...
1456524 - Maintain MoveResolver invariants.
The MoveResolver is a persistent data structure that requires state to not leak between borrowers. An early-exit optimization in the case of OOM allows for state to leak, leading to impossible move list inputs, tripping assertions.
1346217 part 1 - Remove IsExtensible check from NativeObject::addProperty.
1346217 part 2 - Remove IsExtensible check from NativeObject::putProperty.
1346217 part 3 - Optimize UpdateShapeTypeAndValue.
1346217 part 4 - Optimize CallAddPropertyHook*.
1346217 part 5 - Optimize AddOrChangeProperty to call addProperty instead of putProperty when possible.
1346217 part 6 - Inline NativeObject::getChildPropertyOnDictionary into its only caller.
1346217 part 7 - Ensure NativeObject::updateSlotsForSpan and NativeObject::setLastProperty get inlined.
1346217 part 8 - Optimize IdIsIndex to check the first character before calling StringIsArrayIndex.
1346217 part 9 - Enable some assertions that were commented out a long time ago.
1353359 part 1 - Add BindNameIRGenerator and use it in Baseline.
1353359 part 2 - Add BindName stub for global (BINDGNAME) lookups.
1353359 part 3 - Add BindName stub for non-global (BINDNAME) lookups.
1353359 part 4 - Use BindName IC in Ion and remove the old IonCache infrastructure.
1348905 part 1 - Remove unnecessary IsPreliminaryObject check so we attach megamorphic setprop stubs in more cases.
1348905 part 2 - Clean up and fix HasTypePropertyId.
1348905 part 3 - Make SetNativeDataProperty skip the type barrier if the IC knows we don't need one.
I read that some functions that weren't being inlined by Clang according to the profiler but really should be. I think taking this across is good idea.
1344469 - Part 1 - Add JSOP_HASOWN to Interpreter and BytecodeEmitter.
1344469 - Part 2 - Baseline fallback support for HasOwn.
1344469 - Part 3 - CacheIR for HasOwn with baseline support.
1344469 - Part 4 - Megamorphic stub.
1344469 - Part 5 - CacheIR HasOwn in Ion.
1344469 - Part 6 - Port not defined property optimzation to HasOwn.
1344463 - Optimize JSOP_INITELEM in Ion and emit it for 3-arguments _DefineDataProperty in self-hosted code.
1344463 followup - Fix comment copy/paste issue.
Fix obvious errors.
Devtools work and javascript engine seems stable. Seems be issue that 1323854 was not done fully for some reason and was incomplete.
1363054 part 1 - Remove redundant addMonitorStubForValue calls.
1363054 part 2 - Remove some shared stubs code that's no longer needed.
1363054 part 3 - Pass StackTypeSet* to addMonitorStubForValue.
1363054 part 4 - Attach generalized type monitor stubs for unknown/unknownObject type sets.
1318677 part 1 - Use a smaller mask to remove the error tag.
1318677 part 2 - mozilla::Result: Use a single enum to dispatch to the Result implementation.
1318677 part 3 - mozilla::Result: Add a new packing strategy to pack small enumerated values in a single word.
1392530 part 1 - Make MDefinition::Opcode an enum class.
1392530 part 2 - Devirtualize MDefinition::op() by storing the op in MDefinition.
1392530 part 3 - Make MDefinition::valueHash() overloads more consistent.
The patch makes the following proxy changes: *
The number of slots in ProxyValueArray is now dynamic and depends on the number of reserved slots we get from the Class.
* "Extra slots" was renamed to "Reserved slots" to make this clearer. * All proxy Classes now have 2 reserved slots, but it should be easy to change that for proxy Classes that need more than 2 slots. * Proxies now store a pointer to these slots and this means GetReservedSlot and SetReservedSlot can be used on proxies as well. We no longer need GetReservedOrProxyPrivateSlot and SetReservedOrProxyPrivateSlot.
And some changes to make DOM Proxies work with this:
* We now store the C++ object in the first reserved slot (DOM_OBJECT_SLOT) instead of in the proxy's private slot. This is pretty nice because it matches what we do for non-proxy DOM objects. * We now store the expando in the proxy's private slot so I removed GetDOMProxyExpandoSlot and changed the IC code to get the expando from the private slot instead.
1348821 - For MegamorphicNativeSlot differentiate between HandleMissing.
1348821 - Log CacheIR IC mode.
1348821 - Log address and shape of objects in CacheIR.
1348821 - probably fix unified build failure.
1348821 - Fix it.
1337024 part 1 - Convert Baseline stubs for setting dense/unboxed elements to CacheIR.
1337024 part 2 - Port Baseline stubs for adding dense/unboxed elements to CacheIR.
1337024 part 3 - Port Baseline TypedArray/TypedObject SetElem stub to CacheIR.
1357024 - Fix fixupAliasedInputs to not leave an unusable register on 32-bit platforms.
1360852 - Fix emitGuardIsInt32Index to allocate input register before calling addFailurePath.
1341067 - Port Ion SetProp/SetElem IC to CacheIR.
1341067 followup - Fix non-unified build bustage.
1341067 followup - Some renaming review nits I forgot to qref.
1338828 part 1 - Add CacheIR SetProp/SetElem stubs for proxies.
1338828 part 2 - Add CacheIR SetProp/SetElem stubs for shadowing DOM proxies.
1338828 part 3 - Add CacheIR SetProp/SetElem stubs for unshadowed setter calls on DOM proxies.
1334187 - Add ICCacheIR_Regular base class.
1334187 - Add CacheIR scaffolding for JSOP_IN.
1334187 - Port In_Dense from BaselineIC to CacheIR.
1334187 - Port In_Native/In_NativePrototype from BaselineIC to CacheIR.
1334187 - Port In_NativeDoesNotExist from BaselineIC to CacheIR.
1333690 part 1 - Port Baseline setter stubs to CacheIR.
1333690 part 2 - Remove now-dead code related to ReceiverGuard.
1333690 part 3 - Port Baseline AddSlot stub to CacheIR.
1427860 - XDR failures should leave script isUncompleted().
Failures during XDR may leave the script partially initialized in a way that confuses coverage collection. This ensures the shared script data is removed from a script if there are any XDR failures in it.
900784 part 0.11 - Instrument XDR Encode/Decode function with the TraceLogger.
1316078 part 2 - Make XDR traceLogger work on a different thread.
Some other parts also missed functionality.
1326067 part 1 - Change Baseline SetProp IC to leave the RHS value on the stack instead of returning it.
1326067 part 2 - Convert Baseline setslot IC stub to CacheIR.
1326067 part 3 - Port Baseline unboxed object SetProp stub to CacheIR.
1326067 part 4 - Port Baseline TypedObject SetProp stub to CacheIR.
1326067 part 6 - Fix EmitStubGuardFailure to not clobber registers on ARM/MIPS.
1326067 part 7 - Fix type update code to use the unboxed object instead of the UnboxedExpandoObject.
965992 part 1 - Rename some CacheIR instructions related to DOM proxies.
965992 part 2 - Add inline caches for getting DOM expando properties.
965992 part 3 - Add an is-object debug assert to GuardDOMExpandoMissingOrGuardShape.
1324566 - Set available registers after initializing the input locations.
1324566 - Port Baseline GetName_Env to CacheIR.
1324566 - Port Baseline GlobalNameValue to CacheIR.
1324566 - Port Baseline GlobalNameAccessor to CacheIR.
1324566 - Inspector support for GlobalNameGetter.
Part 1 - Split up BaselineCacheIR.{cpp,h}.
Part 2 - Add a mechanism to share codegen for cache ops between Baseline/Ion.
Part 3 - Optimize type guards if we know they always succeed.
Part 4 - Add OperandLocation::Constant since Ion ICs can have constant operands.
Part 5 - Factor out restoreInputState from emitFailurePath.
Part 6 - Add helpers for pushing/popping values.
Part 7 - Make restoreInputState work for Ion ICs.
Part 8 - Rename BaselineCacheIR.{cpp,h} to BaselineCacheIRCompiler.{cpp,h}.
Part 9 - Minor cleanup.
Part 10 - Add initInputLocation overloads for register types used by Ion.
Part 11 - GetPropIRGenerator changes to support idempotent Ion ICs.
Part 12 - Move codegen for some ops to shared code.
Part 13 - Share codegen of ops that use the output register.
Part 14 - Add MacroAssembler::storeRegsInMask.
Part 15 - Rename JitFrame_IonAccessorIC to JitFrame_IonICCall.
Part 16 - Add IonIC infrastructure.
Part 17 - Barrier reads from typed objects so we can attach a typed object IC stub.
Part 18 - Add IonCacheIRCompiler to compile Ion IC stubs from CacheIR.
Part 19 - Enable the new IonGetPropertyIC that's based on CacheIR.
Followup - Make idempotent ICs handle unshadowed DOM proxies to fix Dromaeo regressions.
Followup - Fix the --disable-ion build.
Followup - Add a missing return that got lost in the rewrite.
1322091 part 1 - Port Baseline string GETELEM stub to CacheIR.
1322091 part 2 - Port Baseline lazy arguments GETELEM stub to CacheIR.
1322091 part 3 - Port Baseline ArgumentsObject GETELEM stub to CacheIR.
1322091 part 4 - Port Baseline dense element GETELEM stub to CacheIR.
1322091 part 5 - Port Baseline unboxed array GETELEM stub to CacheIR.
1322091 part 6 - Port Baseline TypedArray/TypedObject GETELEM stub to CacheIR.
We have this mechanism where we allow 1 helper thread at a time to do Ion compilation. If a higher priority task comes in, we can pause other compilation threads, process the new task on a new thread, then unpause the paused thread(s).
This adds quite a lot of complexity (to code that's already complicated enough!). It also has some issues:
* We would like to Ion-compile scripts in parallel, especially when the CPU has 4+ cores.
* Pausing compilation threads means these threads are not available for other tasks (GC, Wasm, parsing).
* IonBuilderHasHigherPriority includes the size and warm up count of the outer script, but due to inlining it's not clear whether that's very useful.
1342439 part 1 - Replace macros to check for overrecursion with functions.
1342439 part 2 - Optimize CheckRecursionLimit to avoid uninlined RunningWithTrustedPrincipals call.
Fixes for IonControlFlow.cpp.
Do not use hard assert for now due crash.
Also fix nullish for IonControlFlow.cpp and .h and IonBuilder.cpp
Bug 1331354 - IonMonkey: Use CopyWithNewTargets for more cases during CFG creation.
1344753 - Update for-of stack depth in ControlFlowGenerator::processWhileOrForInLoop.
1323854 - IonMonkey: Part 1: Update start pc on empty backedges.
1323854 - IonMonkey: Part2: Keep the same semantics as bytecode on CFGCompare.
1323854 - Fix unused bodies variable, r=bustage on CLOSED TREE.
1322932: IonMonkey - Only iterate the backedge of the inner-loop when it has already be visited.
IonBuilder.cpp changes are not necessary without 1322724 (Android performance regression, nobody cares mobile on UXP).
1310155 - IonMonkey, part 0.1: Make sure to report the out of memory during IonBuilder.
1310155 - IonMonkey, part 0.2: Make sure debug_check_operand works again.
1310155 - IonMonkey, part 1.0: Split graph creation from IonBuilder.
This is big enough warrant 1.1 later.
1320118 part 1 - Remove emitted_ bool from GetPropIRGenerator.
1320118 part 2 - Clean up tryAttachNative to handle all cases in the switch statement.
1320118 part 3 - Introduce AutoStubFrame to emit stub frames.
1319437 part 1 - Add a generic proxy GETPROP stub to CacheIR.
1319437 part 2 - Port code for GETPROP on shadowing DOM proxies to CacheIR.
1319437 part 3 - Support 64-bit fields in CacheIR stubs.
1319437 part 4 - Port code for unshadowed GETPROP on DOM proxies to CacheIR.
1319437 part 5 - Use CustomAutoRooter for CacheIRWriter.
Some fixes. It still does not compile.
Template error.
Fixes + reverting part 2/simplification (Remove numFuncDefs() from the ModuleGenerator) which should not be strictly needed anyway for later parts of these changes. It was just simplification based to 1317319 (which is not in and I'm not yet sure I will take it in).
1320374: Rename THREAD_TYPE_ASMJS into THREAD_TYPE_WASM.
1320374: Remove numFuncDefs() from the ModuleGenerator.
1320374: wasm: move IonCompileTask out of FunctionGenerator.
1320374: Rename IonCompileTask to CompileTask and {Compile,Instantiate}Task to {1}PromiseTask.
1320374: Add missing null-checks.
1320374: Batch function compilations.
1316850 - check return from fallible allocator.
1316850 - no need to allow null label in pushControl.
1316850 - make sure we don't fall through into endFunction.
1316850 - reduce code duplication.
1316850 - clean up void handling.
1316850 - restore old value stack popping regime, with a twist.
1316815 followup build fix on a CLOSED TREE
This was not taken in additionally some need be r.reg instead just r like in signExtendI64_8 and signExtendI64_16.
popJoinRegUnlessVoid does not exist yet. It need be allocJoinReg. pushJoinRegUnlessVoid need be pushJoinReg.
1321884 - clean up the HeldMutexStack on helper threads
The HeldMutexStack is cleaned up in JS_ShutDown() on the main thread, but since it is thread local we need to clean it up on other threads where it is used.
1310125 part 1 - Don't use |holder| for own property getters/setters in IonBuilder.
1310125 part 2 - Port Baseline scripted getter IC stub to CacheIR.
1310125 part 3 - Fix IsCacheableGetPropCallScripted perf regression.
1359800 - Use IsAboutToBeFinalized rather than marking state directly during sweeping.
1359800 - Check allocatedDuringIncremental flag in IsMarked functions
Also another fallout from 1334194/accidentally undone progress revealed by debug.
Also 1333000 is not in currently so undone additions, might be worth of taking in later along with 1332601.
Also debug found fixes.
1364014 - Remove unnecessary is-array check in GCMarker::restoreValueArray.
7 years ago:
In restoreValueArray we fail if we have dense elements and the object is not an array. Looking at blame data this check was added 5 years ago (over 10 years ago) and it's probably from the "only arrays can have dense elements" days.
I instrumented the browser and we're hitting this case a bunch of times, sometimes for objects with more than 500 elements.
1259730 - Make UnmarkGray use an explicit mark stack instead of recursion
1323083 - Change representation of GC mark state to enable incremental gray marking.
1335751 - Add js::CheckGrayMarkingState friend API to check there are black to gray edges.
Mostly taking this in to see impact on GC and make it easier track 55 js engine GC state.
I don't care Android/old Fennec UXP does not even support Adroid, so checks are not taken in.
This is necessary to allow helper threads to attempt large allocations and recover from fragmentation situations with the LargeAllocationFailureCallback.
First add 1352323 - Add JS_NewMaybeExternalString function that creates either an external string or returns a static string then add 1353758.
1353758- Move the external string cache to the JS engine and improve it.
1348134 - Stop eagerly compressing ScriptSources.
1348134 - Handle compression tasks with major GCs instead of eagerly.
1348134 - Pin chars returned from ScriptSource as an analog to Rooted.
1374797 - Fix logic around triggering atoms GCs.
1384550 - Skip atoms collection if it's no longer possible.
Only affect after multi-threading changes. Forget to take these fixes before.
TypedObject.cpp was missing brace
1335095 accidentally changed MarkInterpreterActivations to TraceInterpreterActivations and MarkJitActivations to TraceJitActivations.
JitFrames.h file was missed while doing 1340822 .
1340822 - Move nursery and caches from ZoneGroup back to the runtime.
Also add back uncompressedSourceCache, it was accidentally removed in 1337070 instead just reordering it.
1337084 - Tolerate multiple threads running JS in JIT simulators.
Check later if 1285074 - Make ICacheMap manipulation signal-safe is necessary or not.
1357367 - Only finish IonBuilders for the zone group a context is in.
Also includes 1351102 - Fix GetFinishedBuilder to check the runtime instead of the compartment
1336866 - Lock GC while getting heap growth factor in testing function.
1336893 - Tolerate redundant writes in WriteOnceData checks.
1337324 - Fix GCManagedDeletePolicy so that it again tolerates being called off thread.
Compiles and links.
Generational GC is not possible keep preference same way when using multi-threaded js engine anymore.
./mach run succesful. Build started and worked. I need do cleaner branch later.
Mixed fixes including removing template from jsnum.h, missed line and lack of comma in jsscript.cpp, fixing jsgc.cpp file somewhat, its still not fixed but bit progress including duplicate removal
Further fixes. JSExternalStringSizeofCallback does not exist in current js engine and GeckoProfiler is renaming of SPSProfiler.
GCRuntime.h(102): error C2614: 'js::gc::BackgroundDecommitTask': illegal member initialization: 'GCParallelTask' is not a base or member
AtomicsObject.cpp(772): error C2668: 'js::ToNumber': ambiguous call to overloaded function
These issues remain.
Also includes: 1341033: Make sure zones mark any children of marked atoms.
1350760 part 1: Templatize and optimize AtomMarkingRuntime::markAtom.
1350760 part 2: Ensure SparseBitmap::setBit gets inlined.
1350760 part 3: Add AtomMarkingRuntime::inlinedMarkAtom to eliminate markAtom call overhead when atomizing.
1350760 part 4: Call JSString::validateLength only when we have to allocate a new atom.
1350760 part 5: Make sure various hashtable lookups get inlined when atomizing strings.
1350760 part 6: Add a Zone cache for recently atomized strings.
1213977: Don't reset an ongoing incremental GC if AutoKeepAtoms is set.
This should be safe after 1324002 atom marking + 1340597 - Avoid triggering read barrier in DumpHeap and when collecting stats as necessary for security.
1324002: Mark atoms separately in each zone:
Fixes: removing () reference to multi-threading in AtomMarking.cpp and fixing Scope.h to use trailingNames.start();
Also includes:
1328967: Allow GCZonesIter to be used by helper threads during GC.
1335642: Mark RegExp source atoms crossing zone boundaries in a better place.
1335643: Fix bogus assert by marking atoms when serializing cross-zone saved frames.
1337578: Mark atoms when cloning functions.
1341006: Use a sparse representation for atom mark bitmaps in zones
1370541: Always assert that the atom is marked when setting a function's name.
1438880: Add release checks before instantiating a lambda or regexp.
Bug 1517135: Improve performance of BytecodeEmitter::finishTakingSrcNotes.
Bug 1517135: Remove dead declaration from BytecodeEmitter.h
Go to https://carnap.io/about
This website loading takes longer without these changes.
The propid is a jsid, and a jsid can never be anything the CC cares about, so there's no reason to trace it. In at least one profile of Google Inbox, tracing shape propids is taking the majority of time in the CC and causing very long pauses.
This might be win in GC ubench benchmark. Going still test with UXP platform but mozregression suggest win.
Bug 1520423 - Use AutoTArray in filter code.
Unlike 1520294 this can be done without depending on 1417699.
See:
https://compat-table.github.io/compat-table/esnext/ expand table with Feature name down arrow, notice how slow mouse-over hover is, this patch improves performance to extent, this website hovering with mouse is still slow but less than before.
Bug 1334554: Handle the return value of nsFilterInstance::PaintFilteredFrame, needed for 1336480.
Bug 1336480 Part 1: Apply suface limitation in nsFilterInstance::ComputeNeededBoxes.
There is no need to limit output space bounds in
nsFilterInstance::OutputFilterSpaceBounds(), it's just far too early.
Bug 1336480 Part 2: Test case.
Bug 1526609: When interrupting the reflow of abspos kids, still account for the old overflow areas.
Otherwise, if we're scrolled, the scroll frame will think that our scroll range was reduced, which will in turn clamp the scroll position, which is not good.
Bug 1110928, part 1: Hoist the LOAD_END PokeGC out of nsJSContext::LoadEnd.
nsDocumentViewer knows which document is involved which will help us later.
Also, fix a typo in the comment.
Bug 1110928, part 2: Call PokeGC in nsDocumentViewer::PageHide before the call to OnPageHide.
This ensures that the document isn't destroyed when we call PokeGC, which will be useful later.
Bug 1110928, part 4: Try to pass a relevant zone to PokeGC.
Bug 1110928 part 5: trigger full GC only when closing top level outer window.
Bug 1110928 part 6: trigger ZoneGC after evicting from bfcache
Bug 1110928 part 7: ensure zone GC collects the zone from which canvas context is originated
Bug 1110928 part 8: first request GC should be a full GC
Bug 1372007 - Replace calls to Contains+Put with LookupForAdd and Contains+Get+Put with LookupRemoveIf to avoid unnecessary hashtable lookups.
Bug 1372048 - Use LookupForAdd instead of Contains+Get/Put to avoid an unnecessary hashtable lookup.
Bug 1372327 - Use LookupForAdd instead of Get+Put to avoid unnecessary hashtable lookups.
Bug 1376483 - Use Lookup instead of Get+Remove, and LookupForAdd instead of Get+Put, to avoid unnecessary hashtable lookups.
Bug 1376487 - Use LookupForAdd instead of Get+Put to avoid unnecessary hashtable lookups.
Bug 1367209:
nsCounterManager::DestroyNodesFor does an unconditional hashtable iteration on every frame destruction
part 2,3 and 4.
Bug 1370593 - avoid redundant lookups in nsRefPtrHashtable::Remove;
We already have a handle to the entry in the hashtable, we can remove that directly, rather than implicitly looking up the entry to remove in Remove().
Bug 1371960 - Use EnsureInserted instead of Contains+PutEntry to avoid unnecessary hashtable lookups.
Bug 1372031 - Use EnsureInserted instead of Contains+PutEntry to avoid unnecessary hashtable lookups.
Bug 1374125 - Use EnsureInserted instead of Contains+PutEntry to avoid unnecessary hashtable lookups.
Bug 1376126 - Use Lookup() entry instead of Get+Remove in CycleCollectedJSRuntime::RemoveJSHolder to avoid unnecessary hashtable lookups.
Bug 1376127 - Use LookupForAdd instead of Get+Put in CycleCollectedJSRuntime::DeferredFinalize to avoid unnecessary hashtable lookups.
Bug 1376463 - Use Lookup instead of Get+Remove to avoid unnecessary hashtable lookups.
make RemoveAndForget() use RemoveEntry(), not Remove(), to remove the entry to avoid a second hashtable lookup, nsClassHashtable.h back when LookupRemoveIf() was introduced had this change, take it in.
Bug 1539366 - Use SetCoord to restore mPIStartBorderData's coord so that it also set mValid. r=mats a=jcristau Without this the restore doesn't have any effect as the next frame sees that coord has mIsValid=false
Bug 1539366 - Use a temporary object to compute the mPIStartBorderData coords so that we don't clobber the regular state. r=mats a=jcristau
Bug 1539366 - Avoid calling AreOnSameLine once we know we've already changed lines since it can be expensive to compute. r=mats a=jcristau
Go to https://phabricator.services.mozilla.com/D24930
Scroll all the way to the bottom of Phabricator example website, see how slow it is before these patches, it is fast after these patches.
don't flush layout when calling element.focus() on already focused element. Ensure layout is flushed after changing input.type
Also includes follow-up:
bug 1366517, because of XBL usage, limit not-flushing-always-during-focus() to non-chrome, r=ehsan
Improves Speedometer performance.
This updates the unifed sources for a few netwerk build files. In some cases files were excluded because we thought they used plarena.h, but that turned to be false. A few files needed to be updated to add missing imports/exports due to shifting of compilation units.
This along with other unified building previously reduces compilation time about 1 minute.
Neither vm/Initializiation.cpp nor the threading files need to be built in non-unified mode. They don't have any conflicting definitions or need any file-specific compiler flags.
These files were being excluding because we thought they used plarena.h, but it turns out they did not. A few tweaks needed to be made to clarify whether we wanted to use mozilla::UniquePtr or js::UniquePtr.
2023-11-10 12:31:03 +02:00
2737 changed files with 211356 additions and 338578 deletions
@@ -169,6 +168,5 @@ marker.gcreason.description.DOM_WORKER=The worker was idle for a relatively long
marker.gcreason.description.INTER_SLICE_GC=There has been a relatively long time since the last incremental GC slice.
marker.gcreason.description.FULL_GC_TIMER=JavaScript returned to the event loop, and it has been a relatively long time since we performed a garbage collection.
marker.gcreason.description.SHUTDOWN_CC=The browser destroyed a JavaScript runtime or context, and this was the final garbage collection before shutting down.
marker.gcreason.description.FINISH_LARGE_EVALUATE=The browser finished evaluating a large script, and performed a GC because the script will never be run again.
marker.gcreason.description.DOM_WINDOW_UTILS=The user was inactive for a long time. Took the opportunity to perform GC when it was unlikely to be noticed.
marker.gcreason.description.USER_INACTIVE=The user was inactive for a long time. The browser took the opportunity to perform GC when it was unlikely to be noticed.
"Not enough fixed slots to fit '${interface}.${member}. Ion's visitGetDOMMemberV/visitGetDOMMemberT assume StoreInSlot things are all in fixed slots.");
MSG_DEF(MSG_PMO_INVALID_ATTR_FOR_NON_GLOBAL, 1, JSEXN_TYPEERR, "Cannot get PerformanceTiming attribute values for non-Window global object. Given: {0}.")
MSG_DEF(MSG_NOT_SUBMIT_BUTTON, 0, JSEXN_TYPEERR, "The submitter is not a submit button.")
Loaded 100 of 2737 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.