Constellation
JSC security specialist
Summary
Works almost exclusively in JavaScriptCore, with recent activity concentrated on the memory64 transition in WebAssembly — ArrayBuffer and `Wasm::Memory` sizing, `memory.init` overflow checks, BBQ/OMG pointer and trap handling — alongside JIT backend cleanup (removing 32-bit-only concepts, Air opcode work, `enableInt52` removal) and Intl/Iterator spec conformance. The security-flagged fixes are a small slice of overall output; the more informative signal is a recurring thread of index-width and bounds-check correctness, including propagating `uint64_t` indices through TypedArray bound checks and fixing `table.copy` identity checks that relied on index. Systematic-variant candidate: the 32-bit-to-64-bit widening of indices and offsets across Wasm memory/table paths and TypedArray access — any site where a wide index is truncated or bound-checked before widening is a plausible OOB, and this refactor touched many of them at once.
Components
Security Fix History
- 2026-07-21 [JSC] DFG Object.defineProperty descriptor cell confusion (JIT code invalid cell dereference) 2026-W29
- 2026-06-11 [JSC] YARR RegularExpression heap overflow - duplicate named capture groups 2026-W23
- 2026-05-31 [JSC] Make RegExp tolerant against excessive stress 2026-W22
- 2026-05-29 [JSC] JSLock m_hasOwnerThread has concurrency issue 2026-W21
- 2026-05-29 [JSC] Wasm::InstanceAnchor should be unregistered at the prologue of JSWebAssemblyInstance destructor 2026-W21
- 2026-05-21 [JSC] WebAssemblyGCStructure::finalizeUnconditionally should be called 2026-W20
- 2026-05-19 [JSC] Use scratch buffer for ObjectDefinePropertyFromFields 2026-W20
- 2026-04-13 [YARR] ParenContext Use-After-Free via incomplete context clearing with control of the instruction pointer 2026-W15
- 2026-03-05 [JSC] GetByStatus::computeFor has race condition around swapped object's structure checks 2026-W09
- 2026-03-05 [JSC] LLInt arity fix needs to be done against sp 2026-W09
Hardening Commits
- No hardening commits recorded
Recent Commits
- 2026-08-07 [JSC] Wasm table.copy should not use index to check identity
- 2026-08-07 [JSC] Propagate uint64_t index until we do bound-check for TypedArray
- 2026-08-07 Unreviewed, fix weird formatting
- 2026-08-07 Unreviewed, fix stale test
- 2026-08-07 [JSC] Intl.Locale's collections should be sorted
- 2026-08-07 [JSC] Align Iterator#join to the latest spec
- 2026-08-07 [JSC] Align Iterator#chunk / Iterator#windows to the latest spec
- 2026-08-07 [JSC] Overhaul ArrayBuffer & Wasm::Memory sizing with memory64
- 2026-08-07 Unreviewed, update test262
- 2026-08-06 [JSC] Add "Padding" Air opcode
- 2026-08-06 Unreviewed, JetStream3 and Speedometer3 regressions
- 2026-08-06 [JSC] Remove many 32bit-only concept from JIT
- 2026-08-06 Unreviewed, build fix for JSCOnly
- 2026-08-05 [JSC] Fix the memory64 JS APIs
- 2026-08-05 [JSC] Include ARM64E in the LLInt prologue frame zeroing
- 2026-08-05 [JSC] Remove enableInt52
- 2026-08-05 [JSC] Reserve initial capacity for AtomStringTable and BuiltinNames' m_privateNameSet
- 2026-08-05 [JSC] Fix memory.init's overflow check 2026-W31
- 2026-08-05 [JSC] OMG needs to mark memory traps with memory index
- 2026-08-05 [JSC] BBQ materializePointer should take uint64_t offset
- 2026-08-05 [JSC] Wasm Memory64 operands are differently decoded in unreachable code
- 2026-08-05 [JSC] Due to IPInt, we need to ensure that wasm multi-memory does not support memory64 2026-W31
- 2026-08-05 [JSC] Wasm Table index must be extended when using 64bit Table
- 2026-08-05 [JSC] Simplify VM teardown via specialized stopAllocationForGood
- 2026-08-04 [JSC] Wasm table64 JS API interfaces
- 2026-08-04 [JSC] Active element segment offsets are truncated for a table64 2026-W31
- 2026-08-04 [JSC] Do not truncate table64 maximum size to uint32_t 2026-W31
- 2026-08-04 [JSC] BBQJIT::addTableCopy's assertion is incorrect
- 2026-08-04 [JSC] Compute builtin executable metadata in python script
- 2026-08-04 [JSC] Enable v8's memory64 tests
- 2026-08-04 [JSC] Split eager and lazy JIT thunks
- 2026-08-04 [JSC] Use first-character-filter even for UntypedUse edge
- 2026-08-04 [JSC] Make the first corrective subtract in JSBigInt Crandall reduction branch-free
- 2026-08-04 [JSC] Enable iterator join proposal
- 2026-08-03 [JSC] Share VM-independent JIT thunks
- 2026-08-03 Unreviewed, remove USE(JSVALUE64_32)
- 2026-08-03 Unreviewed, clean up now-fixed import-defer tests
- 2026-08-03 Unreviewed, speculative fix for watchOS
- 2026-08-03 [JSC] Introduce StrongBlock
- 2026-08-03 [JSC] Remove USE_BUILTIN_FRAME_ADDRESS, as it should be always enabled on JIT platforms
- 2026-08-02 [YARR] Clean up YarrJIT ifdefs
- 2026-08-02 [JSC] Deply add / sub / mul tightening to JSBigInt
- 2026-08-02 [JSC] Remove StringRecursionChecker
- 2026-08-01 [JSC] Implement Crandall reduction
- 2026-07-31 [WTF] Upgrade fast_float to 8.2.10
- 2026-07-31 [JSC] Deploy Comba multiplication more broadly
- 2026-07-30 [CMake] Remove WKDefaultPDFHUDView.mm
- 2026-07-30 [JSC] Extend StringSplitCache for RegExp
- 2026-07-29 [YARR] Extend ParenthesesSubpatternTerminal
- 2026-07-29 [JSC] Make addSortedRange faster by using binary search
- 2026-07-29 [JSC] Add fast operation for Array#shift
- 2026-07-28 [JSC] Fix JSON stringify regression due to toJSON check
- 2026-07-27 [JSC][YARR] Extend first-character filter more
- 2026-07-27 Unreviewed, suppress test failures on different stack height
- 2026-07-27 Unreviewed, reverting 317893@main (ffbb564bcb2c)
- 2026-07-27 [YARR] The dot-star-wrapped-expression optimization is wrong for sticky patterns
- 2026-07-27 [YARR] A ^ inside a parenthesis that can match empty does not anchor the pattern
- 2026-07-27 [JSC] Add fast flag for ToPrimitive(Object) calls in runtime
- 2026-07-25 [JSC] Use op_async_iterator_open and op_async_iterator_next for yield*
- 2026-07-24 [CMake] Fix target names for executables
- 2026-07-24 [JSC] stress/regexp-unicode-bmp-fast-path-code-points.js is timed out
- 2026-07-24 Split very slow wasm tests
- 2026-07-24 Unreviewed, revert 317857@main
- 2026-07-24 [YARR] Fix YarrInterpreter ignore-case with ASCII <-> unicode character case
- 2026-07-24 Unreviewed, reverting 317823@main (89be2da97f72)
- 2026-07-24 [JSC] DFG / FTL should have fast-fail filter for RegExp with BOL assertions
- 2026-07-23 [JSC] Drop shared Baseline JIT code eagerly when Heap::deleteAllUnlinkedCodeBlocks is called
- 2026-07-23 [JSC] Skew small function's OMG tierup call counts
- 2026-07-23 Unreviewed, test gardening
- 2026-07-22 [JSC] Use more FTL select for arithmetic ops
- 2026-07-22 [JSC] Add VectorZipX(a, all-zeros) strength reduction
- 2026-07-22 [JSC][Temporal] japanese calendar can use ISO year, day, month, monthcode
- 2026-07-21 [JSC] Add JIT support for BigInt64 / BigUInt64 allocation
- 2026-07-21 [JSC] Use cooperative driving in TLA modules
- 2026-07-21 [JSC] DFG Object.defineProperty descriptor cell confusion (JIT code invalid cell dereference) 2026-W29
- 2026-07-21 [JSC] Use moveConditionally32 in prepareForTailCallSlow
- 2026-07-21 [JSC] Use cached iterator result object for async generator cooperative driving
- 2026-07-20 [JSC] Fold String.prototype.at negative-index adjustment to a branchless csel
- 2026-07-20 [JSC] Make AsyncFromSyncIterator handled in async_iterator_open / async_iterator_next
- 2026-07-20 [JSC] Converting Double -> Bool should be branchless
- 2026-07-20 [JSC] Use ApproximateTime for deadline in Opportunistic Task Scheduler and Incremental Sweeper
- 2026-07-18 [JSC] Put slow path of emitWriteBarrier in m_slowPaths
- 2026-07-17 [YARR] surrogateTagMask should be 0xfc00/0xfc00 instead of 0xdc00/0xdc00
- 2026-07-17 [JSC] Introduce MicrotaskCallCache for async generator driver path
- 2026-07-17 [JSC][DFG][x86_64] String.prototype.substr INT_MIN length clamp miscompile creates invalid JSString length and Release
- 2026-07-17 [JSC] op_async_iterator_next DFG should also subscribe promise-watchpoint
- 2026-07-16 [YARR] Use loop for massive save and restore of subpattern captures
- 2026-07-16 [JSC] for-await fast consumer must re-check the Promise species watchpoint
- 2026-07-15 [JSC] async-generator fast consume should insert ExitOK
- 2026-07-15 [YARR] Rearrange YarrJIT registers to have regT3
- 2026-07-15 Unreviewed, increase llint_cloop_did_return_from_js_ number
- 2026-07-15 [JSC] Do prefetching in SlotVisitor::performIncrementOfDraining too
- 2026-07-15 [JSC] CLoop is broken with loadh / storeh
- 2026-07-15 [JSC] Threading MicrotaskCallCache* in more microtask functions
- 2026-07-14 [JSC] Use JSSlimPromiseReaction for JSAsyncGenerator queue
- 2026-07-14 [JSC] Move TypedArray.of from builtin JS to C++
- 2026-07-14 [JSC] Cooperative driving of async generators
- 2026-07-13 [JSC] Implement String.raw in C++
- 2026-07-11 Unreviewed, rebaseline test262 expectations
- 2026-07-09 Unreviewed, attach memoryHog! annotation as it is taking too much memory and cause OOM
- 2026-07-09 [JSC] Make sizeof(Air::Inst) 64
- 2026-07-08 [JSC] Make sizeof(Air::Arg) 16
- 2026-07-08 [JSC] Add LoadMegamorphicGetter IC
- 2026-07-07 Unreviewed, rebaseline test262
- 2026-07-07 [JSC] Add B3::eliminateWasmGCAllocations phase
- 2026-07-07 [JSC] Fold WasmGC object comparisons
- 2026-07-07 [JSC] Add LoadVarargs operation's fast path for TypedArrays
- 2026-07-06 [JSC] Make Air::simplifyCFG single path by chasing foldable blocks repeatedly
- 2026-07-06 [JSC] Compact Air::Arg size
- 2026-07-06 [JSC] Skip LowerEntrySwitch and SimplifyCFG if possible
- 2026-07-06 [JSC] Add AtomString Array loop in DFG / FTL
- 2026-07-05 [JSC] Add RegExpExecSticky DFG node
- 2026-07-05 [JSC] Propagate block's frequency in B3LowerMacros
- 2026-07-04 [JSC] Tweak number of GC threads for Apple platforms
- 2026-07-03 [JSC] Make CodeBlock::updateAllNonLazyValueProfilePredictionsAndCountLiveness tight
- 2026-07-03 [JSC] IntlLegacyConstructedSymbol should be per-realm
- 2026-07-03 [JSC] LICM should skip tuple consumers
- 2026-07-02 [JSC] Use modern unit/ skeleton in Intl.NumberFormat
- 2026-07-01 [JSC] Fix B3 CSE extras adjustment
- 2026-07-01 [JSC] Manually pipeline memory fetching for GC marking
- 2026-07-01 [JSC] Remove Air::lowerMacros
- 2026-07-01 [JSC] Inline StringSlice rope construction in FTL
- 2026-06-30 Remove old JetStream3 files
- 2026-06-30 [JSC] Make SparseArrayValueMap 33% compact by using HashSet
- 2026-06-30 [JSC] Add ArrayStorage + GetByVal specific operation
- 2026-06-30 [YARR] Use m_latin1Table in Char16 case & interpreter
- 2026-06-30 [JSC] Remove op_try_get_by_id and @tryGetById
- 2026-06-29 Unreviewed, fix array-from-cloned-arguments-large-length.js after 316014@main
- 2026-06-29 [JSC] Remove GlobalOperations.js
- 2026-06-29 [JSC] Optimize AirFixObviousSpills
- 2026-06-28 [YARR] Use StringList optimization when captures are not used
- 2026-06-28 [JSC] Map/Set iterator next function should be in C++
- 2026-06-28 [YARR] Add latin1Table for efficient Char8 filtering
- 2026-06-28 [WTF] Align load factor policy of OrderedHashTable to HashTable
- 2026-06-27 [JSC] Optimize AirEliminateDeadCode
- 2026-06-26 [JSC] Implement Semi-NCA for WTF::Dominators
- 2026-06-25 [JSC] Weakening ByteCodeParser::refineStatically based on some additional information
- 2026-06-24 Unreviewed, fix CMake build with ARM64E
- 2026-06-24 Unreviewed, fix memoryHog annotation in the failing test
- 2026-06-24 [JSC] Unify SSACalculator
- 2026-06-24 [JSC] Air::RegLiveness should follow to the method of WTF::Liveness
- 2026-06-23 Unreviewed, reverting 315615@main (67b7e3db09e4)
- 2026-06-23 [JSC] Add index() / setIndex() to DFG::BasicBlock
- 2026-06-22 [JSC][WTF] WTF::Liveness should use BitVector / SparseBitVector for the external workset
- 2026-06-22 [JSC] Reduce # of Air::Code iteration in Greedy regalloc
- 2026-06-22 [JSC] Compute dominance frontier of each block once in the entire graph instead of computing for each SSA variable
- 2026-06-22 [JSC] Optimize JSON related code for common cases
- 2026-06-22 [JSC] Skip Air::reportUsedRegisters when needsUsedRegisters is false
- 2026-06-22 [JSC] Disable InferSwitch in B3 for Wasm
- 2026-06-19 [JSC] Make poisonedDeadOSRExitValue more crashy and enable this option when build is Debug
- 2026-06-19 [JSC] Use B3::UseCountsWithoutUsingInstructions instead of B3::UseCounts when instruction count is unnecessary
- 2026-06-18 [JSC] Use Reverse-Post-Order in WTF::Liveness
- 2026-06-18 [JSC] Use Reverse-Post-Order in B3 ReduceStrength
- 2026-06-18 [JSC] Report Baseline Int32 Overflow in DFG
- 2026-06-18 [JSC] Profile op_unsigned overflow in LLInt / Baseline
- 2026-06-17 [JSC] B3::Value::effects should use constant table
- 2026-06-17 [JSC] "entries" ArrayIterator should emit ExitOK before NewArray
- 2026-06-17 [JSC][B3] Implement CSE without using B3::Variable
- 2026-06-17 [JSC] Use SparseBitVector and uint64 Vector in DFGLivenessAnalysis
- 2026-06-16 [JSC] Set MayStoreHole appropriately
- 2026-06-16 [JSC] Map / Set iterator next operation should not touch JSMapIterator / JSSetIterator directly 2026-W24
- 2026-06-16 [JSC] Avoid fix-point iteration in B3 ReduceStrength
- 2026-06-15 [JSC] Object.freeze / Object.seal need to reify special properties
- 2026-06-15 [JSC] Move RegExp.prototype[Symbol.split] to C++
- 2026-06-15 [JSC] Make Liveness analysis faster
- 2026-06-15 [JSC] Optimize some of Temporal date operations
- 2026-06-13 [JSC] Use UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE in getNamedTimeZoneEpochNanoseconds
- 2026-06-12 [JSC] Reland global liveness MovHint removal
- 2026-06-12 [JSC] Remove ucal_clone by reorganize ucal code
- 2026-06-12 [JSC] Use runtime check for fast path for Spread
- 2026-06-11 [JSC] YARR RegularExpression heap overflow - duplicate named capture groups 2026-W23
- 2026-06-10 [JSC] Move RegExp.prototype[Symbol.match] to C++ 2026-W23
- 2026-06-10 [JSC] ParenthesesSubpatternFixedCount should support captures
- 2026-06-09 [JSC] Add DFG MultiGetByVal and MultiPutByVal 2026-W23
- 2026-06-08 [YARR] Optimize save and restore ParenContext
- 2026-06-08 [JSC] Clean up JSPromiseCombinatorsGlobalContext
- 2026-06-08 [JSC] Promise combinator's array should get vector-hint based on iterable size
- 2026-06-08 [JSC] Carry non-primary TimeZone in TemporalZonedDateTime
- 2026-06-08 [YARR] Add auto-possession optimization 2026-W23
- 2026-06-08 [JSC] Update async generator code aligned to the spec
- 2026-06-08 [JSC] Propagate "singleton" invalidation to originating SymbolTable
- 2026-06-06 Unreviewed, update config for Tahoe
- 2026-06-06 [JSC] NativeExecutable should have name and length in the same way to FunctionExecutable
- 2026-06-05 [JSC] Date and DateSpecYearMonth both require a DateYear
- 2026-06-05 [Yarr] YarrInterpreter Greedy backtracking should finish its parentheses by trying up to max count
- 2026-06-05 [JSC] Temporal conversion should use toIntegerWithTruncation
- 2026-06-05 Unreviewed, fix unified build in some cases
- 2026-06-05 [JSC] Make Temporal ICU error handling more strict
- 2026-06-04 [JSC] Need to define destroy function for TemporalZonedDateTime
- 2026-06-04 [YARR] Change FixedCount model from save-at-END to save-at-BEGIN
- 2026-06-03 [YARR] Fix NonGreedy backtracking
- 2026-06-03 [JSC] Restore JS builtins for next() functions
- 2026-06-02 [JSC] Implement Variable Count Parentheses in YarrJIT 2026-W22
- 2026-06-02 [JSC] MapIterator / SetIterator should be handled in DFG 2026-W22
- 2026-06-02 [CMake] Disable fdebug-prefix-map etc. by default, offering option RELATIVE_DEBUG_INFO
- 2026-06-02 [JSC] Add foundation of handling builtin iterators in fast-iteration-protocol 2026-W22
- 2026-06-01 [Yarr] Change Yarr m_matches / m_ranges / m_matchesUnicode / m_rangesUnicode ranges
- 2026-06-01 [JSC] Remove no-longer-used cell-types
- 2026-06-01 [JSC] TemporalTimeZone should be destructible
- 2026-06-01 [JSC] Move String#matchAll to C++
- 2026-05-31 [JSC] Do not release scope while it is used before forEachInIterationRecord
- 2026-05-31 [JSC] Apply C-preprocessor to JS builtin files
- 2026-05-31 [JSC] Make RegExp tolerant against excessive stress 2026-W22
- 2026-05-30 [JSC] Clean up Set prototype functions with forEachInSetStorage
- 2026-05-29 [JSC] JSOrderedHashTable is overly allocating DataTable
- 2026-05-29 [JSC] JSLock m_hasOwnerThread has concurrency issue 2026-W21
- 2026-05-29 [YARR] Optimize character-classes / patterns with shared lead-surrogate
- 2026-05-29 [JSC] Wasm::InstanceAnchor should be unregistered at the prologue of JSWebAssemblyInstance destructor 2026-W21
- 2026-05-28 [JSC] Fold microtask queueing slow path condition to m_canFastQueueMicrotask
- 2026-05-27 [JSC] Set storage of JSMapIterator / JSSetIterator creation in DFG / FTL
- 2026-05-27 [JSC] Let's always return CoW array from ownPropertyKeys in common case
- 2026-05-27 [JSC] Use in-place JSBigInt for small-size calculation (or when only one digit is wasteful)
- 2026-05-27 [JSC] Add ArrayJoin DFG nodes 2026-W21
- 2026-05-23 Unreviewed, just making JSC::OrderedHashTable => JSC::JSOrderedHashTable
- 2026-05-22 [JSC] Improve rope-string comparison
- 2026-05-21 [JSC] WebAssemblyGCStructure::finalizeUnconditionally should be called 2026-W20
- 2026-05-20 [JSC] Introduce private tmp mechanism to DFG ByteCodeParser
- 2026-05-20 [JSC] Collect profile from Baseline JIT compiler when LLInt -> Baseline
- 2026-05-20 [JSC] Fix / Update iterator return function call's arguments
- 2026-05-19 [JSC] Implement DFG / FTL ArrayUnshift 2026-W20
- 2026-05-19 [JSC] Use scratch buffer for ObjectDefinePropertyFromFields 2026-W20
- 2026-05-19 [JSC] Implement ArrayShift DFG node 2026-W20
- 2026-05-18 [JSC] Shrink sizeof(JSGenerator)
- 2026-05-18 [JSC] Add StringSubstr DFG node
- 2026-05-18 [JSC] Use OrderedHashMap for ImportEntries / ExportEntries to make errors deterministic
- 2026-05-15 [JSC] Extend megamorphic ByVal IC with symbols
- 2026-05-15 [JSC] Simplify bytecode writer
- 2026-05-15 [JSC] Optimize stricteq with non-String / non-HeapBigInt cells
- 2026-05-15 [JSC] Cache result of Symbol.prototype.toString 2026-W19
- 2026-05-14 [JSC] Optimize initial `then` call 2026-W19
- 2026-05-14 [JSC] Support Inlined InternalMicrotask reaction with Promise
- 2026-05-14 Use modern integer hash
- 2026-05-14 [JSC] Do not allocate promise reaction when it is initial `then` calls and one handler attachment 2026-W19
- 2026-05-13 [JSC] array_sort_comparator_return_trampoline should be registered for JITCage
- 2026-05-13 [JSC] Move WebAssembly.instantiateStreaming / WebAssembly.compileStreaming to C++
- 2026-05-13 [JSC] Extract fields of descriptor in Object.defineProperty in DFG / FTL 2026-W19
- 2026-05-13 [WTF] Use RapidHash
- 2026-05-12 [WTF] Fix OrderedHashTable's translate call
- 2026-05-12 [JSC] Use OrderedHashMap in JSModuleNamespaceObject
- 2026-05-12 [libpas] Allow in-place realloc for segregated case
- 2026-05-12 [JSC] Remove MustGenerate from Int32Use / DoubleRepUse ArithDiv / ArithMod
- 2026-05-12 [JSC] StructureAlignedMemoryAllocator does not need to do commit on Windows
- 2026-05-11 [JSC] Add strength reduction skipping ArithMod
- 2026-05-11 [WTF] Add OrderedHashTable
- 2026-05-11 [WTF] Add ThreadSafeLazyUniquePtr
- 2026-05-11 [JSC] Make TemporalInstant always 16-byte aligned by setting numberOfLowerTierPreciseCells = 0
- 2026-05-11 [JSC] Follow-up change after inlined small sort
- 2026-05-11 [JSC] Store computed hash in RTT and RTTGroup
- 2026-05-11 [JSC] Inline small sorting in DFG / FTL 2026-W19
- 2026-05-09 Unreviewed, fix test262 failures
- 2026-05-08 [JSC] Add realloc-and-shift fast path for JSArray unshift
- 2026-05-08 [JSC] A bit better heuristics for create_this for class via public / private fields
- 2026-05-07 [JSC] Move aINT / mINT / uINT bytecode under RTT
- 2026-05-07 [YARR] ParentheticalAssertionEnd.bt should propagate the failures to ParentheticalAssertionBegin.bt
- 2026-05-06 [libpas] Enable JIT-heap on Windows
- 2026-05-05 REGRESSION: WebAssembly SIMD produces incorrect result on x86_64 Linux (argon2id hash mismatch)
- 2026-05-04 [JSC] Add Array#concat DFG nodes 2026-W18
- 2026-05-04 [JSC] Simplify RegExp match array creation
- 2026-05-04 Always use WTF_ATTRIBUTE_PRINTF / BATTRIBUTE_PRINTF
- 2026-05-03 [JSC] Add multiply-accumulate instruction selection
- 2026-05-03 [JSC] Tweak wasm inlining budget computation a bit
- 2026-05-03 [JSC] Implement cycle-collector for RTT and RTTGroup
- 2026-05-02 [JSC] Make run-javascriptcore-tests work with CMake mac build
- 2026-05-02 [JSC] Avoid using RTT for signature of wasm ConstExpr parsing
- 2026-05-02 [libpas] Use static TLS destructor instead of FLS
- 2026-05-02 [JSC] Fix wasm type parsing regression by making RTT formal canonicalized types 2026-W18
- 2026-05-01 Unreviewed, follow-up after 312389@main
- 2026-05-01 [JSC] Populate Module resolution cache only when it is star-resolution / indirect-resolution
- 2026-05-01 [CMake] Align Release / RelWithDebInfo optimization-level and debug-info to Xcode
- 2026-04-30 [JSC] Workaround very slow initialization cost of DateCache with recent ICU
- 2026-04-30 [libpas] Clean up Windows shutdown handling
- 2026-04-30 [JSC] Optimize bit-rotate idiom in B3
- 2026-04-30 [JSC] Add TypedArray#lastIndexOf optimization
- 2026-04-30 [JSC] Teach IntegerRangeOptimizations about a bit missing patterns
- 2026-04-29 [JSC] Optimize Array.prototype.lastIndexOf
- 2026-04-29 [JSC] Add String#lastIndexOf optimizations 2026-W17
- 2026-04-29 [JSC] Clean up AsyncIterator asyncDispose
- 2026-04-28 [JSC] More aligning module loader to the spec
- 2026-04-28 [libpas] Clean up Windows implementation
- 2026-04-27 REGRESSION(311538@main): Unreviewed, skip tests again
- 2026-04-27 [JSC] Inline tight loop of String#localeCompare in FTL
- 2026-04-27 [JSC] Add JSFullPromiseReaction and JSSlimPromiseReaction
- 2026-04-27 [JSC] Delay intlAvailableTimeZoneIndex initialization as normal IANA case covers most of cases
- 2026-04-27 [WTF] Use worklist for WTF::Liveness
- 2026-04-27 [CMake] Add mac-dev-debug-o3 preset
- 2026-04-27 [JSC] Add Map / Set fast iteration 2026-W17
- 2026-04-27 [JSC] Remove @isArraySlow
- 2026-04-27 [JSC] Move symbolHasInstance to C++
- 2026-04-26 [JSC] Remove createSuppressedError builtin
- 2026-04-24 [JSC] Initialize IANA TimeZone data at VM creation
- 2026-04-24 [JSC] Clean up V8's JSBigInt::cachedMod with more detailed comments
- 2026-04-24 [JSC] Add JSArray::fastShift
- 2026-04-24 [JSC] Set ARM64 CPU feature bits in Windows
- 2026-04-24 [YARR] Just marking current FixedCount ParenContext incomplete and try using it again
- 2026-04-23 [JSC] Optimize returned promise from async function when it does not have await 2026-W16
- 2026-04-22 [YARR] Fix YarrJIT SIGBUS from sibling-alt frame slot aliasing
- 2026-04-21 [JSC] Intl.DateTimeFormat needs to keep original legacy [[TimeZone]] instead of primary IANA ID
- 2026-04-21 [JSC] Support tier string in IonGraph
- 2026-04-21 Unreviewed, disable ARM64E dotprod
- 2026-04-21 [JSC] Implement relaxed Wasm SIMD 2026-W16
- 2026-04-20 [JSC] Simplify IPInt local accessors, aligning to the other code
- 2026-04-20 [JSC] Report external memory allocation in Intl.NumberFormat / Intl.PluralRules
- 2026-04-20 Generate failing test shell script name for easy testing
- 2026-04-20 [JSC] Introduce Canonicalized TimeZone mechanism
- 2026-04-20 Remove JSScriptFetcher and JSScriptFetchParameters
- 2026-04-20 Unreviewed, use UncheckedKeyHashMap / UncheckedKeyHashSet
- 2026-04-20 [JSC] Optimize Intl.NumberFormat creation
- 2026-04-19 [WTF] Use std::span SIMDUTF API
- 2026-04-19 [JSC] Intl.Locale needs to canonicalize before override language
- 2026-04-16 [JSC] Remove JSInternalPromise
- 2026-04-16 [JSC] Add a bit more module loader tests for "then" tampering
- 2026-04-16 [JSC] Remove PL from IPInt
- 2026-04-15 Unreviewed, rebaseline test262 result
- 2026-04-15 [JSC] Avoid looking up "then" for internal module pipeline's JSPromise
- 2026-04-15 [JSC] Add `VectorShr(VectorZipLower(x, x), 8)` strength reduction
- 2026-04-14 [JSC] Add 32bit unsigned integer division optimization in B3 2026-W15
- 2026-04-14 [JSC] Do CSE with dominating WasmStructGet and WasmArrayGet
- 2026-04-14 [JSC] Atomic instructions in IPInt should not have metadata if it does not call functions
- 2026-04-13 [JSC] Consolidate error throwing code in IPInt to reduce code size in each handler
- 2026-04-13 [JSC] Remove IPInt metadata from SIMD instructions
- 2026-04-13 [YARR] ParenContext Use-After-Free via incomplete context clearing with control of the instruction pointer 2026-W15
- 2026-04-13 [JSC] Add "exclusive" type to JSC stress tests and add "memoryHog!" annotation
- 2026-04-13 [WTF] Upgrade SIMDUTF to 8.2.0
- 2026-04-12 [JSC] Avoid repeated lock contension due to NativeCalleeRegistry registration
- 2026-04-12 checkUTF8 should use SIMDUTF
- 2026-04-12 [JSC] IPInt should not require metadata for constant and memory access
- 2026-04-10 Unreviewed, add <stdatomic.h> to libpas pas_utils.h
- 2026-04-09 [libpas] atomic-load gets CSE-ed while it can be changed concurrently
- 2026-04-09 [WTF] Make UTF-8 StringImpl::create defensive against concurrent content modification
- 2026-04-09 [JSC] Add WasmArrayGet / WasmArraySet / WasmArrayNew / WasmArrayLength 2026-W14
- 2026-04-09 [JSC] More JSString::view call adoption
- 2026-04-08 [JSC] Fold string length as much as possible in DFG / FTL
- 2026-04-07 [JSC] Tag allocated memory with name on Linux too
- 2026-04-07 Unreviewed, do not unsupported SIMD B3 tests on x64
- 2026-04-06 [JSC] Support ZeroReg for the result in Select
- 2026-04-06 Consolidate skipModes filtering in run-jsc-stress-tests
- 2026-04-06 [JSC] Use simple SIMD loop in x64 in GCMemoryOperations
- 2026-04-04 [JSC] Allow wider bulk copy in GC safe memory operations
- 2026-04-04 [JSC] Wasm SectionParser should store expanded TypeDefinition
- 2026-04-02 [JSC] Add IC with undefined/false/true/null property key 2026-W13
- 2026-03-31 [JSC] Implement galloping merge in PowerSort 2026-W13
- 2026-03-31 [JSC] Leverage 4 byte in JSWebAssemblyArray if possible
- 2026-03-30 [JSC] Micro-optimize AssemblyHelpers asm code for ARM64
- 2026-03-29 [JSC] Introduce butterfly-less objects 2026-W13
- 2026-03-28 [JSC] Reduce size of Wasm GC objects by dropping m_rtt
- 2026-03-27 [YARR] Fix JIT crash on non-greedy ParenthesesSubpattern backtracking 2026-W12
- 2026-03-27 [JSC] Introduce Realm-less Objects 2026-W12
- 2026-03-26 Avoid fp->integer UB throughout WebKit repository
- 2026-03-26 REGRESSION(309877@main): [macOS] TestWebKitAPI.UnifiedPDF.PasswordFormShouldDismissAfterNavigation is a constant failure
- 2026-03-25 [JSC] Non-transitioning Wasm GC structure
- 2026-03-25 JSValueInWrappedObject should store world of the lexical global object
- 2026-03-24 [WTF] Clean up fp -> integer trunc implementations in x64
- 2026-03-24 [JSC] Do not store m_lastToken
- 2026-03-23 [JSC] Reduce strength for below / above with 0 / 1
- 2026-03-23 [JSC] Remove UB for truncate-double-to-int32 by injecting conversion inline asm
- 2026-03-20 WebCore should not post a microtask while in GC
- 2026-03-20 Unreviewed, revert 297750@main
- 2026-03-19 [Xcode] Workaround compilation-cache issue by using absolute-path for header-search-path
- 2026-03-19 [JSC] Add fast path for MicrotaskCall in callMicrotask
- 2026-03-19 [JSC] Use wasm SIMD optimizations in x64 too
- 2026-03-19 [JSC] Align OMG write-barrier code to FTL
- 2026-03-19 [JSC] Flush ProfilerSupport queue at jsc shell exit
- 2026-03-18 [JSC] Introduce better heuristics for rope resolution ordering
- 2026-03-18 [JSC] Use page-based zero-fill for large zero-clear for ArrayBuffer
- 2026-03-17 [JSC] Fix tryConvertToStrictInt32's duplicate work
- 2026-03-17 [JSC] Make lexing '0' fast
- 2026-03-17 [JSC] Add integer fast path to Lexer
- 2026-03-16 [JSC] Move B3ReduceSIMDShuffle to B3ReduceStrength for now
- 2026-03-16 [JSC] Optimize B3 SIMD shuffle more
- 2026-03-16 [JSC] Add more SIMD lowering
- 2026-03-15 [JSC] Use simple ARM64 shl, ushr, sshr
- 2026-03-14 [JSC] Support fast C++ -> JS calls in x64
- 2026-03-14 [JSC] Add MicrotaskCall
- 2026-03-14 [JSC] Implement SIMD Shuffle reduction 2026-W11
- 2026-03-14 Unreviewed, drop some accidentaly restored files
- 2026-03-13 [JSC] Add tryConvertToStrictInt32
- 2026-03-11 [JSC] Fix FTL BigInt operations for comparisons
- 2026-03-11 [JSC] GetById megamorphic IC should handle String too
- 2026-03-11 [JSC] JSBigInt multiply can just use JSBigInt as a result buffer
- 2026-03-11 Unreviewed, follow-up after 308946@main
- 2026-03-11 [JSC] Add RegExp#lastIndex IC 2026-W10
- 2026-03-10 [JSC] Add OVERRIDE_WK_USE_FATAL_EXCEPTIONS
- 2026-03-10 [JSC] Tighten JSBigInt hot path
- 2026-03-09 Unreviewed, follow-up after 308927@main
- 2026-03-09 [JSC] Add SourceDump option to JITDump
- 2026-03-09 [JSC] Optimize Double Mod in DFG / FTL
- 2026-03-09 [JSC] Implement cached BigInt remainder
- 2026-03-09 [WTF] Remove streaming interface of StringHasher to make changing algorithm easier
- 2026-03-09 [JSC] Micro-optimize triggerPromiseReactions
- 2026-03-08 Unreviewed, relanding 308841@main
- 2026-03-07 [WTF] Make Deque branchless
- 2026-03-06 [JSC] Add IRDump option with JITDump
- 2026-03-06 [JSC] Cloned SymbolTable needs to be cached per JSGlobalObject 2026-W09
- 2026-03-06 Unreviewed, suppress some compiler warnings for SIMDE
- 2026-03-06 [libpas] Decrease threshold for page-based-zeroing from 64MB to 1MB
- 2026-03-06 [JSC] Clean up and micro-optimize JSPromise code in C++
- 2026-03-05 Unreviewed, skip stress/delete-property-check-structure-transition.js until the test gets changed
- 2026-03-05 [WTF] Use simple SIMD pair search
- 2026-03-05 [JSC] Tolerant againt non-Unicode BCP 47 extensions + maximize / minimize
- 2026-03-05 [JSC] Bump s_maxTransitionLength from 64 to 128
- 2026-03-05 [JSC] GetByStatus::computeFor has race condition around swapped object's structure checks 2026-W09
- 2026-03-05 [JSC] LLInt arity fix needs to be done against sp 2026-W09
- 2026-03-05 Unreviewed, relanding with TestWTF fix
- 2026-03-05 [JSC] DFG iterator_next / iterator_open should emit Phantom for uses before emitting ForceOSRExit
- 2026-03-04 [JSC] Add PerformPromiseThen node in DFG / FTL 2026-W09
- 2026-03-04 [JSC] Micro-optimize MicrotaskQueue drain code
- 2026-03-04 Unreviewed, update test262 expectation file with Tahoe
- 2026-03-04 Unreviewed, rebaseline test262
- 2026-03-04 [WTF] SmallSet should take HashTraits
- 2026-03-03 [JSC] Polymorphic inlining of wasm indirect calls should have Rare annotation for the unknown case
- 2026-03-03 [IonGraph] Disable keyboard shortcut when cmd etc. are pressed
- 2026-03-02 [JSC] Async stack trace can have nullptr CodeBlock*
- 2026-03-02 [JSC] Move MicrotaskQueue enqueue code from WebCore to JSC
- 2026-03-01 [JSC] Unsound optimization in ReduceStrength regarding Int52-to-Int32 conversion pattern
- 2026-03-01 [JSC] Add pcrtoaddr to x64
- 2026-02-26 [JSC] x64 loads values from stack after sp is changed
- 2026-02-24 [JSC] Carefully remove costly access through microtask queue path
- 2026-02-23 [JSC] Better HeapBigIntUse speculation in DFG / FTL
- 2026-02-23 [JSC] Shrink sizeof(JSBigInt)
- 2026-02-21 Unreviewed, suppress warning for preexisting code
- 2026-02-21 MicrotaskDispatcher should be JSCell
- 2026-02-20 [WTF] Disable UTF-8 -> UTF-16 conversion on non-ARM64
- 2026-02-20 [YARR] index can exceed length when baseOffset is negative in generateBitInTableSIMDSearch
- 2026-02-19 [JSC] Propagate upper relative call count in Wasm Inlining Decision
- 2026-02-19 [JSC] Add FP Mul / Div strength reductions
- 2026-02-18 [JSC] A bit defensively adding DeferGC for Butterfly baking
- 2026-02-18 [JSC] Support fccmp in B3
- 2026-02-18 [YARR] End subpattern index must be checked with -1
- 2026-02-18 [JSC] wasm trunc_sat instructions can be mapped to direct ARM64 instructions
- 2026-02-17 [JSC] Air Greedy Register Allocator should handle FP constants
- 2026-02-17 [JSC] Let fast_float parse numbers in JSON
- 2026-02-16 [JSC] Remove op_tail_call_forward_arguments
- 2026-02-13 [YARR] Clean up trace label dump
- 2026-02-13 [YARR] Implement BitInTable SIMD search in RegExp in x64
- 2026-02-12 [YARR] Implement BitInTable SIMD search in RegExp
- 2026-02-11 [YARR] Need to use stored backtracking address from NestedAlternativeEnd
- 2026-02-11 [JSC] Fix RefCast / RefTest folding in B3
- 2026-02-10 [WTF] Update fast_float to 8.2.3
- 2026-02-09 [JSC] Fix edge case issue of cached imm in ARM64
- 2026-02-09 [JSC] Always use WYHash for strings
- 2026-02-09 [JSC] Bump JIT worklist thread number from 3 to 4
- 2026-02-09 [JSC] Add ArithDiv(Int52Use, Int52Use) in DFG / FTL
- 2026-02-08 [JSC] Remove JSBigInt::rightTrim and JSBigInt::tryRightTrim
- 2026-02-08 Unreviewed, NodeBytecodeNeedsNaNOrInfinity clearing should be done only for ArtihMod / ValueMod
- 2026-02-08 Unreviewed, fix ArithMod(Int52Use) constant folding
- 2026-02-08 [JSC] Add ArithMod(Int52Use, Int52Use) in DFG / FTL
- 2026-02-08 [JSC] Inline storage into JSBigInt
- 2026-02-05 [Yarr] Clear start and end for subpattern
- 2026-02-04 [bmalloc] Update to mimalloc 3.2.8
- 2026-02-04 [JSC][Yarr] Clean up FixedCount parentheses
- 2026-02-04 Unreviewed, revert "[AppKit Gestures] Add initial support for handling clicks during text selection"
- 2026-02-04 [JSC] Enable AsyncStackTrace
- 2026-02-04 [JSC] RegExp should have offset vector for common use
- 2026-02-04 [JSC] Yarr JIT should support fixed-count parentheses with capture
- 2026-02-04 [JSC] BBQ should use moveConditionally32 for BrTable
- 2026-02-03 Unreviewed, fix debug build after 306702@main
- 2026-02-03 [JSC] Add strength reduction rules for WasmRefCast / WasmRefTest with WasmStructNew
- 2026-02-02 Unreviewed, fix WebCore regression part 2
- 2026-02-02 Unreviewed, never use Ref for VM
- 2026-01-31 [JSC] YarrJIT should support fixed-count subpatterns with capture
- 2026-01-31 [JSC] Implement RegExp SIMD path for x64 too
- 2026-01-31 Unreviewed, use pageSize
- 2026-01-31 [WTF] Move AvailableMemory from bmalloc to WTF
- 2026-01-30 [JSC] Include JSC-fork of IonGraph
- 2026-01-30 [JSC] Simplify B3::Switch CFG via Select
- 2026-01-30 [JSC] Attach wasm binary hash to internal wasm function name for debugging
- 2026-01-29 [JSC] Add constant materialization JIT code for x64
- 2026-01-29 [JSC] Add SIMD search path for RegExp fast search
- 2026-01-28 [JSC] Consolidate vm access in OMG into one value
- 2026-01-28 [JSC] Use isFinalType in WasmRefCastValue
- 2026-01-27 [JSC] Construct ropes from String.prototype.replace with strings
- 2026-01-26 Unreviewed, do not spew logs from microbenchmarks
- 2026-01-26 [JSC] Embed RTT* into WasmGC object and use it instead of Structure
- 2026-01-26 [libpas] Use futex-based locking in Windows / FreeBSD
- 2026-01-26 Unreviewed, Binja.c should be built as libJavaScriptCore target
- 2026-01-26 [JSC] Use BinaryNinja's ARM64 disassembler
- 2026-01-25 Unreviewed, reverting 304975@main (7f525e50e298)
- 2026-01-24 [libpas] Linux should use futex instead of spinlock
- 2026-01-24 Unreviewed, reverting 305848@main (bbf8d344a5bb)
- 2026-01-23 [JSC] Introduce B3 WasmRefCast / WasmRefTest values
- 2026-01-23 [JSC] ArithMul strength reduction should insert original checks even for constants
- 2026-01-23 Unreviewed, suppress warnings around B3 values StructType* which is held by the compiler global data structure throught
- 2026-01-22 [JSC] We should consider inlining function even if it is not called if it is small enough
- 2026-01-22 [WTF] Better lowestAccessibleAddress for Linux and Windows
- 2026-01-21 [JSC] WasmStructNew can always get non-null allocator from instance
- 2026-01-21 Unreviewed, remove mimalloc redirect binaries
- 2026-01-21 [JSC] Add WasmStruct related B3 Values
- 2026-01-20 Unreviewed, reland "[bmalloc] Replace old bmalloc with mimalloc"
- 2026-01-19 Unreviewed, rebaseline ICU tests
- 2026-01-19 Unreviewed, 305796@main broke builds with newer clang
- 2026-01-17 [bmalloc] Replace old bmalloc with mimalloc
- 2026-01-17 More detailed test results from test262-runner
- 2026-01-16 [JSC] More precise TBAA for WasmGC Struct
- 2026-01-16 [JSC] Do not use FunctionSignature for BlockSignature in Wasm
- 2026-01-14 [JSC] Extend Float16, Float, Double, V128 constant materialization
- 2026-01-13 Unreviewed, add value after null check
- 2026-01-13 [JSC] Implement ccmp / ccmn chain
- 2026-01-10 Unreviewed, dump more info when test fails
- 2026-01-10 [JSC] Optimize callMicrotask
- 2026-01-09 [JSC] Add "osr" and "catch" attributes to IonGraph blocks