1 2019-10-07 Jer Noble <jer.noble@apple.com>
3 Implement the Remote Playback API.
4 https://bugs.webkit.org/show_bug.cgi?id=162971
6 Reviewed by Youenn Fablet.
8 Add RemotePlayback as a common identifier, needed for bindings due to "EnabledAtRuntime=RemotePlayback".
10 * runtime/CommonIdentifiers.h:
12 2019-10-29 Yusuke Suzuki <ysuzuki@apple.com>
14 [JSC] Add fast path for String#localeCompare
15 https://bugs.webkit.org/show_bug.cgi?id=202676
19 When String#localeCompare is invoked, we are setting up UCharIterator to iterate code points.
20 But this is too slow since its implementation is invoking function pointer for each code point
21 to get next code point. Strings have many code points typically. Invoking function pointer so many times
22 takes too much time just for locale-aware comparison.
24 This patch revises the implementation by adding 2 fast path and 1 slow path. The slow path requires extra memory,
25 but it is soon released (not GC-managed).
27 1. If both strings are ASCII (not Latin1), we use ucol_strcollUTF8.
28 2. If both strings are 16-bit, we use ucol_strcoll.
29 3. Otherwise, we convert strings to 16-bit strings, and then we use ucol_strcoll.
31 JetStream2/cdjs is improved from 56 to 85 on iMac Pro (50%).
33 * runtime/IntlCollator.cpp:
34 (JSC::IntlCollator::compareStrings):
35 * tools/JSDollarVM.cpp:
36 (JSC::functionMake16BitStringIfPossible):
37 (JSC::JSDollarVM::finishCreation):
39 2019-10-28 Yusuke Suzuki <ysuzuki@apple.com>
41 [JSC] Remove JSPromiseDeferred
42 https://bugs.webkit.org/show_bug.cgi?id=203400
44 Reviewed by Keith Miller.
46 This patch optimizes the existing Promise usage in C++. We remove JSPromiseDeferred and JSInternalPromiseDeferred, use JSPromise and JSInternalPromise directly.
47 JSC now offers first `resolve` and `reject` operations to `JSPromise` without separating `resolve` and `reject` function from `JSPromise`. Then, we do not need
48 to have a tuple of these functions and promise, and we can just use `JSPromise::resolve` and `JSPromise::reject`. This removes unnecessary function allocations
49 and cell allocation for JSPromiseDeferred and makes API simple.
51 * API/JSAPIGlobalObject.mm:
52 (JSC::JSAPIGlobalObject::moduleLoaderImportModule):
53 (JSC::JSAPIGlobalObject::moduleLoaderFetch):
54 (JSC::JSAPIGlobalObject::loadAndEvaluateJSScriptModule):
55 * API/JSObjectRef.cpp:
56 (JSObjectMakeDeferredPromise):
58 * JavaScriptCore.xcodeproj/project.pbxproj:
61 (GlobalObject::moduleLoaderImportModule):
62 (GlobalObject::moduleLoaderFetch):
64 * runtime/Completion.cpp:
66 * runtime/JSGlobalObject.cpp:
67 (JSC::JSGlobalObject::init):
68 (JSC::JSGlobalObject::visitChildren):
69 * runtime/JSGlobalObject.h:
70 (JSC::JSGlobalObject::newPromiseCapabilityFunction const):
71 (JSC::JSGlobalObject::resolvePromiseFunction const):
72 (JSC::JSGlobalObject::rejectPromiseFunction const):
73 (JSC::JSGlobalObject::numberProtoToStringFunction const):
74 * runtime/JSGlobalObjectFunctions.cpp:
75 (JSC::globalFuncImportModule):
76 * runtime/JSInternalPromise.h:
77 * runtime/JSInternalPromiseDeferred.cpp: Removed.
78 * runtime/JSInternalPromiseDeferred.h: Removed.
79 * runtime/JSModuleLoader.cpp:
80 (JSC::JSModuleLoader::importModule):
81 (JSC::JSModuleLoader::resolve):
82 (JSC::JSModuleLoader::fetch):
83 (JSC::moduleLoaderParseModule):
84 * runtime/JSPromise.cpp:
85 (JSC::JSPromise::flags const):
86 (JSC::JSPromise::isHandled const):
87 (JSC::JSPromise::createDeferredData):
88 (JSC::JSPromise::resolvedPromise):
90 (JSC::JSPromise::resolve):
91 (JSC::JSPromise::reject):
92 * runtime/JSPromise.h:
93 * runtime/JSPromiseDeferred.cpp: Removed.
94 * runtime/JSPromiseDeferred.h: Removed.
95 * runtime/PromiseTimer.cpp: Renamed from Source/JavaScriptCore/runtime/PromiseDeferredTimer.cpp.
96 (JSC::PromiseTimer::PromiseTimer):
97 (JSC::PromiseTimer::doWork):
98 (JSC::PromiseTimer::runRunLoop):
99 (JSC::PromiseTimer::addPendingPromise):
100 (JSC::PromiseTimer::hasPendingPromise):
101 (JSC::PromiseTimer::hasDependancyInPendingPromise):
102 (JSC::PromiseTimer::cancelPendingPromise):
103 (JSC::PromiseTimer::scheduleWorkSoon):
104 * runtime/PromiseTimer.h: Renamed from Source/JavaScriptCore/runtime/PromiseDeferredTimer.h.
105 (JSC::PromiseTimer::create):
106 * runtime/StringRecursionChecker.h:
111 * wasm/js/JSWebAssembly.cpp:
113 (JSC::webAssemblyModuleValidateAsyncInternal):
114 (JSC::webAssemblyCompileFunc):
116 (JSC::JSWebAssembly::webAssemblyModuleValidateAsync):
118 (JSC::compileAndInstantiate):
119 (JSC::JSWebAssembly::instantiate):
120 (JSC::webAssemblyModuleInstantinateAsyncInternal):
121 (JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync):
122 (JSC::webAssemblyInstantiateFunc):
123 (JSC::webAssemblyCompileStreamingInternal):
124 (JSC::webAssemblyInstantiateStreamingInternal):
125 * wasm/js/JSWebAssembly.h:
126 * wasm/js/JSWebAssemblyCodeBlock.h:
128 2019-10-28 Adrian Perez de Castro <aperez@igalia.com>
130 [GTK][WPE] Fix various non-unified build issues introduced since r251436
131 https://bugs.webkit.org/show_bug.cgi?id=203492
133 Reviewed by Alex Christensen and Mark Lam.
135 * bytecode/BytecodeIndex.cpp: Add missing inclusion of wtf/PrintStream.h
136 * bytecode/ICStatusUtils.h: Add missing inclusion if BytecodeIndex.h
137 * bytecode/InstructionStream.h: Ditto.
138 * debugger/DebuggerLocation.cpp: Add missing inclusion of JSCellInlines.h
139 * dfg/DFGLazyJSValue.h: Add missing inclusion of GPRInfo.h
140 * ftl/FTLOSREntry.h: Add missing inclusion of BytecodeIndex.h
141 * heap/CompleteSubspaceInlines.h: Add missing inclusions of CompleteSubspace.h and VM.h
142 * inspector/JavaScriptCallFrame.h:
143 (Inspector::JavaScriptCallFrame::thisValue const): Prepend namespace to the JSC::VM type.
144 * jit/JITDisassembler.h: Add missing inclusion of BytecodeIndex.h
145 * jit/JITWorklist.h: Ditto.
146 * runtime/JSImmutableButterfly.cpp: Add missing inclusion of ButterflyInlines.h
147 * runtime/ObjectInitializationScope.h: Add missing inclusion of VM.h
148 * runtime/StringRecursionChecker.h: Add missing inclusion of GetVM.h
149 * runtime/VMTraps.cpp: Add missing inclusion of CallFrameInlines.h
150 * tools/Integrity.cpp: Add missing inclusion of Integrity.h, HeapCellInlines.h, and
152 * wasm/WasmOperations.cpp: Add missing inclusion of JSCJSValueInlines.h and
153 JSGlobalObjectInlines.h
154 * wasm/WasmOperations.h: Add missing inclusion of IndexingType.h, JSCJSValue.h, and
155 WasmExceptionType.h; add forward declarations for JSArrray and Wasm::Signature.
156 * wasm/js/JSWebAssembly.cpp: Add missing inclusion of WasmOperations.h
157 * wasm/js/JSWebAssemblyHelpers.h: Add missing inclusion of Error.h and JSArrayBufferView.h
159 2019-10-28 Ross Kirsling <ross.kirsling@sony.com>
161 [JSC] Lexer flags should be an OptionSet
162 https://bugs.webkit.org/show_bug.cgi?id=203032
164 Reviewed by Yusuke Suzuki.
166 LexerFlags has an annoyingly misspelled value LexexFlagsDontBuildKeywords;
167 let's use this as an opportunity to modernize this enum.
169 * parser/ASTBuilder.h:
171 (JSC::Lexer<LChar>::parseIdentifier):
172 (JSC::Lexer<UChar>::parseIdentifier):
173 (JSC::Lexer<CharacterType>::parseIdentifierSlowCase):
174 (JSC::Lexer<T>::lexWithoutClearingLineTerminator):
176 (JSC::Lexer<T>::lexExpectIdentifier):
177 (JSC::Lexer<T>::lex):
179 (JSC::Parser<LexerType>::parseProperty):
180 (JSC::Parser<LexerType>::parseMemberExpression):
183 (JSC::Parser::nextWithoutClearingLineTerminator):
184 (JSC::Parser::nextExpectIdentifier):
185 (JSC::Parser::consume):
186 * parser/SyntaxChecker.h:
188 2019-10-28 Yusuke Suzuki <ysuzuki@apple.com>
190 [JSC] Optimize Promise runtime functions
191 https://bugs.webkit.org/show_bug.cgi?id=203454
193 Reviewed by Keith Miller.
195 This patch optimizes Promise runtime functions a bit.
197 1. Add fast paths to Promise.resolve / Promise.reject.
198 2. Remove state check in async-functions. Unlike generators, async-function's next function is not exposed to users.
199 It is called by runtime so we can control state perfectly.
200 3. Add "enqueueJob" name to make sampling profiler work for this function.
201 4. Make Promise/InternalPromise constructor inlinable size
205 promise-creation-many 25.5794+-0.3681 ^ 22.5410+-0.3229 ^ definitely 1.1348x faster
206 promise-resolve 32.3793+-0.4252 ^ 9.4219+-0.1114 ^ definitely 3.4366x faster
207 promise-reject 108.5968+-0.7741 ^ 36.9383+-0.3770 ^ definitely 2.9400x faster
209 * builtins/AsyncFunctionPrototype.js:
210 (globalPrivate.asyncFunctionResume):
211 * builtins/PromiseConstructor.js:
214 (nakedConstructor.Promise.reject):
215 (nakedConstructor.Promise):
216 (nakedConstructor.InternalPromise.reject):
217 (nakedConstructor.InternalPromise):
218 (nakedConstructor.Promise.resolve): Deleted.
219 (nakedConstructor.InternalPromise.resolve): Deleted.
220 * builtins/PromiseOperations.js:
221 (globalPrivate.newPromiseCapability.resolve):
222 (globalPrivate.newPromiseCapability.reject):
223 (globalPrivate.newPromiseCapability):
224 (globalPrivate.promiseResolveSlow):
225 (globalPrivate.promiseRejectSlow):
226 * runtime/JSGlobalObject.cpp:
227 (JSC::JSGlobalObject::init):
229 2019-10-28 Yusuke Suzuki <ysuzuki@apple.com>
231 [JSC] Use FTLOutput::callWithoutSideEffects if operation does not have side effects
232 https://bugs.webkit.org/show_bug.cgi?id=203485
234 Reviewed by Mark Lam.
236 This makes Call's Effect none, and encourages optimizations around it.
238 * ftl/FTLLowerDFGToB3.cpp:
239 (JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
240 (JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
241 (JSC::FTL::DFG::LowerDFGToB3::jsValueToStrictInt52):
243 2019-10-28 Tuomas Karkkainen <tuomas.webkit@apple.com>
245 dumpSpeculation in SpeculatedType.cpp prints to the wrong stream and has wrong capitalization for NaN
246 https://bugs.webkit.org/show_bug.cgi?id=203486
248 Reviewed by Antti Koivisto.
250 * bytecode/SpeculatedType.cpp:
251 (JSC::dumpSpeculation):
253 2019-10-28 Fujii Hironori <Hironori.Fujii@sony.com>
255 [Windows][Clang] error LNK2001: unresolved external symbol "void * __cdecl JSC::allocateCell<class JSC::JSGenericTypedArrayView<struct JSC::Float32Adaptor> >(class JSC::Heap &,unsigned __int64)"
256 https://bugs.webkit.org/show_bug.cgi?id=203483
258 Unreviewed build fix for clang-cl builds.
260 * runtime/JSGenericTypedArrayViewInlines.h: Added #include "JSCellInlines.h".
262 2019-10-26 Chris Lord <clord@igalia.com>
264 Put OffscreenCanvas behind a build flag
265 https://bugs.webkit.org/show_bug.cgi?id=203146
267 Reviewed by Ryosuke Niwa.
269 * Configurations/FeatureDefines.xcconfig:
271 2019-10-25 Yury Semikhatsky <yurys@chromium.org>
273 Web Inspector: support emulateUserGesture parameter in Runtime.callFunctionOn
274 https://bugs.webkit.org/show_bug.cgi?id=200262
276 Reviewed by Devin Rousso.
278 * inspector/agents/InspectorRuntimeAgent.cpp:
279 (Inspector::InspectorRuntimeAgent::callFunctionOn):
280 * inspector/agents/InspectorRuntimeAgent.h:
281 * inspector/protocol/Runtime.json:
283 2019-10-24 Mark Lam <mark.lam@apple.com>
285 Move JSC::Register inline methods into RegisterInlines.h.
286 https://bugs.webkit.org/show_bug.cgi?id=203391
288 Reviewed by Yusuke Suzuki and Keith Miller.
290 We're doing this because:
291 1. RegisterInlines.h is the canonical place to put inline Register methods.
292 2. It helps reduce build time.
293 e.g. build-jsc went from 208.02 to 196.81 seconds (about a 5% reduction).
294 3. This enables experimental work to box JSCells in JSValue.
296 This patch also handles the fallout of this change, which necessitates more
297 inline methods being moved from <file>.h to their respective <file>Inlines.h.
299 JSArray.h used to include ButterflyInlines.h and JSCellInlines.h. This is a
300 violation of inclusion ordering (.h should not #include Inlines.h). This
301 violation has been removed.
303 * API/JSAPIGlobalObject.mm:
305 * JavaScriptCore.xcodeproj/project.pbxproj:
306 * bytecode/CodeBlock.h:
307 (JSC::CallFrame::r): Deleted.
308 (JSC::CallFrame::uncheckedR): Deleted.
309 * bytecode/MetadataTable.cpp:
310 * ftl/FTLLowerDFGToB3.cpp:
311 * interpreter/CallFrame.h:
312 (JSC::CallFrame::guaranteedJSValueCallee const): Deleted.
313 (JSC::CallFrame::jsCallee const): Deleted.
314 (JSC::CallFrame::codeBlock const): Deleted.
315 (JSC::CallFrame::unsafeCodeBlock const): Deleted.
316 (JSC::CallFrame::scope const): Deleted.
317 (JSC::CallFrame::topOfFrame): Deleted.
318 (JSC::CallFrame::setScope): Deleted.
319 (JSC::CallFrame::setCallee): Deleted.
320 (JSC::CallFrame::setCodeBlock): Deleted.
321 * interpreter/CallFrameInlines.h:
323 (JSC::CallFrame::uncheckedR):
324 (JSC::CallFrame::guaranteedJSValueCallee const):
325 (JSC::CallFrame::jsCallee const):
326 (JSC::CallFrame::codeBlock const):
327 (JSC::CallFrame::unsafeCodeBlock const):
328 (JSC::CallFrame::lexicalGlobalObject const):
329 (JSC::CallFrame::setCallee):
330 (JSC::CallFrame::setCodeBlock):
331 (JSC::CallFrame::setScope):
332 (JSC::CallFrame::scope const):
333 (JSC::CallFrame::topOfFrame):
334 * interpreter/Interpreter.cpp:
335 * interpreter/ProtoCallFrame.h:
336 (JSC::ProtoCallFrame::init): Deleted.
337 * interpreter/ProtoCallFrameInlines.h: Added.
338 (JSC::ProtoCallFrame::init):
339 (JSC::ProtoCallFrame::callee const):
340 (JSC::ProtoCallFrame::setCallee):
341 (JSC::ProtoCallFrame::codeBlock const):
342 (JSC::ProtoCallFrame::setCodeBlock):
343 * interpreter/Register.h:
344 (JSC::Register::callFrame const): Deleted.
345 (JSC::Register::codeBlock const): Deleted.
346 (JSC::Register::asanUnsafeCodeBlock const): Deleted.
347 * interpreter/RegisterInlines.h: Added.
348 (JSC::Register::callFrame const):
349 (JSC::Register::codeBlock const):
350 (JSC::Register::asanUnsafeCodeBlock const):
351 (JSC::Register::object const):
352 (JSC::Register::operator=):
353 (JSC::Register::scope const):
354 * interpreter/StackVisitor.cpp:
355 * jit/AssemblyHelpers.h:
356 * llint/LLIntSlowPaths.cpp:
357 * runtime/ArrayStorage.h:
358 (JSC::ArrayStorage::optimalVectorLength): Deleted.
359 * runtime/ArrayStorageInlines.h: Added.
360 (JSC::ArrayStorage::availableVectorLength):
361 (JSC::ArrayStorage::optimalVectorLength):
362 (JSC::ArrayStorage::totalSize const):
363 * runtime/ButterflyInlines.h:
364 * runtime/ClassInfo.h:
365 * runtime/GetVM.h: Added.
367 * runtime/JSArrayInlines.h:
368 * runtime/JSCellInlines.h:
369 * runtime/JSGlobalObject.h:
370 * runtime/JSObject.h:
371 (JSC::Register::object const): Deleted.
372 (JSC::Register::operator=): Deleted.
373 * runtime/JSObjectInlines.h:
375 (JSC::Register::operator=): Deleted.
376 (JSC::Register::scope const): Deleted.
377 (JSC::CallFrame::lexicalGlobalObject const): Deleted.
378 * runtime/JSString.h:
379 * runtime/PropertyNameArray.h:
380 * runtime/PropertySlot.h:
381 * runtime/VMInlines.h:
382 * tools/HeapVerifier.cpp:
383 * wasm/js/WebAssemblyFunction.cpp:
385 2019-10-24 Zan Dobersek <zdobersek@igalia.com>
387 REGRESSION(r251468): Build, test failures in 32-bit JSC after BytecodeIndex refactoring
388 https://bugs.webkit.org/show_bug.cgi?id=203290
390 Reviewed by Keith Miller.
392 * bytecode/BytecodeIndex.h:
393 (JSC::BytecodeIndex::BytecodeIndex):
394 Add a BytecodeIndex(WTF::HashTableDeletedValueType) constructor.
395 * bytecode/CodeOrigin.h:
396 (JSC::CodeOrigin::CodeOrigin):
397 Have the CodeOrigin(WTF::HashTableDeletedValueType) constructor
398 initialize the BytecodeIndex object accordingly, as a deleted value.
399 (JSC::CodeOrigin::isHashTableDeletedValue const):
400 Test BytecodeIndex object's deleted-value condition through the
401 corresponding BytecodeIndex::isHashTableDeletedValue() method.
402 * profiler/ProfilerOrigin.h:
403 (JSC::Profiler::Origin::Origin):
404 Simplify the m_bytecodeIndex member initialization for a deleted value.
405 (JSC::Profiler::Origin::operator! const):
406 Fix the negation operator, returning true if the m_bytecodeIndex is
407 either empty or deleted.
409 2019-10-24 Sihui Liu <sihui_liu@apple.com>
411 [ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
412 https://bugs.webkit.org/show_bug.cgi?id=203173
413 <rdar://problem/56424721>
415 Hold a strong reference to JSGlobalOjbect in ConsoleMessage so that object is not garbage collected before
416 WebConsoleAgent::frameWindowDiscarded.
418 Covered by existing test: inspector/console/webcore-logging.html.
420 Reviewed by Geoffrey Garen.
422 * inspector/ConsoleMessage.cpp:
423 (Inspector::ConsoleMessage::ConsoleMessage):
424 (Inspector::ConsoleMessage::clear):
425 * inspector/ConsoleMessage.h:
427 2019-10-24 Yusuke Suzuki <ysuzuki@apple.com>
429 [JSC] Properly organize wasm operations
430 https://bugs.webkit.org/show_bug.cgi?id=203360
432 Reviewed by Keith Miller.
434 This patch cleans up operation functions called from Wasm.
436 1. Properly name these operations with prefix "operation".
437 2. Do not use lambda. Define function with JIT_OPERATION.
438 3. Consolidate them in WasmOperations.cpp.
440 * wasm/WasmAirIRGenerator.cpp:
441 (JSC::Wasm::AirIRGenerator::addRefFunc):
442 (JSC::Wasm::AirIRGenerator::addTableGet):
443 (JSC::Wasm::AirIRGenerator::addTableSet):
444 (JSC::Wasm::AirIRGenerator::addTableSize):
445 (JSC::Wasm::AirIRGenerator::addTableGrow):
446 (JSC::Wasm::AirIRGenerator::addTableFill):
447 (JSC::Wasm::AirIRGenerator::addGrowMemory):
448 (JSC::Wasm::AirIRGenerator::emitWriteBarrierForJSWrapper):
449 (JSC::Wasm::AirIRGenerator::addOp<OpType::I32Popcnt>):
450 (JSC::Wasm::AirIRGenerator::addOp<OpType::I64Popcnt>):
451 * wasm/WasmB3IRGenerator.cpp:
452 (JSC::Wasm::B3IRGenerator::addTableGet):
453 (JSC::Wasm::B3IRGenerator::addTableSet):
454 (JSC::Wasm::B3IRGenerator::addRefFunc):
455 (JSC::Wasm::B3IRGenerator::addTableSize):
456 (JSC::Wasm::B3IRGenerator::addTableGrow):
457 (JSC::Wasm::B3IRGenerator::addTableFill):
458 (JSC::Wasm::B3IRGenerator::addGrowMemory):
459 (JSC::Wasm::B3IRGenerator::emitWriteBarrierForJSWrapper):
460 (JSC::Wasm::B3IRGenerator::addOp<OpType::I32Popcnt>):
461 (JSC::Wasm::B3IRGenerator::addOp<OpType::I64Popcnt>):
462 * wasm/WasmInstance.cpp:
463 (JSC::Wasm::getWasmTableElement): Deleted.
464 (JSC::Wasm::setWasmTableElement): Deleted.
465 (JSC::Wasm::doWasmTableGrow): Deleted.
466 (JSC::Wasm::doWasmTableFill): Deleted.
467 (JSC::Wasm::doWasmRefFunc): Deleted.
468 * wasm/WasmInstance.h:
469 * wasm/WasmOperations.cpp:
470 (JSC::Wasm::operationWasmUnwind):
471 (JSC::Wasm::operationConvertToF64):
472 (JSC::Wasm::operationConvertToI32):
473 (JSC::Wasm::operationConvertToF32):
474 (JSC::Wasm::operationIterateResults):
475 (JSC::Wasm::operationAllocateResultsArray):
476 (JSC::Wasm::operationWasmWriteBarrierSlowPath):
477 (JSC::Wasm::operationPopcount32):
478 (JSC::Wasm::operationPopcount64):
479 (JSC::Wasm::operationGrowMemory):
480 (JSC::Wasm::operationGetWasmTableElement):
481 (JSC::Wasm::setWasmTableElement):
482 (JSC::Wasm::operationSetWasmTableElement):
483 (JSC::Wasm::operationWasmTableGrow):
484 (JSC::Wasm::operationWasmTableFill):
485 (JSC::Wasm::operationWasmRefFunc):
486 (JSC::Wasm::operationGetWasmTableSize):
487 (JSC::Wasm::operationWasmToJSException):
488 * wasm/WasmOperations.h:
489 * wasm/js/JSToWasm.cpp:
490 (JSC::Wasm::marshallJSResult):
491 (JSC::Wasm::allocateResultsArray): Deleted.
492 * wasm/js/WasmToJS.cpp:
493 (JSC::Wasm::wasmToJS):
494 (JSC::Wasm::operationWasmToJSException): Deleted.
495 * wasm/js/WasmToJS.h:
496 * wasm/js/WebAssemblyInstanceConstructor.cpp:
498 2019-10-24 Yusuke Suzuki <ysuzuki@apple.com>
500 [JSC] Remove LLInt's Callee size assumption
501 https://bugs.webkit.org/show_bug.cgi?id=203282
503 Reviewed by Mark Lam.
505 LLInt code still assumes that Callee is always allocated in non-LargeAllocation.
506 This patch removes this assumption by following three changes.
508 1. If we can get CodeBlock, we get VM& from CodeBlock.
509 2. In nativeCallTrampoline and internalFunctionCallTrampoline, we get VM& from JSGlobalObject. It involves one more pointer-chasing but it is OK
510 since this JSGlobalObject's VM* field will be touched in called native functions anyway. And this code is only used when we are not using JIT.
511 3. In exception handling code in LLInt, we get VM& from callee by checking LargeAllocation possibility. This is OK since it is only executed when
512 exception unwinding happens, and which is an expensive operation anyway.
514 * heap/LargeAllocation.h:
515 (JSC::LargeAllocation::headerSize):
517 (JSC::WeakSet::WeakSet):
518 (JSC::WeakSet::vm const):
519 * llint/LowLevelInterpreter.asm:
520 * llint/LowLevelInterpreter32_64.asm:
521 * llint/LowLevelInterpreter64.asm:
522 * runtime/JSGlobalObject.cpp:
523 (JSC::JSGlobalObject::JSGlobalObject):
524 (JSC::JSGlobalObject::init):
525 * runtime/JSGlobalObject.h:
526 (JSC::JSGlobalObject::vm const):
527 (JSC::JSGlobalObject::defaultCodeGenerationMode const):
529 (JSC::WeakSet::heap const):
531 2019-10-24 Zan Dobersek <zdobersek@igalia.com>
533 [JSC] Get 32-bit ports back into building order
534 https://bugs.webkit.org/show_bug.cgi?id=203358
536 Reviewed by Carlos Garcia Campos.
538 Get JSC building again on 32-bit architectures after changes in r251468.
539 Some 32-bit code in LLint and JIT is brought back, and additional casts
540 around BytecodeIndex construction are added as necessary.
542 * dfg/DFGOSRExit.cpp:
543 (JSC::DFG::reifyInlinedCallFrames):
544 * dfg/DFGOSRExitCompilerCommon.cpp:
545 (JSC::DFG::reifyInlinedCallFrames):
546 * interpreter/CallFrame.cpp:
547 (JSC::CallFrame::setCurrentVPC):
548 * jit/JITCall32_64.cpp:
549 (JSC::JIT::compileCallEvalSlowCase):
550 (JSC::JIT::compileOpCall):
552 (JSC::JIT::updateTopCallFrame):
553 * jit/JITOpcodes32_64.cpp:
554 (JSC::JIT::emit_op_log_shadow_chicken_tail):
555 * jit/JITPropertyAccess32_64.cpp:
556 (JSC::JIT::emit_op_get_by_val):
557 (JSC::JIT::emitGetByValWithCachedId):
558 (JSC::JIT::emit_op_put_by_val):
559 (JSC::JIT::emitPutByValWithCachedId):
560 (JSC::JIT::emit_op_try_get_by_id):
561 (JSC::JIT::emit_op_get_by_id_direct):
562 (JSC::JIT::emit_op_get_by_id):
563 (JSC::JIT::emit_op_get_by_id_with_this):
564 (JSC::JIT::emit_op_put_by_id):
565 (JSC::JIT::emit_op_in_by_id):
566 * llint/LLIntSlowPaths.cpp:
567 (JSC::LLInt::LLINT_SLOW_PATH_DECL):
569 2019-10-24 Paulo Matos <pmatos@igalia.com>
571 Disable pichdr generation on MIPS for return location labels
572 https://bugs.webkit.org/show_bug.cgi?id=203040
574 Reviewed by Yusuke Suzuki.
576 Disable generation of pichdr for return location labels generated in
577 defineOSRExitReturnLabel. Since r250806 (Allow OSR exit to the LLInt),
578 MIPS was segfaulting since the pichdr after an OSR exit was corruption
581 * offlineasm/mips.rb:
583 2019-10-23 Devin Rousso <drousso@apple.com>
585 Web Inspector: provide a way to inject "bootstrap" JavaScript into the page as the first script executed
586 https://bugs.webkit.org/show_bug.cgi?id=195847
587 <rdar://problem/48950551>
589 Reviewed by Joseph Pecoraro.
591 When debugging webpages, it's often useful to be able to swizzle various functions in order
592 to add extra logs for when they're called (e.g. `Event.prototype.preventDefault`). Sometimes
593 this can be difficult, such as if the page saves a copy of the function and references that
594 instead, in which case it would be helpful to have a way to guarantee that the swizzled code
595 is the first thing evaluated after the context is created.
597 This change adds support for that concept, which has been named Inspector Bootstrap Script.
598 Once created, it will be injected as the first user script to every new global object that
599 is created afterwards. Modifications to the Inspector Bootstrap Script take effect for all
600 new global objects created _after_ the modification happened.
602 * inspector/protocol/Page.json:
603 Add `setBoostrapScript` command.
605 2019-10-23 Yusuke Suzuki <ysuzuki@apple.com>
607 [JSC] Remove wasmAwareLexicalGlobalObject
608 https://bugs.webkit.org/show_bug.cgi?id=203351
610 Reviewed by Mark Lam.
612 CallFrame::lexicalGlobalObject() is no longer called frequently. We can just make the current wasmAwareLexicalGlobalObject as CallFrame::lexicalGlobalObject,
613 and remove wasmAwareLexicalGlobalObject function.
615 * debugger/Debugger.cpp:
616 (JSC::Debugger::hasBreakpoint):
617 (JSC::Debugger::breakProgram):
618 (JSC::lexicalGlobalObjectForCallFrame):
619 * debugger/DebuggerCallFrame.cpp:
620 (JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const):
621 (JSC::DebuggerCallFrame::scope):
622 (JSC::DebuggerCallFrame::thisValue const):
623 (JSC::DebuggerCallFrame::evaluateWithScopeExtension):
624 * debugger/DebuggerCallFrame.h:
625 * inspector/JSJavaScriptCallFrame.cpp:
626 (Inspector::JSJavaScriptCallFrame::thisObject const):
627 * inspector/JavaScriptCallFrame.h:
628 (Inspector::JavaScriptCallFrame::thisValue const):
629 * interpreter/CallFrame.cpp:
630 (JSC::CallFrame::lexicalGlobalObjectFromWasmCallee const):
631 (JSC::CallFrame::wasmAwareLexicalGlobalObject): Deleted.
632 * interpreter/CallFrame.h:
633 * interpreter/Interpreter.cpp:
634 (JSC::notifyDebuggerOfUnwinding):
635 (JSC::Interpreter::debug):
636 * interpreter/StackVisitor.cpp:
637 (JSC::StackVisitor::Frame::createArguments):
638 * interpreter/StackVisitor.h:
639 * llint/LLIntSlowPaths.cpp:
640 (JSC::LLInt::llint_throw_stack_overflow_error):
641 * runtime/JSFunction.cpp:
642 (JSC::RetrieveArgumentsFunctor::RetrieveArgumentsFunctor):
643 (JSC::RetrieveArgumentsFunctor::operator() const):
644 (JSC::retrieveArguments):
646 (JSC::CallFrame::lexicalGlobalObject const):
647 * runtime/RegExpInlines.h:
648 (JSC::RegExp::matchInline):
649 * wasm/js/WasmToJS.cpp:
650 (JSC::Wasm::wasmToJS):
652 2019-10-23 Keith Miller <keith_miller@apple.com>
654 Undo incidental change from BytecodeIndex class patch
655 https://bugs.webkit.org/show_bug.cgi?id=203339
657 Reviewed by Mark Lam.
659 It's not totally clear why we need to claim our bytecode index is
660 0 when we can't figure what the true index is. I'd rather unbreak
661 our build for now, however, and fix the underlying issue in
662 https://bugs.webkit.org/show_bug.cgi?id=203340
665 (JSC::getBytecodeIndex):
667 2019-10-23 Yusuke Suzuki <ysuzuki@apple.com>
669 [JSC] Figure out missing prepareCallOperation
670 https://bugs.webkit.org/show_bug.cgi?id=203285
672 Reviewed by Mark Lam.
674 We start using __builtin_frame_address to get CallFrame* in JIT operations. For the platform which is not supporting this API (MSVC),
675 we put frame-pointer to vm.topCallFrame in the caller side. The problem is that all Apple platform is now using __builtin_frame_address,
676 and we are not testing vm.topCallFrame version at all.
678 To find missing prepareCallOperation call, we introduce JITOperationPrologueCallFrameTracer. When USE(BUILTIN_FRAME_ADDRESS) is enabled and
679 if it is debug build, we anyway put frame-pointer to vm.topCallFrame. And after that, we ensure that vm.topCallFrame is the same to the
680 CallFrame* gained by __builtin_frame_address. By doing this, we can find places missing this call in debug build of Apple ports.
682 We also found that FTL's custom getter calling is putting wrong value to vm.topCallFrame. This patch fixes it too.
684 * dfg/DFGOSRExit.cpp:
685 (JSC::DFG::OSRExit::emitRestoreArguments):
686 (JSC::DFG::operationCompileOSRExit):
687 (JSC::DFG::OSRExit::compileExit):
688 (JSC::DFG::operationDebugPrintSpeculationFailure):
689 (JSC::DFG::OSRExit::compileOSRExit): Deleted.
690 (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure): Deleted.
692 * dfg/DFGOSRExitCompilerCommon.cpp:
693 (JSC::DFG::handleExitCounts):
694 (JSC::DFG::osrWriteBarrier):
695 * dfg/DFGOSRExitCompilerCommon.h:
696 * dfg/DFGOperations.cpp:
697 * dfg/DFGOperations.h:
698 * dfg/DFGSpeculativeJIT64.cpp:
699 (JSC::DFG::SpeculativeJIT::compile):
701 (JSC::DFG::osrExitThunkGenerator):
702 (JSC::DFG::osrExitGenerationThunkGenerator):
703 * ftl/FTLLowerDFGToB3.cpp:
704 (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
705 (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
706 (JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
707 (JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
708 (JSC::FTL::DFG::LowerDFGToB3::callPreflight):
709 (JSC::FTL::DFG::LowerDFGToB3::callCheck):
710 * ftl/FTLOSRExitCompiler.cpp:
711 (JSC::FTL::compileStub):
712 (JSC::FTL::operationCompileFTLOSRExit):
713 (JSC::FTL::compileFTLOSRExit): Deleted.
714 * ftl/FTLOSRExitCompiler.h:
715 * ftl/FTLOperations.cpp:
716 (JSC::FTL::operationPopulateObjectInOSR):
717 (JSC::FTL::operationMaterializeObjectInOSR):
718 (JSC::FTL::operationCompileFTLLazySlowPath):
719 (JSC::FTL::compileFTLLazySlowPath): Deleted.
720 * ftl/FTLOperations.h:
721 * ftl/FTLSlowPathCall.cpp:
722 (JSC::FTL::SlowPathCallContext::makeCall):
724 (JSC::FTL::genericGenerationThunkGenerator):
725 (JSC::FTL::osrExitGenerationThunkGenerator):
726 (JSC::FTL::lazySlowPathGenerationThunkGenerator):
727 (JSC::FTL::slowPathCallThunkGenerator):
729 (JSC::FTL::generateIfNecessary):
730 (JSC::FTL::Thunks::getSlowPathCallThunk):
731 * interpreter/FrameTracers.h:
732 (JSC::SlowPathFrameTracer::SlowPathFrameTracer):
733 (JSC::JITOperationPrologueCallFrameTracer::JITOperationPrologueCallFrameTracer):
734 (JSC::JITOperationPrologueCallFrameTracer::~JITOperationPrologueCallFrameTracer):
735 * jit/AssemblyHelpers.cpp:
736 (JSC::AssemblyHelpers::callExceptionFuzz):
737 (JSC::AssemblyHelpers::debugCall):
738 * jit/AssemblyHelpers.h:
739 (JSC::AssemblyHelpers::prepareCallOperation):
740 * jit/CCallHelpers.cpp:
741 (JSC::CCallHelpers::ensureShadowChickenPacket):
742 * jit/CCallHelpers.h:
743 (JSC::CCallHelpers::prepareCallOperation): Deleted.
744 * jit/JITOperations.cpp:
745 * jit/JITOperations.h:
747 (JSC::ftlThunkAwareRepatchCall):
748 * jit/ThunkGenerators.cpp:
749 (JSC::boundThisNoArgsFunctionCallGenerator):
750 * llint/LLIntSlowPaths.cpp:
751 (JSC::LLInt::LLINT_SLOW_PATH_DECL):
752 (JSC::LLInt::handleHostCall):
753 * runtime/AtomicsObject.cpp:
754 (JSC::operationAtomicsAdd):
755 (JSC::operationAtomicsAnd):
756 (JSC::operationAtomicsCompareExchange):
757 (JSC::operationAtomicsExchange):
758 (JSC::operationAtomicsIsLockFree):
759 (JSC::operationAtomicsLoad):
760 (JSC::operationAtomicsOr):
761 (JSC::operationAtomicsStore):
762 (JSC::operationAtomicsSub):
763 (JSC::operationAtomicsXor):
764 * runtime/CommonSlowPaths.cpp:
765 (JSC::SLOW_PATH_DECL):
766 * runtime/StringPrototype.cpp:
767 (JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
768 (JSC::operationStringProtoFuncReplaceRegExpString):
769 (JSC::operationStringProtoFuncReplaceGeneric):
770 * tools/JSDollarVM.cpp:
771 (IGNORE_WARNINGS_BEGIN):
772 * wasm/WasmAirIRGenerator.cpp:
773 (JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
774 * wasm/WasmB3IRGenerator.cpp:
775 (JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
776 * wasm/WasmOperations.cpp:
777 (JSC::Wasm::operationWasmThrowBadI64):
778 (JSC::Wasm::operationWasmTriggerOSREntryNow):
779 (JSC::Wasm::operationWasmTriggerTierUpNow):
780 (JSC::Wasm::operationThrowBadI64): Deleted.
781 (JSC::Wasm::triggerOSREntryNow): Deleted.
782 (JSC::Wasm::triggerTierUpNow): Deleted.
783 * wasm/WasmOperations.h:
784 * wasm/WasmThunks.cpp:
785 (JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):
786 * wasm/js/JSWebAssembly.cpp:
788 * wasm/js/WasmToJS.cpp:
789 (JSC::Wasm::handleBadI64Use):
790 (JSC::Wasm::operationWasmToJSException):
791 (JSC::Wasm::emitThrowWasmToJSException):
792 (JSC::Wasm::wasmToJSException): Deleted.
793 * wasm/js/WasmToJS.h:
794 * wasm/js/WebAssemblyInstanceConstructor.cpp:
795 (JSC::constructJSWebAssemblyInstance):
797 2019-10-23 Truitt Savell <tsavell@apple.com>
799 Unreviewed, rolling out r251482.
801 r251261 broke multiple tests, reverting this as part of that
806 "[ Mac WK1 ] REGRESSION (r251261): Layout Test
807 inspector/console/webcore-logging.html is consistently
809 https://bugs.webkit.org/show_bug.cgi?id=203173
810 https://trac.webkit.org/changeset/251482
812 2019-10-23 Yury Semikhatsky <yurys@chromium.org>
814 Web Inspector: notify inspector when provisional page is created, committed and destroyed
815 https://bugs.webkit.org/show_bug.cgi?id=202704
817 Reviewed by Devin Rousso.
819 * inspector/InspectorTarget.h: changed InspectorTarget to not require FrontendChannel as
820 all messages are routed by means of the owning InspectorTargetAgent.
821 * inspector/agents/InspectorTargetAgent.cpp:
822 (Inspector::InspectorTargetAgent::InspectorTargetAgent):
823 (Inspector::buildTargetInfoObject):
824 (Inspector::InspectorTargetAgent::targetCreated):
825 (Inspector::InspectorTargetAgent::targetDestroyed):
826 (Inspector::InspectorTargetAgent::didCommitProvisionalTarget): this method is used to
827 notify frontend that corresponding provisional target has committed and replaced previous
829 (Inspector::InspectorTargetAgent::connectionType const):
830 (Inspector::InspectorTargetAgent::connectToTargets):
831 (Inspector::InspectorTargetAgent::disconnectFromTargets):
832 * inspector/agents/InspectorTargetAgent.h:
833 * inspector/protocol/Target.json: extended TargetInfo with provisional page details and
834 added event which is fired when provisional page gets committed. If provisional
835 load fails there will be targetDestroyed event without corresponding commit.
837 2019-10-23 Ross Kirsling <ross.kirsling@sony.com>
839 String.prototype.matchAll should throw on non-global regex
840 https://bugs.webkit.org/show_bug.cgi?id=202838
842 Reviewed by Keith Miller.
844 * builtins/StringPrototype.js:
846 Implement normative change from https://github.com/tc39/ecma262/pull/1716.
848 * builtins/BuiltinNames.h:
849 * runtime/JSGlobalObject.cpp:
850 (JSC::JSGlobalObject::init):
851 * runtime/RegExpConstructor.cpp:
852 (JSC::esSpecIsRegExp): Added.
853 * runtime/RegExpConstructor.h:
854 Expose isRegExp to builtins. (This differs from @isRegExpObject by first checking for Symbol.match.)
856 2019-10-23 Sihui Liu <sihui_liu@apple.com>
858 [ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
859 https://bugs.webkit.org/show_bug.cgi?id=203173
860 <rdar://problem/56424721>
862 Hold a strong reference to JSGlobalOjbect in ConsoleMessage so that object is not garbage collected before
863 WebConsoleAgent::frameWindowDiscarded.
865 Covered by existing test: inspector/console/webcore-logging.html.
867 Reviewed by Geoffrey Garen.
869 * inspector/ConsoleMessage.cpp:
870 (Inspector::ConsoleMessage::ConsoleMessage):
871 (Inspector::ConsoleMessage::clear):
872 * inspector/ConsoleMessage.h:
874 2019-10-22 Yusuke Suzuki <ysuzuki@apple.com>
876 Make `JSGlobalObject*` threading change more stabilized by adding tests and assertions
877 https://bugs.webkit.org/show_bug.cgi?id=203274
879 Reviewed by Saam Barati.
881 This patch does some follow-up changes after r251425.
883 1. Add tests that tests vm.topCallFrame from C++ world to ensure that `vm.topCallFrame` is kept nullptr if it is accessed from C++ world even after executing some scripts.
884 2. Add assertion to ensure that `DECLARE_CALL_FRAME` is only called in JIT operation's prologue.
885 3. Remove some of ExecState::deprecatedVM call.
886 4. Define `USE(BUILTIN_FRAME_ADDRESS)` when using __builtin_frame_address to get CallFrame.
888 * API/tests/testapi.cpp:
889 (TestAPI::topCallFrameAccess):
891 * interpreter/CallFrame.cpp:
893 * interpreter/CallFrame.h:
894 * jit/CCallHelpers.h:
895 (JSC::CCallHelpers::prepareCallOperation):
896 * tools/VMInspector.cpp:
897 (JSC::VMInspector::dumpRegisters):
899 2019-10-22 Yusuke Suzuki <ysuzuki@apple.com>
901 Unreviewed, WinCairo build fix after r251468
902 https://bugs.webkit.org/show_bug.cgi?id=203276
906 2019-10-22 Keith Miller <keith_miller@apple.com>
908 BytecodeIndex should be a proper C++ class
909 https://bugs.webkit.org/show_bug.cgi?id=203276
911 Reviewed by Mark Lam.
913 This patch makes a change to how we refer to the bytecode index in
914 a bytecode stream. Previously we just used an unsigned number to
915 represent the index, this patch changes most of the code to use a
916 BytecodeIndex class instead. The only places where this patch does
917 not change this is for jump and switch targets / deltas.
919 Additionally, this patch attempts to canonicalize the terminology
920 around how we refer to bytecode indices. Now we use the word index
921 to refer to the bytecode index class and offset to refer to the
922 unsigned byte offset into the instruction stream.
924 * JavaScriptCore.xcodeproj/project.pbxproj:
926 * bytecode/ByValInfo.h:
927 (JSC::ByValInfo::ByValInfo):
928 (JSC::getByValInfoBytecodeIndex):
929 * bytecode/BytecodeBasicBlock.cpp:
930 (JSC::BytecodeBasicBlock::computeImpl):
931 * bytecode/BytecodeGeneratorification.cpp:
932 (JSC::GeneratorLivenessAnalysis::run):
933 * bytecode/BytecodeIndex.cpp: Added.
934 (JSC::BytecodeIndex::dump const):
935 * bytecode/BytecodeIndex.h: Added.
936 (JSC::BytecodeIndex::BytecodeIndex):
937 (JSC::BytecodeIndex::offset const):
938 (JSC::BytecodeIndex::asBits const):
939 (JSC::BytecodeIndex::hash const):
940 (JSC::BytecodeIndex::deletedValue):
941 (JSC::BytecodeIndex::isHashTableDeletedValue const):
942 (JSC::BytecodeIndex::operator bool const):
943 (JSC::BytecodeIndex::operator == const):
944 (JSC::BytecodeIndex::operator != const):
945 (JSC::BytecodeIndex::operator < const):
946 (JSC::BytecodeIndex::operator > const):
947 (JSC::BytecodeIndex::operator <= const):
948 (JSC::BytecodeIndex::operator >= const):
949 (JSC::BytecodeIndex::fromBits):
950 (JSC::BytecodeIndexHash::hash):
951 (JSC::BytecodeIndexHash::equal):
952 * bytecode/BytecodeLivenessAnalysis.cpp:
953 (JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeIndex):
954 (JSC::BytecodeLivenessAnalysis::computeFullLiveness):
955 (JSC::BytecodeLivenessAnalysis::computeKills):
956 (JSC::BytecodeLivenessAnalysis::dumpResults):
957 (JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeOffset): Deleted.
958 * bytecode/BytecodeLivenessAnalysis.h:
959 * bytecode/BytecodeLivenessAnalysisInlines.h:
960 (JSC::BytecodeLivenessPropagation::stepOverInstruction):
961 (JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeIndex):
962 (JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
963 (JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeIndex):
964 (JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeOffset): Deleted.
965 (JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeOffset): Deleted.
966 * bytecode/BytecodeUseDef.h:
967 (JSC::computeUsesForBytecodeIndex):
968 (JSC::computeDefsForBytecodeIndex):
969 (JSC::computeUsesForBytecodeOffset): Deleted.
970 (JSC::computeDefsForBytecodeOffset): Deleted.
971 * bytecode/CallLinkStatus.cpp:
972 (JSC::CallLinkStatus::computeFromLLInt):
973 (JSC::CallLinkStatus::computeFor):
974 (JSC::CallLinkStatus::computeExitSiteData):
975 * bytecode/CallLinkStatus.h:
976 * bytecode/CodeBlock.cpp:
977 (JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):
978 (JSC::CodeBlock::addRareCaseProfile):
979 (JSC::CodeBlock::rareCaseProfileForBytecodeIndex):
980 (JSC::CodeBlock::rareCaseProfileCountForBytecodeIndex):
981 (JSC::CodeBlock::handlerForBytecodeIndex):
982 (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndex):
983 (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndexSlow):
984 (JSC::CodeBlock::lineNumberForBytecodeIndex):
985 (JSC::CodeBlock::columnNumberForBytecodeIndex):
986 (JSC::CodeBlock::expressionRangeForBytecodeIndex const):
987 (JSC::CodeBlock::hasOpDebugForLineAndColumn):
988 (JSC::CodeBlock::getArrayProfile):
989 (JSC::CodeBlock::tryGetValueProfileForBytecodeIndex):
990 (JSC::CodeBlock::valueProfilePredictionForBytecodeIndex):
991 (JSC::CodeBlock::valueProfileForBytecodeIndex):
992 (JSC::CodeBlock::validate):
993 (JSC::CodeBlock::arithProfileForBytecodeIndex):
994 (JSC::CodeBlock::couldTakeSpecialArithFastCase):
995 (JSC::CodeBlock::bytecodeIndexFromCallSiteIndex):
996 (JSC::CodeBlock::rareCaseProfileForBytecodeOffset): Deleted.
997 (JSC::CodeBlock::rareCaseProfileCountForBytecodeOffset): Deleted.
998 (JSC::CodeBlock::handlerForBytecodeOffset): Deleted.
999 (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffset): Deleted.
1000 (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffsetSlow): Deleted.
1001 (JSC::CodeBlock::lineNumberForBytecodeOffset): Deleted.
1002 (JSC::CodeBlock::columnNumberForBytecodeOffset): Deleted.
1003 (JSC::CodeBlock::expressionRangeForBytecodeOffset const): Deleted.
1004 (JSC::CodeBlock::tryGetValueProfileForBytecodeOffset): Deleted.
1005 (JSC::CodeBlock::valueProfilePredictionForBytecodeOffset): Deleted.
1006 (JSC::CodeBlock::valueProfileForBytecodeOffset): Deleted.
1007 (JSC::CodeBlock::arithProfileForBytecodeOffset): Deleted.
1008 (JSC::CodeBlock::couldTakeSpecialFastCase): Deleted.
1009 (JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex): Deleted.
1010 * bytecode/CodeBlock.h:
1011 (JSC::CodeBlock::likelyToTakeSlowCase):
1012 (JSC::CodeBlock::couldTakeSlowCase):
1013 (JSC::CodeBlock::bytecodeIndex):
1014 * bytecode/CodeOrigin.cpp:
1015 (JSC::CodeOrigin::approximateHash const):
1016 (JSC::CodeOrigin::dump const):
1017 * bytecode/CodeOrigin.h:
1018 (JSC::CodeOrigin::CodeOrigin):
1019 (JSC::CodeOrigin::isSet const):
1020 (JSC::CodeOrigin::isHashTableDeletedValue const):
1021 (JSC::CodeOrigin::bytecodeIndex const):
1022 (JSC::CodeOrigin::OutOfLineCodeOrigin::OutOfLineCodeOrigin):
1023 (JSC::CodeOrigin::buildCompositeValue):
1024 (JSC::CodeOrigin::hash const):
1025 * bytecode/DFGExitProfile.cpp:
1026 (JSC::DFG::FrequentExitSite::dump const):
1027 (JSC::DFG::ExitProfile::exitSitesFor):
1028 * bytecode/DFGExitProfile.h:
1029 (JSC::DFG::FrequentExitSite::FrequentExitSite):
1030 (JSC::DFG::FrequentExitSite::operator== const):
1031 (JSC::DFG::FrequentExitSite::subsumes const):
1032 (JSC::DFG::FrequentExitSite::hash const):
1033 (JSC::DFG::FrequentExitSite::bytecodeIndex const):
1034 (JSC::DFG::FrequentExitSite::isHashTableDeletedValue const):
1035 (JSC::DFG::QueryableExitProfile::hasExitSite const):
1036 (JSC::DFG::FrequentExitSite::bytecodeOffset const): Deleted.
1037 * bytecode/DeferredSourceDump.cpp:
1038 (JSC::DeferredSourceDump::DeferredSourceDump):
1039 (JSC::DeferredSourceDump::dump):
1040 * bytecode/DeferredSourceDump.h:
1042 * bytecode/FullBytecodeLiveness.h:
1043 (JSC::FullBytecodeLiveness::getLiveness const):
1044 (JSC::FullBytecodeLiveness::operandIsLive const):
1045 * bytecode/GetByIdStatus.cpp:
1046 (JSC::GetByIdStatus::computeFromLLInt):
1047 (JSC::GetByIdStatus::computeFor):
1048 (JSC::GetByIdStatus::computeForStubInfo):
1049 * bytecode/GetByIdStatus.h:
1050 * bytecode/ICStatusUtils.cpp:
1051 (JSC::hasBadCacheExitSite):
1052 * bytecode/ICStatusUtils.h:
1053 * bytecode/InByIdStatus.cpp:
1054 (JSC::InByIdStatus::computeFor):
1055 * bytecode/InByIdStatus.h:
1056 * bytecode/InlineCallFrame.cpp:
1057 (JSC::InlineCallFrame::dumpInContext const):
1058 * bytecode/InstanceOfStatus.cpp:
1059 (JSC::InstanceOfStatus::computeFor):
1060 * bytecode/InstanceOfStatus.h:
1061 * bytecode/InstructionStream.h:
1062 (JSC::InstructionStream::BaseRef::offset const):
1063 (JSC::InstructionStream::BaseRef::index const):
1064 (JSC::InstructionStream::at const):
1065 * bytecode/LazyOperandValueProfile.h:
1066 (JSC::LazyOperandValueProfileKey::LazyOperandValueProfileKey):
1067 (JSC::LazyOperandValueProfileKey::operator== const):
1068 (JSC::LazyOperandValueProfileKey::hash const):
1069 (JSC::LazyOperandValueProfileKey::bytecodeIndex const):
1070 (JSC::LazyOperandValueProfileKey::isHashTableDeletedValue const):
1071 (JSC::LazyOperandValueProfileKey::bytecodeOffset const): Deleted.
1072 * bytecode/MethodOfGettingAValueProfile.cpp:
1073 (JSC::MethodOfGettingAValueProfile::fromLazyOperand):
1074 * bytecode/MethodOfGettingAValueProfile.h:
1075 * bytecode/PutByIdStatus.cpp:
1076 (JSC::PutByIdStatus::computeFromLLInt):
1077 (JSC::PutByIdStatus::computeFor):
1078 * bytecode/PutByIdStatus.h:
1079 * bytecode/StructureStubInfo.cpp:
1080 (JSC::StructureStubInfo::StructureStubInfo):
1081 * bytecode/UnlinkedCodeBlock.cpp:
1082 (JSC::UnlinkedCodeBlock::lineNumberForBytecodeIndex):
1083 (JSC::UnlinkedCodeBlock::expressionRangeForBytecodeIndex const):
1084 (JSC::UnlinkedCodeBlock::handlerForBytecodeIndex):
1085 (JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset): Deleted.
1086 (JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset const): Deleted.
1087 (JSC::UnlinkedCodeBlock::handlerForBytecodeOffset): Deleted.
1088 * bytecode/UnlinkedCodeBlock.h:
1089 * bytecode/ValueProfile.h:
1090 (JSC::RareCaseProfile::RareCaseProfile):
1091 (JSC::getRareCaseProfileBytecodeIndex):
1092 (JSC::getRareCaseProfileBytecodeOffset): Deleted.
1093 * bytecompiler/BytecodeGenerator.cpp:
1094 (JSC::ForInContext::finalize):
1095 * debugger/DebuggerCallFrame.cpp:
1096 (JSC::DebuggerCallFrame::currentPosition):
1097 * dfg/DFGBasicBlock.cpp:
1098 (JSC::DFG::BasicBlock::BasicBlock):
1099 * dfg/DFGBasicBlock.h:
1100 (JSC::DFG::getBytecodeBeginForBlock):
1101 (JSC::DFG::blockForBytecodeIndex):
1102 (JSC::DFG::blockForBytecodeOffset): Deleted.
1103 * dfg/DFGBlockInsertionSet.cpp:
1104 (JSC::DFG::BlockInsertionSet::insert):
1105 * dfg/DFGByteCodeParser.cpp:
1106 (JSC::DFG::ByteCodeParser::flushForTerminalImpl):
1107 (JSC::DFG::ByteCodeParser::flushIfTerminal):
1108 (JSC::DFG::ByteCodeParser::branchData):
1109 (JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
1110 (JSC::DFG::ByteCodeParser::getPrediction):
1111 (JSC::DFG::ByteCodeParser::getArrayMode):
1112 (JSC::DFG::ByteCodeParser::makeSafe):
1113 (JSC::DFG::ByteCodeParser::makeDivSafe):
1114 (JSC::DFG::ByteCodeParser::allocateTargetableBlock):
1115 (JSC::DFG::ByteCodeParser::allocateUntargetableBlock):
1116 (JSC::DFG::ByteCodeParser::makeBlockTargetable):
1117 (JSC::DFG::ByteCodeParser::handleCall):
1118 (JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
1119 (JSC::DFG::ByteCodeParser::inlineCall):
1120 (JSC::DFG::ByteCodeParser::handleCallVariant):
1121 (JSC::DFG::ByteCodeParser::handleInlining):
1122 (JSC::DFG::ByteCodeParser::parseBlock):
1123 (JSC::DFG::ByteCodeParser::linkBlock):
1124 (JSC::DFG::ByteCodeParser::parseCodeBlock):
1125 (JSC::DFG::ByteCodeParser::parse):
1126 * dfg/DFGCommonData.cpp:
1127 (JSC::DFG::CommonData::addCodeOrigin):
1128 (JSC::DFG::CommonData::addUniqueCallSiteIndex):
1129 (JSC::DFG::CommonData::lastCallSite const):
1130 * dfg/DFGCommonData.h:
1131 (JSC::DFG::CommonData::catchOSREntryDataForBytecodeIndex):
1132 (JSC::DFG::CommonData::appendCatchEntrypoint):
1133 * dfg/DFGDriver.cpp:
1134 (JSC::DFG::compileImpl):
1135 (JSC::DFG::compile):
1138 (JSC::DFG::Graph::dump):
1139 (JSC::DFG::Graph::methodOfGettingAValueProfileFor):
1140 (JSC::DFG::Graph::willCatchExceptionInMachineFrame):
1142 * dfg/DFGJITCode.cpp:
1143 (JSC::DFG::JITCode::clearOSREntryBlockAndResetThresholds):
1145 (JSC::DFG::JITCode::appendOSREntryData):
1146 (JSC::DFG::JITCode::osrEntryDataForBytecodeIndex):
1147 * dfg/DFGJITCompiler.cpp:
1148 (JSC::DFG::JITCompiler::JITCompiler):
1149 (JSC::DFG::JITCompiler::compile):
1150 (JSC::DFG::JITCompiler::compileFunction):
1151 * dfg/DFGJITCompiler.h:
1152 (JSC::DFG::JITCompiler::setStartOfCode):
1153 * dfg/DFGLiveCatchVariablePreservationPhase.cpp:
1154 (JSC::DFG::LiveCatchVariablePreservationPhase::handleBlockForTryCatch):
1155 * dfg/DFGOSREntry.cpp:
1156 (JSC::DFG::OSREntryData::dumpInContext const):
1157 (JSC::DFG::prepareOSREntry):
1158 (JSC::DFG::prepareCatchOSREntry):
1159 * dfg/DFGOSREntry.h:
1160 (JSC::DFG::getOSREntryDataBytecodeIndex):
1161 (JSC::DFG::prepareOSREntry):
1162 * dfg/DFGOSREntrypointCreationPhase.cpp:
1163 (JSC::DFG::OSREntrypointCreationPhase::run):
1164 * dfg/DFGOSRExit.cpp:
1165 (JSC::DFG::OSRExit::executeOSRExit):
1166 (JSC::DFG::reifyInlinedCallFrames):
1167 (JSC::DFG::adjustAndJumpToTarget):
1168 (JSC::DFG::printOSRExit):
1169 (JSC::DFG::OSRExit::compileExit):
1170 (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure):
1172 * dfg/DFGOSRExitCompilerCommon.cpp:
1173 (JSC::DFG::callerReturnPC):
1174 (JSC::DFG::reifyInlinedCallFrames):
1175 (JSC::DFG::adjustAndJumpToTarget):
1176 * dfg/DFGOSRExitCompilerCommon.h:
1177 * dfg/DFGOperations.cpp:
1178 * dfg/DFGOperations.h:
1180 (JSC::DFG::Plan::Plan):
1181 (JSC::DFG::Plan::compileInThreadImpl):
1182 (JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):
1184 (JSC::DFG::Plan::osrEntryBytecodeIndex const):
1185 (JSC::DFG::Plan::tierUpInLoopHierarchy):
1186 (JSC::DFG::Plan::tierUpAndOSREnterBytecodes):
1187 * dfg/DFGSSAConversionPhase.cpp:
1188 (JSC::DFG::SSAConversionPhase::run):
1189 * dfg/DFGSpeculativeJIT.cpp:
1190 (JSC::DFG::SpeculativeJIT::compileCurrentBlock):
1191 (JSC::DFG::SpeculativeJIT::checkArgumentTypes):
1192 (JSC::DFG::SpeculativeJIT::compileValueAdd):
1193 (JSC::DFG::SpeculativeJIT::compileValueSub):
1194 (JSC::DFG::SpeculativeJIT::compileValueNegate):
1195 (JSC::DFG::SpeculativeJIT::compileValueMul):
1196 (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
1197 * dfg/DFGSpeculativeJIT64.cpp:
1198 (JSC::DFG::SpeculativeJIT::compile):
1199 * dfg/DFGTierUpCheckInjectionPhase.cpp:
1200 (JSC::DFG::TierUpCheckInjectionPhase::run):
1201 (JSC::DFG::TierUpCheckInjectionPhase::buildNaturalLoopToLoopHintMap):
1202 * dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:
1203 (JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::compilationDidComplete):
1204 * dfg/DFGValidate.cpp:
1205 * ftl/FTLCompile.cpp:
1206 (JSC::FTL::compile):
1207 * ftl/FTLForOSREntryJITCode.h:
1208 (JSC::FTL::ForOSREntryJITCode::setBytecodeIndex):
1209 (JSC::FTL::ForOSREntryJITCode::bytecodeIndex const):
1210 * ftl/FTLLowerDFGToB3.cpp:
1211 (JSC::FTL::DFG::LowerDFGToB3::lower):
1212 (JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
1213 (JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
1214 (JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
1215 (JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):
1216 (JSC::FTL::DFG::LowerDFGToB3::compileValueNegate):
1217 * ftl/FTLOSREntry.cpp:
1218 (JSC::FTL::prepareOSREntry):
1219 * ftl/FTLOSREntry.h:
1220 * interpreter/CallFrame.cpp:
1221 (JSC::CallFrame::callSiteIndex const):
1222 (JSC::CallFrame::unsafeCallSiteIndex const):
1223 (JSC::CallFrame::setCurrentVPC):
1224 (JSC::CallFrame::bytecodeIndex):
1225 (JSC::CallFrame::codeOrigin):
1226 (JSC::CallFrame::dump):
1227 (JSC::CallFrame::bytecodeOffset): Deleted.
1228 * interpreter/CallFrame.h:
1229 (JSC::CallSiteIndex::CallSiteIndex):
1230 (JSC::CallSiteIndex::operator bool const):
1231 (JSC::CallSiteIndex::operator== const):
1232 (JSC::CallSiteIndex::bits const):
1233 (JSC::CallSiteIndex::bytecodeIndex const):
1234 (JSC::DisposableCallSiteIndex::DisposableCallSiteIndex):
1236 * interpreter/Interpreter.cpp:
1237 (JSC::GetStackTraceFunctor::operator() const):
1238 (JSC::findExceptionHandler):
1239 * interpreter/ShadowChicken.cpp:
1240 (JSC::ShadowChicken::update):
1241 * interpreter/StackVisitor.cpp:
1242 (JSC::StackVisitor::readNonInlinedFrame):
1243 (JSC::StackVisitor::readInlinedFrame):
1244 (JSC::StackVisitor::Frame::retrieveExpressionInfo const):
1245 (JSC::StackVisitor::Frame::dump const):
1246 * interpreter/StackVisitor.h:
1247 (JSC::StackVisitor::Frame::bytecodeIndex const):
1248 (JSC::StackVisitor::Frame::bytecodeOffset const): Deleted.
1251 (JSC::JIT::emitEnterOptimizationCheck):
1252 (JSC::JIT::privateCompileMainPass):
1253 (JSC::JIT::privateCompileSlowCases):
1254 (JSC::JIT::compileWithoutLinking):
1256 (JSC::JIT::privateCompileExceptionHandlers):
1258 (JSC::CallRecord::CallRecord):
1259 (JSC::SlowCaseEntry::SlowCaseEntry):
1260 (JSC::SwitchRecord::SwitchRecord):
1261 (JSC::ByValCompilationInfo::ByValCompilationInfo):
1263 (JSC::JIT::compileCallEvalSlowCase):
1264 (JSC::JIT::compileOpCall):
1266 (JSC::JITCodeMap::Entry::Entry):
1267 (JSC::JITCodeMap::Entry::bytecodeIndex const):
1268 (JSC::JITCodeMap::append):
1269 (JSC::JITCodeMap::find const):
1270 * jit/JITDisassembler.cpp:
1271 (JSC::JITDisassembler::dumpVectorForInstructions):
1272 (JSC::JITDisassembler::reportInstructions):
1273 * jit/JITDisassembler.h:
1275 (JSC::JIT::emitNakedCall):
1276 (JSC::JIT::emitNakedTailCall):
1277 (JSC::JIT::updateTopCallFrame):
1278 (JSC::JIT::linkAllSlowCasesForBytecodeIndex):
1279 (JSC::JIT::addSlowCase):
1280 (JSC::JIT::addJump):
1281 (JSC::JIT::emitJumpSlowToHot):
1282 (JSC::JIT::emitGetVirtualRegister):
1283 (JSC::JIT::linkAllSlowCasesForBytecodeOffset): Deleted.
1284 * jit/JITOpcodes.cpp:
1285 (JSC::JIT::emit_op_instanceof):
1286 (JSC::JIT::emit_op_catch):
1287 (JSC::JIT::emit_op_switch_imm):
1288 (JSC::JIT::emit_op_switch_char):
1289 (JSC::JIT::emit_op_switch_string):
1290 (JSC::JIT::emitSlow_op_loop_hint):
1291 (JSC::JIT::emit_op_has_indexed_property):
1292 (JSC::JIT::emit_op_log_shadow_chicken_tail):
1293 * jit/JITOpcodes32_64.cpp:
1294 (JSC::JIT::emit_op_instanceof):
1295 (JSC::JIT::emit_op_catch):
1296 (JSC::JIT::emit_op_switch_imm):
1297 (JSC::JIT::emit_op_switch_char):
1298 (JSC::JIT::emit_op_switch_string):
1299 (JSC::JIT::emit_op_has_indexed_property):
1300 * jit/JITOperations.cpp:
1302 (JSC::tryGetByValOptimize):
1303 * jit/JITPropertyAccess.cpp:
1304 (JSC::JIT::emit_op_get_by_val):
1305 (JSC::JIT::emitGetByValWithCachedId):
1306 (JSC::JIT::emit_op_put_by_val):
1307 (JSC::JIT::emitPutByValWithCachedId):
1308 (JSC::JIT::emit_op_try_get_by_id):
1309 (JSC::JIT::emit_op_get_by_id_direct):
1310 (JSC::JIT::emit_op_get_by_id):
1311 (JSC::JIT::emit_op_get_by_id_with_this):
1312 (JSC::JIT::emit_op_put_by_id):
1313 (JSC::JIT::emit_op_in_by_id):
1314 * jit/JITWorklist.cpp:
1315 (JSC::JITWorklist::Plan::Plan):
1316 (JSC::JITWorklist::Plan::compileNow):
1317 (JSC::JITWorklist::compileLater):
1318 (JSC::JITWorklist::compileNow):
1319 * jit/JITWorklist.h:
1320 * jit/PCToCodeOriginMap.cpp:
1321 (JSC::PCToCodeOriginMap::PCToCodeOriginMap):
1322 (JSC::PCToCodeOriginMap::findPC const):
1323 * jit/PCToCodeOriginMap.h:
1324 (JSC::PCToCodeOriginMapBuilder::defaultCodeOrigin):
1325 * jit/SlowPathCall.h:
1326 (JSC::JITSlowPathCall::call):
1327 * llint/LLIntSlowPaths.cpp:
1328 (JSC::LLInt::jitCompileAndSetHeuristics):
1329 (JSC::LLInt::LLINT_SLOW_PATH_DECL):
1330 * profiler/ProfilerOrigin.cpp:
1331 (JSC::Profiler::Origin::Origin):
1332 (JSC::Profiler::Origin::dump const):
1333 (JSC::Profiler::Origin::toJS const):
1334 * profiler/ProfilerOrigin.h:
1335 (JSC::Profiler::Origin::Origin):
1336 (JSC::Profiler::Origin::operator! const):
1337 (JSC::Profiler::Origin::bytecodeIndex const):
1338 (JSC::Profiler::Origin::hash const):
1339 (JSC::Profiler::Origin::isHashTableDeletedValue const):
1340 * runtime/Error.cpp:
1341 (JSC::getBytecodeIndex):
1342 (JSC::getBytecodeOffset): Deleted.
1344 * runtime/ErrorInstance.cpp:
1345 (JSC::appendSourceToError):
1346 (JSC::ErrorInstance::finishCreation):
1347 * runtime/SamplingProfiler.cpp:
1348 (JSC::tryGetBytecodeIndex):
1349 (JSC::SamplingProfiler::processUnverifiedStackTraces):
1350 (JSC::SamplingProfiler::reportTopBytecodes):
1351 * runtime/SamplingProfiler.h:
1352 (JSC::SamplingProfiler::StackFrame::CodeLocation::hasBytecodeIndex const):
1353 * runtime/StackFrame.cpp:
1354 (JSC::StackFrame::StackFrame):
1355 (JSC::StackFrame::computeLineAndColumn const):
1356 * runtime/StackFrame.h:
1357 (JSC::StackFrame::hasBytecodeIndex const):
1358 (JSC::StackFrame::bytecodeIndex):
1359 (JSC::StackFrame::hasBytecodeOffset const): Deleted.
1360 (JSC::StackFrame::bytecodeOffset): Deleted.
1361 * tools/VMInspector.cpp:
1362 (JSC::VMInspector::dumpRegisters):
1364 2019-10-22 Yusuke Suzuki <ysuzuki@apple.com>
1366 Unreviewed, make 32bit JIT built
1367 https://bugs.webkit.org/show_bug.cgi?id=202392
1369 This patch makes 32bit JIT built at least.
1371 * jit/JITOpcodes32_64.cpp:
1372 (JSC::JIT::emit_op_throw):
1373 * jit/JITPropertyAccess32_64.cpp:
1374 (JSC::JIT::emitGetByValWithCachedId):
1375 (JSC::JIT::emitSlow_op_get_by_id_direct):
1376 (JSC::JIT::emitSlow_op_get_by_id):
1377 (JSC::JIT::emitSlow_op_get_by_id_with_this):
1378 (JSC::JIT::emitSlow_op_get_from_scope):
1380 2019-10-22 Yusuke Suzuki <ysuzuki@apple.com>
1382 [JSC] Remove non-LargeAllocation restriction for JSCallee
1383 https://bugs.webkit.org/show_bug.cgi?id=203260
1385 Reviewed by Saam Barati.
1387 We now pass JSGlobalObject* instead of ExecState*. And we are getting VM& from JSGlobalObject*.
1388 Because now accessing ExecState::vm() becomes less frequent, we can remove the restriction that
1389 callee is only allocated in non-LargeAllocation, which restriction made ExecState::vm fast.
1391 This patch renames `CallFrame::vm` to `CallFrame::deprecatedVM`. And we avoid using it as much as possible.
1392 And we also remove the restriction that callee needs to be in non-LargeAllocation.
1394 * API/JSContextRef.cpp:
1395 (JSContextCreateBacktrace):
1396 * bytecode/CodeBlock.cpp:
1397 (JSC::CodeBlock::noticeIncomingCall):
1398 * debugger/DebuggerCallFrame.cpp:
1399 (JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const):
1400 (JSC::DebuggerCallFrame::functionName const):
1401 (JSC::DebuggerCallFrame::scope):
1402 (JSC::DebuggerCallFrame::type const):
1403 (JSC::DebuggerCallFrame::evaluateWithScopeExtension):
1404 (JSC::DebuggerCallFrame::positionForCallFrame):
1405 * dfg/DFGOSRExit.cpp:
1406 (JSC::DFG::OSRExit::executeOSRExit):
1407 (JSC::DFG::OSRExit::compileOSRExit):
1408 (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure):
1409 * dfg/DFGOperations.cpp:
1410 * ftl/FTLOSRExitCompiler.cpp:
1411 (JSC::FTL::compileFTLOSRExit):
1412 * ftl/FTLOperations.cpp:
1413 (JSC::FTL::compileFTLLazySlowPath):
1414 * inspector/JSInjectedScriptHost.cpp:
1415 (Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
1416 * inspector/ScriptCallStackFactory.cpp:
1417 (Inspector::createScriptCallStack):
1418 (Inspector::createScriptCallStackForConsole):
1419 * interpreter/CallFrame.cpp:
1420 (JSC::CallFrame::callerSourceOrigin):
1421 (JSC::CallFrame::friendlyFunctionName):
1422 * interpreter/CallFrame.h:
1423 (JSC::CallFrame::iterate):
1424 * interpreter/Interpreter.cpp:
1425 (JSC::sizeOfVarargs):
1426 (JSC::sizeFrameForVarargs):
1427 (JSC::Interpreter::getStackTrace):
1428 (JSC::Interpreter::unwind):
1429 (JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
1430 (JSC::Interpreter::debug):
1431 * interpreter/Interpreter.h:
1432 * interpreter/ShadowChicken.cpp:
1433 (JSC::ShadowChicken::update):
1434 * interpreter/StackVisitor.cpp:
1435 (JSC::StackVisitor::StackVisitor):
1436 (JSC::StackVisitor::Frame::functionName const):
1437 * interpreter/StackVisitor.h:
1438 (JSC::StackVisitor::visit):
1439 * jit/HostCallReturnValue.cpp:
1440 (JSC::getHostCallReturnValueWithExecState):
1441 * jit/JITOperations.cpp:
1444 (JSC::linkPolymorphicCall):
1448 (functionRunString):
1449 (functionLoadString):
1450 (functionCallerSourceOrigin):
1451 (functionCallerIsOMGCompiled):
1452 (functionDollarEvalScript):
1453 * llint/LLIntSlowPaths.cpp:
1454 (JSC::LLInt::LLINT_SLOW_PATH_DECL):
1455 * runtime/Error.cpp:
1456 (JSC::getBytecodeOffset):
1457 * runtime/FunctionConstructor.cpp:
1458 (JSC::constructFunction):
1459 * runtime/JSCellInlines.h:
1460 (JSC::CallFrame::deprecatedVM const):
1461 (JSC::CallFrame::vm const): Deleted.
1462 * runtime/JSFunction.cpp:
1463 (JSC::retrieveArguments):
1464 (JSC::JSFunction::argumentsGetter):
1465 (JSC::retrieveCallerFunction):
1466 (JSC::JSFunction::callerGetter):
1467 (JSC::JSFunction::defineOwnProperty):
1468 * runtime/JSGlobalObject.cpp:
1470 * runtime/JSGlobalObjectFunctions.cpp:
1471 (JSC::globalFuncEval):
1472 (JSC::globalFuncImportModule):
1473 * runtime/NullSetterFunction.cpp:
1474 (JSC::callerIsStrict):
1475 (JSC::NullSetterFunctionInternal::callReturnUndefined):
1476 * tools/JSDollarVM.cpp:
1477 (IGNORE_WARNINGS_BEGIN):
1478 (JSC::functionLLintTrue):
1479 (JSC::functionJITTrue):
1480 (JSC::functionDumpRegisters):
1481 (JSC::functionShadowChickenFunctionsOnStack):
1482 * tools/VMInspector.cpp:
1483 (JSC::VMInspector::codeBlockForFrame):
1484 (JSC::VMInspector::dumpCallFrame):
1485 (JSC::VMInspector::dumpRegisters):
1486 (JSC::VMInspector::dumpStack):
1487 * wasm/js/WasmToJS.cpp:
1488 (JSC::Wasm::wasmToJS):
1490 2019-10-22 Mark Lam <mark.lam@apple.com>
1492 Clients of JSArray::tryCreateUninitializedRestricted() should invoke the mutatorFence().
1493 https://bugs.webkit.org/show_bug.cgi?id=203231
1494 <rdar://problem/56486552>
1496 Reviewed by Saam Barati.
1498 Clients of JSArray::tryCreateUninitializedRestricted() creates a partially
1499 initialized JSArray butterfly, with the contract that it (the client) will take
1500 care of filling in all the missing indexed properties before setting the newly
1501 created array loose in the world. We intentionally do not unconditionally write
1502 barrier the newly created array but, instead, rely on an owner object (or GC root)
1503 that it gets put into to scan it.
1505 That said, we do need to ensure that all the stores are completed before this
1506 array is put in an owner object (or GC root) which makes it scannable by the GC.
1507 This ensures that the GC will not be scanning a partially initialized array
1508 butterfly. To achieve this, we should invoke the mutatorFence after the clients
1509 of JSArray::tryCreateUninitializedRestricted() finish initializing the array.
1511 By design, all clients of tryCreateUninitializedRestricted() must instantiate an
1512 ObjectInitializationScope RAII object. This patch makes use of the
1513 ObjectInitializationScope destructor to invoke the mutatorFence.
1515 Note: we technically only need to invoke the fence if we succeeded in allocating
1516 the array. However, we just invoke the fence unconditionally because we expect
1517 that in the common path, we will succeed in allocating the array. The release
1518 build version of ObjectInitializationScope does not keep record of whether we
1519 succeed in allocating the array anyway. To keep the behavior consistent, the
1520 debug build version of ObjectInitializationScope will also unconditionally
1521 invoke the fence even if we failed to allocate the array.
1523 This patch also does the following:
1525 1. Replaced the setting of the public length in arrayProtoPrivateFuncConcatMemcpy()
1526 with an assertion. The public length was already set by
1527 tryCreateUninitializedRestricted() earlier.
1529 Ditto for JSArray::fastSlice().
1531 2. Removed a redundant instance of ObjectInitializationScope in
1532 createEmptyRegExpMatchesArray().
1534 * runtime/ArrayPrototype.cpp:
1535 (JSC::arrayProtoPrivateFuncConcatMemcpy):
1536 * runtime/JSArray.cpp:
1537 (JSC::JSArray::fastSlice):
1538 * runtime/ObjectInitializationScope.cpp:
1539 (JSC::ObjectInitializationScope::~ObjectInitializationScope):
1540 * runtime/ObjectInitializationScope.h:
1541 (JSC::ObjectInitializationScope::~ObjectInitializationScope):
1542 * runtime/RegExpMatchesArray.cpp:
1543 (JSC::createEmptyRegExpMatchesArray):
1545 2019-10-22 Mark Lam <mark.lam@apple.com>
1547 Fix incorrect assertion in operationRegExpExecNonGlobalOrSticky().
1548 https://bugs.webkit.org/show_bug.cgi?id=203230
1549 <rdar://problem/56460749>
1551 Reviewed by Robin Morisset.
1553 operationRegExpExecNonGlobalOrSticky() was asserting no exception when
1554 createRegExpMatchesArray() returns null. createRegExpMatchesArray() only returns
1555 null when RegExp::matchInline() returns -1. RegExp::matchInline() can return -1
1556 either when there's an error, or if the match fails. When there's an error,
1557 RegExp::matchInline() also throws an exception via a throwError() helper.
1559 This patch fixes operationRegExpExecNonGlobalOrSticky() to check for an exception
1560 being thrown, or createRegExpMatchesArray() returning a null array due to a failed
1563 * dfg/DFGOperations.cpp:
1565 2019-10-22 Adrian Perez de Castro <aperez@igalia.com>
1567 [GTK][WPE] Fix non-unified builds after r251326
1568 https://bugs.webkit.org/show_bug.cgi?id=203244
1570 Reviewed by Youenn Fablet.
1572 * ftl/FTLOSREntry.h: Add missing forward declaration of JSC::VM.
1573 * inspector/ScriptCallStackFactory.h: Add missing forward declaration of JSC::JSGlobalObject.
1574 * llint/LLIntExceptions.h: Add missing forward declaration of JSC::VM.
1575 * runtime/ExceptionFuzz.h: Add missing forward declaration of JSC::JSGlobalObject.
1576 * runtime/JSDateMath.h: Ditto.
1577 * runtime/JSStringJoiner.h: Add missing inclusion of the JSGlobalObject.h header.
1578 * runtime/Watchdog.h: Add missing forward declaration of JSC::JSGlobalObject.
1579 * wasm/WasmOperations.h: Add missing forward declaration of JSC::JSWebAssemblyInstance.
1581 2019-10-21 Yusuke Suzuki <ysuzuki@apple.com>
1583 [JSC] Thread JSGlobalObject* instead of ExecState*
1584 https://bugs.webkit.org/show_bug.cgi?id=202392
1586 Reviewed by Geoffrey Garen.
1588 This patch replaces JSC's convention entirely: instead of passing ExecState*, we pass lexical JSGlobalObject*.
1589 We have many issues historically.
1591 1. We have a hack like global-exec, since many runtime functions take ExecState* while valid ExecState* is populated only after executing some JS function.
1592 2. We pass ExecState* without considering whether this is correct one when inlining a function. If inlined function has different realm, `exec->lexicalGlobalObject()` just returns wrong JSGlobalObject*.
1594 This patch attempts to remove these issues entirely by passing JSGlobalObject* instead of ExecState*.
1596 1. We change ExecState* to JSGlobalObject*.
1597 2. JIT operations should take JSGlobalObject* instead of ExecState* to reflect the inlinee's JSGlobalObject* correctly.
1598 3. We get CallFrame* by using `__builtin_frame_address(1)` in JIT operations. When it is not available, we put CallFrame* to `vm.topCallFrame` in the caller side and load it from VM.
1599 4. We remove ExecState*. All the actual call-frame is called `CallFrame*`. CallFrame* is passed only when CallFrame* is actually needed: accessing arguments, OSR etc.
1600 5. LLInt and Baseline slow paths are just getting CallFrame*. It gets CodeBlock from CallFrame* and getting VM& and JSGlobalObject* from it since they do not have inlining.
1601 6. We basically removed `VM::vmEntryGlobalObject`. It returns JSGlobalObject* from VMEntryScope. APIs and Completion.cpp use this but they are wrong. And by using lexical JSGlobalObject*, we fixed WPT issues.
1602 7. This patch does not fix complicated JSGlobalObject* issues. But we put FIXME if it seems wrong and it needs to be revisited.
1603 8. FunctionConstructor, ArrayConstructor etc. are exposed from JSGlobalObject to use it for InternalFunction::createStructure() without using `CallFrame*`.
1605 * API/APICallbackFunction.h:
1606 (JSC::APICallbackFunction::call):
1607 (JSC::APICallbackFunction::construct):
1615 (handleExceptionIfNeeded):
1617 * API/JSAPIGlobalObject.h:
1618 * API/JSAPIGlobalObject.mm:
1619 (JSC::JSAPIGlobalObject::moduleLoaderResolve):
1620 (JSC::JSAPIGlobalObject::moduleLoaderImportModule):
1621 (JSC::JSAPIGlobalObject::moduleLoaderFetch):
1622 (JSC::JSAPIGlobalObject::moduleLoaderCreateImportMetaProperties):
1623 (JSC::JSAPIGlobalObject::moduleLoaderEvaluate):
1624 (JSC::JSAPIGlobalObject::loadAndEvaluateJSScriptModule):
1625 * API/JSAPIValueWrapper.h:
1627 (JSEvaluateScriptInternal):
1629 (JSCheckScriptSyntax):
1631 (JSReportExtraMemoryCost):
1632 (JSSynchronousGarbageCollectForDebugging):
1633 (JSSynchronousEdenCollectForDebugging):
1634 * API/JSBaseInternal.h:
1635 * API/JSCTestRunnerUtils.cpp:
1636 (JSC::failNextNewCodeBlock):
1637 (JSC::numberOfDFGCompiles):
1638 (JSC::setNeverInline):
1639 (JSC::setNeverOptimize):
1640 * API/JSCallbackConstructor.h:
1641 * API/JSCallbackObject.h:
1642 * API/JSCallbackObjectFunctions.h:
1643 (JSC::JSCallbackObject<Parent>::JSCallbackObject):
1644 (JSC::JSCallbackObject<Parent>::finishCreation):
1645 (JSC::JSCallbackObject<Parent>::init):
1646 (JSC::JSCallbackObject<Parent>::toStringName):
1647 (JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
1648 (JSC::JSCallbackObject<Parent>::getOwnPropertySlotByIndex):
1649 (JSC::JSCallbackObject<Parent>::defaultValue):
1650 (JSC::JSCallbackObject<Parent>::put):
1651 (JSC::JSCallbackObject<Parent>::putByIndex):
1652 (JSC::JSCallbackObject<Parent>::deleteProperty):
1653 (JSC::JSCallbackObject<Parent>::deletePropertyByIndex):
1654 (JSC::JSCallbackObject<Parent>::construct):
1655 (JSC::JSCallbackObject<Parent>::customHasInstance):
1656 (JSC::JSCallbackObject<Parent>::call):
1657 (JSC::JSCallbackObject<Parent>::getOwnNonIndexPropertyNames):
1658 (JSC::JSCallbackObject<Parent>::getStaticValue):
1659 (JSC::JSCallbackObject<Parent>::staticFunctionGetter):
1660 (JSC::JSCallbackObject<Parent>::callbackGetter):
1661 * API/JSClassRef.cpp:
1662 (OpaqueJSClass::contextData):
1663 (OpaqueJSClass::staticValues):
1664 (OpaqueJSClass::staticFunctions):
1665 (OpaqueJSClass::prototype):
1668 (-[JSContext ensureWrapperMap]):
1669 (-[JSContext evaluateJSScript:]):
1670 (-[JSContext dependencyIdentifiersForModuleJSScript:]):
1671 (-[JSContext setException:]):
1672 (-[JSContext initWithGlobalContextRef:]):
1673 (-[JSContext wrapperMap]):
1674 * API/JSContextRef.cpp:
1675 (internalScriptTimeoutCallback):
1676 (JSGlobalContextCreateInGroup):
1677 (JSGlobalContextRetain):
1678 (JSGlobalContextRelease):
1679 (JSContextGetGlobalObject):
1680 (JSContextGetGroup):
1681 (JSContextGetGlobalContext):
1682 (JSGlobalContextCopyName):
1683 (JSGlobalContextSetName):
1684 (JSGlobalContextSetUnhandledRejectionCallback):
1685 (JSContextCreateBacktrace):
1686 (JSGlobalContextGetRemoteInspectionEnabled):
1687 (JSGlobalContextSetRemoteInspectionEnabled):
1688 (JSGlobalContextGetIncludesNativeCallStackWhenReportingExceptions):
1689 (JSGlobalContextSetIncludesNativeCallStackWhenReportingExceptions):
1690 (JSGlobalContextGetDebuggerRunLoop):
1691 (JSGlobalContextSetDebuggerRunLoop):
1692 (JSGlobalContextGetAugmentableInspectorController):
1693 * API/JSManagedValue.mm:
1694 (-[JSManagedValue initWithValue:]):
1695 (-[JSManagedValue value]):
1696 * API/JSObjectRef.cpp:
1698 (JSObjectMakeFunctionWithCallback):
1699 (JSObjectMakeConstructor):
1700 (JSObjectMakeFunction):
1701 (JSObjectMakeArray):
1703 (JSObjectMakeError):
1704 (JSObjectMakeRegExp):
1705 (JSObjectMakeDeferredPromise):
1706 (JSObjectGetPrototype):
1707 (JSObjectSetPrototype):
1708 (JSObjectHasProperty):
1709 (JSObjectGetProperty):
1710 (JSObjectSetProperty):
1711 (JSObjectHasPropertyForKey):
1712 (JSObjectGetPropertyForKey):
1713 (JSObjectSetPropertyForKey):
1714 (JSObjectDeletePropertyForKey):
1715 (JSObjectGetPropertyAtIndex):
1716 (JSObjectSetPropertyAtIndex):
1717 (JSObjectDeleteProperty):
1718 (JSObjectGetPrivateProperty):
1719 (JSObjectSetPrivateProperty):
1720 (JSObjectDeletePrivateProperty):
1721 (JSObjectIsFunction):
1722 (JSObjectCallAsFunction):
1723 (JSObjectIsConstructor):
1724 (JSObjectCallAsConstructor):
1725 (JSObjectCopyPropertyNames):
1726 (JSObjectGetGlobalContext):
1727 * API/JSScriptRef.cpp:
1728 * API/JSTypedArray.cpp:
1730 (JSValueGetTypedArrayType):
1731 (JSObjectMakeTypedArray):
1732 (JSObjectMakeTypedArrayWithBytesNoCopy):
1733 (JSObjectMakeTypedArrayWithArrayBuffer):
1734 (JSObjectMakeTypedArrayWithArrayBufferAndOffset):
1735 (JSObjectGetTypedArrayBytesPtr):
1736 (JSObjectGetTypedArrayLength):
1737 (JSObjectGetTypedArrayByteLength):
1738 (JSObjectGetTypedArrayByteOffset):
1739 (JSObjectGetTypedArrayBuffer):
1740 (JSObjectMakeArrayBufferWithBytesNoCopy):
1741 (JSObjectGetArrayBufferBytesPtr):
1742 (JSObjectGetArrayBufferByteLength):
1744 (JSContainerConvertor::add):
1745 (reportExceptionToInspector):
1746 (valueToObjectWithoutCopy):
1747 (ObjcContainerConvertor::add):
1748 * API/JSValueRef.cpp:
1750 (JSValueIsUndefined):
1759 (JSValueIsObjectOfClass):
1761 (JSValueIsStrictEqual):
1762 (JSValueIsInstanceOfConstructor):
1763 (JSValueMakeUndefined):
1765 (JSValueMakeBoolean):
1766 (JSValueMakeNumber):
1767 (JSValueMakeSymbol):
1768 (JSValueMakeString):
1769 (JSValueMakeFromJSONString):
1770 (JSValueCreateJSONString):
1773 (JSValueToStringCopy):
1777 * API/JSWeakObjectMapRefPrivate.cpp:
1778 * API/JSWrapperMap.mm:
1779 (constructorHasInstance):
1782 (copyMethodsToObject):
1783 (-[JSObjCClassInfo wrapperForObject:inContext:]):
1784 (-[JSObjCClassInfo structureInContext:]):
1785 * API/ObjCCallbackFunction.mm:
1786 (JSC::objCCallbackFunctionCallAsFunction):
1787 (JSC::objCCallbackFunctionCallAsConstructor):
1788 (objCCallbackFunctionForInvocation):
1789 * API/glib/JSCCallbackFunction.cpp:
1790 (JSC::JSCCallbackFunction::call):
1791 (JSC::JSCCallbackFunction::construct):
1792 * API/glib/JSCClass.cpp:
1794 (jscContextForObject):
1795 (jscClassCreateConstructor):
1796 (jscClassAddMethod):
1797 * API/glib/JSCContext.cpp:
1798 (jsc_context_evaluate_in_object):
1799 (jsc_context_check_syntax):
1800 * API/glib/JSCException.cpp:
1801 (jscExceptionCreate):
1802 * API/glib/JSCValue.cpp:
1803 (jsc_value_object_define_property_data):
1804 (jsc_value_object_define_property_accessor):
1805 (jscValueFunctionCreate):
1806 * API/glib/JSCWeakValue.cpp:
1807 (jscWeakValueInitialize):
1808 (jsc_weak_value_get_value):
1809 * API/glib/JSCWrapperMap.cpp:
1810 (JSC::WrapperMap::createJSWrappper):
1811 (JSC::WrapperMap::createContextWithJSWrappper):
1812 * API/tests/JSONParseTest.cpp:
1814 * API/tests/JSObjectGetProxyTargetTest.cpp:
1815 (testJSObjectGetProxyTarget):
1816 * API/tests/JSWrapperMapTests.mm:
1817 (+[JSWrapperMapTests testStructureIdentity]):
1818 * API/tests/testapi.cpp:
1819 (APIContext::APIContext):
1820 (APIContext::operator JSC::JSGlobalObject*):
1821 (APIContext::operator JSC::ExecState*): Deleted.
1823 * JavaScriptCore.xcodeproj/project.pbxproj:
1824 * bindings/ScriptFunctionCall.cpp:
1825 (Deprecated::ScriptCallArgumentHandler::appendArgument):
1826 (Deprecated::ScriptFunctionCall::ScriptFunctionCall):
1827 (Deprecated::ScriptFunctionCall::call):
1828 * bindings/ScriptFunctionCall.h:
1829 * bindings/ScriptObject.cpp:
1830 (Deprecated::ScriptObject::ScriptObject):
1831 * bindings/ScriptObject.h:
1832 (Deprecated::ScriptObject::globalObject const):
1833 (Deprecated::ScriptObject::scriptState const): Deleted.
1834 * bindings/ScriptValue.cpp:
1835 (Inspector::jsToInspectorValue):
1836 (Inspector::toInspectorValue):
1837 * bindings/ScriptValue.h:
1838 * bytecode/AccessCase.cpp:
1839 (JSC::AccessCase::generateImpl):
1840 * bytecode/AccessCaseSnippetParams.cpp:
1841 (JSC::SlowPathCallGeneratorWithArguments::generateImpl):
1842 * bytecode/CodeBlock.cpp:
1843 (JSC::CodeBlock::finishCreation):
1844 (JSC::CodeBlock::setConstantIdentifierSetRegisters):
1845 (JSC::CodeBlock::setConstantRegisters):
1846 (JSC::CodeBlock::linkIncomingCall):
1847 (JSC::CodeBlock::linkIncomingPolymorphicCall):
1848 (JSC::CodeBlock::noticeIncomingCall):
1849 * bytecode/CodeBlock.h:
1850 (JSC::CallFrame::r):
1851 (JSC::CallFrame::uncheckedR):
1852 (JSC::ExecState::r): Deleted.
1853 (JSC::ExecState::uncheckedR): Deleted.
1854 * bytecode/DirectEvalCodeCache.cpp:
1855 (JSC::DirectEvalCodeCache::setSlow):
1856 * bytecode/DirectEvalCodeCache.h:
1857 (JSC::DirectEvalCodeCache::set):
1858 * bytecode/InlineCallFrame.cpp:
1859 (JSC::InlineCallFrame::calleeForCallFrame const):
1860 * bytecode/InlineCallFrame.h:
1861 * bytecode/InternalFunctionAllocationProfile.h:
1862 (JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):
1863 * bytecode/ObjectPropertyConditionSet.cpp:
1864 (JSC::generateConditionsForPropertyMiss):
1865 (JSC::generateConditionsForPropertySetterMiss):
1866 (JSC::generateConditionsForPrototypePropertyHit):
1867 (JSC::generateConditionsForPrototypePropertyHitCustom):
1868 (JSC::generateConditionsForInstanceOf):
1869 * bytecode/ObjectPropertyConditionSet.h:
1870 * bytecode/PolymorphicAccess.cpp:
1871 (JSC::AccessGenerationState::emitExplicitExceptionHandler):
1872 * bytecode/StructureStubInfo.h:
1873 (JSC::appropriateGenericGetByIdFunction):
1874 * bytecode/UnlinkedFunctionExecutable.cpp:
1875 (JSC::UnlinkedFunctionExecutable::fromGlobalCode):
1876 * bytecode/UnlinkedFunctionExecutable.h:
1877 * bytecode/ValueRecovery.cpp:
1878 (JSC::ValueRecovery::recover const):
1879 * bytecode/ValueRecovery.h:
1880 * debugger/Debugger.cpp:
1881 (JSC::Debugger::attach):
1882 (JSC::Debugger::hasBreakpoint):
1883 (JSC::Debugger::breakProgram):
1884 (JSC::lexicalGlobalObjectForCallFrame):
1885 (JSC::Debugger::updateCallFrame):
1886 (JSC::Debugger::pauseIfNeeded):
1887 (JSC::Debugger::exception):
1888 (JSC::Debugger::atStatement):
1889 (JSC::Debugger::atExpression):
1890 (JSC::Debugger::callEvent):
1891 (JSC::Debugger::returnEvent):
1892 (JSC::Debugger::unwindEvent):
1893 (JSC::Debugger::willExecuteProgram):
1894 (JSC::Debugger::didExecuteProgram):
1895 (JSC::Debugger::didReachBreakpoint):
1896 * debugger/Debugger.h:
1897 * debugger/DebuggerCallFrame.cpp:
1898 (JSC::DebuggerCallFrame::create):
1899 (JSC::DebuggerCallFrame::globalObject):
1900 (JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const):
1901 (JSC::DebuggerCallFrame::thisValue const):
1902 (JSC::DebuggerCallFrame::evaluateWithScopeExtension):
1903 (JSC::DebuggerCallFrame::sourceIDForCallFrame):
1904 (JSC::DebuggerCallFrame::globalExec): Deleted.
1905 (JSC::DebuggerCallFrame::vmEntryGlobalObject const): Deleted.
1906 * debugger/DebuggerCallFrame.h:
1907 * debugger/DebuggerEvalEnabler.h:
1908 (JSC::DebuggerEvalEnabler::DebuggerEvalEnabler):
1909 (JSC::DebuggerEvalEnabler::~DebuggerEvalEnabler):
1910 * debugger/DebuggerScope.cpp:
1911 (JSC::DebuggerScope::toStringName):
1912 (JSC::DebuggerScope::getOwnPropertySlot):
1913 (JSC::DebuggerScope::put):
1914 (JSC::DebuggerScope::deleteProperty):
1915 (JSC::DebuggerScope::getOwnPropertyNames):
1916 (JSC::DebuggerScope::defineOwnProperty):
1917 (JSC::DebuggerScope::caughtValue const):
1918 * debugger/DebuggerScope.h:
1919 * dfg/DFGAbstractInterpreterInlines.h:
1920 (JSC::DFG::AbstractInterpreter<AbstractStateType>::booleanResult):
1921 (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
1922 * dfg/DFGArithMode.h:
1923 * dfg/DFGArrayifySlowPathGenerator.h:
1924 * dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
1925 (JSC::DFG::CallArrayAllocatorSlowPathGenerator::CallArrayAllocatorSlowPathGenerator):
1926 (JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableSizeSlowPathGenerator):
1927 (JSC::DFG::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator):
1928 * dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
1930 (JSC::DFG::Graph::globalThisObjectFor):
1931 * dfg/DFGJITCode.cpp:
1932 (JSC::DFG::JITCode::reconstruct):
1934 * dfg/DFGJITCompiler.cpp:
1935 (JSC::DFG::JITCompiler::compileExceptionHandlers):
1936 (JSC::DFG::JITCompiler::compileFunction):
1937 * dfg/DFGOSREntry.cpp:
1938 (JSC::DFG::prepareOSREntry):
1939 (JSC::DFG::prepareCatchOSREntry):
1940 * dfg/DFGOSREntry.h:
1941 (JSC::DFG::prepareOSREntry):
1942 * dfg/DFGOSRExit.cpp:
1943 (JSC::DFG::createClonedArgumentsDuringExit):
1944 (JSC::DFG::OSRExit::executeOSRExit):
1945 (JSC::DFG::adjustAndJumpToTarget):
1946 (JSC::DFG::printOSRExit):
1947 (JSC::DFG::OSRExit::emitRestoreArguments):
1948 (JSC::DFG::OSRExit::compileOSRExit):
1949 (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure):
1951 * dfg/DFGOSRExitCompilerCommon.cpp:
1952 (JSC::DFG::osrWriteBarrier):
1953 (JSC::DFG::adjustAndJumpToTarget):
1954 * dfg/DFGOperations.cpp:
1955 (JSC::DFG::putByVal):
1956 (JSC::DFG::putByValInternal):
1957 (JSC::DFG::putByValCellInternal):
1958 (JSC::DFG::putByValCellStringInternal):
1959 (JSC::DFG::newTypedArrayWithSize):
1960 (JSC::DFG::putWithThis):
1961 (JSC::DFG::binaryOp):
1962 (JSC::DFG::bitwiseBinaryOp):
1963 (JSC::DFG::getByValObject):
1964 * dfg/DFGOperations.h:
1965 * dfg/DFGSaneStringGetByValSlowPathGenerator.h:
1966 (JSC::DFG::SaneStringGetByValSlowPathGenerator::SaneStringGetByValSlowPathGenerator):
1967 * dfg/DFGSpeculativeJIT.cpp:
1968 (JSC::DFG::SpeculativeJIT::compileInById):
1969 (JSC::DFG::SpeculativeJIT::compileInByVal):
1970 (JSC::DFG::SpeculativeJIT::compileDeleteById):
1971 (JSC::DFG::SpeculativeJIT::compileDeleteByVal):
1972 (JSC::DFG::SpeculativeJIT::compilePushWithScope):
1973 (JSC::DFG::SpeculativeJIT::compileStringSlice):
1974 (JSC::DFG::SpeculativeJIT::compileToLowerCase):
1975 (JSC::DFG::SpeculativeJIT::compileCheckTraps):
1976 (JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
1977 (JSC::DFG::SpeculativeJIT::compileGetByValOnString):
1978 (JSC::DFG::SpeculativeJIT::compileFromCharCode):
1979 (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
1980 (JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
1981 (JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
1982 (JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString):
1983 (JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol):
1984 (JSC::DFG::SpeculativeJIT::compileGetByValWithThis):
1985 (JSC::DFG::SpeculativeJIT::compileParseInt):
1986 (JSC::DFG::SpeculativeJIT::compileInstanceOfForCells):
1987 (JSC::DFG::SpeculativeJIT::compileValueBitNot):
1988 (JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
1989 (JSC::DFG::SpeculativeJIT::compileValueBitwiseOp):
1990 (JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
1991 (JSC::DFG::SpeculativeJIT::compileValueLShiftOp):
1992 (JSC::DFG::SpeculativeJIT::compileValueBitRShift):
1993 (JSC::DFG::SpeculativeJIT::compileValueAdd):
1994 (JSC::DFG::SpeculativeJIT::compileValueSub):
1995 (JSC::DFG::SpeculativeJIT::compileMathIC):
1996 (JSC::DFG::SpeculativeJIT::compileInstanceOfCustom):
1997 (JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor):
1998 (JSC::DFG::SpeculativeJIT::compileArithAbs):
1999 (JSC::DFG::SpeculativeJIT::compileArithClz32):
2000 (JSC::DFG::SpeculativeJIT::compileArithDoubleUnaryOp):
2001 (JSC::DFG::SpeculativeJIT::compileValueMul):
2002 (JSC::DFG::SpeculativeJIT::compileValueDiv):
2003 (JSC::DFG::SpeculativeJIT::compileArithFRound):
2004 (JSC::DFG::SpeculativeJIT::compileValueMod):
2005 (JSC::DFG::SpeculativeJIT::compileArithRounding):
2006 (JSC::DFG::SpeculativeJIT::compileArithSqrt):
2007 (JSC::DFG::SpeculativeJIT::compileValuePow):
2008 (JSC::DFG::SpeculativeJIT::compileStringEquality):
2009 (JSC::DFG::SpeculativeJIT::compileStringCompare):
2010 (JSC::DFG::SpeculativeJIT::compileSameValue):
2011 (JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
2012 (JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
2013 (JSC::DFG::SpeculativeJIT::compileNewFunction):
2014 (JSC::DFG::SpeculativeJIT::compileSetFunctionName):
2015 (JSC::DFG::SpeculativeJIT::compileLoadVarargs):
2016 (JSC::DFG::SpeculativeJIT::compileCreateActivation):
2017 (JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
2018 (JSC::DFG::SpeculativeJIT::compileCreateScopedArguments):
2019 (JSC::DFG::SpeculativeJIT::compileCreateClonedArguments):
2020 (JSC::DFG::SpeculativeJIT::compileCreateRest):
2021 (JSC::DFG::SpeculativeJIT::compileSpread):
2022 (JSC::DFG::SpeculativeJIT::compileNewArray):
2023 (JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
2024 (JSC::DFG::SpeculativeJIT::compileArraySlice):
2025 (JSC::DFG::SpeculativeJIT::compileArrayIndexOf):
2026 (JSC::DFG::SpeculativeJIT::compileArrayPush):
2027 (JSC::DFG::SpeculativeJIT::compileNotifyWrite):
2028 (JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
2029 (JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
2030 (JSC::DFG::SpeculativeJIT::compileCallDOM):
2031 (JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
2032 (JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOrStringValueOf):
2033 (JSC::DFG::SpeculativeJIT::compileNumberToStringWithValidRadixConstant):
2034 (JSC::DFG::SpeculativeJIT::compileNumberToStringWithRadix):
2035 (JSC::DFG::SpeculativeJIT::compileNewStringObject):
2036 (JSC::DFG::SpeculativeJIT::compileNewSymbol):
2037 (JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
2038 (JSC::DFG::SpeculativeJIT::compileNewRegexp):
2039 (JSC::DFG::SpeculativeJIT::emitSwitchImm):
2040 (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
2041 (JSC::DFG::SpeculativeJIT::emitSwitchChar):
2042 (JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
2043 (JSC::DFG::SpeculativeJIT::emitSwitchString):
2044 (JSC::DFG::SpeculativeJIT::compileStoreBarrier):
2045 (JSC::DFG::SpeculativeJIT::compilePutAccessorById):
2046 (JSC::DFG::SpeculativeJIT::compilePutGetterSetterById):
2047 (JSC::DFG::SpeculativeJIT::compileResolveScope):
2048 (JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval):
2049 (JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
2050 (JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
2051 (JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):
2052 (JSC::DFG::SpeculativeJIT::compileStringReplace):
2053 (JSC::DFG::SpeculativeJIT::compileDefineDataProperty):
2054 (JSC::DFG::SpeculativeJIT::compileDefineAccessorProperty):
2055 (JSC::DFG::SpeculativeJIT::compileThrow):
2056 (JSC::DFG::SpeculativeJIT::compileThrowStaticError):
2057 (JSC::DFG::SpeculativeJIT::compileHasGenericProperty):
2058 (JSC::DFG::SpeculativeJIT::compileToIndexString):
2059 (JSC::DFG::SpeculativeJIT::compilePutByIdWithThis):
2060 (JSC::DFG::SpeculativeJIT::compileHasStructureProperty):
2061 (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
2062 (JSC::DFG::SpeculativeJIT::compileStrCat):
2063 (JSC::DFG::SpeculativeJIT::compileNewArrayBuffer):
2064 (JSC::DFG::SpeculativeJIT::compileNewArrayWithSize):
2065 (JSC::DFG::SpeculativeJIT::compileNewTypedArray):
2066 (JSC::DFG::SpeculativeJIT::compileToThis):
2067 (JSC::DFG::SpeculativeJIT::compileObjectKeys):
2068 (JSC::DFG::SpeculativeJIT::compileObjectCreate):
2069 (JSC::DFG::SpeculativeJIT::compileCreateThis):
2070 (JSC::DFG::SpeculativeJIT::compileCreatePromise):
2071 (JSC::DFG::SpeculativeJIT::compileCreateInternalFieldObject):
2072 (JSC::DFG::SpeculativeJIT::compileNewObject):
2073 (JSC::DFG::SpeculativeJIT::compileNewPromise):
2074 (JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject):
2075 (JSC::DFG::SpeculativeJIT::compileToPrimitive):
2076 (JSC::DFG::SpeculativeJIT::compileSetAdd):
2077 (JSC::DFG::SpeculativeJIT::compileMapSet):
2078 (JSC::DFG::SpeculativeJIT::compileWeakSetAdd):
2079 (JSC::DFG::SpeculativeJIT::compileWeakMapSet):
2080 (JSC::DFG::SpeculativeJIT::compileGetPrototypeOf):
2081 (JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
2082 (JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
2083 (JSC::DFG::SpeculativeJIT::compileGetDirectPname):
2084 (JSC::DFG::SpeculativeJIT::compileProfileType):
2085 (JSC::DFG::SpeculativeJIT::cachedPutById):
2086 (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
2087 (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
2088 (JSC::DFG::SpeculativeJIT::compileBigIntEquality):
2089 (JSC::DFG::SpeculativeJIT::compileMakeRope):
2090 * dfg/DFGSpeculativeJIT.h:
2091 (JSC::DFG::SpeculativeJIT::callOperationWithCallFrameRollbackOnException):
2092 (JSC::DFG::SpeculativeJIT::prepareForExternalCall):
2093 * dfg/DFGSpeculativeJIT32_64.cpp:
2094 (JSC::DFG::SpeculativeJIT::cachedGetById):
2095 (JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
2096 (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
2097 (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
2098 (JSC::DFG::SpeculativeJIT::emitCall):
2099 (JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
2100 (JSC::DFG::SpeculativeJIT::compile):
2101 * dfg/DFGSpeculativeJIT64.cpp:
2102 (JSC::DFG::SpeculativeJIT::cachedGetById):
2103 (JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
2104 (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
2105 (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
2106 (JSC::DFG::SpeculativeJIT::emitCall):
2107 (JSC::DFG::SpeculativeJIT::compile):
2110 * ftl/FTLCompile.cpp:
2111 (JSC::FTL::compile):
2112 * ftl/FTLGeneratedFunction.h:
2115 * ftl/FTLLowerDFGToB3.cpp:
2116 (JSC::FTL::DFG::LowerDFGToB3::lower):
2117 (JSC::FTL::DFG::LowerDFGToB3::compileToObjectOrCallObjectConstructor):
2118 (JSC::FTL::DFG::LowerDFGToB3::compileToThis):
2119 (JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
2120 (JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
2121 (JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
2122 (JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
2123 (JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
2124 (JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
2125 (JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):
2126 (JSC::FTL::DFG::LowerDFGToB3::compileValueDiv):
2127 (JSC::FTL::DFG::LowerDFGToB3::compileValueMod):
2128 (JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):
2129 (JSC::FTL::DFG::LowerDFGToB3::compileArithUnary):
2130 (JSC::FTL::DFG::LowerDFGToB3::compileValuePow):
2131 (JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
2132 (JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
2133 (JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
2134 (JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):
2135 (JSC::FTL::DFG::LowerDFGToB3::compileArithSqrt):
2136 (JSC::FTL::DFG::LowerDFGToB3::compileArithFRound):
2137 (JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):
2138 (JSC::FTL::DFG::LowerDFGToB3::compileValueBitAnd):
2139 (JSC::FTL::DFG::LowerDFGToB3::compileValueBitOr):
2140 (JSC::FTL::DFG::LowerDFGToB3::compileValueBitXor):
2141 (JSC::FTL::DFG::LowerDFGToB3::compileValueBitRShift):
2142 (JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
2143 (JSC::FTL::DFG::LowerDFGToB3::compileArrayify):
2144 (JSC::FTL::DFG::LowerDFGToB3::compileGetById):
2145 (JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
2146 (JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
2147 (JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
2148 (JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
2149 (JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
2150 (JSC::FTL::DFG::LowerDFGToB3::compileAtomicsIsLockFree):
2151 (JSC::FTL::DFG::LowerDFGToB3::compileDefineDataProperty):
2152 (JSC::FTL::DFG::LowerDFGToB3::compileDefineAccessorProperty):
2153 (JSC::FTL::DFG::LowerDFGToB3::compilePutById):
2154 (JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
2155 (JSC::FTL::DFG::LowerDFGToB3::compileGetPrototypeOf):
2156 (JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
2157 (JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
2158 (JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
2159 (JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
2160 (JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
2161 (JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
2162 (JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
2163 (JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
2164 (JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf):
2165 (JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
2166 (JSC::FTL::DFG::LowerDFGToB3::compilePushWithScope):
2167 (JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
2168 (JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
2169 (JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
2170 (JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
2171 (JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
2172 (JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
2173 (JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):
2174 (JSC::FTL::DFG::LowerDFGToB3::compileObjectCreate):
2175 (JSC::FTL::DFG::LowerDFGToB3::compileNewPromise):
2176 (JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
2177 (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
2178 (JSC::FTL::DFG::LowerDFGToB3::compileNewSymbol):
2179 (JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
2180 (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
2181 (JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
2182 (JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
2183 (JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
2184 (JSC::FTL::DFG::LowerDFGToB3::compileSpread):
2185 (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
2186 (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
2187 (JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
2188 (JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
2189 (JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructorOrStringValueOf):
2190 (JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
2191 (JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
2192 (JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
2193 (JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
2194 (JSC::FTL::DFG::LowerDFGToB3::compileNotifyWrite):
2195 (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
2196 (JSC::FTL::DFG::LowerDFGToB3::compileSameValue):
2197 (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
2198 (JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
2199 (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
2200 (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
2201 (JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
2202 (JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
2203 (JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
2204 (JSC::FTL::DFG::LowerDFGToB3::compileThrow):
2205 (JSC::FTL::DFG::LowerDFGToB3::compileThrowStaticError):
2206 (JSC::FTL::DFG::LowerDFGToB3::mapHashString):
2207 (JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
2208 (JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
2209 (JSC::FTL::DFG::LowerDFGToB3::compileSetAdd):
2210 (JSC::FTL::DFG::LowerDFGToB3::compileMapSet):
2211 (JSC::FTL::DFG::LowerDFGToB3::compileWeakSetAdd):
2212 (JSC::FTL::DFG::LowerDFGToB3::compileWeakMapSet):
2213 (JSC::FTL::DFG::LowerDFGToB3::compileInByVal):
2214 (JSC::FTL::DFG::LowerDFGToB3::compileInById):
2215 (JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):
2216 (JSC::FTL::DFG::LowerDFGToB3::compileParseInt):
2217 (JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
2218 (JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
2219 (JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
2220 (JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
2221 (JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
2222 (JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
2223 (JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
2224 (JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
2225 (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
2226 (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
2227 (JSC::FTL::DFG::LowerDFGToB3::compileCheckTraps):
2228 (JSC::FTL::DFG::LowerDFGToB3::compileRegExpExec):
2229 (JSC::FTL::DFG::LowerDFGToB3::compileRegExpExecNonGlobalOrSticky):
2230 (JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFastGlobal):
2231 (JSC::FTL::DFG::LowerDFGToB3::compileRegExpTest):
2232 (JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFast):
2233 (JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
2234 (JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
2235 (JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):
2236 (JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
2237 (JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
2238 (JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl):
2239 (JSC::FTL::DFG::LowerDFGToB3::getById):
2240 (JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
2241 (JSC::FTL::DFG::LowerDFGToB3::compare):
2242 (JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
2243 (JSC::FTL::DFG::LowerDFGToB3::compileToLowerCase):
2244 (JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithRadix):
2245 (JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithValidRadixConstant):
2246 (JSC::FTL::DFG::LowerDFGToB3::compileResolveScopeForHoistingFuncDeclInEval):
2247 (JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
2248 (JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
2249 (JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
2250 (JSC::FTL::DFG::LowerDFGToB3::compileCallDOM):
2251 (JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
2252 (JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
2253 (JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
2254 (JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
2255 (JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
2256 (JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):
2257 (JSC::FTL::DFG::LowerDFGToB3::allocateObject):
2258 (JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
2259 (JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
2260 (JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
2261 (JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
2262 (JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
2263 (JSC::FTL::DFG::LowerDFGToB3::callCheck):
2264 * ftl/FTLOSREntry.cpp:
2265 (JSC::FTL::prepareOSREntry):
2266 * ftl/FTLOSREntry.h:
2267 * ftl/FTLOSRExitCompiler.cpp:
2268 (JSC::FTL::compileStub):
2269 (JSC::FTL::compileFTLOSRExit):
2270 * ftl/FTLOSRExitCompiler.h:
2271 * ftl/FTLOperations.cpp:
2272 (JSC::FTL::operationPopulateObjectInOSR):
2273 (JSC::FTL::operationMaterializeObjectInOSR):
2274 (JSC::FTL::compileFTLLazySlowPath):
2275 * ftl/FTLOperations.h:
2276 * ftl/FTLSlowPathCall.h:
2277 (JSC::FTL::callOperation):
2278 * generator/Metadata.rb:
2281 * heap/HeapSnapshotBuilder.cpp:
2282 (JSC::HeapSnapshotBuilder::json):
2283 * inspector/ConsoleMessage.cpp:
2284 (Inspector::ConsoleMessage::ConsoleMessage):
2285 (Inspector::ConsoleMessage::autogenerateMetadata):
2286 (Inspector::ConsoleMessage::addToFrontend):
2287 (Inspector::ConsoleMessage::globalObject const):
2288 (Inspector::ConsoleMessage::scriptState const): Deleted.
2289 * inspector/ConsoleMessage.h:
2290 * inspector/InjectedScript.cpp:
2291 (Inspector::InjectedScript::wrapCallFrames const):
2292 (Inspector::InjectedScript::wrapObject const):
2293 (Inspector::InjectedScript::wrapJSONString const):
2294 (Inspector::InjectedScript::wrapTable const):
2295 (Inspector::InjectedScript::previewValue const):
2296 (Inspector::InjectedScript::arrayFromVector):
2297 * inspector/InjectedScriptBase.cpp:
2298 (Inspector::InjectedScriptBase::hasAccessToInspectedScriptState const):
2299 (Inspector::InjectedScriptBase::callFunctionWithEvalEnabled const):
2300 (Inspector::InjectedScriptBase::makeCall):
2301 (Inspector::InjectedScriptBase::makeAsyncCall):
2302 * inspector/InjectedScriptBase.h:
2303 * inspector/InjectedScriptHost.cpp:
2304 (Inspector::InjectedScriptHost::wrapper):
2305 * inspector/InjectedScriptHost.h:
2306 * inspector/InjectedScriptManager.cpp:
2307 (Inspector::InjectedScriptManager::injectedScriptIdFor):
2308 (Inspector::InjectedScriptManager::createInjectedScript):
2309 (Inspector::InjectedScriptManager::injectedScriptFor):
2310 * inspector/InjectedScriptManager.h:
2311 * inspector/InjectedScriptModule.cpp:
2312 (Inspector::InjectedScriptModule::ensureInjected):
2313 * inspector/InjectedScriptModule.h:
2314 * inspector/InspectorEnvironment.h:
2315 * inspector/JSGlobalObjectConsoleClient.cpp:
2316 (Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
2317 (Inspector::JSGlobalObjectConsoleClient::count):
2318 (Inspector::JSGlobalObjectConsoleClient::countReset):
2319 (Inspector::JSGlobalObjectConsoleClient::profile):
2320 (Inspector::JSGlobalObjectConsoleClient::profileEnd):
2321 (Inspector::JSGlobalObjectConsoleClient::takeHeapSnapshot):
2322 (Inspector::JSGlobalObjectConsoleClient::time):
2323 (Inspector::JSGlobalObjectConsoleClient::timeLog):
2324 (Inspector::JSGlobalObjectConsoleClient::timeEnd):
2325 (Inspector::JSGlobalObjectConsoleClient::timeStamp):
2326 (Inspector::JSGlobalObjectConsoleClient::record):
2327 (Inspector::JSGlobalObjectConsoleClient::recordEnd):
2328 (Inspector::JSGlobalObjectConsoleClient::screenshot):
2329 * inspector/JSGlobalObjectConsoleClient.h:
2330 * inspector/JSGlobalObjectInspectorController.cpp:
2331 (Inspector::JSGlobalObjectInspectorController::reportAPIException):
2332 * inspector/JSGlobalObjectInspectorController.h:
2333 * inspector/JSGlobalObjectScriptDebugServer.h:
2334 * inspector/JSInjectedScriptHost.cpp:
2335 (Inspector::JSInjectedScriptHost::evaluate const):
2336 (Inspector::JSInjectedScriptHost::savedResultAlias const):
2337 (Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
2338 (Inspector::JSInjectedScriptHost::internalConstructorName):
2339 (Inspector::JSInjectedScriptHost::isHTMLAllCollection):
2340 (Inspector::JSInjectedScriptHost::isPromiseRejectedWithNativeGetterTypeError):
2341 (Inspector::JSInjectedScriptHost::subtype):
2342 (Inspector::JSInjectedScriptHost::functionDetails):
2343 (Inspector::constructInternalProperty):
2344 (Inspector::JSInjectedScriptHost::getInternalProperties):
2345 (Inspector::JSInjectedScriptHost::proxyTargetValue):
2346 (Inspector::JSInjectedScriptHost::weakMapSize):
2347 (Inspector::JSInjectedScriptHost::weakMapEntries):
2348 (Inspector::JSInjectedScriptHost::weakSetSize):
2349 (Inspector::JSInjectedScriptHost::weakSetEntries):
2350 (Inspector::cloneArrayIteratorObject):
2351 (Inspector::cloneMapIteratorObject):
2352 (Inspector::cloneSetIteratorObject):
2353 (Inspector::JSInjectedScriptHost::iteratorEntries):
2354 (Inspector::checkForbiddenPrototype):
2355 (Inspector::JSInjectedScriptHost::queryInstances):
2356 (Inspector::JSInjectedScriptHost::queryHolders):
2357 * inspector/JSInjectedScriptHost.h:
2358 * inspector/JSInjectedScriptHostPrototype.cpp:
2359 (Inspector::jsInjectedScriptHostPrototypeAttributeEvaluate):
2360 (Inspector::jsInjectedScriptHostPrototypeAttributeSavedResultAlias):
2361 (Inspector::jsInjectedScriptHostPrototypeFunctionInternalConstructorName):
2362 (Inspector::jsInjectedScriptHostPrototypeFunctionIsHTMLAllCollection):
2363 (Inspector::jsInjectedScriptHostPrototypeFunctionIsPromiseRejectedWithNativeGetterTypeError):
2364 (Inspector::jsInjectedScriptHostPrototypeFunctionProxyTargetValue):
2365 (Inspector::jsInjectedScriptHostPrototypeFunctionWeakMapSize):
2366 (Inspector::jsInjectedScriptHostPrototypeFunctionWeakMapEntries):
2367 (Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetSize):
2368 (Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetEntries):
2369 (Inspector::jsInjectedScriptHostPrototypeFunctionIteratorEntries):
2370 (Inspector::jsInjectedScriptHostPrototypeFunctionQueryInstances):
2371 (Inspector::jsInjectedScriptHostPrototypeFunctionQueryHolders):
2372 (Inspector::jsInjectedScriptHostPrototypeFunctionEvaluateWithScopeExtension):
2373 (Inspector::jsInjectedScriptHostPrototypeFunctionSubtype):
2374 (Inspector::jsInjectedScriptHostPrototypeFunctionFunctionDetails):
2375 (Inspector::jsInjectedScriptHostPrototypeFunctionGetInternalProperties):
2376 * inspector/JSJavaScriptCallFrame.cpp:
2377 (Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
2378 (Inspector::valueForScopeLocation):
2379 (Inspector::JSJavaScriptCallFrame::scopeDescriptions):
2380 (Inspector::JSJavaScriptCallFrame::caller const):
2381 (Inspector::JSJavaScriptCallFrame::sourceID const):
2382 (Inspector::JSJavaScriptCallFrame::line const):
2383 (Inspector::JSJavaScriptCallFrame::column const):
2384 (Inspector::JSJavaScriptCallFrame::functionName const):
2385 (Inspector::JSJavaScriptCallFrame::scopeChain const):
2386 (Inspector::JSJavaScriptCallFrame::thisObject const):
2387 (Inspector::JSJavaScriptCallFrame::isTailDeleted const):
2388 (Inspector::JSJavaScriptCallFrame::type const):
2390 * inspector/JSJavaScriptCallFrame.h:
2391 * inspector/JSJavaScriptCallFramePrototype.cpp:
2392 (Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):
2393 (Inspector::jsJavaScriptCallFramePrototypeFunctionScopeDescriptions):
2394 (Inspector::jsJavaScriptCallFrameAttributeCaller):
2395 (Inspector::jsJavaScriptCallFrameAttributeSourceID):
2396 (Inspector::jsJavaScriptCallFrameAttributeLine):
2397 (Inspector::jsJavaScriptCallFrameAttributeColumn):
2398 (Inspector::jsJavaScriptCallFrameAttributeFunctionName):
2399 (Inspector::jsJavaScriptCallFrameAttributeScopeChain):
2400 (Inspector::jsJavaScriptCallFrameAttributeThisObject):
2401 (Inspector::jsJavaScriptCallFrameAttributeType):
2402 (Inspector::jsJavaScriptCallFrameIsTailDeleted):
2403 * inspector/JavaScriptCallFrame.h:
2404 (Inspector::JavaScriptCallFrame::deprecatedVMEntryGlobalObject const):
2405 (Inspector::JavaScriptCallFrame::vmEntryGlobalObject const): Deleted.
2406 * inspector/ScriptArguments.cpp:
2407 (Inspector::ScriptArguments::create):
2408 (Inspector::ScriptArguments::ScriptArguments):
2409 (Inspector::ScriptArguments::globalObject const):
2410 (Inspector::ScriptArguments::getFirstArgumentAsString const):
2411 (Inspector::ScriptArguments::isEqual const):
2412 (Inspector::ScriptArguments::globalState const): Deleted.
2413 * inspector/ScriptArguments.h:
2414 * inspector/ScriptCallStackFactory.cpp:
2415 (Inspector::createScriptCallStack):
2416 (Inspector::createScriptCallStackForConsole):
2417 (Inspector::extractSourceInformationFromException):
2418 (Inspector::createScriptCallStackFromException):
2419 (Inspector::createScriptArguments):
2420 * inspector/ScriptCallStackFactory.h:
2421 * inspector/ScriptDebugListener.h:
2422 * inspector/ScriptDebugServer.cpp:
2423 (Inspector::ScriptDebugServer::evaluateBreakpointAction):
2424 (Inspector::ScriptDebugServer::sourceParsed):
2425 (Inspector::ScriptDebugServer::handleExceptionInBreakpointCondition const):
2426 (Inspector::ScriptDebugServer::handlePause):
2427 (Inspector::ScriptDebugServer::exceptionOrCaughtValue):
2428 * inspector/ScriptDebugServer.h:
2429 * inspector/agents/InspectorAuditAgent.cpp:
2430 (Inspector::InspectorAuditAgent::setup):
2431 (Inspector::InspectorAuditAgent::populateAuditObject):
2432 * inspector/agents/InspectorAuditAgent.h:
2433 * inspector/agents/InspectorConsoleAgent.cpp:
2434 (Inspector::InspectorConsoleAgent::startTiming):
2435 (Inspector::InspectorConsoleAgent::logTiming):
2436 (Inspector::InspectorConsoleAgent::stopTiming):
2437 (Inspector::InspectorConsoleAgent::count):
2438 (Inspector::InspectorConsoleAgent::countReset):
2439 * inspector/agents/InspectorConsoleAgent.h:
2440 * inspector/agents/InspectorDebuggerAgent.cpp:
2441 (Inspector::InspectorDebuggerAgent::didScheduleAsyncCall):
2442 (Inspector::InspectorDebuggerAgent::resume):
2443 (Inspector::InspectorDebuggerAgent::didPause):
2444 (Inspector::InspectorDebuggerAgent::breakpointActionProbe):
2445 (Inspector::InspectorDebuggerAgent::didContinue):
2446 (Inspector::InspectorDebuggerAgent::clearDebuggerBreakpointState):
2447 (Inspector::InspectorDebuggerAgent::assertPaused):
2448 * inspector/agents/InspectorDebuggerAgent.h:
2449 * inspector/agents/InspectorHeapAgent.cpp:
2450 (Inspector::InspectorHeapAgent::snapshot):
2451 (Inspector::InspectorHeapAgent::getPreview):
2452 (Inspector::InspectorHeapAgent::getRemoteObject):
2453 * inspector/agents/JSGlobalObjectAuditAgent.cpp:
2454 (Inspector::JSGlobalObjectAuditAgent::injectedScriptForEval):
2455 * inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
2456 (Inspector::JSGlobalObjectDebuggerAgent::injectedScriptForEval):
2457 (Inspector::JSGlobalObjectDebuggerAgent::breakpointActionLog):
2458 * inspector/agents/JSGlobalObjectDebuggerAgent.h:
2459 * inspector/agents/JSGlobalObjectRuntimeAgent.cpp:
2460 (Inspector::JSGlobalObjectRuntimeAgent::injectedScriptForEval):
2461 * interpreter/AbstractPC.cpp:
2462 (JSC::AbstractPC::AbstractPC):
2463 * interpreter/AbstractPC.h:
2464 * interpreter/CachedCall.h:
2465 (JSC::CachedCall::CachedCall):
2466 * interpreter/CallFrame.cpp:
2467 (JSC::CallFrame::initDeprecatedCallFrameForDebugger):
2468 (JSC::CallFrame::wasmAwareLexicalGlobalObject):
2469 (JSC::CallFrame::convertToStackOverflowFrame):
2470 (JSC::ExecState::initGlobalExec): Deleted.
2471 * interpreter/CallFrame.h:
2472 (JSC::CallFrame::isDeprecatedCallFrameForDebugger const):
2473 (JSC::CallFrame::isGlobalExec const): Deleted.
2474 * interpreter/Interpreter.cpp:
2476 (JSC::sizeOfVarargs):
2477 (JSC::sizeFrameForForwardArguments):
2478 (JSC::sizeFrameForVarargs):
2480 (JSC::setupVarargsFrame):
2481 (JSC::setupVarargsFrameAndSetThis):
2482 (JSC::setupForwardArgumentsFrame):
2483 (JSC::setupForwardArgumentsFrameAndSetThis):
2484 (JSC::notifyDebuggerOfUnwinding):
2485 (JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
2486 (JSC::Interpreter::executeProgram):
2487 (JSC::Interpreter::executeCall):
2488 (JSC::Interpreter::executeConstruct):
2489 (JSC::Interpreter::execute):
2490 (JSC::Interpreter::executeModuleProgram):
2491 (JSC::Interpreter::debug):
2492 * interpreter/Interpreter.h:
2493 * interpreter/InterpreterInlines.h:
2494 (JSC::Interpreter::execute):
2495 * interpreter/Register.h:
2496 * interpreter/ShadowChicken.cpp:
2497 (JSC::ShadowChicken::log):
2498 (JSC::ShadowChicken::update):
2499 (JSC::ShadowChicken::functionsOnStack):
2500 * interpreter/ShadowChicken.h:
2501 * interpreter/ShadowChickenInlines.h:
2502 (JSC::ShadowChicken::iterate):
2503 * interpreter/StackVisitor.cpp:
2504 (JSC::StackVisitor::Frame::createArguments):
2505 * interpreter/StackVisitor.h:
2506 * jit/AssemblyHelpers.cpp:
2507 (JSC::AssemblyHelpers::emitDumbVirtualCall):
2508 * jit/AssemblyHelpers.h:
2509 * jit/CCallHelpers.cpp:
2510 (JSC::CCallHelpers::ensureShadowChickenPacket):
2511 * jit/CCallHelpers.h:
2512 (JSC::CCallHelpers::prepareCallOperation):
2513 (JSC::CCallHelpers::setupArguments):
2514 * jit/HostCallReturnValue.cpp:
2515 (JSC::getHostCallReturnValueWithExecState):
2516 * jit/HostCallReturnValue.h:
2517 (JSC::initializeHostCallReturnValue):
2519 (JSC::JIT::emitEnterOptimizationCheck):
2520 (JSC::JIT::compileWithoutLinking):
2521 (JSC::JIT::privateCompileExceptionHandlers):
2523 * jit/JITArithmetic.cpp:
2524 (JSC::JIT::emit_compareAndJumpSlow):
2525 (JSC::JIT::emitMathICFast):
2526 (JSC::JIT::emitMathICSlow):
2527 * jit/JITArithmetic32_64.cpp:
2528 (JSC::JIT::emit_compareAndJumpSlow):
2530 (JSC::JIT::compileSetupFrame):
2531 (JSC::JIT::compileCallEval):
2532 (JSC::JIT::compileCallEvalSlowCase):
2533 (JSC::JIT::compileOpCallSlowCase):
2534 * jit/JITCall32_64.cpp:
2535 (JSC::JIT::compileCallEval):
2536 (JSC::JIT::compileCallEvalSlowCase):
2537 (JSC::JIT::compileOpCallSlowCase):
2538 * jit/JITExceptions.cpp:
2539 (JSC::genericUnwind):
2540 * jit/JITExceptions.h:
2541 * jit/JITOpcodes.cpp:
2542 (JSC::JIT::emitSlow_op_new_object):
2543 (JSC::JIT::emitSlow_op_instanceof):
2544 (JSC::JIT::emit_op_set_function_name):
2545 (JSC::JIT::emit_op_throw):
2546 (JSC::JIT::emitSlow_op_jstricteq):
2547 (JSC::JIT::emitSlow_op_jnstricteq):
2548 (JSC::JIT::emit_op_catch):
2549 (JSC::JIT::emit_op_switch_imm):
2550 (JSC::JIT::emit_op_switch_char):
2551 (JSC::JIT::emit_op_switch_string):
2552 (JSC::JIT::emit_op_debug):
2553 (JSC::JIT::emitSlow_op_eq):
2554 (JSC::JIT::emitSlow_op_neq):
2555 (JSC::JIT::emitSlow_op_jeq):
2556 (JSC::JIT::emitSlow_op_jneq):
2557 (JSC::JIT::emitSlow_op_instanceof_custom):
2558 (JSC::JIT::emitSlow_op_loop_hint):
2559 (JSC::JIT::emitSlow_op_check_traps):
2560 (JSC::JIT::emit_op_new_regexp):
2561 (JSC::JIT::emitNewFuncCommon):
2562 (JSC::JIT::emitNewFuncExprCommon):
2563 (JSC::JIT::emit_op_new_array):
2564 (JSC::JIT::emit_op_new_array_with_size):
2565 (JSC::JIT::emitSlow_op_has_indexed_property):
2566 (JSC::JIT::emit_op_profile_type):
2567 * jit/JITOpcodes32_64.cpp:
2568 (JSC::JIT::emitSlow_op_new_object):
2569 (JSC::JIT::emit_op_catch):
2570 (JSC::JIT::emit_op_switch_imm):
2571 (JSC::JIT::emit_op_debug):
2572 (JSC::JIT::emit_op_profile_type):
2573 * jit/JITOperations.cpp:
2574 (JSC::newFunctionCommon):
2576 (JSC::tryGetByValOptimize):
2577 (JSC::operationNewFunctionCommon): Deleted.
2578 * jit/JITOperations.h:
2579 * jit/JITOperationsMSVC64.cpp:
2580 (JSC::getHostCallReturnValueWithExecState):
2581 * jit/JITPropertyAccess.cpp:
2582 (JSC::JIT::emitGetByValWithCachedId):
2583 (JSC::JIT::emitSlow_op_get_by_val):
2584 (JSC::JIT::emitPutByValWithCachedId):
2585 (JSC::JIT::emitSlow_op_put_by_val):
2586 (JSC::JIT::emit_op_put_getter_by_id):
2587 (JSC::JIT::emit_op_put_setter_by_id):
2588 (JSC::JIT::emit_op_put_getter_setter_by_id):
2589 (JSC::JIT::emit_op_put_getter_by_val):
2590 (JSC::JIT::emit_op_put_setter_by_val):
2591 (JSC::JIT::emit_op_del_by_id):
2592 (JSC::JIT::emit_op_del_by_val):
2593 (JSC::JIT::emitSlow_op_try_get_by_id):
2594 (JSC::JIT::emitSlow_op_get_by_id_direct):
2595 (JSC::JIT::emitSlow_op_get_by_id):
2596 (JSC::JIT::emitSlow_op_get_by_id_with_this):
2597 (JSC::JIT::emitSlow_op_put_by_id):
2598 (JSC::JIT::emitSlow_op_in_by_id):
2599 (JSC::JIT::emitSlow_op_get_from_scope):
2600 (JSC::JIT::emitSlow_op_put_to_scope):
2601 (JSC::JIT::emitWriteBarrier):
2602 * jit/PolymorphicCallStubRoutine.cpp:
2603 (JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):
2604 * jit/PolymorphicCallStubRoutine.h:
2606 (JSC::forceICFailure):
2607 (JSC::tryCacheGetByID):
2608 (JSC::repatchGetByID):
2609 (JSC::tryCachePutByID):
2610 (JSC::repatchPutByID):
2611 (JSC::tryCacheInByID):
2612 (JSC::repatchInByID):
2613 (JSC::tryCacheInstanceOf):
2614 (JSC::repatchInstanceOf):
2616 (JSC::linkDirectFor):
2618 (JSC::linkVirtualFor):
2619 (JSC::linkPolymorphicCall):
2621 * jit/SnippetSlowPathCalls.h:
2622 * jit/ThunkGenerators.cpp:
2623 (JSC::throwExceptionFromCallSlowPathGenerator):
2625 (JSC::nativeForGenerator):
2626 (JSC::boundThisNoArgsFunctionCallGenerator):
2627 * jit/ThunkGenerators.h:
2629 (GlobalObject::finishCreation):
2630 (GlobalObject::moduleLoaderImportModule):
2631 (GlobalObject::moduleLoaderResolve):
2632 (GlobalObject::moduleLoaderFetch):
2633 (GlobalObject::moduleLoaderCreateImportMetaProperties):
2634 (cStringFromViewWithString):
2636 (functionPrintStdOut):
2637 (functionPrintStdErr):
2639 (functionSleepSeconds):
2641 (functionRunString):
2643 (functionLoadString):
2645 (functionCheckSyntax):
2646 (functionSetSamplingFlags):
2647 (functionClearSamplingFlags):
2648 (functionSetRandomSeed):
2649 (functionNeverInlineFunction):
2651 (functionNoOSRExitFuzzing):
2652 (functionOptimizeNextInvocation):
2653 (functionNumberOfDFGCompiles):
2654 (functionCallerIsOMGCompiled):
2655 (functionDollarEvalScript):
2656 (functionDollarAgentStart):
2657 (functionDollarAgentReceiveBroadcast):
2658 (functionDollarAgentReport):
2659 (functionDollarAgentSleep):
2660 (functionDollarAgentBroadcast):
2661 (functionFlashHeapAccess):
2662 (functionJSCOptions):
2663 (functionTransferArrayBuffer):
2664 (functionCheckModuleSyntax):
2665 (functionGenerateHeapSnapshot):
2666 (functionSamplingProfilerStackTraces):
2667 (functionAsyncTestStart):
2668 (functionWebAssemblyMemoryMode):
2669 (functionSetUnhandledRejectionCallback):
2671 (checkUncaughtException):
2675 * llint/LLIntExceptions.cpp:
2676 (JSC::LLInt::returnToThrow):
2677 (JSC::LLInt::callToThrow):
2678 * llint/LLIntExceptions.h:
2679 * llint/LLIntSlowPaths.cpp:
2680 (JSC::LLInt::getNonConstantOperand):
2681 (JSC::LLInt::getOperand):
2682 (JSC::LLInt::llint_trace_operand):
2683 (JSC::LLInt::llint_trace_value):
2684 (JSC::LLInt::LLINT_SLOW_PATH_DECL):
2685 (JSC::LLInt::traceFunctionPrologue):
2686 (JSC::LLInt::jitCompileAndSetHeuristics):
2687 (JSC::LLInt::entryOSR):
2688 (JSC::LLInt::setupGetByIdPrototypeCache):
2689 (JSC::LLInt::getByVal):
2690 (JSC::LLInt::handleHostCall):
2691 (JSC::LLInt::setUpCall):
2692 (JSC::LLInt::genericCall):
2693 (JSC::LLInt::varargsSetup):
2694 (JSC::LLInt::commonCallEval):
2695 (JSC::LLInt::llint_throw_stack_overflow_error):
2696 (JSC::LLInt::llint_write_barrier_slow):
2697 * llint/LLIntSlowPaths.h:
2698 * llint/LowLevelInterpreter.asm:
2699 * llint/LowLevelInterpreter.cpp:
2700 (JSC::CLoopRegister::operator CallFrame*):
2701 (JSC::CLoopRegister::operator ExecState*): Deleted.
2702 * parser/ModuleAnalyzer.cpp:
2703 (JSC::ModuleAnalyzer::ModuleAnalyzer):
2704 * parser/ModuleAnalyzer.h:
2705 * parser/ParserError.h:
2706 (JSC::ParserError::toErrorObject):
2707 * profiler/ProfilerBytecode.cpp:
2708 (JSC::Profiler::Bytecode::toJS const):
2709 * profiler/ProfilerBytecode.h:
2710 * profiler/ProfilerBytecodeSequence.cpp:
2711 (JSC::Profiler::BytecodeSequence::addSequenceProperties const):
2712 * profiler/ProfilerBytecodeSequence.h:
2713 * profiler/ProfilerBytecodes.cpp:
2714 (JSC::Profiler::Bytecodes::toJS const):
2715 * profiler/ProfilerBytecodes.h:
2716 * profiler/ProfilerCompilation.cpp:
2717 (JSC::Profiler::Compilation::toJS const):
2718 * profiler/ProfilerCompilation.h:
2719 * profiler/ProfilerCompiledBytecode.cpp:
2720 (JSC::Profiler::CompiledBytecode::toJS const):
2721 * profiler/ProfilerCompiledBytecode.h:
2722 * profiler/ProfilerDatabase.cpp:
2723 (JSC::Profiler::Database::toJS const):
2724 (JSC::Profiler::Database::toJSON const):
2725 * profiler/ProfilerDatabase.h:
2726 * profiler/ProfilerEvent.cpp:
2727 (JSC::Profiler::Event::toJS const):
2728 * profiler/ProfilerEvent.h:
2729 * profiler/ProfilerOSRExit.cpp:
2730 (JSC::Profiler::OSRExit::toJS const):
2731 * profiler/ProfilerOSRExit.h:
2732 * profiler/ProfilerOSRExitSite.cpp:
2733 (JSC::Profiler::OSRExitSite::toJS const):
2734 * profiler/ProfilerOSRExitSite.h:
2735 * profiler/ProfilerOrigin.cpp:
2736 (JSC::Profiler::Origin::toJS const):
2737 * profiler/ProfilerOrigin.h:
2738 * profiler/ProfilerOriginStack.cpp:
2739 (JSC::Profiler::OriginStack::toJS const):
2740 * profiler/ProfilerOriginStack.h:
2741 * profiler/ProfilerProfiledBytecodes.cpp:
2742 (JSC::Profiler::ProfiledBytecodes::toJS const):
2743 * profiler/ProfilerProfiledBytecodes.h:
2744 * profiler/ProfilerUID.cpp:
2745 (JSC::Profiler::UID::toJS const):
2746 * profiler/ProfilerUID.h:
2747 * runtime/AbstractModuleRecord.cpp:
2748 (JSC::AbstractModuleRecord::finishCreation):
2749 (JSC::AbstractModuleRecord::hostResolveImportedModule):
2750 (JSC::AbstractModuleRecord::resolveImport):
2751 (JSC::AbstractModuleRecord::resolveExportImpl):
2752 (JSC::AbstractModuleRecord::resolveExport):
2753 (JSC::getExportedNames):
2754 (JSC::AbstractModuleRecord::getModuleNamespace):
2755 (JSC::AbstractModuleRecord::link):
2756 (JSC::AbstractModuleRecord::evaluate):
2757 * runtime/AbstractModuleRecord.h:
2758 * runtime/ArgList.h:
2759 (JSC::ArgList::ArgList):
2760 * runtime/ArrayBufferView.h:
2761 * runtime/ArrayConstructor.cpp:
2762 (JSC::constructArrayWithSizeQuirk):
2763 (JSC::constructWithArrayConstructor):
2764 (JSC::callArrayConstructor):
2765 (JSC::isArraySlowInline):
2767 (JSC::arrayConstructorPrivateFuncIsArraySlow):
2768 * runtime/ArrayConstructor.h:
2770 * runtime/ArrayPrototype.cpp:
2771 (JSC::ArrayPrototype::finishCreation):
2775 (JSC::speciesWatchpointIsValid):
2776 (JSC::arrayProtoFuncSpeciesCreate):
2777 (JSC::argumentClampedIndexFromStartOrEnd):
2781 (JSC::arrayProtoFuncToString):
2782 (JSC::arrayProtoFuncToLocaleString):
2784 (JSC::arrayProtoFuncJoin):
2785 (JSC::arrayProtoFuncPop):
2786 (JSC::arrayProtoFuncPush):
2787 (JSC::arrayProtoFuncReverse):
2788 (JSC::arrayProtoFuncShift):
2789 (JSC::arrayProtoFuncSlice):
2790 (JSC::arrayProtoFuncSplice):
2791 (JSC::arrayProtoFuncUnShift):
2793 (JSC::arrayProtoFuncIndexOf):
2794 (JSC::arrayProtoFuncLastIndexOf):
2795 (JSC::moveElements):
2796 (JSC::concatAppendOne):
2797 (JSC::arrayProtoPrivateFuncConcatMemcpy):
2798 (JSC::arrayProtoPrivateFuncAppendMemcpy):
2799 * runtime/AsyncFunctionConstructor.cpp:
2800 (JSC::callAsyncFunctionConstructor):
2801 (JSC::constructAsyncFunctionConstructor):
2802 * runtime/AsyncGeneratorFunctionConstructor.cpp:
2803 (JSC::callAsyncGeneratorFunctionConstructor):
2804 (JSC::constructAsyncGeneratorFunctionConstructor):
2805 * runtime/AtomicsObject.cpp:
2806 (JSC::atomicsFuncAdd):
2807 (JSC::atomicsFuncAnd):
2808 (JSC::atomicsFuncCompareExchange):
2809 (JSC::atomicsFuncExchange):
2810 (JSC::atomicsFuncIsLockFree):
2811 (JSC::atomicsFuncLoad):
2812 (JSC::atomicsFuncOr):
2813 (JSC::atomicsFuncStore):
2814 (JSC::atomicsFuncSub):
2815 (JSC::atomicsFuncWait):
2816 (JSC::atomicsFuncWake):
2817 (JSC::atomicsFuncXor):
2818 (JSC::operationAtomicsAdd):
2819 (JSC::operationAtomicsAnd):
2820 (JSC::operationAtomicsCompareExchange):
2821 (JSC::operationAtomicsExchange):
2822 (JSC::operationAtomicsIsLockFree):
2823 (JSC::operationAtomicsLoad):
2824 (JSC::operationAtomicsOr):
2825 (JSC::operationAtomicsStore):
2826 (JSC::operationAtomicsSub):
2827 (JSC::operationAtomicsXor):
2828 * runtime/AtomicsObject.h:
2829 * runtime/BigIntConstructor.cpp:
2831 (JSC::callBigIntConstructor):
2832 * runtime/BigIntObject.cpp:
2833 (JSC::BigIntObject::toStringName):
2834 (JSC::BigIntObject::defaultValue):
2835 * runtime/BigIntObject.h:
2836 * runtime/BigIntPrototype.cpp:
2837 (JSC::bigIntProtoFuncToStringImpl):
2838 (JSC::bigIntProtoFuncValueOf):
2839 * runtime/BooleanConstructor.cpp:
2840 (JSC::callBooleanConstructor):
2841 (JSC::constructWithBooleanConstructor):
2842 (JSC::constructBooleanFromImmediateBoolean):
2843 * runtime/BooleanConstructor.h:
2844 * runtime/BooleanPrototype.cpp:
2845 (JSC::booleanProtoFuncToString):
2846 (JSC::booleanProtoFuncValueOf):
2847 * runtime/CallData.cpp:
2849 (JSC::profiledCall):
2850 * runtime/CallData.h:
2851 * runtime/ClassInfo.h:
2852 * runtime/ClonedArguments.cpp:
2853 (JSC::ClonedArguments::createEmpty):
2854 (JSC::ClonedArguments::createWithInlineFrame):
2855 (JSC::ClonedArguments::createWithMachineFrame):
2856 (JSC::ClonedArguments::createByCopyingFrom):
2857 (JSC::ClonedArguments::getOwnPropertySlot):
2858 (JSC::ClonedArguments::getOwnPropertyNames):
2859 (JSC::ClonedArguments::put):
2860 (JSC::ClonedArguments::deleteProperty):
2861 (JSC::ClonedArguments::defineOwnProperty):
2862 (JSC::ClonedArguments::materializeSpecials):
2863 (JSC::ClonedArguments::materializeSpecialsIfNecessary):
2864 * runtime/ClonedArguments.h:
2865 * runtime/CommonSlowPaths.cpp:
2866 (JSC::throwArityCheckStackOverflowError):
2867 (JSC::SLOW_PATH_DECL):
2868 (JSC::createInternalFieldObject):
2869 (JSC::updateArithProfileForBinaryArithOp):
2870 * runtime/CommonSlowPaths.h:
2871 (JSC::CommonSlowPaths::codeBlockFromCallFrameCallee):
2872 (JSC::CommonSlowPaths::arityCheckFor):
2873 (JSC::CommonSlowPaths::opInByVal):
2874 (JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
2875 (JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):
2876 (JSC::CommonSlowPaths::putDirectWithReify):
2877 (JSC::CommonSlowPaths::putDirectAccessorWithReify):
2878 * runtime/Completion.cpp:
2880 (JSC::checkModuleSyntax):
2882 (JSC::profiledEvaluate):
2883 (JSC::evaluateWithScopeExtension):
2884 (JSC::rejectPromise):
2885 (JSC::loadAndEvaluateModule):
2887 (JSC::linkAndEvaluateModule):
2888 (JSC::importModule):
2889 * runtime/Completion.h:
2891 (JSC::profiledEvaluate):
2892 * runtime/ConsoleClient.cpp:
2893 (JSC::ConsoleClient::printConsoleMessageWithArguments):
2894 (JSC::ConsoleClient::internalMessageWithTypeAndLevel):
2895 (JSC::ConsoleClient::logWithLevel):
2896 (JSC::ConsoleClient::clear):
2897 (JSC::ConsoleClient::dir):
2898 (JSC::ConsoleClient::dirXML):
2899 (JSC::ConsoleClient::table):
2900 (JSC::ConsoleClient::trace):
2901 (JSC::ConsoleClient::assertion):
2902 (JSC::ConsoleClient::group):
2903 (JSC::ConsoleClient::groupCollapsed):
2904 (JSC::ConsoleClient::groupEnd):
2905 * runtime/ConsoleClient.h:
2906 * runtime/ConsoleObject.cpp:
2907 (JSC::valueOrDefaultLabelString):
2908 (JSC::valueToStringWithUndefinedOrNullCheck):
2909 (JSC::consoleLogWithLevel):
2910 (JSC::consoleProtoFuncDebug):
2911 (JSC::consoleProtoFuncError):
2912 (JSC::consoleProtoFuncLog):
2913 (JSC::consoleProtoFuncInfo):
2914 (JSC::consoleProtoFuncWarn):
2915 (JSC::consoleProtoFuncClear):
2916 (JSC::consoleProtoFuncDir):
2917 (JSC::consoleProtoFuncDirXML):
2918 (JSC::consoleProtoFuncTable):
2919 (JSC::consoleProtoFuncTrace):
2920 (JSC::consoleProtoFuncAssert):
2921 (JSC::consoleProtoFuncCount):
2922 (JSC::consoleProtoFuncCountReset):
2923 (JSC::consoleProtoFuncProfile):
2924 (JSC::consoleProtoFuncProfileEnd):
2925 (JSC::consoleProtoFuncTakeHeapSnapshot):
2926 (JSC::consoleProtoFuncTime):
2927 (JSC::consoleProtoFuncTimeLog):
2928 (JSC::consoleProtoFuncTimeEnd):
2929 (JSC::consoleProtoFuncTimeStamp):
2930 (JSC::consoleProtoFuncGroup):
2931 (JSC::consoleProtoFuncGroupCollapsed):
2932 (JSC::consoleProtoFuncGroupEnd):
2933 (JSC::consoleProtoFuncRecord):
2934 (JSC::consoleProtoFuncRecordEnd):
2935 (JSC::consoleProtoFuncScreenshot):
2936 * runtime/ConstructData.cpp:
2938 (JSC::profiledConstruct):
2939 * runtime/ConstructData.h:
2941 (JSC::profiledConstruct):
2942 * runtime/CustomGetterSetter.cpp:
2943 (JSC::callCustomSetter):
2944 * runtime/CustomGetterSetter.h:
2945 * runtime/DataView.cpp:
2946 (JSC::DataView::wrap):
2947 * runtime/DataView.h:
2948 * runtime/DateConstructor.cpp:
2949 (JSC::millisecondsFromComponents):
2950 (JSC::constructDate):
2951 (JSC::constructWithDateConstructor):
2954 * runtime/DateConstructor.h:
2955 * runtime/DateInstance.cpp:
2956 (JSC::DateInstance::calculateGregorianDateTime const):
2957 (JSC::DateInstance::calculateGregorianDateTimeUTC const):
2958 * runtime/DateInstance.h:
2959 * runtime/DatePrototype.cpp:
2960 (JSC::formatLocaleDate):
2961 (JSC::formateDateInstance):
2962 (JSC::fillStructuresUsingTimeArgs):
2963 (JSC::fillStructuresUsingDateArgs):
2964 (JSC::dateProtoFuncToString):
2965 (JSC::dateProtoFuncToUTCString):
2966 (JSC::dateProtoFuncToISOString):
2967 (JSC::dateProtoFuncToDateString):
2968 (JSC::dateProtoFuncToTimeString):
2969 (JSC::dateProtoFuncToLocaleString):
2970 (JSC::dateProtoFuncToLocaleDateString):
2971 (JSC::dateProtoFuncToLocaleTimeString):
2972 (JSC::dateProtoFuncToPrimitiveSymbol):
2973 (JSC::dateProtoFuncGetTime):
2974 (JSC::dateProtoFuncGetFullYear):
2975 (JSC::dateProtoFuncGetUTCFullYear):
2976 (JSC::dateProtoFuncGetMonth):
2977 (JSC::dateProtoFuncGetUTCMonth):
2978 (JSC::dateProtoFuncGetDate):
2979 (JSC::dateProtoFuncGetUTCDate):
2980 (JSC::dateProtoFuncGetDay):
2981 (JSC::dateProtoFuncGetUTCDay):
2982 (JSC::dateProtoFuncGetHours):
2983 (JSC::dateProtoFuncGetUTCHours):
2984 (JSC::dateProtoFuncGetMinutes):
2985 (JSC::dateProtoFuncGetUTCMinutes):
2986 (JSC::dateProtoFuncGetSeconds):
2987 (JSC::dateProtoFuncGetUTCSeconds):
2988 (JSC::dateProtoFuncGetMilliSeconds):
2989 (JSC::dateProtoFuncGetUTCMilliseconds):
2990 (JSC::dateProtoFuncGetTimezoneOffset):
2991 (JSC::dateProtoFuncSetTime):
2992 (JSC::setNewValueFromTimeArgs):
2993 (JSC::setNewValueFromDateArgs):
2994 (JSC::dateProtoFuncSetMilliSeconds):
2995 (JSC::dateProtoFuncSetUTCMilliseconds):
2996 (JSC::dateProtoFuncSetSeconds):
2997 (JSC::dateProtoFuncSetUTCSeconds):
2998 (JSC::dateProtoFuncSetMinutes):
2999 (JSC::dateProtoFuncSetUTCMinutes):
3000 (JSC::dateProtoFuncSetHours):
3001 (JSC::dateProtoFuncSetUTCHours):
3002 (JSC::dateProtoFuncSetDate):
3003 (JSC::dateProtoFuncSetUTCDate):
3004 (JSC::dateProtoFuncSetMonth):
3005 (JSC::dateProtoFuncSetUTCMonth):
3006 (JSC::dateProtoFuncSetFullYear):
3007 (JSC::dateProtoFuncSetUTCFullYear):
3008 (JSC::dateProtoFuncSetYear):
3009 (JSC::dateProtoFuncGetYear):
3010 (JSC::dateProtoFuncToJSON):
3011 * runtime/DirectArguments.cpp:
3012 (JSC::DirectArguments::createByCopying):
3013 (JSC::DirectArguments::copyToArguments):
3014 * runtime/DirectArguments.h:
3015 * runtime/DirectEvalExecutable.cpp:
3016 (JSC::DirectEvalExecutable::create):
3017 (JSC::DirectEvalExecutable::DirectEvalExecutable):
3018 * runtime/DirectEvalExecutable.h:
3019 * runtime/Error.cpp:
3021 (JSC::createEvalError):
3022 (JSC::createRangeError):
3023 (JSC::createReferenceError):
3024 (JSC::createSyntaxError):
3025 (JSC::createTypeError):
3026 (JSC::createNotEnoughArgumentsError):
3027 (JSC::createURIError):
3028 (JSC::createGetterTypeError):
3029 (JSC::getStackTrace):
3030 (JSC::getBytecodeOffset):
3031 (JSC::addErrorInfo):
3032 (JSC::throwConstructorCannotBeCalledAsFunctionTypeError):
3033 (JSC::throwTypeError):
3034 (JSC::throwSyntaxError):
3035 (JSC::throwGetterTypeError):
3036 (JSC::throwDOMAttributeGetterTypeError):
3037 (JSC::createOutOfMemoryError):
3039 (JSC::throwRangeError):
3040 (JSC::throwVMError):
3041 (JSC::throwVMTypeError):
3042 (JSC::throwVMRangeError):
3043 (JSC::throwVMGetterTypeError):
3044 (JSC::throwVMDOMAttributeGetterTypeError):
3045 * runtime/ErrorConstructor.cpp:
3046 (JSC::constructErrorConstructor):
3047 (JSC::callErrorConstructor):
3048 (JSC::ErrorConstructor::put):
3049 (JSC::ErrorConstructor::deleteProperty):
3050 * runtime/ErrorConstructor.h:
3051 * runtime/ErrorInstance.cpp:
3052 (JSC::ErrorInstance::create):
3053 (JSC::appendSourceToError):
3054 (JSC::ErrorInstance::finishCreation):
3055 (JSC::ErrorInstance::sanitizedToString):
3056 (JSC::ErrorInstance::getOwnPropertySlot):
3057 (JSC::ErrorInstance::getOwnNonIndexPropertyNames):
3058 (JSC::ErrorInstance::getStructurePropertyNames):
3059 (JSC::ErrorInstance::defineOwnProperty):
3060 (JSC::ErrorInstance::put):
3061 (JSC::ErrorInstance::deleteProperty):
3062 * runtime/ErrorInstance.h:
3063 (JSC::ErrorInstance::create):
3064 * runtime/ErrorPrototype.cpp:
3065 (JSC::errorProtoFuncToString):
3066 * runtime/EvalExecutable.cpp:
3067 (JSC::EvalExecutable::EvalExecutable):
3068 * runtime/EvalExecutable.h:
3069 * runtime/ExceptionFuzz.cpp:
3070 (JSC::doExceptionFuzzing):
3071 * runtime/ExceptionFuzz.h:
3072 (JSC::doExceptionFuzzingIfEnabled):
3073 * runtime/ExceptionHelpers.cpp:
3074 (JSC::TerminatedExecutionError::defaultValue):
3075 (JSC::createStackOverflowError):
3076 (JSC::createUndefinedVariableError):
3077 (JSC::errorDescriptionForValue):
3079 (JSC::createInvalidFunctionApplyParameterError):
3080 (JSC::createInvalidInParameterError):
3081 (JSC::createInvalidInstanceofParameterErrorNotFunction):
3082 (JSC::createInvalidInstanceofParameterErrorHasInstanceValueNotFunction):
3083 (JSC::createNotAConstructorError):
3084 (JSC::createNotAFunctionError):
3085 (JSC::createNotAnObjectError):
3086 (JSC::createErrorForInvalidGlobalAssignment):
3087 (JSC::createTDZError):
3088 (JSC::throwOutOfMemoryError):
3089 (JSC::throwStackOverflowError):
3090 (JSC::throwTerminatedExecutionException):
3091 * runtime/ExceptionHelpers.h:
3092 * runtime/FunctionConstructor.cpp:
3093 (JSC::constructWithFunctionConstructor):
3094 (JSC::callFunctionConstructor):
3095 (JSC::constructFunction):
3096 (JSC::constructFunctionSkippingEvalEnabledCheck):
3097 * runtime/FunctionConstructor.h:
3098 * runtime/FunctionExecutable.cpp:
3099 (JSC::FunctionExecutable::fromGlobalCode):
3100 * runtime/FunctionExecutable.h:
3101 * runtime/FunctionPrototype.cpp:
3102 (JSC::functionProtoFuncToString):
3103 * runtime/FunctionRareData.h:
3104 * runtime/GeneratorFunctionConstructor.cpp:
3105 (JSC::callGeneratorFunctionConstructor):
3106 (JSC::constructGeneratorFunctionConstructor):
3107 * runtime/GenericArguments.h:
3108 * runtime/GenericArgumentsInlines.h:
3109 (JSC::GenericArguments<Type>::getOwnPropertySlot):
3110 (JSC::GenericArguments<Type>::getOwnPropertySlotByIndex):
3111 (JSC::GenericArguments<Type>::getOwnPropertyNames):
3112 (JSC::GenericArguments<Type>::put):
3113 (JSC::GenericArguments<Type>::putByIndex):
3114 (JSC::GenericArguments<Type>::deleteProperty):
3115 (JSC::GenericArguments<Type>::deletePropertyByIndex):
3116 (JSC::GenericArguments<Type>::defineOwnProperty):
3117 (JSC::GenericArguments<Type>::copyToArguments):
3118 * runtime/GenericTypedArrayView.h:
3119 * runtime/GenericTypedArrayViewInlines.h:
3120 (JSC::GenericTypedArrayView<Adaptor>::wrap):
3121 * runtime/GetterSetter.cpp:
3124 * runtime/GetterSetter.h:
3125 * runtime/HashMapImpl.h:
3126 (JSC::HashMapBuffer::create):
3127 (JSC::areKeysEqual):
3129 (JSC::HashMapImpl::finishCreation):
3130 (JSC::HashMapImpl::findBucket):
3131 (JSC::HashMapImpl::get):
3132 (JSC::HashMapImpl::has):
3133 (JSC::HashMapImpl::add):
3134 (JSC::HashMapImpl::addNormalized):
3135 (JSC::HashMapImpl::remove):
3136 (JSC::HashMapImpl::clear):
3137 (JSC::HashMapImpl::setUpHeadAndTail):
3138 (JSC::HashMapImpl::addNormalizedNonExistingForCloning):
3139 (JSC::HashMapImpl::addNormalizedInternal):
3140 (JSC::HashMapImpl::findBucketAlreadyHashedAndNormalized):
3141 (JSC::HashMapImpl::rehash):
3142 (JSC::HashMapImpl::makeAndSetNewBuffer):
3143 * runtime/Identifier.h:
3144 * runtime/IndirectEvalExecutable.cpp:
3145 (JSC::IndirectEvalExecutable::create):
3146 (JSC::IndirectEvalExecutable::IndirectEvalExecutable):
3147 * runtime/IndirectEvalExecutable.h:
3148 * runtime/InspectorInstrumentationObject.cpp:
3149 (JSC::inspectorInstrumentationObjectLog):
3150 * runtime/InternalFunction.cpp:
3151 (JSC::InternalFunction::InternalFunction):
3152 (JSC::InternalFunction::createSubclassStructureSlow):
3153 * runtime/InternalFunction.h:
3154 (JSC::InternalFunction::createSubclassStructure):
3155 * runtime/IntlCollator.cpp:
3156 (JSC::IntlCollator::initializeCollator):
3157 (JSC::IntlCollator::createCollator):
3158 (JSC::IntlCollator::compareStrings):
3159 (JSC::IntlCollator::resolvedOptions):
3160 * runtime/IntlCollator.h:
3161 * runtime/IntlCollatorConstructor.cpp:
3162 (JSC::constructIntlCollator):
3163 (JSC::callIntlCollator):
3164 (JSC::IntlCollatorConstructorFuncSupportedLocalesOf):
3165 * runtime/IntlCollatorPrototype.cpp:
3166 (JSC::IntlCollatorFuncCompare):
3167 (JSC::IntlCollatorPrototypeGetterCompare):
3168 (JSC::IntlCollatorPrototypeFuncResolvedOptions):
3169 * runtime/IntlDateTimeFormat.cpp:
3170 (JSC::IntlDTFInternal::toDateTimeOptionsAnyDate):
3171 (JSC::IntlDateTimeFormat::initializeDateTimeFormat):
3172 (JSC::IntlDateTimeFormat::resolvedOptions):
3173 (JSC::IntlDateTimeFormat::format):
3174 (JSC::IntlDateTimeFormat::formatToParts):
3175 * runtime/IntlDateTimeFormat.h:
3176 * runtime/IntlDateTimeFormatConstructor.cpp:
3177 (JSC::constructIntlDateTimeFormat):
3178 (JSC::callIntlDateTimeFormat):
3179 (JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):
3180 * runtime/IntlDateTimeFormatPrototype.cpp:
3181 (JSC::IntlDateTimeFormatFuncFormatDateTime):
3182 (JSC::IntlDateTimeFormatPrototypeGetterFormat):
3183 (JSC::IntlDateTimeFormatPrototypeFuncFormatToParts):
3184 (JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
3185 * runtime/IntlNumberFormat.cpp:
3186 (JSC::IntlNumberFormat::initializeNumberFormat):
3187 (JSC::IntlNumberFormat::formatNumber):
3188 (JSC::IntlNumberFormat::resolvedOptions):
3189 (JSC::IntlNumberFormat::formatToParts):
3190 * runtime/IntlNumberFormat.h:
3191 * runtime/IntlNumberFormatConstructor.cpp:
3192 (JSC::constructIntlNumberFormat):
3193 (JSC::callIntlNumberFormat):
3194 (JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):
3195 * runtime/IntlNumberFormatPrototype.cpp:
3196 (JSC::IntlNumberFormatFuncFormatNumber):
3197 (JSC::IntlNumberFormatPrototypeGetterFormat):
3198 (JSC::IntlNumberFormatPrototypeFuncFormatToParts):
3199 (JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
3200 * runtime/IntlObject.cpp:
3201 (JSC::intlBooleanOption):
3202 (JSC::intlStringOption):
3203 (JSC::intlNumberOption):
3204 (JSC::intlDefaultNumberOption):
3205 (JSC::canonicalizeLocaleList):
3206 (JSC::defaultLocale):
3207 (JSC::lookupMatcher):
3208 (JSC::bestFitMatcher):
3209 (JSC::resolveLocale):
3210 (JSC::lookupSupportedLocales):
3211 (JSC::bestFitSupportedLocales):
3212 (JSC::supportedLocales):
3213 (JSC::intlObjectFuncGetCanonicalLocales):
3214 * runtime/IntlObject.h:
3215 * runtime/IntlObjectInlines.h:
3216 (JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):
3217 * runtime/IntlPluralRules.cpp:
3218 (JSC::IntlPluralRules::initializePluralRules):
3219 (JSC::IntlPluralRules::resolvedOptions):
3220 (JSC::IntlPluralRules::select):
3221 * runtime/IntlPluralRules.h:
3222 * runtime/IntlPluralRulesConstructor.cpp:
3223 (JSC::constructIntlPluralRules):
3224 (JSC::callIntlPluralRules):
3225 (JSC::IntlPluralRulesConstructorFuncSupportedLocalesOf):
3226 * runtime/IntlPluralRulesPrototype.cpp:
3227 (JSC::IntlPluralRulesPrototypeFuncSelect):
3228 (JSC::IntlPluralRulesPrototypeFuncResolvedOptions):
3229 * runtime/IteratorOperations.cpp:
3230 (JSC::iteratorNext):
3231 (JSC::iteratorValue):
3232 (JSC::iteratorComplete):
3233 (JSC::iteratorStep):
3234 (JSC::iteratorClose):
3235 (JSC::createIteratorResultObject):
3236 (JSC::hasIteratorMethod):
3237 (JSC::iteratorMethod):
3238 (JSC::iteratorForIterable):
3239 * runtime/IteratorOperations.h:
3240 (JSC::forEachInIterable):
3241 * runtime/JSArray.cpp:
3242 (JSC::JSArray::setLengthWritable):
3243 (JSC::JSArray::defineOwnProperty):
3244 (JSC::JSArray::getOwnPropertySlot):
3245 (JSC::JSArray::put):
3246 (JSC::JSArray::deleteProperty):
3247 (JSC::JSArray::getOwnNonIndexPropertyNames):
3248 (JSC::JSArray::setLengthWithArrayStorage):
3249 (JSC::JSArray::appendMemcpy):
3250 (JSC::JSArray::setLength):
3251 (JSC::JSArray::pop):
3252 (JSC::JSArray::push):
3253 (JSC::JSArray::fastSlice):
3254 (JSC::JSArray::shiftCountWithAnyIndexingType):
3255 (JSC::JSArray::unshiftCountWithArrayStorage):
3256 (JSC::JSArray::unshiftCountWithAnyIndexingType):
3257 (JSC::JSArray::fillArgList):
3258 (JSC::JSArray::copyToArguments):
3259 (JSC::constructArray):
3260 (JSC::constructArrayNegativeIndexed):
3261 * runtime/JSArray.h:
3262 (JSC::JSArray::shiftCountForShift):
3263 (JSC::JSArray::shiftCountForSplice):
3264 (JSC::JSArray::shiftCount):
3265 (JSC::JSArray::unshiftCountForShift):
3266 (JSC::JSArray::unshiftCountForSplice):
3267 (JSC::JSArray::unshiftCount):
3268 * runtime/JSArrayBufferConstructor.cpp:
3269 (JSC::JSGenericArrayBufferConstructor<sharingMode>::constructArrayBuffer):
3270 (JSC::callArrayBuffer):
3271 * runtime/JSArrayBufferPrototype.cpp:
3272 (JSC::arrayBufferProtoFuncSlice):
3273 (JSC::arrayBufferProtoGetterFuncByteLength):
3274 (JSC::sharedArrayBufferProtoGetterFuncByteLength):
3275 * runtime/JSArrayBufferView.cpp:
3276 (JSC::JSArrayBufferView::toStringName):
3277 (JSC::JSArrayBufferView::put):
3278 (JSC::JSArrayBufferView::unsharedJSBuffer):
3279 (JSC::JSArrayBufferView::possiblySharedJSBuffer):
3280 (JSC::JSArrayBufferView::slowDownAndWasteMemory):
3281 * runtime/JSArrayBufferView.h:
3282 * runtime/JSArrayInlines.h:
3284 (JSC::JSArray::pushInline):
3285 * runtime/JSBigInt.cpp:
3286 (JSC::JSBigInt::tryCreateWithLength):
3287 (JSC::JSBigInt::toPrimitive const):
3288 (JSC::JSBigInt::parseInt):
3289 (JSC::JSBigInt::stringToBigInt):
3290 (JSC::JSBigInt::toString):
3291 (JSC::JSBigInt::exponentiate):
3292 (JSC::JSBigInt::multiply):
3293 (JSC::JSBigInt::divide):
3294 (JSC::JSBigInt::remainder):
3295 (JSC::JSBigInt::add):
3296 (JSC::JSBigInt::sub):
3297 (JSC::JSBigInt::bitwiseAnd):
3298 (JSC::JSBigInt::bitwiseOr):
3299 (JSC::JSBigInt::bitwiseXor):
3300 (JSC::JSBigInt::leftShift):
3301 (JSC::JSBigInt::signedRightShift):
3302 (JSC::JSBigInt::bitwiseNot):
3303 (JSC::JSBigInt::absoluteAdd):
3304 (JSC::JSBigInt::absoluteDivWithBigIntDivisor):
3305 (JSC::JSBigInt::absoluteLeftShiftAlwaysCopy):
3306 (JSC::JSBigInt::absoluteAddOne):
3307 (JSC::JSBigInt::absoluteSubOne):
3308 (JSC::JSBigInt::leftShiftByAbsolute):
3309 (JSC::JSBigInt::rightShiftByAbsolute):
3310 (JSC::JSBigInt::toStringBasePowerOfTwo):
3311 (JSC::JSBigInt::toStringGeneric):
3312 (JSC::JSBigInt::allocateFor):
3313 (JSC::JSBigInt::toNumber const):
3314 (JSC::JSBigInt::getPrimitiveNumber const):
3315 (JSC::JSBigInt::toObject const):
3316 * runtime/JSBigInt.h:
3317 * runtime/JSBoundFunction.cpp:
3318 (JSC::boundThisNoArgsFunctionCall):
3319 (JSC::boundFunctionCall):
3320 (JSC::boundThisNoArgsFunctionConstruct):
3321 (JSC::boundFunctionConstruct):
3322 (JSC::hasInstanceBoundFunction):
3323 (JSC::getBoundFunctionStructure):
3324 (JSC::JSBoundFunction::create):
3325 (JSC::JSBoundFunction::customHasInstance):
3326 (JSC::JSBoundFunction::boundArgsCopy):
3327 * runtime/JSBoundFunction.h:
3328 * runtime/JSCJSValue.cpp:
3329 (JSC::JSValue::toInteger const):
3330 (JSC::JSValue::toIntegerPreserveNaN const):
3331 (JSC::JSValue::toLength const):
3332 (JSC::JSValue::toNumberSlowCase const):
3333 (JSC::JSValue::toObjectSlowCase const):
3334 (JSC::JSValue::toThisSlowCase const):
3335 (JSC::JSValue::synthesizePrototype const):
3336 (JSC::JSValue::putToPrimitive):
3337 (JSC::JSValue::putToPrimitiveByIndex):
3338 (JSC::JSValue::toStringSlowCase const):
3339 (JSC::JSValue::toWTFStringSlowCase const):
3340 * runtime/JSCJSValue.h:
3341 (JSC::JSValue::toFloat const):
3342 * runtime/JSCJSValueInlines.h:
3343 (JSC::JSValue::toInt32 const):
3344 (JSC::JSValue::toUInt32 const):
3345 (JSC::JSValue::toIndex const):
3346 (JSC::JSValue::getString const):
3347 (JSC::Unknown>::getString const):
3348 (JSC::JSValue::toPropertyKey const):
3349 (JSC::JSValue::toPrimitive const):
3350 (JSC::toPreferredPrimitiveType):
3351 (JSC::JSValue::getPrimitiveNumber):
3352 (JSC::JSValue::toNumber const):
3353 (JSC::JSValue::toNumeric const):
3354 (JSC::JSValue::toBigIntOrInt32 const):