349ebf231175c80f516582049c22144f8fa3fbab
[WebKit-https.git] / Source / JavaScriptCore / ChangeLog
1 2019-10-28  Yusuke Suzuki  <ysuzuki@apple.com>
2
3         [JSC] Use FTLOutput::callWithoutSideEffects if operation does not have side effects
4         https://bugs.webkit.org/show_bug.cgi?id=203485
5
6         Reviewed by Mark Lam.
7
8         This makes Call's Effect none, and encourages optimizations around it.
9
10         * ftl/FTLLowerDFGToB3.cpp:
11         (JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
12         (JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
13         (JSC::FTL::DFG::LowerDFGToB3::jsValueToStrictInt52):
14
15 2019-10-28  Tuomas Karkkainen  <tuomas.webkit@apple.com>
16
17         dumpSpeculation in SpeculatedType.cpp prints to the wrong stream and has wrong capitalization for NaN
18         https://bugs.webkit.org/show_bug.cgi?id=203486
19
20         Reviewed by Antti Koivisto.
21
22         * bytecode/SpeculatedType.cpp:
23         (JSC::dumpSpeculation):
24
25 2019-10-28  Fujii Hironori  <Hironori.Fujii@sony.com>
26
27         [Windows][Clang] error LNK2001: unresolved external symbol "void * __cdecl JSC::allocateCell<class JSC::JSGenericTypedArrayView<struct JSC::Float32Adaptor> >(class JSC::Heap &,unsigned __int64)"
28         https://bugs.webkit.org/show_bug.cgi?id=203483
29
30         Unreviewed build fix for clang-cl builds.
31
32         * runtime/JSGenericTypedArrayViewInlines.h: Added #include "JSCellInlines.h".
33
34 2019-10-26  Chris Lord  <clord@igalia.com>
35
36         Put OffscreenCanvas behind a build flag
37         https://bugs.webkit.org/show_bug.cgi?id=203146
38
39         Reviewed by Ryosuke Niwa.
40
41         * Configurations/FeatureDefines.xcconfig:
42
43 2019-10-25  Yury Semikhatsky  <yurys@chromium.org>
44
45         Web Inspector: support emulateUserGesture parameter in Runtime.callFunctionOn
46         https://bugs.webkit.org/show_bug.cgi?id=200262
47
48         Reviewed by Devin Rousso.
49
50         * inspector/agents/InspectorRuntimeAgent.cpp:
51         (Inspector::InspectorRuntimeAgent::callFunctionOn):
52         * inspector/agents/InspectorRuntimeAgent.h:
53         * inspector/protocol/Runtime.json:
54
55 2019-10-24  Mark Lam  <mark.lam@apple.com>
56
57         Move JSC::Register inline methods into RegisterInlines.h.
58         https://bugs.webkit.org/show_bug.cgi?id=203391
59
60         Reviewed by Yusuke Suzuki and Keith Miller.
61
62         We're doing this because:
63         1. RegisterInlines.h is the canonical place to put inline Register methods.
64         2. It helps reduce build time.
65            e.g. build-jsc went from 208.02 to 196.81 seconds (about a 5% reduction).
66         3. This enables experimental work to box JSCells in JSValue.
67
68         This patch also handles the fallout of this change, which necessitates more
69         inline methods being moved from <file>.h to their respective <file>Inlines.h.
70
71         JSArray.h used to include ButterflyInlines.h and JSCellInlines.h.  This is a
72         violation of inclusion ordering (.h should not #include Inlines.h).  This
73         violation has been removed.
74
75         * API/JSAPIGlobalObject.mm:
76         * CMakeLists.txt:
77         * JavaScriptCore.xcodeproj/project.pbxproj:
78         * bytecode/CodeBlock.h:
79         (JSC::CallFrame::r): Deleted.
80         (JSC::CallFrame::uncheckedR): Deleted.
81         * bytecode/MetadataTable.cpp:
82         * ftl/FTLLowerDFGToB3.cpp:
83         * interpreter/CallFrame.h:
84         (JSC::CallFrame::guaranteedJSValueCallee const): Deleted.
85         (JSC::CallFrame::jsCallee const): Deleted.
86         (JSC::CallFrame::codeBlock const): Deleted.
87         (JSC::CallFrame::unsafeCodeBlock const): Deleted.
88         (JSC::CallFrame::scope const): Deleted.
89         (JSC::CallFrame::topOfFrame): Deleted.
90         (JSC::CallFrame::setScope): Deleted.
91         (JSC::CallFrame::setCallee): Deleted.
92         (JSC::CallFrame::setCodeBlock): Deleted.
93         * interpreter/CallFrameInlines.h:
94         (JSC::CallFrame::r):
95         (JSC::CallFrame::uncheckedR):
96         (JSC::CallFrame::guaranteedJSValueCallee const):
97         (JSC::CallFrame::jsCallee const):
98         (JSC::CallFrame::codeBlock const):
99         (JSC::CallFrame::unsafeCodeBlock const):
100         (JSC::CallFrame::lexicalGlobalObject const):
101         (JSC::CallFrame::setCallee):
102         (JSC::CallFrame::setCodeBlock):
103         (JSC::CallFrame::setScope):
104         (JSC::CallFrame::scope const):
105         (JSC::CallFrame::topOfFrame):
106         * interpreter/Interpreter.cpp:
107         * interpreter/ProtoCallFrame.h:
108         (JSC::ProtoCallFrame::init): Deleted.
109         * interpreter/ProtoCallFrameInlines.h: Added.
110         (JSC::ProtoCallFrame::init):
111         (JSC::ProtoCallFrame::callee const):
112         (JSC::ProtoCallFrame::setCallee):
113         (JSC::ProtoCallFrame::codeBlock const):
114         (JSC::ProtoCallFrame::setCodeBlock):
115         * interpreter/Register.h:
116         (JSC::Register::callFrame const): Deleted.
117         (JSC::Register::codeBlock const): Deleted.
118         (JSC::Register::asanUnsafeCodeBlock const): Deleted.
119         * interpreter/RegisterInlines.h: Added.
120         (JSC::Register::callFrame const):
121         (JSC::Register::codeBlock const):
122         (JSC::Register::asanUnsafeCodeBlock const):
123         (JSC::Register::object const):
124         (JSC::Register::operator=):
125         (JSC::Register::scope const):
126         * interpreter/StackVisitor.cpp:
127         * jit/AssemblyHelpers.h:
128         * llint/LLIntSlowPaths.cpp:
129         * runtime/ArrayStorage.h:
130         (JSC::ArrayStorage::optimalVectorLength): Deleted.
131         * runtime/ArrayStorageInlines.h: Added.
132         (JSC::ArrayStorage::availableVectorLength):
133         (JSC::ArrayStorage::optimalVectorLength):
134         (JSC::ArrayStorage::totalSize const):
135         * runtime/ButterflyInlines.h:
136         * runtime/ClassInfo.h:
137         * runtime/GetVM.h: Added.
138         * runtime/JSArray.h:
139         * runtime/JSArrayInlines.h:
140         * runtime/JSCellInlines.h:
141         * runtime/JSGlobalObject.h:
142         * runtime/JSObject.h:
143         (JSC::Register::object const): Deleted.
144         (JSC::Register::operator=): Deleted.
145         * runtime/JSObjectInlines.h:
146         * runtime/JSScope.h:
147         (JSC::Register::operator=): Deleted.
148         (JSC::Register::scope const): Deleted.
149         (JSC::CallFrame::lexicalGlobalObject const): Deleted.
150         * runtime/JSString.h:
151         * runtime/PropertyNameArray.h:
152         * runtime/PropertySlot.h:
153         * runtime/VMInlines.h:
154         * tools/HeapVerifier.cpp:
155         * wasm/js/WebAssemblyFunction.cpp:
156
157 2019-10-24  Zan Dobersek  <zdobersek@igalia.com>
158
159         REGRESSION(r251468): Build, test failures in 32-bit JSC after BytecodeIndex refactoring
160         https://bugs.webkit.org/show_bug.cgi?id=203290
161
162         Reviewed by Keith Miller.
163
164         * bytecode/BytecodeIndex.h:
165         (JSC::BytecodeIndex::BytecodeIndex):
166         Add a BytecodeIndex(WTF::HashTableDeletedValueType) constructor.
167         * bytecode/CodeOrigin.h:
168         (JSC::CodeOrigin::CodeOrigin):
169         Have the CodeOrigin(WTF::HashTableDeletedValueType) constructor
170         initialize the BytecodeIndex object accordingly, as a deleted value.
171         (JSC::CodeOrigin::isHashTableDeletedValue const):
172         Test BytecodeIndex object's deleted-value condition through the
173         corresponding BytecodeIndex::isHashTableDeletedValue() method.
174         * profiler/ProfilerOrigin.h:
175         (JSC::Profiler::Origin::Origin):
176         Simplify the m_bytecodeIndex member initialization for a deleted value.
177         (JSC::Profiler::Origin::operator! const):
178         Fix the negation operator, returning true if the m_bytecodeIndex is
179         either empty or deleted.
180
181 2019-10-24  Sihui Liu  <sihui_liu@apple.com>
182
183         [ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
184         https://bugs.webkit.org/show_bug.cgi?id=203173
185         <rdar://problem/56424721>
186
187         Hold a strong reference to JSGlobalOjbect in ConsoleMessage so that object is not garbage collected before
188         WebConsoleAgent::frameWindowDiscarded.
189
190         Covered by existing test: inspector/console/webcore-logging.html.
191
192         Reviewed by Geoffrey Garen.
193
194         * inspector/ConsoleMessage.cpp:
195         (Inspector::ConsoleMessage::ConsoleMessage):
196         (Inspector::ConsoleMessage::clear):
197         * inspector/ConsoleMessage.h:
198
199 2019-10-24  Yusuke Suzuki  <ysuzuki@apple.com>
200
201         [JSC] Properly organize wasm operations
202         https://bugs.webkit.org/show_bug.cgi?id=203360
203
204         Reviewed by Keith Miller.
205
206         This patch cleans up operation functions called from Wasm.
207
208         1. Properly name these operations with prefix "operation".
209         2. Do not use lambda. Define function with JIT_OPERATION.
210         3. Consolidate them in WasmOperations.cpp.
211
212         * wasm/WasmAirIRGenerator.cpp:
213         (JSC::Wasm::AirIRGenerator::addRefFunc):
214         (JSC::Wasm::AirIRGenerator::addTableGet):
215         (JSC::Wasm::AirIRGenerator::addTableSet):
216         (JSC::Wasm::AirIRGenerator::addTableSize):
217         (JSC::Wasm::AirIRGenerator::addTableGrow):
218         (JSC::Wasm::AirIRGenerator::addTableFill):
219         (JSC::Wasm::AirIRGenerator::addGrowMemory):
220         (JSC::Wasm::AirIRGenerator::emitWriteBarrierForJSWrapper):
221         (JSC::Wasm::AirIRGenerator::addOp<OpType::I32Popcnt>):
222         (JSC::Wasm::AirIRGenerator::addOp<OpType::I64Popcnt>):
223         * wasm/WasmB3IRGenerator.cpp:
224         (JSC::Wasm::B3IRGenerator::addTableGet):
225         (JSC::Wasm::B3IRGenerator::addTableSet):
226         (JSC::Wasm::B3IRGenerator::addRefFunc):
227         (JSC::Wasm::B3IRGenerator::addTableSize):
228         (JSC::Wasm::B3IRGenerator::addTableGrow):
229         (JSC::Wasm::B3IRGenerator::addTableFill):
230         (JSC::Wasm::B3IRGenerator::addGrowMemory):
231         (JSC::Wasm::B3IRGenerator::emitWriteBarrierForJSWrapper):
232         (JSC::Wasm::B3IRGenerator::addOp<OpType::I32Popcnt>):
233         (JSC::Wasm::B3IRGenerator::addOp<OpType::I64Popcnt>):
234         * wasm/WasmInstance.cpp:
235         (JSC::Wasm::getWasmTableElement): Deleted.
236         (JSC::Wasm::setWasmTableElement): Deleted.
237         (JSC::Wasm::doWasmTableGrow): Deleted.
238         (JSC::Wasm::doWasmTableFill): Deleted.
239         (JSC::Wasm::doWasmRefFunc): Deleted.
240         * wasm/WasmInstance.h:
241         * wasm/WasmOperations.cpp:
242         (JSC::Wasm::operationWasmUnwind):
243         (JSC::Wasm::operationConvertToF64):
244         (JSC::Wasm::operationConvertToI32):
245         (JSC::Wasm::operationConvertToF32):
246         (JSC::Wasm::operationIterateResults):
247         (JSC::Wasm::operationAllocateResultsArray):
248         (JSC::Wasm::operationWasmWriteBarrierSlowPath):
249         (JSC::Wasm::operationPopcount32):
250         (JSC::Wasm::operationPopcount64):
251         (JSC::Wasm::operationGrowMemory):
252         (JSC::Wasm::operationGetWasmTableElement):
253         (JSC::Wasm::setWasmTableElement):
254         (JSC::Wasm::operationSetWasmTableElement):
255         (JSC::Wasm::operationWasmTableGrow):
256         (JSC::Wasm::operationWasmTableFill):
257         (JSC::Wasm::operationWasmRefFunc):
258         (JSC::Wasm::operationGetWasmTableSize):
259         (JSC::Wasm::operationWasmToJSException):
260         * wasm/WasmOperations.h:
261         * wasm/js/JSToWasm.cpp:
262         (JSC::Wasm::marshallJSResult):
263         (JSC::Wasm::allocateResultsArray): Deleted.
264         * wasm/js/WasmToJS.cpp:
265         (JSC::Wasm::wasmToJS):
266         (JSC::Wasm::operationWasmToJSException): Deleted.
267         * wasm/js/WasmToJS.h:
268         * wasm/js/WebAssemblyInstanceConstructor.cpp:
269
270 2019-10-24  Yusuke Suzuki  <ysuzuki@apple.com>
271
272         [JSC] Remove LLInt's Callee size assumption
273         https://bugs.webkit.org/show_bug.cgi?id=203282
274
275         Reviewed by Mark Lam.
276
277         LLInt code still assumes that Callee is always allocated in non-LargeAllocation.
278         This patch removes this assumption by following three changes.
279
280         1. If we can get CodeBlock, we get VM& from CodeBlock.
281         2. In nativeCallTrampoline and internalFunctionCallTrampoline, we get VM& from JSGlobalObject. It involves one more pointer-chasing but it is OK
282            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.
283         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
284            exception unwinding happens, and which is an expensive operation anyway.
285
286         * heap/LargeAllocation.h:
287         (JSC::LargeAllocation::headerSize):
288         * heap/WeakSet.h:
289         (JSC::WeakSet::WeakSet):
290         (JSC::WeakSet::vm const):
291         * llint/LowLevelInterpreter.asm:
292         * llint/LowLevelInterpreter32_64.asm:
293         * llint/LowLevelInterpreter64.asm:
294         * runtime/JSGlobalObject.cpp:
295         (JSC::JSGlobalObject::JSGlobalObject):
296         (JSC::JSGlobalObject::init):
297         * runtime/JSGlobalObject.h:
298         (JSC::JSGlobalObject::vm const):
299         (JSC::JSGlobalObject::defaultCodeGenerationMode const):
300         * runtime/VM.h:
301         (JSC::WeakSet::heap const):
302
303 2019-10-24  Zan Dobersek  <zdobersek@igalia.com>
304
305         [JSC] Get 32-bit ports back into building order
306         https://bugs.webkit.org/show_bug.cgi?id=203358
307
308         Reviewed by Carlos Garcia Campos.
309
310         Get JSC building again on 32-bit architectures after changes in r251468.
311         Some 32-bit code in LLint and JIT is brought back, and additional casts
312         around BytecodeIndex construction are added as necessary.
313
314         * dfg/DFGOSRExit.cpp:
315         (JSC::DFG::reifyInlinedCallFrames):
316         * dfg/DFGOSRExitCompilerCommon.cpp:
317         (JSC::DFG::reifyInlinedCallFrames):
318         * interpreter/CallFrame.cpp:
319         (JSC::CallFrame::setCurrentVPC):
320         * jit/JITCall32_64.cpp:
321         (JSC::JIT::compileCallEvalSlowCase):
322         (JSC::JIT::compileOpCall):
323         * jit/JITInlines.h:
324         (JSC::JIT::updateTopCallFrame):
325         * jit/JITOpcodes32_64.cpp:
326         (JSC::JIT::emit_op_log_shadow_chicken_tail):
327         * jit/JITPropertyAccess32_64.cpp:
328         (JSC::JIT::emit_op_get_by_val):
329         (JSC::JIT::emitGetByValWithCachedId):
330         (JSC::JIT::emit_op_put_by_val):
331         (JSC::JIT::emitPutByValWithCachedId):
332         (JSC::JIT::emit_op_try_get_by_id):
333         (JSC::JIT::emit_op_get_by_id_direct):
334         (JSC::JIT::emit_op_get_by_id):
335         (JSC::JIT::emit_op_get_by_id_with_this):
336         (JSC::JIT::emit_op_put_by_id):
337         (JSC::JIT::emit_op_in_by_id):
338         * llint/LLIntSlowPaths.cpp:
339         (JSC::LLInt::LLINT_SLOW_PATH_DECL):
340
341 2019-10-24  Paulo Matos  <pmatos@igalia.com>
342
343         Disable pichdr generation on MIPS for return location labels
344         https://bugs.webkit.org/show_bug.cgi?id=203040
345
346         Reviewed by Yusuke Suzuki.
347
348         Disable generation of pichdr for return location labels generated in
349         defineOSRExitReturnLabel. Since r250806 (Allow OSR exit to the LLInt),
350         MIPS was segfaulting since the pichdr after an OSR exit was corruption
351         the gp register.
352
353         * offlineasm/mips.rb:
354
355 2019-10-23  Devin Rousso  <drousso@apple.com>
356
357         Web Inspector: provide a way to inject "bootstrap" JavaScript into the page as the first script executed
358         https://bugs.webkit.org/show_bug.cgi?id=195847
359         <rdar://problem/48950551>
360
361         Reviewed by Joseph Pecoraro.
362
363         When debugging webpages, it's often useful to be able to swizzle various functions in order
364         to add extra logs for when they're called (e.g. `Event.prototype.preventDefault`). Sometimes
365         this can be difficult, such as if the page saves a copy of the function and references that
366         instead, in which case it would be helpful to have a way to guarantee that the swizzled code
367         is the first thing evaluated after the context is created.
368
369         This change adds support for that concept, which has been named Inspector Bootstrap Script.
370         Once created, it will be injected as the first user script to every new global object that
371         is created afterwards. Modifications to the Inspector Bootstrap Script take effect for all
372         new global objects created _after_ the modification happened.
373
374         * inspector/protocol/Page.json:
375         Add `setBoostrapScript` command.
376
377 2019-10-23  Yusuke Suzuki  <ysuzuki@apple.com>
378
379         [JSC] Remove wasmAwareLexicalGlobalObject
380         https://bugs.webkit.org/show_bug.cgi?id=203351
381
382         Reviewed by Mark Lam.
383
384         CallFrame::lexicalGlobalObject() is no longer called frequently. We can just make the current wasmAwareLexicalGlobalObject as CallFrame::lexicalGlobalObject,
385         and remove wasmAwareLexicalGlobalObject function.
386
387         * debugger/Debugger.cpp:
388         (JSC::Debugger::hasBreakpoint):
389         (JSC::Debugger::breakProgram):
390         (JSC::lexicalGlobalObjectForCallFrame):
391         * debugger/DebuggerCallFrame.cpp:
392         (JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const):
393         (JSC::DebuggerCallFrame::scope):
394         (JSC::DebuggerCallFrame::thisValue const):
395         (JSC::DebuggerCallFrame::evaluateWithScopeExtension):
396         * debugger/DebuggerCallFrame.h:
397         * inspector/JSJavaScriptCallFrame.cpp:
398         (Inspector::JSJavaScriptCallFrame::thisObject const):
399         * inspector/JavaScriptCallFrame.h:
400         (Inspector::JavaScriptCallFrame::thisValue const):
401         * interpreter/CallFrame.cpp:
402         (JSC::CallFrame::lexicalGlobalObjectFromWasmCallee const):
403         (JSC::CallFrame::wasmAwareLexicalGlobalObject): Deleted.
404         * interpreter/CallFrame.h:
405         * interpreter/Interpreter.cpp:
406         (JSC::notifyDebuggerOfUnwinding):
407         (JSC::Interpreter::debug):
408         * interpreter/StackVisitor.cpp:
409         (JSC::StackVisitor::Frame::createArguments):
410         * interpreter/StackVisitor.h:
411         * llint/LLIntSlowPaths.cpp:
412         (JSC::LLInt::llint_throw_stack_overflow_error):
413         * runtime/JSFunction.cpp:
414         (JSC::RetrieveArgumentsFunctor::RetrieveArgumentsFunctor):
415         (JSC::RetrieveArgumentsFunctor::operator() const):
416         (JSC::retrieveArguments):
417         * runtime/JSScope.h:
418         (JSC::CallFrame::lexicalGlobalObject const):
419         * runtime/RegExpInlines.h:
420         (JSC::RegExp::matchInline):
421         * wasm/js/WasmToJS.cpp:
422         (JSC::Wasm::wasmToJS):
423
424 2019-10-23  Keith Miller  <keith_miller@apple.com>
425
426         Undo incidental change from BytecodeIndex class patch
427         https://bugs.webkit.org/show_bug.cgi?id=203339
428
429         Reviewed by Mark Lam.
430
431         It's not totally clear why we need to claim our bytecode index is
432         0 when we can't figure what the true index is. I'd rather unbreak
433         our build for now, however, and fix the underlying issue in
434         https://bugs.webkit.org/show_bug.cgi?id=203340
435
436         * runtime/Error.cpp:
437         (JSC::getBytecodeIndex):
438
439 2019-10-23  Yusuke Suzuki  <ysuzuki@apple.com>
440
441         [JSC] Figure out missing prepareCallOperation
442         https://bugs.webkit.org/show_bug.cgi?id=203285
443
444         Reviewed by Mark Lam.
445
446         We start using __builtin_frame_address to get CallFrame* in JIT operations. For the platform which is not supporting this API (MSVC),
447         we put frame-pointer to vm.topCallFrame in the caller side. The problem is that all Apple platform is now using __builtin_frame_address,
448         and we are not testing vm.topCallFrame version at all.
449
450         To find missing prepareCallOperation call, we introduce JITOperationPrologueCallFrameTracer. When USE(BUILTIN_FRAME_ADDRESS) is enabled and
451         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
452         CallFrame* gained by __builtin_frame_address. By doing this, we can find places missing this call in debug build of Apple ports.
453
454         We also found that FTL's custom getter calling is putting wrong value to vm.topCallFrame. This patch fixes it too.
455
456         * dfg/DFGOSRExit.cpp:
457         (JSC::DFG::OSRExit::emitRestoreArguments):
458         (JSC::DFG::operationCompileOSRExit):
459         (JSC::DFG::OSRExit::compileExit):
460         (JSC::DFG::operationDebugPrintSpeculationFailure):
461         (JSC::DFG::OSRExit::compileOSRExit): Deleted.
462         (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure): Deleted.
463         * dfg/DFGOSRExit.h:
464         * dfg/DFGOSRExitCompilerCommon.cpp:
465         (JSC::DFG::handleExitCounts):
466         (JSC::DFG::osrWriteBarrier):
467         * dfg/DFGOSRExitCompilerCommon.h:
468         * dfg/DFGOperations.cpp:
469         * dfg/DFGOperations.h:
470         * dfg/DFGSpeculativeJIT64.cpp:
471         (JSC::DFG::SpeculativeJIT::compile):
472         * dfg/DFGThunks.cpp:
473         (JSC::DFG::osrExitThunkGenerator):
474         (JSC::DFG::osrExitGenerationThunkGenerator):
475         * ftl/FTLLowerDFGToB3.cpp:
476         (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
477         (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
478         (JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
479         (JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
480         (JSC::FTL::DFG::LowerDFGToB3::callPreflight):
481         (JSC::FTL::DFG::LowerDFGToB3::callCheck):
482         * ftl/FTLOSRExitCompiler.cpp:
483         (JSC::FTL::compileStub):
484         (JSC::FTL::operationCompileFTLOSRExit):
485         (JSC::FTL::compileFTLOSRExit): Deleted.
486         * ftl/FTLOSRExitCompiler.h:
487         * ftl/FTLOperations.cpp:
488         (JSC::FTL::operationPopulateObjectInOSR):
489         (JSC::FTL::operationMaterializeObjectInOSR):
490         (JSC::FTL::operationCompileFTLLazySlowPath):
491         (JSC::FTL::compileFTLLazySlowPath): Deleted.
492         * ftl/FTLOperations.h:
493         * ftl/FTLSlowPathCall.cpp:
494         (JSC::FTL::SlowPathCallContext::makeCall):
495         * ftl/FTLThunks.cpp:
496         (JSC::FTL::genericGenerationThunkGenerator):
497         (JSC::FTL::osrExitGenerationThunkGenerator):
498         (JSC::FTL::lazySlowPathGenerationThunkGenerator):
499         (JSC::FTL::slowPathCallThunkGenerator):
500         * ftl/FTLThunks.h:
501         (JSC::FTL::generateIfNecessary):
502         (JSC::FTL::Thunks::getSlowPathCallThunk):
503         * interpreter/FrameTracers.h:
504         (JSC::SlowPathFrameTracer::SlowPathFrameTracer):
505         (JSC::JITOperationPrologueCallFrameTracer::JITOperationPrologueCallFrameTracer):
506         (JSC::JITOperationPrologueCallFrameTracer::~JITOperationPrologueCallFrameTracer):
507         * jit/AssemblyHelpers.cpp:
508         (JSC::AssemblyHelpers::callExceptionFuzz):
509         (JSC::AssemblyHelpers::debugCall):
510         * jit/AssemblyHelpers.h:
511         (JSC::AssemblyHelpers::prepareCallOperation):
512         * jit/CCallHelpers.cpp:
513         (JSC::CCallHelpers::ensureShadowChickenPacket):
514         * jit/CCallHelpers.h:
515         (JSC::CCallHelpers::prepareCallOperation): Deleted.
516         * jit/JITOperations.cpp:
517         * jit/JITOperations.h:
518         * jit/Repatch.cpp:
519         (JSC::ftlThunkAwareRepatchCall):
520         * jit/ThunkGenerators.cpp:
521         (JSC::boundThisNoArgsFunctionCallGenerator):
522         * llint/LLIntSlowPaths.cpp:
523         (JSC::LLInt::LLINT_SLOW_PATH_DECL):
524         (JSC::LLInt::handleHostCall):
525         * runtime/AtomicsObject.cpp:
526         (JSC::operationAtomicsAdd):
527         (JSC::operationAtomicsAnd):
528         (JSC::operationAtomicsCompareExchange):
529         (JSC::operationAtomicsExchange):
530         (JSC::operationAtomicsIsLockFree):
531         (JSC::operationAtomicsLoad):
532         (JSC::operationAtomicsOr):
533         (JSC::operationAtomicsStore):
534         (JSC::operationAtomicsSub):
535         (JSC::operationAtomicsXor):
536         * runtime/CommonSlowPaths.cpp:
537         (JSC::SLOW_PATH_DECL):
538         * runtime/StringPrototype.cpp:
539         (JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
540         (JSC::operationStringProtoFuncReplaceRegExpString):
541         (JSC::operationStringProtoFuncReplaceGeneric):
542         * tools/JSDollarVM.cpp:
543         (IGNORE_WARNINGS_BEGIN):
544         * wasm/WasmAirIRGenerator.cpp:
545         (JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
546         * wasm/WasmB3IRGenerator.cpp:
547         (JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
548         * wasm/WasmOperations.cpp:
549         (JSC::Wasm::operationWasmThrowBadI64):
550         (JSC::Wasm::operationWasmTriggerOSREntryNow):
551         (JSC::Wasm::operationWasmTriggerTierUpNow):
552         (JSC::Wasm::operationThrowBadI64): Deleted.
553         (JSC::Wasm::triggerOSREntryNow): Deleted.
554         (JSC::Wasm::triggerTierUpNow): Deleted.
555         * wasm/WasmOperations.h:
556         * wasm/WasmThunks.cpp:
557         (JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):
558         * wasm/js/JSWebAssembly.cpp:
559         (JSC::instantiate):
560         * wasm/js/WasmToJS.cpp:
561         (JSC::Wasm::handleBadI64Use):
562         (JSC::Wasm::operationWasmToJSException):
563         (JSC::Wasm::emitThrowWasmToJSException):
564         (JSC::Wasm::wasmToJSException): Deleted.
565         * wasm/js/WasmToJS.h:
566         * wasm/js/WebAssemblyInstanceConstructor.cpp:
567         (JSC::constructJSWebAssemblyInstance):
568
569 2019-10-23  Truitt Savell  <tsavell@apple.com>
570
571         Unreviewed, rolling out r251482.
572
573         r251261 broke multiple tests, reverting this as part of that
574         rollout.
575
576         Reverted changeset:
577
578         "[ Mac WK1 ] REGRESSION (r251261): Layout Test
579         inspector/console/webcore-logging.html is consistently
580         Failing"
581         https://bugs.webkit.org/show_bug.cgi?id=203173
582         https://trac.webkit.org/changeset/251482
583
584 2019-10-23  Yury Semikhatsky  <yurys@chromium.org>
585
586         Web Inspector: notify inspector when provisional page is created, committed and destroyed
587         https://bugs.webkit.org/show_bug.cgi?id=202704
588
589         Reviewed by Devin Rousso.
590
591         * inspector/InspectorTarget.h: changed InspectorTarget to not require FrontendChannel as
592         all messages are routed by means of the owning InspectorTargetAgent.
593         * inspector/agents/InspectorTargetAgent.cpp:
594         (Inspector::InspectorTargetAgent::InspectorTargetAgent):
595         (Inspector::buildTargetInfoObject):
596         (Inspector::InspectorTargetAgent::targetCreated):
597         (Inspector::InspectorTargetAgent::targetDestroyed):
598         (Inspector::InspectorTargetAgent::didCommitProvisionalTarget): this method is used to
599         notify frontend that corresponding provisional target has committed and replaced previous
600         target.
601         (Inspector::InspectorTargetAgent::connectionType const):
602         (Inspector::InspectorTargetAgent::connectToTargets):
603         (Inspector::InspectorTargetAgent::disconnectFromTargets):
604         * inspector/agents/InspectorTargetAgent.h:
605         * inspector/protocol/Target.json: extended TargetInfo with provisional page details and
606         added event which is fired when provisional page gets committed. If provisional
607         load fails there will be targetDestroyed event without corresponding commit.
608
609 2019-10-23  Ross Kirsling  <ross.kirsling@sony.com>
610
611         String.prototype.matchAll should throw on non-global regex
612         https://bugs.webkit.org/show_bug.cgi?id=202838
613
614         Reviewed by Keith Miller.
615
616         * builtins/StringPrototype.js:
617         (matchAll):
618         Implement normative change from https://github.com/tc39/ecma262/pull/1716.
619
620         * builtins/BuiltinNames.h:
621         * runtime/JSGlobalObject.cpp:
622         (JSC::JSGlobalObject::init):
623         * runtime/RegExpConstructor.cpp:
624         (JSC::esSpecIsRegExp): Added.
625         * runtime/RegExpConstructor.h:
626         Expose isRegExp to builtins. (This differs from @isRegExpObject by first checking for Symbol.match.)
627
628 2019-10-23  Sihui Liu  <sihui_liu@apple.com>
629
630         [ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
631         https://bugs.webkit.org/show_bug.cgi?id=203173
632         <rdar://problem/56424721>
633
634         Hold a strong reference to JSGlobalOjbect in ConsoleMessage so that object is not garbage collected before
635         WebConsoleAgent::frameWindowDiscarded.
636
637         Covered by existing test: inspector/console/webcore-logging.html.
638
639         Reviewed by Geoffrey Garen.
640
641         * inspector/ConsoleMessage.cpp:
642         (Inspector::ConsoleMessage::ConsoleMessage):
643         (Inspector::ConsoleMessage::clear):
644         * inspector/ConsoleMessage.h:
645
646 2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>
647
648         Make `JSGlobalObject*` threading change more stabilized by adding tests and assertions
649         https://bugs.webkit.org/show_bug.cgi?id=203274
650
651         Reviewed by Saam Barati.
652
653         This patch does some follow-up changes after r251425.
654
655         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.
656         2. Add assertion to ensure that `DECLARE_CALL_FRAME` is only called in JIT operation's prologue.
657         3. Remove some of ExecState::deprecatedVM call.
658         4. Define `USE(BUILTIN_FRAME_ADDRESS)` when using __builtin_frame_address to get CallFrame.
659
660         * API/tests/testapi.cpp:
661         (TestAPI::topCallFrameAccess):
662         (testCAPIViaCpp):
663         * interpreter/CallFrame.cpp:
664         (JSC::isFromJSCode):
665         * interpreter/CallFrame.h:
666         * jit/CCallHelpers.h:
667         (JSC::CCallHelpers::prepareCallOperation):
668         * tools/VMInspector.cpp:
669         (JSC::VMInspector::dumpRegisters):
670
671 2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>
672
673         Unreviewed, WinCairo build fix after r251468
674         https://bugs.webkit.org/show_bug.cgi?id=203276
675
676         * jit/JIT.h:
677
678 2019-10-22  Keith Miller  <keith_miller@apple.com>
679
680         BytecodeIndex should be a proper C++ class
681         https://bugs.webkit.org/show_bug.cgi?id=203276
682
683         Reviewed by Mark Lam.
684
685         This patch makes a change to how we refer to the bytecode index in
686         a bytecode stream. Previously we just used an unsigned number to
687         represent the index, this patch changes most of the code to use a
688         BytecodeIndex class instead. The only places where this patch does
689         not change this is for jump and switch targets / deltas.
690
691         Additionally, this patch attempts to canonicalize the terminology
692         around how we refer to bytecode indices. Now we use the word index
693         to refer to the bytecode index class and offset to refer to the
694         unsigned byte offset into the instruction stream.
695
696         * JavaScriptCore.xcodeproj/project.pbxproj:
697         * Sources.txt:
698         * bytecode/ByValInfo.h:
699         (JSC::ByValInfo::ByValInfo):
700         (JSC::getByValInfoBytecodeIndex):
701         * bytecode/BytecodeBasicBlock.cpp:
702         (JSC::BytecodeBasicBlock::computeImpl):
703         * bytecode/BytecodeGeneratorification.cpp:
704         (JSC::GeneratorLivenessAnalysis::run):
705         * bytecode/BytecodeIndex.cpp: Added.
706         (JSC::BytecodeIndex::dump const):
707         * bytecode/BytecodeIndex.h: Added.
708         (JSC::BytecodeIndex::BytecodeIndex):
709         (JSC::BytecodeIndex::offset const):
710         (JSC::BytecodeIndex::asBits const):
711         (JSC::BytecodeIndex::hash const):
712         (JSC::BytecodeIndex::deletedValue):
713         (JSC::BytecodeIndex::isHashTableDeletedValue const):
714         (JSC::BytecodeIndex::operator bool const):
715         (JSC::BytecodeIndex::operator == const):
716         (JSC::BytecodeIndex::operator != const):
717         (JSC::BytecodeIndex::operator < const):
718         (JSC::BytecodeIndex::operator > const):
719         (JSC::BytecodeIndex::operator <= const):
720         (JSC::BytecodeIndex::operator >= const):
721         (JSC::BytecodeIndex::fromBits):
722         (JSC::BytecodeIndexHash::hash):
723         (JSC::BytecodeIndexHash::equal):
724         * bytecode/BytecodeLivenessAnalysis.cpp:
725         (JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeIndex):
726         (JSC::BytecodeLivenessAnalysis::computeFullLiveness):
727         (JSC::BytecodeLivenessAnalysis::computeKills):
728         (JSC::BytecodeLivenessAnalysis::dumpResults):
729         (JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeOffset): Deleted.
730         * bytecode/BytecodeLivenessAnalysis.h:
731         * bytecode/BytecodeLivenessAnalysisInlines.h:
732         (JSC::BytecodeLivenessPropagation::stepOverInstruction):
733         (JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeIndex):
734         (JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
735         (JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeIndex):
736         (JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeOffset): Deleted.
737         (JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeOffset): Deleted.
738         * bytecode/BytecodeUseDef.h:
739         (JSC::computeUsesForBytecodeIndex):
740         (JSC::computeDefsForBytecodeIndex):
741         (JSC::computeUsesForBytecodeOffset): Deleted.
742         (JSC::computeDefsForBytecodeOffset): Deleted.
743         * bytecode/CallLinkStatus.cpp:
744         (JSC::CallLinkStatus::computeFromLLInt):
745         (JSC::CallLinkStatus::computeFor):
746         (JSC::CallLinkStatus::computeExitSiteData):
747         * bytecode/CallLinkStatus.h:
748         * bytecode/CodeBlock.cpp:
749         (JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):
750         (JSC::CodeBlock::addRareCaseProfile):
751         (JSC::CodeBlock::rareCaseProfileForBytecodeIndex):
752         (JSC::CodeBlock::rareCaseProfileCountForBytecodeIndex):
753         (JSC::CodeBlock::handlerForBytecodeIndex):
754         (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndex):
755         (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndexSlow):
756         (JSC::CodeBlock::lineNumberForBytecodeIndex):
757         (JSC::CodeBlock::columnNumberForBytecodeIndex):
758         (JSC::CodeBlock::expressionRangeForBytecodeIndex const):
759         (JSC::CodeBlock::hasOpDebugForLineAndColumn):
760         (JSC::CodeBlock::getArrayProfile):
761         (JSC::CodeBlock::tryGetValueProfileForBytecodeIndex):
762         (JSC::CodeBlock::valueProfilePredictionForBytecodeIndex):
763         (JSC::CodeBlock::valueProfileForBytecodeIndex):
764         (JSC::CodeBlock::validate):
765         (JSC::CodeBlock::arithProfileForBytecodeIndex):
766         (JSC::CodeBlock::couldTakeSpecialArithFastCase):
767         (JSC::CodeBlock::bytecodeIndexFromCallSiteIndex):
768         (JSC::CodeBlock::rareCaseProfileForBytecodeOffset): Deleted.
769         (JSC::CodeBlock::rareCaseProfileCountForBytecodeOffset): Deleted.
770         (JSC::CodeBlock::handlerForBytecodeOffset): Deleted.
771         (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffset): Deleted.
772         (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffsetSlow): Deleted.
773         (JSC::CodeBlock::lineNumberForBytecodeOffset): Deleted.
774         (JSC::CodeBlock::columnNumberForBytecodeOffset): Deleted.
775         (JSC::CodeBlock::expressionRangeForBytecodeOffset const): Deleted.
776         (JSC::CodeBlock::tryGetValueProfileForBytecodeOffset): Deleted.
777         (JSC::CodeBlock::valueProfilePredictionForBytecodeOffset): Deleted.
778         (JSC::CodeBlock::valueProfileForBytecodeOffset): Deleted.
779         (JSC::CodeBlock::arithProfileForBytecodeOffset): Deleted.
780         (JSC::CodeBlock::couldTakeSpecialFastCase): Deleted.
781         (JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex): Deleted.
782         * bytecode/CodeBlock.h:
783         (JSC::CodeBlock::likelyToTakeSlowCase):
784         (JSC::CodeBlock::couldTakeSlowCase):
785         (JSC::CodeBlock::bytecodeIndex):
786         * bytecode/CodeOrigin.cpp:
787         (JSC::CodeOrigin::approximateHash const):
788         (JSC::CodeOrigin::dump const):
789         * bytecode/CodeOrigin.h:
790         (JSC::CodeOrigin::CodeOrigin):
791         (JSC::CodeOrigin::isSet const):
792         (JSC::CodeOrigin::isHashTableDeletedValue const):
793         (JSC::CodeOrigin::bytecodeIndex const):
794         (JSC::CodeOrigin::OutOfLineCodeOrigin::OutOfLineCodeOrigin):
795         (JSC::CodeOrigin::buildCompositeValue):
796         (JSC::CodeOrigin::hash const):
797         * bytecode/DFGExitProfile.cpp:
798         (JSC::DFG::FrequentExitSite::dump const):
799         (JSC::DFG::ExitProfile::exitSitesFor):
800         * bytecode/DFGExitProfile.h:
801         (JSC::DFG::FrequentExitSite::FrequentExitSite):
802         (JSC::DFG::FrequentExitSite::operator== const):
803         (JSC::DFG::FrequentExitSite::subsumes const):
804         (JSC::DFG::FrequentExitSite::hash const):
805         (JSC::DFG::FrequentExitSite::bytecodeIndex const):
806         (JSC::DFG::FrequentExitSite::isHashTableDeletedValue const):
807         (JSC::DFG::QueryableExitProfile::hasExitSite const):
808         (JSC::DFG::FrequentExitSite::bytecodeOffset const): Deleted.
809         * bytecode/DeferredSourceDump.cpp:
810         (JSC::DeferredSourceDump::DeferredSourceDump):
811         (JSC::DeferredSourceDump::dump):
812         * bytecode/DeferredSourceDump.h:
813         (): Deleted.
814         * bytecode/FullBytecodeLiveness.h:
815         (JSC::FullBytecodeLiveness::getLiveness const):
816         (JSC::FullBytecodeLiveness::operandIsLive const):
817         * bytecode/GetByIdStatus.cpp:
818         (JSC::GetByIdStatus::computeFromLLInt):
819         (JSC::GetByIdStatus::computeFor):
820         (JSC::GetByIdStatus::computeForStubInfo):
821         * bytecode/GetByIdStatus.h:
822         * bytecode/ICStatusUtils.cpp:
823         (JSC::hasBadCacheExitSite):
824         * bytecode/ICStatusUtils.h:
825         * bytecode/InByIdStatus.cpp:
826         (JSC::InByIdStatus::computeFor):
827         * bytecode/InByIdStatus.h:
828         * bytecode/InlineCallFrame.cpp:
829         (JSC::InlineCallFrame::dumpInContext const):
830         * bytecode/InstanceOfStatus.cpp:
831         (JSC::InstanceOfStatus::computeFor):
832         * bytecode/InstanceOfStatus.h:
833         * bytecode/InstructionStream.h:
834         (JSC::InstructionStream::BaseRef::offset const):
835         (JSC::InstructionStream::BaseRef::index const):
836         (JSC::InstructionStream::at const):
837         * bytecode/LazyOperandValueProfile.h:
838         (JSC::LazyOperandValueProfileKey::LazyOperandValueProfileKey):
839         (JSC::LazyOperandValueProfileKey::operator== const):
840         (JSC::LazyOperandValueProfileKey::hash const):
841         (JSC::LazyOperandValueProfileKey::bytecodeIndex const):
842         (JSC::LazyOperandValueProfileKey::isHashTableDeletedValue const):
843         (JSC::LazyOperandValueProfileKey::bytecodeOffset const): Deleted.
844         * bytecode/MethodOfGettingAValueProfile.cpp:
845         (JSC::MethodOfGettingAValueProfile::fromLazyOperand):
846         * bytecode/MethodOfGettingAValueProfile.h:
847         * bytecode/PutByIdStatus.cpp:
848         (JSC::PutByIdStatus::computeFromLLInt):
849         (JSC::PutByIdStatus::computeFor):
850         * bytecode/PutByIdStatus.h:
851         * bytecode/StructureStubInfo.cpp:
852         (JSC::StructureStubInfo::StructureStubInfo):
853         * bytecode/UnlinkedCodeBlock.cpp:
854         (JSC::UnlinkedCodeBlock::lineNumberForBytecodeIndex):
855         (JSC::UnlinkedCodeBlock::expressionRangeForBytecodeIndex const):
856         (JSC::UnlinkedCodeBlock::handlerForBytecodeIndex):
857         (JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset): Deleted.
858         (JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset const): Deleted.
859         (JSC::UnlinkedCodeBlock::handlerForBytecodeOffset): Deleted.
860         * bytecode/UnlinkedCodeBlock.h:
861         * bytecode/ValueProfile.h:
862         (JSC::RareCaseProfile::RareCaseProfile):
863         (JSC::getRareCaseProfileBytecodeIndex):
864         (JSC::getRareCaseProfileBytecodeOffset): Deleted.
865         * bytecompiler/BytecodeGenerator.cpp:
866         (JSC::ForInContext::finalize):
867         * debugger/DebuggerCallFrame.cpp:
868         (JSC::DebuggerCallFrame::currentPosition):
869         * dfg/DFGBasicBlock.cpp:
870         (JSC::DFG::BasicBlock::BasicBlock):
871         * dfg/DFGBasicBlock.h:
872         (JSC::DFG::getBytecodeBeginForBlock):
873         (JSC::DFG::blockForBytecodeIndex):
874         (JSC::DFG::blockForBytecodeOffset): Deleted.
875         * dfg/DFGBlockInsertionSet.cpp:
876         (JSC::DFG::BlockInsertionSet::insert):
877         * dfg/DFGByteCodeParser.cpp:
878         (JSC::DFG::ByteCodeParser::flushForTerminalImpl):
879         (JSC::DFG::ByteCodeParser::flushIfTerminal):
880         (JSC::DFG::ByteCodeParser::branchData):
881         (JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
882         (JSC::DFG::ByteCodeParser::getPrediction):
883         (JSC::DFG::ByteCodeParser::getArrayMode):
884         (JSC::DFG::ByteCodeParser::makeSafe):
885         (JSC::DFG::ByteCodeParser::makeDivSafe):
886         (JSC::DFG::ByteCodeParser::allocateTargetableBlock):
887         (JSC::DFG::ByteCodeParser::allocateUntargetableBlock):
888         (JSC::DFG::ByteCodeParser::makeBlockTargetable):
889         (JSC::DFG::ByteCodeParser::handleCall):
890         (JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
891         (JSC::DFG::ByteCodeParser::inlineCall):
892         (JSC::DFG::ByteCodeParser::handleCallVariant):
893         (JSC::DFG::ByteCodeParser::handleInlining):
894         (JSC::DFG::ByteCodeParser::parseBlock):
895         (JSC::DFG::ByteCodeParser::linkBlock):
896         (JSC::DFG::ByteCodeParser::parseCodeBlock):
897         (JSC::DFG::ByteCodeParser::parse):
898         * dfg/DFGCommonData.cpp:
899         (JSC::DFG::CommonData::addCodeOrigin):
900         (JSC::DFG::CommonData::addUniqueCallSiteIndex):
901         (JSC::DFG::CommonData::lastCallSite const):
902         * dfg/DFGCommonData.h:
903         (JSC::DFG::CommonData::catchOSREntryDataForBytecodeIndex):
904         (JSC::DFG::CommonData::appendCatchEntrypoint):
905         * dfg/DFGDriver.cpp:
906         (JSC::DFG::compileImpl):
907         (JSC::DFG::compile):
908         * dfg/DFGDriver.h:
909         * dfg/DFGGraph.cpp:
910         (JSC::DFG::Graph::dump):
911         (JSC::DFG::Graph::methodOfGettingAValueProfileFor):
912         (JSC::DFG::Graph::willCatchExceptionInMachineFrame):
913         * dfg/DFGGraph.h:
914         * dfg/DFGJITCode.cpp:
915         (JSC::DFG::JITCode::clearOSREntryBlockAndResetThresholds):
916         * dfg/DFGJITCode.h:
917         (JSC::DFG::JITCode::appendOSREntryData):
918         (JSC::DFG::JITCode::osrEntryDataForBytecodeIndex):
919         * dfg/DFGJITCompiler.cpp:
920         (JSC::DFG::JITCompiler::JITCompiler):
921         (JSC::DFG::JITCompiler::compile):
922         (JSC::DFG::JITCompiler::compileFunction):
923         * dfg/DFGJITCompiler.h:
924         (JSC::DFG::JITCompiler::setStartOfCode):
925         * dfg/DFGLiveCatchVariablePreservationPhase.cpp:
926         (JSC::DFG::LiveCatchVariablePreservationPhase::handleBlockForTryCatch):
927         * dfg/DFGOSREntry.cpp:
928         (JSC::DFG::OSREntryData::dumpInContext const):
929         (JSC::DFG::prepareOSREntry):
930         (JSC::DFG::prepareCatchOSREntry):
931         * dfg/DFGOSREntry.h:
932         (JSC::DFG::getOSREntryDataBytecodeIndex):
933         (JSC::DFG::prepareOSREntry):
934         * dfg/DFGOSREntrypointCreationPhase.cpp:
935         (JSC::DFG::OSREntrypointCreationPhase::run):
936         * dfg/DFGOSRExit.cpp:
937         (JSC::DFG::OSRExit::executeOSRExit):
938         (JSC::DFG::reifyInlinedCallFrames):
939         (JSC::DFG::adjustAndJumpToTarget):
940         (JSC::DFG::printOSRExit):
941         (JSC::DFG::OSRExit::compileExit):
942         (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure):
943         * dfg/DFGOSRExit.h:
944         * dfg/DFGOSRExitCompilerCommon.cpp:
945         (JSC::DFG::callerReturnPC):
946         (JSC::DFG::reifyInlinedCallFrames):
947         (JSC::DFG::adjustAndJumpToTarget):
948         * dfg/DFGOSRExitCompilerCommon.h:
949         * dfg/DFGOperations.cpp:
950         * dfg/DFGOperations.h:
951         * dfg/DFGPlan.cpp:
952         (JSC::DFG::Plan::Plan):
953         (JSC::DFG::Plan::compileInThreadImpl):
954         (JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):
955         * dfg/DFGPlan.h:
956         (JSC::DFG::Plan::osrEntryBytecodeIndex const):
957         (JSC::DFG::Plan::tierUpInLoopHierarchy):
958         (JSC::DFG::Plan::tierUpAndOSREnterBytecodes):
959         * dfg/DFGSSAConversionPhase.cpp:
960         (JSC::DFG::SSAConversionPhase::run):
961         * dfg/DFGSpeculativeJIT.cpp:
962         (JSC::DFG::SpeculativeJIT::compileCurrentBlock):
963         (JSC::DFG::SpeculativeJIT::checkArgumentTypes):
964         (JSC::DFG::SpeculativeJIT::compileValueAdd):
965         (JSC::DFG::SpeculativeJIT::compileValueSub):
966         (JSC::DFG::SpeculativeJIT::compileValueNegate):
967         (JSC::DFG::SpeculativeJIT::compileValueMul):
968         (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
969         * dfg/DFGSpeculativeJIT64.cpp:
970         (JSC::DFG::SpeculativeJIT::compile):
971         * dfg/DFGTierUpCheckInjectionPhase.cpp:
972         (JSC::DFG::TierUpCheckInjectionPhase::run):
973         (JSC::DFG::TierUpCheckInjectionPhase::buildNaturalLoopToLoopHintMap):
974         * dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:
975         (JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::compilationDidComplete):
976         * dfg/DFGValidate.cpp:
977         * ftl/FTLCompile.cpp:
978         (JSC::FTL::compile):
979         * ftl/FTLForOSREntryJITCode.h:
980         (JSC::FTL::ForOSREntryJITCode::setBytecodeIndex):
981         (JSC::FTL::ForOSREntryJITCode::bytecodeIndex const):
982         * ftl/FTLLowerDFGToB3.cpp:
983         (JSC::FTL::DFG::LowerDFGToB3::lower):
984         (JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
985         (JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
986         (JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
987         (JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):
988         (JSC::FTL::DFG::LowerDFGToB3::compileValueNegate):
989         * ftl/FTLOSREntry.cpp:
990         (JSC::FTL::prepareOSREntry):
991         * ftl/FTLOSREntry.h:
992         * interpreter/CallFrame.cpp:
993         (JSC::CallFrame::callSiteIndex const):
994         (JSC::CallFrame::unsafeCallSiteIndex const):
995         (JSC::CallFrame::setCurrentVPC):
996         (JSC::CallFrame::bytecodeIndex):
997         (JSC::CallFrame::codeOrigin):
998         (JSC::CallFrame::dump):
999         (JSC::CallFrame::bytecodeOffset): Deleted.
1000         * interpreter/CallFrame.h:
1001         (JSC::CallSiteIndex::CallSiteIndex):
1002         (JSC::CallSiteIndex::operator bool const):
1003         (JSC::CallSiteIndex::operator== const):
1004         (JSC::CallSiteIndex::bits const):
1005         (JSC::CallSiteIndex::bytecodeIndex const):
1006         (JSC::DisposableCallSiteIndex::DisposableCallSiteIndex):
1007         (): Deleted.
1008         * interpreter/Interpreter.cpp:
1009         (JSC::GetStackTraceFunctor::operator() const):
1010         (JSC::findExceptionHandler):
1011         * interpreter/ShadowChicken.cpp:
1012         (JSC::ShadowChicken::update):
1013         * interpreter/StackVisitor.cpp:
1014         (JSC::StackVisitor::readNonInlinedFrame):
1015         (JSC::StackVisitor::readInlinedFrame):
1016         (JSC::StackVisitor::Frame::retrieveExpressionInfo const):
1017         (JSC::StackVisitor::Frame::dump const):
1018         * interpreter/StackVisitor.h:
1019         (JSC::StackVisitor::Frame::bytecodeIndex const):
1020         (JSC::StackVisitor::Frame::bytecodeOffset const): Deleted.
1021         * jit/JIT.cpp:
1022         (JSC::JIT::JIT):
1023         (JSC::JIT::emitEnterOptimizationCheck):
1024         (JSC::JIT::privateCompileMainPass):
1025         (JSC::JIT::privateCompileSlowCases):
1026         (JSC::JIT::compileWithoutLinking):
1027         (JSC::JIT::link):
1028         (JSC::JIT::privateCompileExceptionHandlers):
1029         * jit/JIT.h:
1030         (JSC::CallRecord::CallRecord):
1031         (JSC::SlowCaseEntry::SlowCaseEntry):
1032         (JSC::SwitchRecord::SwitchRecord):
1033         (JSC::ByValCompilationInfo::ByValCompilationInfo):
1034         * jit/JITCall.cpp:
1035         (JSC::JIT::compileCallEvalSlowCase):
1036         (JSC::JIT::compileOpCall):
1037         * jit/JITCodeMap.h:
1038         (JSC::JITCodeMap::Entry::Entry):
1039         (JSC::JITCodeMap::Entry::bytecodeIndex const):
1040         (JSC::JITCodeMap::append):
1041         (JSC::JITCodeMap::find const):
1042         * jit/JITDisassembler.cpp:
1043         (JSC::JITDisassembler::dumpVectorForInstructions):
1044         (JSC::JITDisassembler::reportInstructions):
1045         * jit/JITDisassembler.h:
1046         * jit/JITInlines.h:
1047         (JSC::JIT::emitNakedCall):
1048         (JSC::JIT::emitNakedTailCall):
1049         (JSC::JIT::updateTopCallFrame):
1050         (JSC::JIT::linkAllSlowCasesForBytecodeIndex):
1051         (JSC::JIT::addSlowCase):
1052         (JSC::JIT::addJump):
1053         (JSC::JIT::emitJumpSlowToHot):
1054         (JSC::JIT::emitGetVirtualRegister):
1055         (JSC::JIT::linkAllSlowCasesForBytecodeOffset): Deleted.
1056         * jit/JITOpcodes.cpp:
1057         (JSC::JIT::emit_op_instanceof):
1058         (JSC::JIT::emit_op_catch):
1059         (JSC::JIT::emit_op_switch_imm):
1060         (JSC::JIT::emit_op_switch_char):
1061         (JSC::JIT::emit_op_switch_string):
1062         (JSC::JIT::emitSlow_op_loop_hint):
1063         (JSC::JIT::emit_op_has_indexed_property):
1064         (JSC::JIT::emit_op_log_shadow_chicken_tail):
1065         * jit/JITOpcodes32_64.cpp:
1066         (JSC::JIT::emit_op_instanceof):
1067         (JSC::JIT::emit_op_catch):
1068         (JSC::JIT::emit_op_switch_imm):
1069         (JSC::JIT::emit_op_switch_char):
1070         (JSC::JIT::emit_op_switch_string):
1071         (JSC::JIT::emit_op_has_indexed_property):
1072         * jit/JITOperations.cpp:
1073         (JSC::getByVal):
1074         (JSC::tryGetByValOptimize):
1075         * jit/JITPropertyAccess.cpp:
1076         (JSC::JIT::emit_op_get_by_val):
1077         (JSC::JIT::emitGetByValWithCachedId):
1078         (JSC::JIT::emit_op_put_by_val):
1079         (JSC::JIT::emitPutByValWithCachedId):
1080         (JSC::JIT::emit_op_try_get_by_id):
1081         (JSC::JIT::emit_op_get_by_id_direct):
1082         (JSC::JIT::emit_op_get_by_id):
1083         (JSC::JIT::emit_op_get_by_id_with_this):
1084         (JSC::JIT::emit_op_put_by_id):
1085         (JSC::JIT::emit_op_in_by_id):
1086         * jit/JITWorklist.cpp:
1087         (JSC::JITWorklist::Plan::Plan):
1088         (JSC::JITWorklist::Plan::compileNow):
1089         (JSC::JITWorklist::compileLater):
1090         (JSC::JITWorklist::compileNow):
1091         * jit/JITWorklist.h:
1092         * jit/PCToCodeOriginMap.cpp:
1093         (JSC::PCToCodeOriginMap::PCToCodeOriginMap):
1094         (JSC::PCToCodeOriginMap::findPC const):
1095         * jit/PCToCodeOriginMap.h:
1096         (JSC::PCToCodeOriginMapBuilder::defaultCodeOrigin):
1097         * jit/SlowPathCall.h:
1098         (JSC::JITSlowPathCall::call):
1099         * llint/LLIntSlowPaths.cpp:
1100         (JSC::LLInt::jitCompileAndSetHeuristics):
1101         (JSC::LLInt::LLINT_SLOW_PATH_DECL):
1102         * profiler/ProfilerOrigin.cpp:
1103         (JSC::Profiler::Origin::Origin):
1104         (JSC::Profiler::Origin::dump const):
1105         (JSC::Profiler::Origin::toJS const):
1106         * profiler/ProfilerOrigin.h:
1107         (JSC::Profiler::Origin::Origin):
1108         (JSC::Profiler::Origin::operator! const):
1109         (JSC::Profiler::Origin::bytecodeIndex const):
1110         (JSC::Profiler::Origin::hash const):
1111         (JSC::Profiler::Origin::isHashTableDeletedValue const):
1112         * runtime/Error.cpp:
1113         (JSC::getBytecodeIndex):
1114         (JSC::getBytecodeOffset): Deleted.
1115         * runtime/Error.h:
1116         * runtime/ErrorInstance.cpp:
1117         (JSC::appendSourceToError):
1118         (JSC::ErrorInstance::finishCreation):
1119         * runtime/SamplingProfiler.cpp:
1120         (JSC::tryGetBytecodeIndex):
1121         (JSC::SamplingProfiler::processUnverifiedStackTraces):
1122         (JSC::SamplingProfiler::reportTopBytecodes):
1123         * runtime/SamplingProfiler.h:
1124         (JSC::SamplingProfiler::StackFrame::CodeLocation::hasBytecodeIndex const):
1125         * runtime/StackFrame.cpp:
1126         (JSC::StackFrame::StackFrame):
1127         (JSC::StackFrame::computeLineAndColumn const):
1128         * runtime/StackFrame.h:
1129         (JSC::StackFrame::hasBytecodeIndex const):
1130         (JSC::StackFrame::bytecodeIndex):
1131         (JSC::StackFrame::hasBytecodeOffset const): Deleted.
1132         (JSC::StackFrame::bytecodeOffset): Deleted.
1133         * tools/VMInspector.cpp:
1134         (JSC::VMInspector::dumpRegisters):
1135
1136 2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>
1137
1138         Unreviewed, make 32bit JIT built
1139         https://bugs.webkit.org/show_bug.cgi?id=202392
1140
1141         This patch makes 32bit JIT built at least.
1142
1143         * jit/JITOpcodes32_64.cpp:
1144         (JSC::JIT::emit_op_throw):
1145         * jit/JITPropertyAccess32_64.cpp:
1146         (JSC::JIT::emitGetByValWithCachedId):
1147         (JSC::JIT::emitSlow_op_get_by_id_direct):
1148         (JSC::JIT::emitSlow_op_get_by_id):
1149         (JSC::JIT::emitSlow_op_get_by_id_with_this):
1150         (JSC::JIT::emitSlow_op_get_from_scope):
1151
1152 2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>
1153
1154         [JSC] Remove non-LargeAllocation restriction for JSCallee
1155         https://bugs.webkit.org/show_bug.cgi?id=203260
1156
1157         Reviewed by Saam Barati.
1158
1159         We now pass JSGlobalObject* instead of ExecState*. And we are getting VM& from JSGlobalObject*.
1160         Because now accessing ExecState::vm() becomes less frequent, we can remove the restriction that
1161         callee is only allocated in non-LargeAllocation, which restriction made ExecState::vm fast.
1162
1163         This patch renames `CallFrame::vm` to `CallFrame::deprecatedVM`. And we avoid using it as much as possible.
1164         And we also remove the restriction that callee needs to be in non-LargeAllocation.
1165
1166         * API/JSContextRef.cpp:
1167         (JSContextCreateBacktrace):
1168         * bytecode/CodeBlock.cpp:
1169         (JSC::CodeBlock::noticeIncomingCall):
1170         * debugger/DebuggerCallFrame.cpp:
1171         (JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const):
1172         (JSC::DebuggerCallFrame::functionName const):
1173         (JSC::DebuggerCallFrame::scope):
1174         (JSC::DebuggerCallFrame::type const):
1175         (JSC::DebuggerCallFrame::evaluateWithScopeExtension):
1176         (JSC::DebuggerCallFrame::positionForCallFrame):
1177         * dfg/DFGOSRExit.cpp:
1178         (JSC::DFG::OSRExit::executeOSRExit):
1179         (JSC::DFG::OSRExit::compileOSRExit):
1180         (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure):
1181         * dfg/DFGOperations.cpp:
1182         * ftl/FTLOSRExitCompiler.cpp:
1183         (JSC::FTL::compileFTLOSRExit):
1184         * ftl/FTLOperations.cpp:
1185         (JSC::FTL::compileFTLLazySlowPath):
1186         * inspector/JSInjectedScriptHost.cpp:
1187         (Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
1188         * inspector/ScriptCallStackFactory.cpp:
1189         (Inspector::createScriptCallStack):
1190         (Inspector::createScriptCallStackForConsole):
1191         * interpreter/CallFrame.cpp:
1192         (JSC::CallFrame::callerSourceOrigin):
1193         (JSC::CallFrame::friendlyFunctionName):
1194         * interpreter/CallFrame.h:
1195         (JSC::CallFrame::iterate):
1196         * interpreter/Interpreter.cpp:
1197         (JSC::sizeOfVarargs):
1198         (JSC::sizeFrameForVarargs):
1199         (JSC::Interpreter::getStackTrace):
1200         (JSC::Interpreter::unwind):
1201         (JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
1202         (JSC::Interpreter::debug):
1203         * interpreter/Interpreter.h:
1204         * interpreter/ShadowChicken.cpp:
1205         (JSC::ShadowChicken::update):
1206         * interpreter/StackVisitor.cpp:
1207         (JSC::StackVisitor::StackVisitor):
1208         (JSC::StackVisitor::Frame::functionName const):
1209         * interpreter/StackVisitor.h:
1210         (JSC::StackVisitor::visit):
1211         * jit/HostCallReturnValue.cpp:
1212         (JSC::getHostCallReturnValueWithExecState):
1213         * jit/JITOperations.cpp:
1214         * jit/Repatch.cpp:
1215         (JSC::linkFor):
1216         (JSC::linkPolymorphicCall):
1217         * jit/Repatch.h:
1218         * jsc.cpp:
1219         (functionJSCStack):
1220         (functionRunString):
1221         (functionLoadString):
1222         (functionCallerSourceOrigin):
1223         (functionCallerIsOMGCompiled):
1224         (functionDollarEvalScript):
1225         * llint/LLIntSlowPaths.cpp:
1226         (JSC::LLInt::LLINT_SLOW_PATH_DECL):
1227         * runtime/Error.cpp:
1228         (JSC::getBytecodeOffset):
1229         * runtime/FunctionConstructor.cpp:
1230         (JSC::constructFunction):
1231         * runtime/JSCellInlines.h:
1232         (JSC::CallFrame::deprecatedVM const):
1233         (JSC::CallFrame::vm const): Deleted.
1234         * runtime/JSFunction.cpp:
1235         (JSC::retrieveArguments):
1236         (JSC::JSFunction::argumentsGetter):
1237         (JSC::retrieveCallerFunction):
1238         (JSC::JSFunction::callerGetter):
1239         (JSC::JSFunction::defineOwnProperty):
1240         * runtime/JSGlobalObject.cpp:
1241         (JSC::assertCall):
1242         * runtime/JSGlobalObjectFunctions.cpp:
1243         (JSC::globalFuncEval):
1244         (JSC::globalFuncImportModule):
1245         * runtime/NullSetterFunction.cpp:
1246         (JSC::callerIsStrict):
1247         (JSC::NullSetterFunctionInternal::callReturnUndefined):
1248         * tools/JSDollarVM.cpp:
1249         (IGNORE_WARNINGS_BEGIN):
1250         (JSC::functionLLintTrue):
1251         (JSC::functionJITTrue):
1252         (JSC::functionDumpRegisters):
1253         (JSC::functionShadowChickenFunctionsOnStack):
1254         * tools/VMInspector.cpp:
1255         (JSC::VMInspector::codeBlockForFrame):
1256         (JSC::VMInspector::dumpCallFrame):
1257         (JSC::VMInspector::dumpRegisters):
1258         (JSC::VMInspector::dumpStack):
1259         * wasm/js/WasmToJS.cpp:
1260         (JSC::Wasm::wasmToJS):
1261
1262 2019-10-22  Mark Lam  <mark.lam@apple.com>
1263
1264         Clients of JSArray::tryCreateUninitializedRestricted() should invoke the mutatorFence().
1265         https://bugs.webkit.org/show_bug.cgi?id=203231
1266         <rdar://problem/56486552>
1267
1268         Reviewed by Saam Barati.
1269
1270         Clients of JSArray::tryCreateUninitializedRestricted() creates a partially
1271         initialized JSArray butterfly, with the contract that it (the client) will take
1272         care of filling in all the missing indexed properties before setting the newly
1273         created array loose in the world.  We intentionally do not unconditionally write
1274         barrier the newly created array but, instead, rely on an owner object (or GC root)
1275         that it gets put into to scan it.
1276
1277         That said, we do need to ensure that all the stores are completed before this
1278         array is put in an owner object (or GC root) which makes it scannable by the GC.
1279         This ensures that the GC will not be scanning a partially initialized array
1280         butterfly.  To achieve this, we should invoke the mutatorFence after the clients
1281         of JSArray::tryCreateUninitializedRestricted() finish initializing the array.
1282
1283         By design, all clients of tryCreateUninitializedRestricted() must instantiate an
1284         ObjectInitializationScope RAII object.  This patch makes use of the
1285         ObjectInitializationScope destructor to invoke the mutatorFence.
1286
1287         Note: we technically only need to invoke the fence if we succeeded in allocating
1288         the array.  However, we just invoke the fence unconditionally because we expect
1289         that in the common path, we will succeed in allocating the array.  The release
1290         build version of ObjectInitializationScope does not keep record of whether we
1291         succeed in allocating the array anyway.  To keep the behavior consistent, the
1292         debug build version of ObjectInitializationScope will also unconditionally
1293         invoke the fence even if we failed to allocate the array.
1294
1295         This patch also does the following:
1296
1297         1. Replaced the setting of the public length in arrayProtoPrivateFuncConcatMemcpy()
1298            with an assertion.  The public length was already set by
1299            tryCreateUninitializedRestricted() earlier.
1300
1301            Ditto for JSArray::fastSlice().
1302
1303         2. Removed a redundant instance of ObjectInitializationScope in
1304            createEmptyRegExpMatchesArray().
1305
1306         * runtime/ArrayPrototype.cpp:
1307         (JSC::arrayProtoPrivateFuncConcatMemcpy):
1308         * runtime/JSArray.cpp:
1309         (JSC::JSArray::fastSlice):
1310         * runtime/ObjectInitializationScope.cpp:
1311         (JSC::ObjectInitializationScope::~ObjectInitializationScope):
1312         * runtime/ObjectInitializationScope.h:
1313         (JSC::ObjectInitializationScope::~ObjectInitializationScope):
1314         * runtime/RegExpMatchesArray.cpp:
1315         (JSC::createEmptyRegExpMatchesArray):
1316
1317 2019-10-22  Mark Lam  <mark.lam@apple.com>
1318
1319         Fix incorrect assertion in operationRegExpExecNonGlobalOrSticky().
1320         https://bugs.webkit.org/show_bug.cgi?id=203230
1321         <rdar://problem/56460749>
1322
1323         Reviewed by Robin Morisset.
1324
1325         operationRegExpExecNonGlobalOrSticky() was asserting no exception when
1326         createRegExpMatchesArray() returns null.  createRegExpMatchesArray() only returns
1327         null when RegExp::matchInline() returns -1.  RegExp::matchInline() can return -1
1328         either when there's an error, or if the match fails.  When there's an error,
1329         RegExp::matchInline() also throws an exception via a throwError() helper.
1330
1331         This patch fixes operationRegExpExecNonGlobalOrSticky() to check for an exception
1332         being thrown, or createRegExpMatchesArray() returning a null array due to a failed
1333         match.
1334
1335         * dfg/DFGOperations.cpp:
1336
1337 2019-10-22  Adrian Perez de Castro  <aperez@igalia.com>
1338
1339         [GTK][WPE] Fix non-unified builds after r251326
1340         https://bugs.webkit.org/show_bug.cgi?id=203244
1341
1342         Reviewed by Youenn Fablet.
1343
1344         * ftl/FTLOSREntry.h: Add missing forward declaration of JSC::VM.
1345         * inspector/ScriptCallStackFactory.h: Add missing forward declaration of JSC::JSGlobalObject.
1346         * llint/LLIntExceptions.h: Add missing forward declaration of JSC::VM.
1347         * runtime/ExceptionFuzz.h: Add missing forward declaration of JSC::JSGlobalObject.
1348         * runtime/JSDateMath.h: Ditto.
1349         * runtime/JSStringJoiner.h: Add missing inclusion of the JSGlobalObject.h header.
1350         * runtime/Watchdog.h: Add missing forward declaration of JSC::JSGlobalObject.
1351         * wasm/WasmOperations.h: Add missing forward declaration of JSC::JSWebAssemblyInstance.
1352
1353 2019-10-21  Yusuke Suzuki  <ysuzuki@apple.com>
1354
1355         [JSC] Thread JSGlobalObject* instead of ExecState*
1356         https://bugs.webkit.org/show_bug.cgi?id=202392
1357
1358         Reviewed by Geoffrey Garen.
1359
1360         This patch replaces JSC's convention entirely: instead of passing ExecState*, we pass lexical JSGlobalObject*.
1361         We have many issues historically.
1362
1363         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.
1364         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*.
1365
1366         This patch attempts to remove these issues entirely by passing JSGlobalObject* instead of ExecState*.
1367
1368         1. We change ExecState* to JSGlobalObject*.
1369         2. JIT operations should take JSGlobalObject* instead of ExecState* to reflect the inlinee's JSGlobalObject* correctly.
1370         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.
1371         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.
1372         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.
1373         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.
1374         7. This patch does not fix complicated JSGlobalObject* issues. But we put FIXME if it seems wrong and it needs to be revisited.
1375         8. FunctionConstructor, ArrayConstructor etc. are exposed from JSGlobalObject to use it for InternalFunction::createStructure() without using `CallFrame*`.
1376
1377         * API/APICallbackFunction.h:
1378         (JSC::APICallbackFunction::call):
1379         (JSC::APICallbackFunction::construct):
1380         * API/APICast.h:
1381         (toJS):
1382         (toJSGlobalObject):
1383         (toJSForGC):
1384         (toRef):
1385         (toGlobalRef):
1386         * API/APIUtils.h:
1387         (handleExceptionIfNeeded):
1388         (setException):
1389         * API/JSAPIGlobalObject.h:
1390         * API/JSAPIGlobalObject.mm:
1391         (JSC::JSAPIGlobalObject::moduleLoaderResolve):
1392         (JSC::JSAPIGlobalObject::moduleLoaderImportModule):
1393         (JSC::JSAPIGlobalObject::moduleLoaderFetch):
1394         (JSC::JSAPIGlobalObject::moduleLoaderCreateImportMetaProperties):
1395         (JSC::JSAPIGlobalObject::moduleLoaderEvaluate):
1396         (JSC::JSAPIGlobalObject::loadAndEvaluateJSScriptModule):
1397         * API/JSAPIValueWrapper.h:
1398         * API/JSBase.cpp:
1399         (JSEvaluateScriptInternal):
1400         (JSEvaluateScript):
1401         (JSCheckScriptSyntax):
1402         (JSGarbageCollect):
1403         (JSReportExtraMemoryCost):
1404         (JSSynchronousGarbageCollectForDebugging):
1405         (JSSynchronousEdenCollectForDebugging):
1406         * API/JSBaseInternal.h:
1407         * API/JSCTestRunnerUtils.cpp:
1408         (JSC::failNextNewCodeBlock):
1409         (JSC::numberOfDFGCompiles):
1410         (JSC::setNeverInline):
1411         (JSC::setNeverOptimize):
1412         * API/JSCallbackConstructor.h:
1413         * API/JSCallbackObject.h:
1414         * API/JSCallbackObjectFunctions.h:
1415         (JSC::JSCallbackObject<Parent>::JSCallbackObject):
1416         (JSC::JSCallbackObject<Parent>::finishCreation):
1417         (JSC::JSCallbackObject<Parent>::init):
1418         (JSC::JSCallbackObject<Parent>::toStringName):
1419         (JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
1420         (JSC::JSCallbackObject<Parent>::getOwnPropertySlotByIndex):
1421         (JSC::JSCallbackObject<Parent>::defaultValue):
1422         (JSC::JSCallbackObject<Parent>::put):
1423         (JSC::JSCallbackObject<Parent>::putByIndex):
1424         (JSC::JSCallbackObject<Parent>::deleteProperty):
1425         (JSC::JSCallbackObject<Parent>::deletePropertyByIndex):
1426         (JSC::JSCallbackObject<Parent>::construct):
1427         (JSC::JSCallbackObject<Parent>::customHasInstance):
1428         (JSC::JSCallbackObject<Parent>::call):
1429         (JSC::JSCallbackObject<Parent>::getOwnNonIndexPropertyNames):
1430         (JSC::JSCallbackObject<Parent>::getStaticValue):
1431         (JSC::JSCallbackObject<Parent>::staticFunctionGetter):
1432         (JSC::JSCallbackObject<Parent>::callbackGetter):
1433         * API/JSClassRef.cpp:
1434         (OpaqueJSClass::contextData):
1435         (OpaqueJSClass::staticValues):
1436         (OpaqueJSClass::staticFunctions):
1437         (OpaqueJSClass::prototype):
1438         * API/JSClassRef.h:
1439         * API/JSContext.mm:
1440         (-[JSContext ensureWrapperMap]):
1441         (-[JSContext evaluateJSScript:]):
1442         (-[JSContext dependencyIdentifiersForModuleJSScript:]):
1443         (-[JSContext setException:]):
1444         (-[JSContext initWithGlobalContextRef:]):
1445         (-[JSContext wrapperMap]):
1446         * API/JSContextRef.cpp:
1447         (internalScriptTimeoutCallback):
1448         (JSGlobalContextCreateInGroup):
1449         (JSGlobalContextRetain):
1450         (JSGlobalContextRelease):
1451         (JSContextGetGlobalObject):
1452         (JSContextGetGroup):
1453         (JSContextGetGlobalContext):
1454         (JSGlobalContextCopyName):
1455         (JSGlobalContextSetName):
1456         (JSGlobalContextSetUnhandledRejectionCallback):
1457         (JSContextCreateBacktrace):
1458         (JSGlobalContextGetRemoteInspectionEnabled):
1459         (JSGlobalContextSetRemoteInspectionEnabled):
1460         (JSGlobalContextGetIncludesNativeCallStackWhenReportingExceptions):
1461         (JSGlobalContextSetIncludesNativeCallStackWhenReportingExceptions):
1462         (JSGlobalContextGetDebuggerRunLoop):
1463         (JSGlobalContextSetDebuggerRunLoop):
1464         (JSGlobalContextGetAugmentableInspectorController):
1465         * API/JSManagedValue.mm:
1466         (-[JSManagedValue initWithValue:]):
1467         (-[JSManagedValue value]):
1468         * API/JSObjectRef.cpp:
1469         (JSObjectMake):
1470         (JSObjectMakeFunctionWithCallback):
1471         (JSObjectMakeConstructor):
1472         (JSObjectMakeFunction):
1473         (JSObjectMakeArray):
1474         (JSObjectMakeDate):
1475         (JSObjectMakeError):
1476         (JSObjectMakeRegExp):
1477         (JSObjectMakeDeferredPromise):
1478         (JSObjectGetPrototype):
1479         (JSObjectSetPrototype):
1480         (JSObjectHasProperty):
1481         (JSObjectGetProperty):
1482         (JSObjectSetProperty):
1483         (JSObjectHasPropertyForKey):
1484         (JSObjectGetPropertyForKey):
1485         (JSObjectSetPropertyForKey):
1486         (JSObjectDeletePropertyForKey):
1487         (JSObjectGetPropertyAtIndex):
1488         (JSObjectSetPropertyAtIndex):
1489         (JSObjectDeleteProperty):
1490         (JSObjectGetPrivateProperty):
1491         (JSObjectSetPrivateProperty):
1492         (JSObjectDeletePrivateProperty):
1493         (JSObjectIsFunction):
1494         (JSObjectCallAsFunction):
1495         (JSObjectIsConstructor):
1496         (JSObjectCallAsConstructor):
1497         (JSObjectCopyPropertyNames):
1498         (JSObjectGetGlobalContext):
1499         * API/JSScriptRef.cpp:
1500         * API/JSTypedArray.cpp:
1501         (createTypedArray):
1502         (JSValueGetTypedArrayType):
1503         (JSObjectMakeTypedArray):
1504         (JSObjectMakeTypedArrayWithBytesNoCopy):
1505         (JSObjectMakeTypedArrayWithArrayBuffer):
1506         (JSObjectMakeTypedArrayWithArrayBufferAndOffset):
1507         (JSObjectGetTypedArrayBytesPtr):
1508         (JSObjectGetTypedArrayLength):
1509         (JSObjectGetTypedArrayByteLength):
1510         (JSObjectGetTypedArrayByteOffset):
1511         (JSObjectGetTypedArrayBuffer):
1512         (JSObjectMakeArrayBufferWithBytesNoCopy):
1513         (JSObjectGetArrayBufferBytesPtr):
1514         (JSObjectGetArrayBufferByteLength):
1515         * API/JSValue.mm:
1516         (JSContainerConvertor::add):
1517         (reportExceptionToInspector):
1518         (valueToObjectWithoutCopy):
1519         (ObjcContainerConvertor::add):
1520         * API/JSValueRef.cpp:
1521         (JSValueGetType):
1522         (JSValueIsUndefined):
1523         (JSValueIsNull):
1524         (JSValueIsBoolean):
1525         (JSValueIsNumber):
1526         (JSValueIsString):
1527         (JSValueIsObject):
1528         (JSValueIsSymbol):
1529         (JSValueIsArray):
1530         (JSValueIsDate):
1531         (JSValueIsObjectOfClass):
1532         (JSValueIsEqual):
1533         (JSValueIsStrictEqual):
1534         (JSValueIsInstanceOfConstructor):
1535         (JSValueMakeUndefined):
1536         (JSValueMakeNull):
1537         (JSValueMakeBoolean):
1538         (JSValueMakeNumber):
1539         (JSValueMakeSymbol):
1540         (JSValueMakeString):
1541         (JSValueMakeFromJSONString):
1542         (JSValueCreateJSONString):
1543         (JSValueToBoolean):
1544         (JSValueToNumber):
1545         (JSValueToStringCopy):
1546         (JSValueToObject):
1547         (JSValueProtect):
1548         (JSValueUnprotect):
1549         * API/JSWeakObjectMapRefPrivate.cpp:
1550         * API/JSWrapperMap.mm:
1551         (constructorHasInstance):
1552         (makeWrapper):
1553         (putNonEnumerable):
1554         (copyMethodsToObject):
1555         (-[JSObjCClassInfo wrapperForObject:inContext:]):
1556         (-[JSObjCClassInfo structureInContext:]):
1557         * API/ObjCCallbackFunction.mm:
1558         (JSC::objCCallbackFunctionCallAsFunction):
1559         (JSC::objCCallbackFunctionCallAsConstructor):
1560         (objCCallbackFunctionForInvocation):
1561         * API/glib/JSCCallbackFunction.cpp:
1562         (JSC::JSCCallbackFunction::call):
1563         (JSC::JSCCallbackFunction::construct):
1564         * API/glib/JSCClass.cpp:
1565         (isWrappedObject):
1566         (jscContextForObject):
1567         (jscClassCreateConstructor):
1568         (jscClassAddMethod):
1569         * API/glib/JSCContext.cpp:
1570         (jsc_context_evaluate_in_object):
1571         (jsc_context_check_syntax):
1572         * API/glib/JSCException.cpp:
1573         (jscExceptionCreate):
1574         * API/glib/JSCValue.cpp:
1575         (jsc_value_object_define_property_data):
1576         (jsc_value_object_define_property_accessor):
1577         (jscValueFunctionCreate):
1578         * API/glib/JSCWeakValue.cpp:
1579         (jscWeakValueInitialize):
1580         (jsc_weak_value_get_value):
1581         * API/glib/JSCWrapperMap.cpp:
1582         (JSC::WrapperMap::createJSWrappper):
1583         (JSC::WrapperMap::createContextWithJSWrappper):
1584         * API/tests/JSONParseTest.cpp:
1585         (testJSONParse):
1586         * API/tests/JSObjectGetProxyTargetTest.cpp:
1587         (testJSObjectGetProxyTarget):
1588         * API/tests/JSWrapperMapTests.mm:
1589         (+[JSWrapperMapTests testStructureIdentity]):
1590         * API/tests/testapi.cpp:
1591         (APIContext::APIContext):
1592         (APIContext::operator JSC::JSGlobalObject*):
1593         (APIContext::operator JSC::ExecState*): Deleted.
1594         * CMakeLists.txt:
1595         * JavaScriptCore.xcodeproj/project.pbxproj:
1596         * bindings/ScriptFunctionCall.cpp:
1597         (Deprecated::ScriptCallArgumentHandler::appendArgument):
1598         (Deprecated::ScriptFunctionCall::ScriptFunctionCall):
1599         (Deprecated::ScriptFunctionCall::call):
1600         * bindings/ScriptFunctionCall.h:
1601         * bindings/ScriptObject.cpp:
1602         (Deprecated::ScriptObject::ScriptObject):
1603         * bindings/ScriptObject.h:
1604         (Deprecated::ScriptObject::globalObject const):
1605         (Deprecated::ScriptObject::scriptState const): Deleted.
1606         * bindings/ScriptValue.cpp:
1607         (Inspector::jsToInspectorValue):
1608         (Inspector::toInspectorValue):
1609         * bindings/ScriptValue.h:
1610         * bytecode/AccessCase.cpp:
1611         (JSC::AccessCase::generateImpl):
1612         * bytecode/AccessCaseSnippetParams.cpp:
1613         (JSC::SlowPathCallGeneratorWithArguments::generateImpl):
1614         * bytecode/CodeBlock.cpp:
1615         (JSC::CodeBlock::finishCreation):
1616         (JSC::CodeBlock::setConstantIdentifierSetRegisters):
1617         (JSC::CodeBlock::setConstantRegisters):
1618         (JSC::CodeBlock::linkIncomingCall):
1619         (JSC::CodeBlock::linkIncomingPolymorphicCall):
1620         (JSC::CodeBlock::noticeIncomingCall):
1621         * bytecode/CodeBlock.h:
1622         (JSC::CallFrame::r):
1623         (JSC::CallFrame::uncheckedR):
1624         (JSC::ExecState::r): Deleted.
1625         (JSC::ExecState::uncheckedR): Deleted.
1626         * bytecode/DirectEvalCodeCache.cpp:
1627         (JSC::DirectEvalCodeCache::setSlow):
1628         * bytecode/DirectEvalCodeCache.h:
1629         (JSC::DirectEvalCodeCache::set):
1630         * bytecode/InlineCallFrame.cpp:
1631         (JSC::InlineCallFrame::calleeForCallFrame const):
1632         * bytecode/InlineCallFrame.h:
1633         * bytecode/InternalFunctionAllocationProfile.h:
1634         (JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):
1635         * bytecode/ObjectPropertyConditionSet.cpp:
1636         (JSC::generateConditionsForPropertyMiss):
1637         (JSC::generateConditionsForPropertySetterMiss):
1638         (JSC::generateConditionsForPrototypePropertyHit):
1639         (JSC::generateConditionsForPrototypePropertyHitCustom):
1640         (JSC::generateConditionsForInstanceOf):
1641         * bytecode/ObjectPropertyConditionSet.h:
1642         * bytecode/PolymorphicAccess.cpp:
1643         (JSC::AccessGenerationState::emitExplicitExceptionHandler):
1644         * bytecode/StructureStubInfo.h:
1645         (JSC::appropriateGenericGetByIdFunction):
1646         * bytecode/UnlinkedFunctionExecutable.cpp:
1647         (JSC::UnlinkedFunctionExecutable::fromGlobalCode):
1648         * bytecode/UnlinkedFunctionExecutable.h:
1649         * bytecode/ValueRecovery.cpp:
1650         (JSC::ValueRecovery::recover const):
1651         * bytecode/ValueRecovery.h:
1652         * debugger/Debugger.cpp:
1653         (JSC::Debugger::attach):
1654         (JSC::Debugger::hasBreakpoint):
1655         (JSC::Debugger::breakProgram):
1656         (JSC::lexicalGlobalObjectForCallFrame):
1657         (JSC::Debugger::updateCallFrame):
1658         (JSC::Debugger::pauseIfNeeded):
1659         (JSC::Debugger::exception):
1660         (JSC::Debugger::atStatement):
1661         (JSC::Debugger::atExpression):
1662         (JSC::Debugger::callEvent):
1663         (JSC::Debugger::returnEvent):
1664         (JSC::Debugger::unwindEvent):
1665         (JSC::Debugger::willExecuteProgram):
1666         (JSC::Debugger::didExecuteProgram):
1667         (JSC::Debugger::didReachBreakpoint):
1668         * debugger/Debugger.h:
1669         * debugger/DebuggerCallFrame.cpp:
1670         (JSC::DebuggerCallFrame::create):
1671         (JSC::DebuggerCallFrame::globalObject):
1672         (JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const):
1673         (JSC::DebuggerCallFrame::thisValue const):
1674         (JSC::DebuggerCallFrame::evaluateWithScopeExtension):
1675         (JSC::DebuggerCallFrame::sourceIDForCallFrame):
1676         (JSC::DebuggerCallFrame::globalExec): Deleted.
1677         (JSC::DebuggerCallFrame::vmEntryGlobalObject const): Deleted.
1678         * debugger/DebuggerCallFrame.h:
1679         * debugger/DebuggerEvalEnabler.h:
1680         (JSC::DebuggerEvalEnabler::DebuggerEvalEnabler):
1681         (JSC::DebuggerEvalEnabler::~DebuggerEvalEnabler):
1682         * debugger/DebuggerScope.cpp:
1683         (JSC::DebuggerScope::toStringName):
1684         (JSC::DebuggerScope::getOwnPropertySlot):
1685         (JSC::DebuggerScope::put):
1686         (JSC::DebuggerScope::deleteProperty):
1687         (JSC::DebuggerScope::getOwnPropertyNames):
1688         (JSC::DebuggerScope::defineOwnProperty):
1689         (JSC::DebuggerScope::caughtValue const):
1690         * debugger/DebuggerScope.h:
1691         * dfg/DFGAbstractInterpreterInlines.h:
1692         (JSC::DFG::AbstractInterpreter<AbstractStateType>::booleanResult):
1693         (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
1694         * dfg/DFGArithMode.h:
1695         * dfg/DFGArrayifySlowPathGenerator.h:
1696         * dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
1697         (JSC::DFG::CallArrayAllocatorSlowPathGenerator::CallArrayAllocatorSlowPathGenerator):
1698         (JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableSizeSlowPathGenerator):
1699         (JSC::DFG::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator):
1700         * dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
1701         * dfg/DFGGraph.h:
1702         (JSC::DFG::Graph::globalThisObjectFor):
1703         * dfg/DFGJITCode.cpp:
1704         (JSC::DFG::JITCode::reconstruct):
1705         * dfg/DFGJITCode.h:
1706         * dfg/DFGJITCompiler.cpp:
1707         (JSC::DFG::JITCompiler::compileExceptionHandlers):
1708         (JSC::DFG::JITCompiler::compileFunction):
1709         * dfg/DFGOSREntry.cpp:
1710         (JSC::DFG::prepareOSREntry):
1711         (JSC::DFG::prepareCatchOSREntry):
1712         * dfg/DFGOSREntry.h:
1713         (JSC::DFG::prepareOSREntry):
1714         * dfg/DFGOSRExit.cpp:
1715         (JSC::DFG::createClonedArgumentsDuringExit):
1716         (JSC::DFG::OSRExit::executeOSRExit):
1717         (JSC::DFG::adjustAndJumpToTarget):
1718         (JSC::DFG::printOSRExit):
1719         (JSC::DFG::OSRExit::emitRestoreArguments):
1720         (JSC::DFG::OSRExit::compileOSRExit):
1721         (JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure):
1722         * dfg/DFGOSRExit.h:
1723         * dfg/DFGOSRExitCompilerCommon.cpp:
1724         (JSC::DFG::osrWriteBarrier):
1725         (JSC::DFG::adjustAndJumpToTarget):
1726         * dfg/DFGOperations.cpp:
1727         (JSC::DFG::putByVal):
1728         (JSC::DFG::putByValInternal):
1729         (JSC::DFG::putByValCellInternal):
1730         (JSC::DFG::putByValCellStringInternal):
1731         (JSC::DFG::newTypedArrayWithSize):
1732         (JSC::DFG::putWithThis):
1733         (JSC::DFG::binaryOp):
1734         (JSC::DFG::bitwiseBinaryOp):
1735         (JSC::DFG::getByValObject):
1736         * dfg/DFGOperations.h:
1737         * dfg/DFGSaneStringGetByValSlowPathGenerator.h:
1738         (JSC::DFG::SaneStringGetByValSlowPathGenerator::SaneStringGetByValSlowPathGenerator):
1739         * dfg/DFGSpeculativeJIT.cpp:
1740         (JSC::DFG::SpeculativeJIT::compileInById):
1741         (JSC::DFG::SpeculativeJIT::compileInByVal):
1742         (JSC::DFG::SpeculativeJIT::compileDeleteById):
1743         (JSC::DFG::SpeculativeJIT::compileDeleteByVal):
1744         (JSC::DFG::SpeculativeJIT::compilePushWithScope):
1745         (JSC::DFG::SpeculativeJIT::compileStringSlice):
1746         (JSC::DFG::SpeculativeJIT::compileToLowerCase):
1747         (JSC::DFG::SpeculativeJIT::compileCheckTraps):
1748         (JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
1749         (JSC::DFG::SpeculativeJIT::compileGetByValOnString):
1750         (JSC::DFG::SpeculativeJIT::compileFromCharCode):
1751         (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
1752         (JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
1753         (JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
1754         (JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString):
1755         (JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol):
1756         (JSC::DFG::SpeculativeJIT::compileGetByValWithThis):
1757         (JSC::DFG::SpeculativeJIT::compileParseInt):
1758         (JSC::DFG::SpeculativeJIT::compileInstanceOfForCells):
1759         (JSC::DFG::SpeculativeJIT::compileValueBitNot):
1760         (JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
1761         (JSC::DFG::SpeculativeJIT::compileValueBitwiseOp):
1762         (JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
1763         (JSC::DFG::SpeculativeJIT::compileValueLShiftOp):
1764         (JSC::DFG::SpeculativeJIT::compileValueBitRShift):
1765         (JSC::DFG::SpeculativeJIT::compileValueAdd):
1766         (JSC::DFG::SpeculativeJIT::compileValueSub):
1767         (JSC::DFG::SpeculativeJIT::compileMathIC):
1768         (JSC::DFG::SpeculativeJIT::compileInstanceOfCustom):
1769         (JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor):
1770         (JSC::DFG::SpeculativeJIT::compileArithAbs):
1771         (JSC::DFG::SpeculativeJIT::compileArithClz32):
1772         (JSC::DFG::SpeculativeJIT::compileArithDoubleUnaryOp):
1773         (JSC::DFG::SpeculativeJIT::compileValueMul):
1774         (JSC::DFG::SpeculativeJIT::compileValueDiv):
1775         (JSC::DFG::SpeculativeJIT::compileArithFRound):
1776         (JSC::DFG::SpeculativeJIT::compileValueMod):
1777         (JSC::DFG::SpeculativeJIT::compileArithRounding):
1778         (JSC::DFG::SpeculativeJIT::compileArithSqrt):
1779         (JSC::DFG::SpeculativeJIT::compileValuePow):
1780         (JSC::DFG::SpeculativeJIT::compileStringEquality):
1781         (JSC::DFG::SpeculativeJIT::compileStringCompare):
1782         (JSC::DFG::SpeculativeJIT::compileSameValue):
1783         (JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
1784         (JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
1785         (JSC::DFG::SpeculativeJIT::compileNewFunction):
1786         (JSC::DFG::SpeculativeJIT::compileSetFunctionName):
1787         (JSC::DFG::SpeculativeJIT::compileLoadVarargs):
1788         (JSC::DFG::SpeculativeJIT::compileCreateActivation):
1789         (JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
1790         (JSC::DFG::SpeculativeJIT::compileCreateScopedArguments):
1791         (JSC::DFG::SpeculativeJIT::compileCreateClonedArguments):
1792         (JSC::DFG::SpeculativeJIT::compileCreateRest):
1793         (JSC::DFG::SpeculativeJIT::compileSpread):
1794         (JSC::DFG::SpeculativeJIT::compileNewArray):
1795         (JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
1796         (JSC::DFG::SpeculativeJIT::compileArraySlice):
1797         (JSC::DFG::SpeculativeJIT::compileArrayIndexOf):
1798         (JSC::DFG::SpeculativeJIT::compileArrayPush):
1799         (JSC::DFG::SpeculativeJIT::compileNotifyWrite):
1800         (JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
1801         (JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
1802         (JSC::DFG::SpeculativeJIT::compileCallDOM):
1803         (JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
1804         (JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOrStringValueOf):
1805         (JSC::DFG::SpeculativeJIT::compileNumberToStringWithValidRadixConstant):
1806         (JSC::DFG::SpeculativeJIT::compileNumberToStringWithRadix):
1807         (JSC::DFG::SpeculativeJIT::compileNewStringObject):
1808         (JSC::DFG::SpeculativeJIT::compileNewSymbol):
1809         (JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
1810         (JSC::DFG::SpeculativeJIT::compileNewRegexp):
1811         (JSC::DFG::SpeculativeJIT::emitSwitchImm):
1812         (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
1813         (JSC::DFG::SpeculativeJIT::emitSwitchChar):
1814         (JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
1815         (JSC::DFG::SpeculativeJIT::emitSwitchString):
1816         (JSC::DFG::SpeculativeJIT::compileStoreBarrier):
1817         (JSC::DFG::SpeculativeJIT::compilePutAccessorById):
1818         (JSC::DFG::SpeculativeJIT::compilePutGetterSetterById):
1819         (JSC::DFG::SpeculativeJIT::compileResolveScope):
1820         (JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval):
1821         (JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
1822         (JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
1823         (JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):
1824         (JSC::DFG::SpeculativeJIT::compileStringReplace):
1825         (JSC::DFG::SpeculativeJIT::compileDefineDataProperty):
1826         (JSC::DFG::SpeculativeJIT::compileDefineAccessorProperty):
1827         (JSC::DFG::SpeculativeJIT::compileThrow):
1828         (JSC::DFG::SpeculativeJIT::compileThrowStaticError):
1829         (JSC::DFG::SpeculativeJIT::compileHasGenericProperty):
1830         (JSC::DFG::SpeculativeJIT::compileToIndexString):
1831         (JSC::DFG::SpeculativeJIT::compilePutByIdWithThis):
1832         (JSC::DFG::SpeculativeJIT::compileHasStructureProperty):
1833         (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
1834         (JSC::DFG::SpeculativeJIT::compileStrCat):
1835         (JSC::DFG::SpeculativeJIT::compileNewArrayBuffer):
1836         (JSC::DFG::SpeculativeJIT::compileNewArrayWithSize):
1837         (JSC::DFG::SpeculativeJIT::compileNewTypedArray):
1838         (JSC::DFG::SpeculativeJIT::compileToThis):
1839         (JSC::DFG::SpeculativeJIT::compileObjectKeys):
1840         (JSC::DFG::SpeculativeJIT::compileObjectCreate):
1841         (JSC::DFG::SpeculativeJIT::compileCreateThis):
1842         (JSC::DFG::SpeculativeJIT::compileCreatePromise):
1843         (JSC::DFG::SpeculativeJIT::compileCreateInternalFieldObject):
1844         (JSC::DFG::SpeculativeJIT::compileNewObject):
1845         (JSC::DFG::SpeculativeJIT::compileNewPromise):
1846         (JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject):
1847         (JSC::DFG::SpeculativeJIT::compileToPrimitive):
1848         (JSC::DFG::SpeculativeJIT::compileSetAdd):
1849         (JSC::DFG::SpeculativeJIT::compileMapSet):
1850         (JSC::DFG::SpeculativeJIT::compileWeakSetAdd):
1851         (JSC::DFG::SpeculativeJIT::compileWeakMapSet):
1852         (JSC::DFG::SpeculativeJIT::compileGetPrototypeOf):
1853         (JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
1854         (JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
1855         (JSC::DFG::SpeculativeJIT::compileGetDirectPname):
1856         (JSC::DFG::SpeculativeJIT::compileProfileType):
1857         (JSC::DFG::SpeculativeJIT::cachedPutById):
1858         (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
1859         (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
1860         (JSC::DFG::SpeculativeJIT::compileBigIntEquality):
1861         (JSC::DFG::SpeculativeJIT::compileMakeRope):
1862         * dfg/DFGSpeculativeJIT.h:
1863         (JSC::DFG::SpeculativeJIT::callOperationWithCallFrameRollbackOnException):
1864         (JSC::DFG::SpeculativeJIT::prepareForExternalCall):
1865         * dfg/DFGSpeculativeJIT32_64.cpp:
1866         (JSC::DFG::SpeculativeJIT::cachedGetById):
1867         (JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
1868         (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
1869         (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
1870         (JSC::DFG::SpeculativeJIT::emitCall):
1871         (JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
1872         (JSC::DFG::SpeculativeJIT::compile):
1873         * dfg/DFGSpeculativeJIT64.cpp:
1874         (JSC::DFG::SpeculativeJIT::cachedGetById):
1875         (JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
1876         (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
1877         (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
1878         (JSC::DFG::SpeculativeJIT::emitCall):
1879         (JSC::DFG::SpeculativeJIT::compile):
1880         * dynbench.cpp:
1881         (main):
1882         * ftl/FTLCompile.cpp:
1883         (JSC::FTL::compile):
1884         * ftl/FTLGeneratedFunction.h:
1885         * ftl/FTLLink.cpp:
1886         (JSC::FTL::link):
1887         * ftl/FTLLowerDFGToB3.cpp:
1888         (JSC::FTL::DFG::LowerDFGToB3::lower):
1889         (JSC::FTL::DFG::LowerDFGToB3::compileToObjectOrCallObjectConstructor):
1890         (JSC::FTL::DFG::LowerDFGToB3::compileToThis):
1891         (JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
1892         (JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
1893         (JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
1894         (JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
1895         (JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
1896         (JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
1897         (JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):
1898         (JSC::FTL::DFG::LowerDFGToB3::compileValueDiv):
1899         (JSC::FTL::DFG::LowerDFGToB3::compileValueMod):
1900         (JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):
1901         (JSC::FTL::DFG::LowerDFGToB3::compileArithUnary):
1902         (JSC::FTL::DFG::LowerDFGToB3::compileValuePow):
1903         (JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
1904         (JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
1905         (JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
1906         (JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):
1907         (JSC::FTL::DFG::LowerDFGToB3::compileArithSqrt):
1908         (JSC::FTL::DFG::LowerDFGToB3::compileArithFRound):
1909         (JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):
1910         (JSC::FTL::DFG::LowerDFGToB3::compileValueBitAnd):
1911         (JSC::FTL::DFG::LowerDFGToB3::compileValueBitOr):
1912         (JSC::FTL::DFG::LowerDFGToB3::compileValueBitXor):
1913         (JSC::FTL::DFG::LowerDFGToB3::compileValueBitRShift):
1914         (JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
1915         (JSC::FTL::DFG::LowerDFGToB3::compileArrayify):
1916         (JSC::FTL::DFG::LowerDFGToB3::compileGetById):
1917         (JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
1918         (JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
1919         (JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
1920         (JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
1921         (JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
1922         (JSC::FTL::DFG::LowerDFGToB3::compileAtomicsIsLockFree):
1923         (JSC::FTL::DFG::LowerDFGToB3::compileDefineDataProperty):
1924         (JSC::FTL::DFG::LowerDFGToB3::compileDefineAccessorProperty):
1925         (JSC::FTL::DFG::LowerDFGToB3::compilePutById):
1926         (JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
1927         (JSC::FTL::DFG::LowerDFGToB3::compileGetPrototypeOf):
1928         (JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
1929         (JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
1930         (JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
1931         (JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
1932         (JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
1933         (JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
1934         (JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
1935         (JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
1936         (JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf):
1937         (JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
1938         (JSC::FTL::DFG::LowerDFGToB3::compilePushWithScope):
1939         (JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
1940         (JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
1941         (JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
1942         (JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
1943         (JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
1944         (JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
1945         (JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):
1946         (JSC::FTL::DFG::LowerDFGToB3::compileObjectCreate):
1947         (JSC::FTL::DFG::LowerDFGToB3::compileNewPromise):
1948         (JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
1949         (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
1950         (JSC::FTL::DFG::LowerDFGToB3::compileNewSymbol):
1951         (JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
1952         (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
1953         (JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
1954         (JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
1955         (JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
1956         (JSC::FTL::DFG::LowerDFGToB3::compileSpread):
1957         (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
1958         (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
1959         (JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
1960         (JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
1961         (JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructorOrStringValueOf):
1962         (JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
1963         (JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
1964         (JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
1965         (JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
1966         (JSC::FTL::DFG::LowerDFGToB3::compileNotifyWrite):
1967         (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
1968         (JSC::FTL::DFG::LowerDFGToB3::compileSameValue):
1969         (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
1970         (JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
1971         (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
1972         (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
1973         (JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
1974         (JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
1975         (JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
1976         (JSC::FTL::DFG::LowerDFGToB3::compileThrow):
1977         (JSC::FTL::DFG::LowerDFGToB3::compileThrowStaticError):
1978         (JSC::FTL::DFG::LowerDFGToB3::mapHashString):
1979         (JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
1980         (JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
1981         (JSC::FTL::DFG::LowerDFGToB3::compileSetAdd):
1982         (JSC::FTL::DFG::LowerDFGToB3::compileMapSet):
1983         (JSC::FTL::DFG::LowerDFGToB3::compileWeakSetAdd):
1984         (JSC::FTL::DFG::LowerDFGToB3::compileWeakMapSet):
1985         (JSC::FTL::DFG::LowerDFGToB3::compileInByVal):
1986         (JSC::FTL::DFG::LowerDFGToB3::compileInById):
1987         (JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):
1988         (JSC::FTL::DFG::LowerDFGToB3::compileParseInt):
1989         (JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
1990         (JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
1991         (JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
1992         (JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
1993         (JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
1994         (JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
1995         (JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
1996         (JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
1997         (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
1998         (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
1999         (JSC::FTL::DFG::LowerDFGToB3::compileCheckTraps):
2000         (JSC::FTL::DFG::LowerDFGToB3::compileRegExpExec):
2001         (JSC::FTL::DFG::LowerDFGToB3::compileRegExpExecNonGlobalOrSticky):
2002         (JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFastGlobal):
2003         (JSC::FTL::DFG::LowerDFGToB3::compileRegExpTest):
2004         (JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFast):
2005         (JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
2006         (JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
2007         (JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):
2008         (JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
2009         (JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
2010         (JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl):
2011         (JSC::FTL::DFG::LowerDFGToB3::getById):
2012         (JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
2013         (JSC::FTL::DFG::LowerDFGToB3::compare):
2014         (JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
2015         (JSC::FTL::DFG::LowerDFGToB3::compileToLowerCase):
2016         (JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithRadix):
2017         (JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithValidRadixConstant):
2018         (JSC::FTL::DFG::LowerDFGToB3::compileResolveScopeForHoistingFuncDeclInEval):
2019         (JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
2020         (JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
2021         (JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
2022         (JSC::FTL::DFG::LowerDFGToB3::compileCallDOM):
2023         (JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
2024         (JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
2025         (JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
2026         (JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
2027         (JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
2028         (JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):
2029         (JSC::FTL::DFG::LowerDFGToB3::allocateObject):
2030         (JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
2031         (JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
2032         (JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
2033         (JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
2034         (JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
2035         (JSC::FTL::DFG::LowerDFGToB3::callCheck):
2036         * ftl/FTLOSREntry.cpp:
2037         (JSC::FTL::prepareOSREntry):
2038         * ftl/FTLOSREntry.h:
2039         * ftl/FTLOSRExitCompiler.cpp:
2040         (JSC::FTL::compileStub):
2041         (JSC::FTL::compileFTLOSRExit):
2042         * ftl/FTLOSRExitCompiler.h:
2043         * ftl/FTLOperations.cpp:
2044         (JSC::FTL::operationPopulateObjectInOSR):
2045         (JSC::FTL::operationMaterializeObjectInOSR):
2046         (JSC::FTL::compileFTLLazySlowPath):
2047         * ftl/FTLOperations.h:
2048         * ftl/FTLSlowPathCall.h:
2049         (JSC::FTL::callOperation):
2050         * generator/Metadata.rb:
2051         * heap/Handle.h:
2052         * heap/HeapCell.h:
2053         * heap/HeapSnapshotBuilder.cpp:
2054         (JSC::HeapSnapshotBuilder::json):
2055         * inspector/ConsoleMessage.cpp:
2056         (Inspector::ConsoleMessage::ConsoleMessage):
2057         (Inspector::ConsoleMessage::autogenerateMetadata):
2058         (Inspector::ConsoleMessage::addToFrontend):
2059         (Inspector::ConsoleMessage::globalObject const):
2060         (Inspector::ConsoleMessage::scriptState const): Deleted.
2061         * inspector/ConsoleMessage.h:
2062         * inspector/InjectedScript.cpp:
2063         (Inspector::InjectedScript::wrapCallFrames const):
2064         (Inspector::InjectedScript::wrapObject const):
2065         (Inspector::InjectedScript::wrapJSONString const):
2066         (Inspector::InjectedScript::wrapTable const):
2067         (Inspector::InjectedScript::previewValue const):
2068         (Inspector::InjectedScript::arrayFromVector):
2069         * inspector/InjectedScriptBase.cpp:
2070         (Inspector::InjectedScriptBase::hasAccessToInspectedScriptState const):
2071         (Inspector::InjectedScriptBase::callFunctionWithEvalEnabled const):
2072         (Inspector::InjectedScriptBase::makeCall):
2073         (Inspector::InjectedScriptBase::makeAsyncCall):
2074         * inspector/InjectedScriptBase.h:
2075         * inspector/InjectedScriptHost.cpp:
2076         (Inspector::InjectedScriptHost::wrapper):
2077         * inspector/InjectedScriptHost.h:
2078         * inspector/InjectedScriptManager.cpp:
2079         (Inspector::InjectedScriptManager::injectedScriptIdFor):
2080         (Inspector::InjectedScriptManager::createInjectedScript):
2081         (Inspector::InjectedScriptManager::injectedScriptFor):
2082         * inspector/InjectedScriptManager.h:
2083         * inspector/InjectedScriptModule.cpp:
2084         (Inspector::InjectedScriptModule::ensureInjected):
2085         * inspector/InjectedScriptModule.h:
2086         * inspector/InspectorEnvironment.h:
2087         * inspector/JSGlobalObjectConsoleClient.cpp:
2088         (Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
2089         (Inspector::JSGlobalObjectConsoleClient::count):
2090         (Inspector::JSGlobalObjectConsoleClient::countReset):
2091         (Inspector::JSGlobalObjectConsoleClient::profile):
2092         (Inspector::JSGlobalObjectConsoleClient::profileEnd):
2093         (Inspector::JSGlobalObjectConsoleClient::takeHeapSnapshot):
2094         (Inspector::JSGlobalObjectConsoleClient::time):
2095         (Inspector::JSGlobalObjectConsoleClient::timeLog):
2096         (Inspector::JSGlobalObjectConsoleClient::timeEnd):
2097         (Inspector::JSGlobalObjectConsoleClient::timeStamp):
2098         (Inspector::JSGlobalObjectConsoleClient::record):
2099         (Inspector::JSGlobalObjectConsoleClient::recordEnd):
2100         (Inspector::JSGlobalObjectConsoleClient::screenshot):
2101         * inspector/JSGlobalObjectConsoleClient.h:
2102         * inspector/JSGlobalObjectInspectorController.cpp:
2103         (Inspector::JSGlobalObjectInspectorController::reportAPIException):
2104         * inspector/JSGlobalObjectInspectorController.h:
2105         * inspector/JSGlobalObjectScriptDebugServer.h:
2106         * inspector/JSInjectedScriptHost.cpp:
2107         (Inspector::JSInjectedScriptHost::evaluate const):
2108         (Inspector::JSInjectedScriptHost::savedResultAlias const):
2109         (Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
2110         (Inspector::JSInjectedScriptHost::internalConstructorName):
2111         (Inspector::JSInjectedScriptHost::isHTMLAllCollection):
2112         (Inspector::JSInjectedScriptHost::isPromiseRejectedWithNativeGetterTypeError):
2113         (Inspector::JSInjectedScriptHost::subtype):
2114         (Inspector::JSInjectedScriptHost::functionDetails):
2115         (Inspector::constructInternalProperty):
2116         (Inspector::JSInjectedScriptHost::getInternalProperties):
2117         (Inspector::JSInjectedScriptHost::proxyTargetValue):
2118         (Inspector::JSInjectedScriptHost::weakMapSize):
2119         (Inspector::JSInjectedScriptHost::weakMapEntries):
2120         (Inspector::JSInjectedScriptHost::weakSetSize):
2121         (Inspector::JSInjectedScriptHost::weakSetEntries):
2122         (Inspector::cloneArrayIteratorObject):
2123         (Inspector::cloneMapIteratorObject):
2124         (Inspector::cloneSetIteratorObject):
2125         (Inspector::JSInjectedScriptHost::iteratorEntries):
2126         (Inspector::checkForbiddenPrototype):
2127         (Inspector::JSInjectedScriptHost::queryInstances):
2128         (Inspector::JSInjectedScriptHost::queryHolders):
2129         * inspector/JSInjectedScriptHost.h:
2130         * inspector/JSInjectedScriptHostPrototype.cpp:
2131         (Inspector::jsInjectedScriptHostPrototypeAttributeEvaluate):
2132         (Inspector::jsInjectedScriptHostPrototypeAttributeSavedResultAlias):
2133         (Inspector::jsInjectedScriptHostPrototypeFunctionInternalConstructorName):
2134         (Inspector::jsInjectedScriptHostPrototypeFunctionIsHTMLAllCollection):
2135         (Inspector::jsInjectedScriptHostPrototypeFunctionIsPromiseRejectedWithNativeGetterTypeError):
2136         (Inspector::jsInjectedScriptHostPrototypeFunctionProxyTargetValue):
2137         (Inspector::jsInjectedScriptHostPrototypeFunctionWeakMapSize):
2138         (Inspector::jsInjectedScriptHostPrototypeFunctionWeakMapEntries):
2139         (Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetSize):
2140         (Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetEntries):
2141         (Inspector::jsInjectedScriptHostPrototypeFunctionIteratorEntries):
2142         (Inspector::jsInjectedScriptHostPrototypeFunctionQueryInstances):
2143         (Inspector::jsInjectedScriptHostPrototypeFunctionQueryHolders):
2144         (Inspector::jsInjectedScriptHostPrototypeFunctionEvaluateWithScopeExtension):
2145         (Inspector::jsInjectedScriptHostPrototypeFunctionSubtype):
2146         (Inspector::jsInjectedScriptHostPrototypeFunctionFunctionDetails):
2147         (Inspector::jsInjectedScriptHostPrototypeFunctionGetInternalProperties):
2148         * inspector/JSJavaScriptCallFrame.cpp:
2149         (Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
2150         (Inspector::valueForScopeLocation):
2151         (Inspector::JSJavaScriptCallFrame::scopeDescriptions):
2152         (Inspector::JSJavaScriptCallFrame::caller const):
2153         (Inspector::JSJavaScriptCallFrame::sourceID const):
2154         (Inspector::JSJavaScriptCallFrame::line const):
2155         (Inspector::JSJavaScriptCallFrame::column const):
2156         (Inspector::JSJavaScriptCallFrame::functionName const):
2157         (Inspector::JSJavaScriptCallFrame::scopeChain const):
2158         (Inspector::JSJavaScriptCallFrame::thisObject const):
2159         (Inspector::JSJavaScriptCallFrame::isTailDeleted const):
2160         (Inspector::JSJavaScriptCallFrame::type const):
2161         (Inspector::toJS):
2162         * inspector/JSJavaScriptCallFrame.h:
2163         * inspector/JSJavaScriptCallFramePrototype.cpp:
2164         (Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):
2165         (Inspector::jsJavaScriptCallFramePrototypeFunctionScopeDescriptions):
2166         (Inspector::jsJavaScriptCallFrameAttributeCaller):
2167         (Inspector::jsJavaScriptCallFrameAttributeSourceID):
2168         (Inspector::jsJavaScriptCallFrameAttributeLine):
2169         (Inspector::jsJavaScriptCallFrameAttributeColumn):
2170         (Inspector::jsJavaScriptCallFrameAttributeFunctionName):
2171         (Inspector::jsJavaScriptCallFrameAttributeScopeChain):
2172         (Inspector::jsJavaScriptCallFrameAttributeThisObject):
2173         (Inspector::jsJavaScriptCallFrameAttributeType):
2174         (Inspector::jsJavaScriptCallFrameIsTailDeleted):
2175         * inspector/JavaScriptCallFrame.h:
2176         (Inspector::JavaScriptCallFrame::deprecatedVMEntryGlobalObject const):
2177         (Inspector::JavaScriptCallFrame::vmEntryGlobalObject const): Deleted.
2178         * inspector/ScriptArguments.cpp:
2179         (Inspector::ScriptArguments::create):
2180         (Inspector::ScriptArguments::ScriptArguments):
2181         (Inspector::ScriptArguments::globalObject const):
2182         (Inspector::ScriptArguments::getFirstArgumentAsString const):
2183         (Inspector::ScriptArguments::isEqual const):
2184         (Inspector::ScriptArguments::globalState const): Deleted.
2185         * inspector/ScriptArguments.h:
2186         * inspector/ScriptCallStackFactory.cpp:
2187         (Inspector::createScriptCallStack):
2188         (Inspector::createScriptCallStackForConsole):
2189         (Inspector::extractSourceInformationFromException):
2190         (Inspector::createScriptCallStackFromException):
2191         (Inspector::createScriptArguments):
2192         * inspector/ScriptCallStackFactory.h:
2193         * inspector/ScriptDebugListener.h:
2194         * inspector/ScriptDebugServer.cpp:
2195         (Inspector::ScriptDebugServer::evaluateBreakpointAction):
2196         (Inspector::ScriptDebugServer::sourceParsed):
2197         (Inspector::ScriptDebugServer::handleExceptionInBreakpointCondition const):
2198         (Inspector::ScriptDebugServer::handlePause):
2199         (Inspector::ScriptDebugServer::exceptionOrCaughtValue):
2200         * inspector/ScriptDebugServer.h:
2201         * inspector/agents/InspectorAuditAgent.cpp:
2202         (Inspector::InspectorAuditAgent::setup):
2203         (Inspector::InspectorAuditAgent::populateAuditObject):
2204         * inspector/agents/InspectorAuditAgent.h:
2205         * inspector/agents/InspectorConsoleAgent.cpp:
2206         (Inspector::InspectorConsoleAgent::startTiming):
2207         (Inspector::InspectorConsoleAgent::logTiming):
2208         (Inspector::InspectorConsoleAgent::stopTiming):
2209         (Inspector::InspectorConsoleAgent::count):
2210         (Inspector::InspectorConsoleAgent::countReset):
2211         * inspector/agents/InspectorConsoleAgent.h:
2212         * inspector/agents/InspectorDebuggerAgent.cpp:
2213         (Inspector::InspectorDebuggerAgent::didScheduleAsyncCall):
2214         (Inspector::InspectorDebuggerAgent::resume):
2215         (Inspector::InspectorDebuggerAgent::didPause):
2216         (Inspector::InspectorDebuggerAgent::breakpointActionProbe):
2217         (Inspector::InspectorDebuggerAgent::didContinue):
2218         (Inspector::InspectorDebuggerAgent::clearDebuggerBreakpointState):
2219         (Inspector::InspectorDebuggerAgent::assertPaused):
2220         * inspector/agents/InspectorDebuggerAgent.h:
2221         * inspector/agents/InspectorHeapAgent.cpp:
2222         (Inspector::InspectorHeapAgent::snapshot):
2223         (Inspector::InspectorHeapAgent::getPreview):
2224         (Inspector::InspectorHeapAgent::getRemoteObject):
2225         * inspector/agents/JSGlobalObjectAuditAgent.cpp:
2226         (Inspector::JSGlobalObjectAuditAgent::injectedScriptForEval):
2227         * inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
2228         (Inspector::JSGlobalObjectDebuggerAgent::injectedScriptForEval):
2229         (Inspector::JSGlobalObjectDebuggerAgent::breakpointActionLog):
2230         * inspector/agents/JSGlobalObjectDebuggerAgent.h:
2231         * inspector/agents/JSGlobalObjectRuntimeAgent.cpp:
2232         (Inspector::JSGlobalObjectRuntimeAgent::injectedScriptForEval):
2233         * interpreter/AbstractPC.cpp:
2234         (JSC::AbstractPC::AbstractPC):
2235         * interpreter/AbstractPC.h:
2236         * interpreter/CachedCall.h:
2237         (JSC::CachedCall::CachedCall):
2238         * interpreter/CallFrame.cpp:
2239         (JSC::CallFrame::initDeprecatedCallFrameForDebugger):
2240         (JSC::CallFrame::wasmAwareLexicalGlobalObject):
2241         (JSC::CallFrame::convertToStackOverflowFrame):
2242         (JSC::ExecState::initGlobalExec): Deleted.
2243         * interpreter/CallFrame.h:
2244         (JSC::CallFrame::isDeprecatedCallFrameForDebugger const):
2245         (JSC::CallFrame::isGlobalExec const): Deleted.
2246         * interpreter/Interpreter.cpp:
2247         (JSC::eval):
2248         (JSC::sizeOfVarargs):
2249         (JSC::sizeFrameForForwardArguments):
2250         (JSC::sizeFrameForVarargs):
2251         (JSC::loadVarargs):
2252         (JSC::setupVarargsFrame):
2253         (JSC::setupVarargsFrameAndSetThis):
2254         (JSC::setupForwardArgumentsFrame):
2255         (JSC::setupForwardArgumentsFrameAndSetThis):
2256         (JSC::notifyDebuggerOfUnwinding):
2257         (JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
2258         (JSC::Interpreter::executeProgram):
2259         (JSC::Interpreter::executeCall):
2260         (JSC::Interpreter::executeConstruct):
2261         (JSC::Interpreter::execute):
2262         (JSC::Interpreter::executeModuleProgram):
2263         (JSC::Interpreter::debug):
2264         * interpreter/Interpreter.h:
2265         * interpreter/InterpreterInlines.h:
2266         (JSC::Interpreter::execute):
2267         * interpreter/Register.h:
2268         * interpreter/ShadowChicken.cpp:
2269         (JSC::ShadowChicken::log):
2270         (JSC::ShadowChicken::update):
2271         (JSC::ShadowChicken::functionsOnStack):
2272         * interpreter/ShadowChicken.h:
2273         * interpreter/ShadowChickenInlines.h:
2274         (JSC::ShadowChicken::iterate):
2275         * interpreter/StackVisitor.cpp:
2276         (JSC::StackVisitor::Frame::createArguments):
2277         * interpreter/StackVisitor.h:
2278         * jit/AssemblyHelpers.cpp:
2279         (JSC::AssemblyHelpers::emitDumbVirtualCall):
2280         * jit/AssemblyHelpers.h:
2281         * jit/CCallHelpers.cpp:
2282         (JSC::CCallHelpers::ensureShadowChickenPacket):
2283         * jit/CCallHelpers.h:
2284         (JSC::CCallHelpers::prepareCallOperation):
2285         (JSC::CCallHelpers::setupArguments):
2286         * jit/HostCallReturnValue.cpp:
2287         (JSC::getHostCallReturnValueWithExecState):
2288         * jit/HostCallReturnValue.h:
2289         (JSC::initializeHostCallReturnValue):
2290         * jit/JIT.cpp:
2291         (JSC::JIT::emitEnterOptimizationCheck):
2292         (JSC::JIT::compileWithoutLinking):
2293         (JSC::JIT::privateCompileExceptionHandlers):
2294         * jit/JIT.h:
2295         * jit/JITArithmetic.cpp:
2296         (JSC::JIT::emit_compareAndJumpSlow):
2297         (JSC::JIT::emitMathICFast):
2298         (JSC::JIT::emitMathICSlow):
2299         * jit/JITArithmetic32_64.cpp:
2300         (JSC::JIT::emit_compareAndJumpSlow):
2301         * jit/JITCall.cpp:
2302         (JSC::JIT::compileSetupFrame):
2303         (JSC::JIT::compileCallEval):
2304         (JSC::JIT::compileCallEvalSlowCase):
2305         (JSC::JIT::compileOpCallSlowCase):
2306         * jit/JITCall32_64.cpp:
2307         (JSC::JIT::compileCallEval):
2308         (JSC::JIT::compileCallEvalSlowCase):
2309         (JSC::JIT::compileOpCallSlowCase):
2310         * jit/JITExceptions.cpp:
2311         (JSC::genericUnwind):
2312         * jit/JITExceptions.h:
2313         * jit/JITOpcodes.cpp:
2314         (JSC::JIT::emitSlow_op_new_object):
2315         (JSC::JIT::emitSlow_op_instanceof):
2316         (JSC::JIT::emit_op_set_function_name):
2317         (JSC::JIT::emit_op_throw):
2318         (JSC::JIT::emitSlow_op_jstricteq):
2319         (JSC::JIT::emitSlow_op_jnstricteq):
2320         (JSC::JIT::emit_op_catch):
2321         (JSC::JIT::emit_op_switch_imm):
2322         (JSC::JIT::emit_op_switch_char):
2323         (JSC::JIT::emit_op_switch_string):
2324         (JSC::JIT::emit_op_debug):
2325         (JSC::JIT::emitSlow_op_eq):
2326         (JSC::JIT::emitSlow_op_neq):
2327         (JSC::JIT::emitSlow_op_jeq):
2328         (JSC::JIT::emitSlow_op_jneq):
2329         (JSC::JIT::emitSlow_op_instanceof_custom):
2330         (JSC::JIT::emitSlow_op_loop_hint):
2331         (JSC::JIT::emitSlow_op_check_traps):
2332         (JSC::JIT::emit_op_new_regexp):
2333         (JSC::JIT::emitNewFuncCommon):
2334         (JSC::JIT::emitNewFuncExprCommon):
2335         (JSC::JIT::emit_op_new_array):
2336         (JSC::JIT::emit_op_new_array_with_size):
2337         (JSC::JIT::emitSlow_op_has_indexed_property):
2338         (JSC::JIT::emit_op_profile_type):
2339         * jit/JITOpcodes32_64.cpp:
2340         (JSC::JIT::emitSlow_op_new_object):
2341         (JSC::JIT::emit_op_catch):
2342         (JSC::JIT::emit_op_switch_imm):
2343         (JSC::JIT::emit_op_debug):
2344         (JSC::JIT::emit_op_profile_type):
2345         * jit/JITOperations.cpp:
2346         (JSC::newFunctionCommon):
2347         (JSC::getByVal):
2348         (JSC::tryGetByValOptimize):
2349         (JSC::operationNewFunctionCommon): Deleted.
2350         * jit/JITOperations.h:
2351         * jit/JITOperationsMSVC64.cpp:
2352         (JSC::getHostCallReturnValueWithExecState):
2353         * jit/JITPropertyAccess.cpp:
2354         (JSC::JIT::emitGetByValWithCachedId):
2355         (JSC::JIT::emitSlow_op_get_by_val):
2356         (JSC::JIT::emitPutByValWithCachedId):
2357         (JSC::JIT::emitSlow_op_put_by_val):
2358         (JSC::JIT::emit_op_put_getter_by_id):
2359         (JSC::JIT::emit_op_put_setter_by_id):
2360         (JSC::JIT::emit_op_put_getter_setter_by_id):
2361         (JSC::JIT::emit_op_put_getter_by_val):
2362         (JSC::JIT::emit_op_put_setter_by_val):
2363         (JSC::JIT::emit_op_del_by_id):
2364         (JSC::JIT::emit_op_del_by_val):
2365         (JSC::JIT::emitSlow_op_try_get_by_id):
2366         (JSC::JIT::emitSlow_op_get_by_id_direct):
2367         (JSC::JIT::emitSlow_op_get_by_id):
2368         (JSC::JIT::emitSlow_op_get_by_id_with_this):
2369         (JSC::JIT::emitSlow_op_put_by_id):
2370         (JSC::JIT::emitSlow_op_in_by_id):
2371         (JSC::JIT::emitSlow_op_get_from_scope):
2372         (JSC::JIT::emitSlow_op_put_to_scope):
2373         (JSC::JIT::emitWriteBarrier):
2374         * jit/PolymorphicCallStubRoutine.cpp:
2375         (JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):
2376         * jit/PolymorphicCallStubRoutine.h:
2377         * jit/Repatch.cpp:
2378         (JSC::forceICFailure):
2379         (JSC::tryCacheGetByID):
2380         (JSC::repatchGetByID):
2381         (JSC::tryCachePutByID):
2382         (JSC::repatchPutByID):
2383         (JSC::tryCacheInByID):
2384         (JSC::repatchInByID):
2385         (JSC::tryCacheInstanceOf):
2386         (JSC::repatchInstanceOf):
2387         (JSC::linkFor):
2388         (JSC::linkDirectFor):
2389         (JSC::linkSlowFor):
2390         (JSC::linkVirtualFor):
2391         (JSC::linkPolymorphicCall):
2392         * jit/Repatch.h:
2393         * jit/SnippetSlowPathCalls.h:
2394         * jit/ThunkGenerators.cpp:
2395         (JSC::throwExceptionFromCallSlowPathGenerator):
2396         (JSC::slowPathFor):
2397         (JSC::nativeForGenerator):
2398         (JSC::boundThisNoArgsFunctionCallGenerator):
2399         * jit/ThunkGenerators.h:
2400         * jsc.cpp:
2401         (GlobalObject::finishCreation):
2402         (GlobalObject::moduleLoaderImportModule):
2403         (GlobalObject::moduleLoaderResolve):
2404         (GlobalObject::moduleLoaderFetch):
2405         (GlobalObject::moduleLoaderCreateImportMetaProperties):
2406         (cStringFromViewWithString):
2407         (printInternal):
2408         (functionPrintStdOut):
2409         (functionPrintStdErr):
2410         (functionDebug):
2411         (functionSleepSeconds):
2412         (functionRun):
2413         (functionRunString):
2414         (functionLoad):
2415         (functionLoadString):
2416         (functionReadFile):
2417         (functionCheckSyntax):
2418         (functionSetSamplingFlags):
2419         (functionClearSamplingFlags):
2420         (functionSetRandomSeed):
2421         (functionNeverInlineFunction):
2422         (functionNoDFG):
2423         (functionNoOSRExitFuzzing):
2424         (functionOptimizeNextInvocation):
2425         (functionNumberOfDFGCompiles):
2426         (functionCallerIsOMGCompiled):
2427         (functionDollarEvalScript):
2428         (functionDollarAgentStart):
2429         (functionDollarAgentReceiveBroadcast):
2430         (functionDollarAgentReport):
2431         (functionDollarAgentSleep):
2432         (functionDollarAgentBroadcast):
2433         (functionFlashHeapAccess):
2434         (functionJSCOptions):
2435         (functionTransferArrayBuffer):
2436         (functionCheckModuleSyntax):
2437         (functionGenerateHeapSnapshot):
2438         (functionSamplingProfilerStackTraces):
2439         (functionAsyncTestStart):
2440         (functionWebAssemblyMemoryMode):
2441         (functionSetUnhandledRejectionCallback):
2442         (dumpException):
2443         (checkUncaughtException):
2444         (checkException):
2445         (runWithOptions):
2446         (runInteractive):
2447         * llint/LLIntExceptions.cpp:
2448         (JSC::LLInt::returnToThrow):
2449         (JSC::LLInt::callToThrow):
2450         * llint/LLIntExceptions.h:
2451         * llint/LLIntSlowPaths.cpp:
2452         (JSC::LLInt::getNonConstantOperand):
2453         (JSC::LLInt::getOperand):
2454         (JSC::LLInt::llint_trace_operand):
2455         (JSC::LLInt::llint_trace_value):
2456         (JSC::LLInt::LLINT_SLOW_PATH_DECL):
2457         (JSC::LLInt::traceFunctionPrologue):
2458         (JSC::LLInt::jitCompileAndSetHeuristics):
2459         (JSC::LLInt::entryOSR):
2460         (JSC::LLInt::setupGetByIdPrototypeCache):
2461         (JSC::LLInt::getByVal):
2462         (JSC::LLInt::handleHostCall):
2463         (JSC::LLInt::setUpCall):
2464         (JSC::LLInt::genericCall):
2465         (JSC::LLInt::varargsSetup):
2466         (JSC::LLInt::commonCallEval):
2467         (JSC::LLInt::llint_throw_stack_overflow_error):
2468         (JSC::LLInt::llint_write_barrier_slow):
2469         * llint/LLIntSlowPaths.h:
2470         * llint/LowLevelInterpreter.asm:
2471         * llint/LowLevelInterpreter.cpp:
2472         (JSC::CLoopRegister::operator CallFrame*):
2473         (JSC::CLoopRegister::operator ExecState*): Deleted.
2474         * parser/ModuleAnalyzer.cpp:
2475         (JSC::ModuleAnalyzer::ModuleAnalyzer):
2476         * parser/ModuleAnalyzer.h:
2477         * parser/ParserError.h:
2478         (JSC::ParserError::toErrorObject):
2479         * profiler/ProfilerBytecode.cpp:
2480         (JSC::Profiler::Bytecode::toJS const):
2481         * profiler/ProfilerBytecode.h:
2482         * profiler/ProfilerBytecodeSequence.cpp:
2483         (JSC::Profiler::BytecodeSequence::addSequenceProperties const):
2484         * profiler/ProfilerBytecodeSequence.h:
2485         * profiler/ProfilerBytecodes.cpp:
2486         (JSC::Profiler::Bytecodes::toJS const):
2487         * profiler/ProfilerBytecodes.h:
2488         * profiler/ProfilerCompilation.cpp:
2489         (JSC::Profiler::Compilation::toJS const):
2490         * profiler/ProfilerCompilation.h:
2491         * profiler/ProfilerCompiledBytecode.cpp:
2492         (JSC::Profiler::CompiledBytecode::toJS const):
2493         * profiler/ProfilerCompiledBytecode.h:
2494         * profiler/ProfilerDatabase.cpp:
2495         (JSC::Profiler::Database::toJS const):
2496         (JSC::Profiler::Database::toJSON const):
2497         * profiler/ProfilerDatabase.h:
2498         * profiler/ProfilerEvent.cpp:
2499         (JSC::Profiler::Event::toJS const):
2500         * profiler/ProfilerEvent.h:
2501         * profiler/ProfilerOSRExit.cpp:
2502         (JSC::Profiler::OSRExit::toJS const):
2503         * profiler/ProfilerOSRExit.h:
2504         * profiler/ProfilerOSRExitSite.cpp:
2505         (JSC::Profiler::OSRExitSite::toJS const):
2506         * profiler/ProfilerOSRExitSite.h:
2507         * profiler/ProfilerOrigin.cpp:
2508         (JSC::Profiler::Origin::toJS const):
2509         * profiler/ProfilerOrigin.h:
2510         * profiler/ProfilerOriginStack.cpp:
2511         (JSC::Profiler::OriginStack::toJS const):
2512         * profiler/ProfilerOriginStack.h:
2513         * profiler/ProfilerProfiledBytecodes.cpp:
2514         (JSC::Profiler::ProfiledBytecodes::toJS const):
2515         * profiler/ProfilerProfiledBytecodes.h:
2516         * profiler/ProfilerUID.cpp:
2517         (JSC::Profiler::UID::toJS const):
2518         * profiler/ProfilerUID.h:
2519         * runtime/AbstractModuleRecord.cpp:
2520         (JSC::AbstractModuleRecord::finishCreation):
2521         (JSC::AbstractModuleRecord::hostResolveImportedModule):
2522         (JSC::AbstractModuleRecord::resolveImport):
2523         (JSC::AbstractModuleRecord::resolveExportImpl):
2524         (JSC::AbstractModuleRecord::resolveExport):
2525         (JSC::getExportedNames):
2526         (JSC::AbstractModuleRecord::getModuleNamespace):
2527         (JSC::AbstractModuleRecord::link):
2528         (JSC::AbstractModuleRecord::evaluate):
2529         * runtime/AbstractModuleRecord.h:
2530         * runtime/ArgList.h:
2531         (JSC::ArgList::ArgList):
2532         * runtime/ArrayBufferView.h:
2533         * runtime/ArrayConstructor.cpp:
2534         (JSC::constructArrayWithSizeQuirk):
2535         (JSC::constructWithArrayConstructor):
2536         (JSC::callArrayConstructor):
2537         (JSC::isArraySlowInline):
2538         (JSC::isArraySlow):
2539         (JSC::arrayConstructorPrivateFuncIsArraySlow):
2540         * runtime/ArrayConstructor.h:
2541         (JSC::isArray):
2542         * runtime/ArrayPrototype.cpp:
2543         (JSC::ArrayPrototype::finishCreation):
2544         (JSC::getProperty):
2545         (JSC::putLength):
2546         (JSC::setLength):
2547         (JSC::speciesWatchpointIsValid):
2548         (JSC::arrayProtoFuncSpeciesCreate):
2549         (JSC::argumentClampedIndexFromStartOrEnd):
2550         (JSC::shift):
2551         (JSC::unshift):
2552         (JSC::fastJoin):
2553         (JSC::arrayProtoFuncToString):
2554         (JSC::arrayProtoFuncToLocaleString):
2555         (JSC::slowJoin):
2556         (JSC::arrayProtoFuncJoin):
2557         (JSC::arrayProtoFuncPop):
2558         (JSC::arrayProtoFuncPush):
2559         (JSC::arrayProtoFuncReverse):
2560         (JSC::arrayProtoFuncShift):
2561         (JSC::arrayProtoFuncSlice):
2562         (JSC::arrayProtoFuncSplice):
2563         (JSC::arrayProtoFuncUnShift):
2564         (JSC::fastIndexOf):
2565         (JSC::arrayProtoFuncIndexOf):
2566         (JSC::arrayProtoFuncLastIndexOf):
2567         (JSC::moveElements):
2568         (JSC::concatAppendOne):
2569         (JSC::arrayProtoPrivateFuncConcatMemcpy):
2570         (JSC::arrayProtoPrivateFuncAppendMemcpy):
2571         * runtime/AsyncFunctionConstructor.cpp:
2572         (JSC::callAsyncFunctionConstructor):
2573         (JSC::constructAsyncFunctionConstructor):
2574         * runtime/AsyncGeneratorFunctionConstructor.cpp:
2575         (JSC::callAsyncGeneratorFunctionConstructor):
2576         (JSC::constructAsyncGeneratorFunctionConstructor):
2577         * runtime/AtomicsObject.cpp:
2578         (JSC::atomicsFuncAdd):
2579         (JSC::atomicsFuncAnd):
2580         (JSC::atomicsFuncCompareExchange):
2581         (JSC::atomicsFuncExchange):
2582         (JSC::atomicsFuncIsLockFree):
2583         (JSC::atomicsFuncLoad):
2584         (JSC::atomicsFuncOr):
2585         (JSC::atomicsFuncStore):
2586         (JSC::atomicsFuncSub):
2587         (JSC::atomicsFuncWait):
2588         (JSC::atomicsFuncWake):
2589         (JSC::atomicsFuncXor):
2590         (JSC::operationAtomicsAdd):
2591         (JSC::operationAtomicsAnd):
2592         (JSC::operationAtomicsCompareExchange):
2593         (JSC::operationAtomicsExchange):
2594         (JSC::operationAtomicsIsLockFree):
2595         (JSC::operationAtomicsLoad):
2596         (JSC::operationAtomicsOr):
2597         (JSC::operationAtomicsStore):
2598         (JSC::operationAtomicsSub):
2599         (JSC::operationAtomicsXor):
2600         * runtime/AtomicsObject.h:
2601         * runtime/BigIntConstructor.cpp:
2602         (JSC::toBigInt):
2603         (JSC::callBigIntConstructor):
2604         * runtime/BigIntObject.cpp:
2605         (JSC::BigIntObject::toStringName):
2606         (JSC::BigIntObject::defaultValue):
2607         * runtime/BigIntObject.h:
2608         * runtime/BigIntPrototype.cpp:
2609         (JSC::bigIntProtoFuncToStringImpl):
2610         (JSC::bigIntProtoFuncValueOf):
2611         * runtime/BooleanConstructor.cpp:
2612         (JSC::callBooleanConstructor):
2613         (JSC::constructWithBooleanConstructor):
2614         (JSC::constructBooleanFromImmediateBoolean):
2615         * runtime/BooleanConstructor.h:
2616         * runtime/BooleanPrototype.cpp:
2617         (JSC::booleanProtoFuncToString):
2618         (JSC::booleanProtoFuncValueOf):
2619         * runtime/CallData.cpp:
2620         (JSC::call):
2621         (JSC::profiledCall):
2622         * runtime/CallData.h:
2623         * runtime/ClassInfo.h:
2624         * runtime/ClonedArguments.cpp:
2625         (JSC::ClonedArguments::createEmpty):
2626         (JSC::ClonedArguments::createWithInlineFrame):
2627         (JSC::ClonedArguments::createWithMachineFrame):
2628         (JSC::ClonedArguments::createByCopyingFrom):
2629         (JSC::ClonedArguments::getOwnPropertySlot):
2630         (JSC::ClonedArguments::getOwnPropertyNames):
2631         (JSC::ClonedArguments::put):
2632         (JSC::ClonedArguments::deleteProperty):
2633         (JSC::ClonedArguments::defineOwnProperty):
2634         (JSC::ClonedArguments::materializeSpecials):
2635         (JSC::ClonedArguments::materializeSpecialsIfNecessary):
2636         * runtime/ClonedArguments.h:
2637         * runtime/CommonSlowPaths.cpp:
2638         (JSC::throwArityCheckStackOverflowError):
2639         (JSC::SLOW_PATH_DECL):
2640         (JSC::createInternalFieldObject):
2641         (JSC::updateArithProfileForBinaryArithOp):
2642         * runtime/CommonSlowPaths.h:
2643         (JSC::CommonSlowPaths::codeBlockFromCallFrameCallee):
2644         (JSC::CommonSlowPaths::arityCheckFor):
2645         (JSC::CommonSlowPaths::opInByVal):
2646         (JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
2647         (JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):
2648         (JSC::CommonSlowPaths::putDirectWithReify):
2649         (JSC::CommonSlowPaths::putDirectAccessorWithReify):
2650         * runtime/Completion.cpp:
2651         (JSC::checkSyntax):
2652         (JSC::checkModuleSyntax):
2653         (JSC::evaluate):
2654         (JSC::profiledEvaluate):
2655         (JSC::evaluateWithScopeExtension):
2656         (JSC::rejectPromise):
2657         (JSC::loadAndEvaluateModule):
2658         (JSC::loadModule):
2659         (JSC::linkAndEvaluateModule):
2660         (JSC::importModule):
2661         * runtime/Completion.h:
2662         (JSC::evaluate):
2663         (JSC::profiledEvaluate):
2664         * runtime/ConsoleClient.cpp:
2665         (JSC::ConsoleClient::printConsoleMessageWithArguments):
2666         (JSC::ConsoleClient::internalMessageWithTypeAndLevel):
2667         (JSC::ConsoleClient::logWithLevel):
2668         (JSC::ConsoleClient::clear):
2669         (JSC::ConsoleClient::dir):
2670         (JSC::ConsoleClient::dirXML):
2671         (JSC::ConsoleClient::table):
2672         (JSC::ConsoleClient::trace):
2673         (JSC::ConsoleClient::assertion):
2674         (JSC::ConsoleClient::group):
2675         (JSC::ConsoleClient::groupCollapsed):
2676         (JSC::ConsoleClient::groupEnd):
2677         * runtime/ConsoleClient.h:
2678         * runtime/ConsoleObject.cpp:
2679         (JSC::valueOrDefaultLabelString):
2680         (JSC::valueToStringWithUndefinedOrNullCheck):
2681         (JSC::consoleLogWithLevel):
2682         (JSC::consoleProtoFuncDebug):
2683         (JSC::consoleProtoFuncError):
2684         (JSC::consoleProtoFuncLog):
2685         (JSC::consoleProtoFuncInfo):
2686         (JSC::consoleProtoFuncWarn):
2687         (JSC::consoleProtoFuncClear):
2688         (JSC::consoleProtoFuncDir):
2689         (JSC::consoleProtoFuncDirXML):
2690         (JSC::consoleProtoFuncTable):
2691         (JSC::consoleProtoFuncTrace):
2692         (JSC::consoleProtoFuncAssert):
2693         (JSC::consoleProtoFuncCount):
2694         (JSC::consoleProtoFuncCountReset):
2695         (JSC::consoleProtoFuncProfile):
2696         (JSC::consoleProtoFuncProfileEnd):
2697         (JSC::consoleProtoFuncTakeHeapSnapshot):
2698         (JSC::consoleProtoFuncTime):
2699         (JSC::consoleProtoFuncTimeLog):
2700         (JSC::consoleProtoFuncTimeEnd):
2701         (JSC::consoleProtoFuncTimeStamp):
2702         (JSC::consoleProtoFuncGroup):
2703         (JSC::consoleProtoFuncGroupCollapsed):
2704         (JSC::consoleProtoFuncGroupEnd):
2705         (JSC::consoleProtoFuncRecord):
2706         (JSC::consoleProtoFuncRecordEnd):
2707         (JSC::consoleProtoFuncScreenshot):
2708         * runtime/ConstructData.cpp:
2709         (JSC::construct):
2710         (JSC::profiledConstruct):
2711         * runtime/ConstructData.h:
2712         (JSC::construct):
2713         (JSC::profiledConstruct):
2714         * runtime/CustomGetterSetter.cpp:
2715         (JSC::callCustomSetter):
2716         * runtime/CustomGetterSetter.h:
2717         * runtime/DataView.cpp:
2718         (JSC::DataView::wrap):
2719         * runtime/DataView.h:
2720         * runtime/DateConstructor.cpp:
2721         (JSC::millisecondsFromComponents):
2722         (JSC::constructDate):
2723         (JSC::constructWithDateConstructor):
2724         (JSC::dateParse):
2725         (JSC::dateUTC):
2726         * runtime/DateConstructor.h:
2727         * runtime/DateInstance.cpp:
2728         (JSC::DateInstance::calculateGregorianDateTime const):
2729         (JSC::DateInstance::calculateGregorianDateTimeUTC const):
2730         * runtime/DateInstance.h:
2731         * runtime/DatePrototype.cpp:
2732         (JSC::formatLocaleDate):
2733         (JSC::formateDateInstance):
2734         (JSC::fillStructuresUsingTimeArgs):
2735         (JSC::fillStructuresUsingDateArgs):
2736         (JSC::dateProtoFuncToString):
2737         (JSC::dateProtoFuncToUTCString):
2738         (JSC::dateProtoFuncToISOString):
2739         (JSC::dateProtoFuncToDateString):
2740         (JSC::dateProtoFuncToTimeString):
2741         (JSC::dateProtoFuncToLocaleString):
2742         (JSC::dateProtoFuncToLocaleDateString):
2743         (JSC::dateProtoFuncToLocaleTimeString):
2744         (JSC::dateProtoFuncToPrimitiveSymbol):
2745         (JSC::dateProtoFuncGetTime):
2746         (JSC::dateProtoFuncGetFullYear):
2747         (JSC::dateProtoFuncGetUTCFullYear):
2748         (JSC::dateProtoFuncGetMonth):
2749         (JSC::dateProtoFuncGetUTCMonth):
2750         (JSC::dateProtoFuncGetDate):
2751         (JSC::dateProtoFuncGetUTCDate):
2752         (JSC::dateProtoFuncGetDay):
2753         (JSC::dateProtoFuncGetUTCDay):
2754         (JSC::dateProtoFuncGetHours):
2755         (JSC::dateProtoFuncGetUTCHours):
2756         (JSC::dateProtoFuncGetMinutes):
2757         (JSC::dateProtoFuncGetUTCMinutes):
2758         (JSC::dateProtoFuncGetSeconds):
2759         (JSC::dateProtoFuncGetUTCSeconds):
2760         (JSC::dateProtoFuncGetMilliSeconds):
2761         (JSC::dateProtoFuncGetUTCMilliseconds):
2762         (JSC::dateProtoFuncGetTimezoneOffset):
2763         (JSC::dateProtoFuncSetTime):
2764         (JSC::setNewValueFromTimeArgs):
2765         (JSC::setNewValueFromDateArgs):
2766         (JSC::dateProtoFuncSetMilliSeconds):
2767         (JSC::dateProtoFuncSetUTCMilliseconds):
2768         (JSC::dateProtoFuncSetSeconds):
2769         (JSC::dateProtoFuncSetUTCSeconds):
2770         (JSC::dateProtoFuncSetMinutes):
2771         (JSC::dateProtoFuncSetUTCMinutes):
2772         (JSC::dateProtoFuncSetHours):
2773         (JSC::dateProtoFuncSetUTCHours):
2774         (JSC::dateProtoFuncSetDate):
2775         (JSC::dateProtoFuncSetUTCDate):
2776         (JSC::dateProtoFuncSetMonth):
2777         (JSC::dateProtoFuncSetUTCMonth):
2778         (JSC::dateProtoFuncSetFullYear):
2779         (JSC::dateProtoFuncSetUTCFullYear):
2780         (JSC::dateProtoFuncSetYear):
2781         (JSC::dateProtoFuncGetYear):
2782         (JSC::dateProtoFuncToJSON):
2783         * runtime/DirectArguments.cpp:
2784         (JSC::DirectArguments::createByCopying):
2785         (JSC::DirectArguments::copyToArguments):
2786         * runtime/DirectArguments.h:
2787         * runtime/DirectEvalExecutable.cpp:
2788         (JSC::DirectEvalExecutable::create):
2789         (JSC::DirectEvalExecutable::DirectEvalExecutable):
2790         * runtime/DirectEvalExecutable.h:
2791         * runtime/Error.cpp:
2792         (JSC::createError):
2793         (JSC::createEvalError):
2794         (JSC::createRangeError):
2795         (JSC::createReferenceError):
2796         (JSC::createSyntaxError):
2797         (JSC::createTypeError):
2798         (JSC::createNotEnoughArgumentsError):
2799         (JSC::createURIError):
2800         (JSC::createGetterTypeError):
2801         (JSC::getStackTrace):
2802         (JSC::getBytecodeOffset):
2803         (JSC::addErrorInfo):
2804         (JSC::throwConstructorCannotBeCalledAsFunctionTypeError):
2805         (JSC::throwTypeError):
2806         (JSC::throwSyntaxError):
2807         (JSC::throwGetterTypeError):
2808         (JSC::throwDOMAttributeGetterTypeError):
2809         (JSC::createOutOfMemoryError):
2810         * runtime/Error.h:
2811         (JSC::throwRangeError):
2812         (JSC::throwVMError):
2813         (JSC::throwVMTypeError):
2814         (JSC::throwVMRangeError):
2815         (JSC::throwVMGetterTypeError):
2816         (JSC::throwVMDOMAttributeGetterTypeError):
2817         * runtime/ErrorConstructor.cpp:
2818         (JSC::constructErrorConstructor):
2819         (JSC::callErrorConstructor):
2820         (JSC::ErrorConstructor::put):
2821         (JSC::ErrorConstructor::deleteProperty):
2822         * runtime/ErrorConstructor.h:
2823         * runtime/ErrorInstance.cpp:
2824         (JSC::ErrorInstance::create):
2825         (JSC::appendSourceToError):
2826         (JSC::ErrorInstance::finishCreation):
2827         (JSC::ErrorInstance::sanitizedToString):
2828         (JSC::ErrorInstance::getOwnPropertySlot):
2829         (JSC::ErrorInstance::getOwnNonIndexPropertyNames):
2830         (JSC::ErrorInstance::getStructurePropertyNames):
2831         (JSC::ErrorInstance::defineOwnProperty):
2832         (JSC::ErrorInstance::put):
2833         (JSC::ErrorInstance::deleteProperty):
2834         * runtime/ErrorInstance.h:
2835         (JSC::ErrorInstance::create):
2836         * runtime/ErrorPrototype.cpp:
2837         (JSC::errorProtoFuncToString):
2838         * runtime/EvalExecutable.cpp:
2839         (JSC::EvalExecutable::EvalExecutable):
2840         * runtime/EvalExecutable.h:
2841         * runtime/ExceptionFuzz.cpp:
2842         (JSC::doExceptionFuzzing):
2843         * runtime/ExceptionFuzz.h:
2844         (JSC::doExceptionFuzzingIfEnabled):
2845         * runtime/ExceptionHelpers.cpp:
2846         (JSC::TerminatedExecutionError::defaultValue):
2847         (JSC::createStackOverflowError):
2848         (JSC::createUndefinedVariableError):
2849         (JSC::errorDescriptionForValue):
2850         (JSC::createError):
2851         (JSC::createInvalidFunctionApplyParameterError):
2852         (JSC::createInvalidInParameterError):
2853         (JSC::createInvalidInstanceofParameterErrorNotFunction):
2854         (JSC::createInvalidInstanceofParameterErrorHasInstanceValueNotFunction):
2855         (JSC::createNotAConstructorError):
2856         (JSC::createNotAFunctionError):
2857         (JSC::createNotAnObjectError):
2858         (JSC::createErrorForInvalidGlobalAssignment):
2859         (JSC::createTDZError):
2860         (JSC::throwOutOfMemoryError):
2861         (JSC::throwStackOverflowError):
2862         (JSC::throwTerminatedExecutionException):
2863         * runtime/ExceptionHelpers.h:
2864         * runtime/FunctionConstructor.cpp:
2865         (JSC::constructWithFunctionConstructor):
2866         (JSC::callFunctionConstructor):
2867         (JSC::constructFunction):
2868         (JSC::constructFunctionSkippingEvalEnabledCheck):
2869         * runtime/FunctionConstructor.h:
2870         * runtime/FunctionExecutable.cpp:
2871         (JSC::FunctionExecutable::fromGlobalCode):
2872         * runtime/FunctionExecutable.h:
2873         * runtime/FunctionPrototype.cpp:
2874         (JSC::functionProtoFuncToString):
2875         * runtime/FunctionRareData.h:
2876         * runtime/GeneratorFunctionConstructor.cpp:
2877         (JSC::callGeneratorFunctionConstructor):
2878         (JSC::constructGeneratorFunctionConstructor):
2879         * runtime/GenericArguments.h:
2880         * runtime/GenericArgumentsInlines.h:
2881         (JSC::GenericArguments<Type>::getOwnPropertySlot):
2882         (JSC::GenericArguments<Type>::getOwnPropertySlotByIndex):
2883         (JSC::GenericArguments<Type>::getOwnPropertyNames):
2884         (JSC::GenericArguments<Type>::put):
2885         (JSC::GenericArguments<Type>::putByIndex):
2886         (JSC::GenericArguments<Type>::deleteProperty):
2887         (JSC::GenericArguments<Type>::deletePropertyByIndex):
2888         (JSC::GenericArguments<Type>::defineOwnProperty):
2889         (JSC::GenericArguments<Type>::copyToArguments):
2890         * runtime/GenericTypedArrayView.h:
2891         * runtime/GenericTypedArrayViewInlines.h:
2892         (JSC::GenericTypedArrayView<Adaptor>::wrap):
2893         * runtime/GetterSetter.cpp:
2894         (JSC::callGetter):
2895         (JSC::callSetter):
2896         * runtime/GetterSetter.h:
2897         * runtime/HashMapImpl.h:
2898         (JSC::HashMapBuffer::create):
2899         (JSC::areKeysEqual):
2900         (JSC::jsMapHash):
2901         (JSC::HashMapImpl::finishCreation):
2902         (JSC::HashMapImpl::findBucket):
2903         (JSC::HashMapImpl::get):
2904         (JSC::HashMapImpl::has):
2905         (JSC::HashMapImpl::add):
2906         (JSC::HashMapImpl::addNormalized):
2907         (JSC::HashMapImpl::remove):
2908         (JSC::HashMapImpl::clear):
2909         (JSC::HashMapImpl::setUpHeadAndTail):
2910         (JSC::HashMapImpl::addNormalizedNonExistingForCloning):
2911         (JSC::HashMapImpl::addNormalizedInternal):
2912         (JSC::HashMapImpl::findBucketAlreadyHashedAndNormalized):
2913         (JSC::HashMapImpl::rehash):
2914         (JSC::HashMapImpl::makeAndSetNewBuffer):
2915         * runtime/Identifier.h:
2916         * runtime/IndirectEvalExecutable.cpp:
2917         (JSC::IndirectEvalExecutable::create):
2918         (JSC::IndirectEvalExecutable::IndirectEvalExecutable):
2919         * runtime/IndirectEvalExecutable.h:
2920         * runtime/InspectorInstrumentationObject.cpp:
2921         (JSC::inspectorInstrumentationObjectLog):
2922         * runtime/InternalFunction.cpp:
2923         (JSC::InternalFunction::InternalFunction):
2924         (JSC::InternalFunction::createSubclassStructureSlow):
2925         * runtime/InternalFunction.h:
2926         (JSC::InternalFunction::createSubclassStructure):
2927         * runtime/IntlCollator.cpp:
2928         (JSC::IntlCollator::initializeCollator):
2929         (JSC::IntlCollator::createCollator):
2930         (JSC::IntlCollator::compareStrings):
2931         (JSC::IntlCollator::resolvedOptions):
2932         * runtime/IntlCollator.h:
2933         * runtime/IntlCollatorConstructor.cpp:
2934         (JSC::constructIntlCollator):
2935         (JSC::callIntlCollator):
2936         (JSC::IntlCollatorConstructorFuncSupportedLocalesOf):
2937         * runtime/IntlCollatorPrototype.cpp:
2938         (JSC::IntlCollatorFuncCompare):
2939         (JSC::IntlCollatorPrototypeGetterCompare):
2940         (JSC::IntlCollatorPrototypeFuncResolvedOptions):
2941         * runtime/IntlDateTimeFormat.cpp:
2942         (JSC::IntlDTFInternal::toDateTimeOptionsAnyDate):
2943         (JSC::IntlDateTimeFormat::initializeDateTimeFormat):
2944         (JSC::IntlDateTimeFormat::resolvedOptions):
2945         (JSC::IntlDateTimeFormat::format):
2946         (JSC::IntlDateTimeFormat::formatToParts):
2947         * runtime/IntlDateTimeFormat.h:
2948         * runtime/IntlDateTimeFormatConstructor.cpp:
2949         (JSC::constructIntlDateTimeFormat):
2950         (JSC::callIntlDateTimeFormat):
2951         (JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):
2952         * runtime/IntlDateTimeFormatPrototype.cpp:
2953         (JSC::IntlDateTimeFormatFuncFormatDateTime):
2954         (JSC::IntlDateTimeFormatPrototypeGetterFormat):
2955         (JSC::IntlDateTimeFormatPrototypeFuncFormatToParts):
2956         (JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
2957         * runtime/IntlNumberFormat.cpp:
2958         (JSC::IntlNumberFormat::initializeNumberFormat):
2959         (JSC::IntlNumberFormat::formatNumber):
2960         (JSC::IntlNumberFormat::resolvedOptions):
2961         (JSC::IntlNumberFormat::formatToParts):
2962         * runtime/IntlNumberFormat.h:
2963         * runtime/IntlNumberFormatConstructor.cpp:
2964         (JSC::constructIntlNumberFormat):
2965         (JSC::callIntlNumberFormat):
2966         (JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):
2967         * runtime/IntlNumberFormatPrototype.cpp:
2968         (JSC::IntlNumberFormatFuncFormatNumber):
2969         (JSC::IntlNumberFormatPrototypeGetterFormat):
2970         (JSC::IntlNumberFormatPrototypeFuncFormatToParts):
2971         (JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
2972         * runtime/IntlObject.cpp:
2973         (JSC::intlBooleanOption):
2974         (JSC::intlStringOption):
2975         (JSC::intlNumberOption):
2976         (JSC::intlDefaultNumberOption):
2977         (JSC::canonicalizeLocaleList):
2978         (JSC::defaultLocale):
2979         (JSC::lookupMatcher):
2980         (JSC::bestFitMatcher):
2981         (JSC::resolveLocale):
2982         (JSC::lookupSupportedLocales):
2983         (JSC::bestFitSupportedLocales):
2984         (JSC::supportedLocales):
2985         (JSC::intlObjectFuncGetCanonicalLocales):
2986         * runtime/IntlObject.h:
2987         * runtime/IntlObjectInlines.h:
2988         (JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):
2989         * runtime/IntlPluralRules.cpp:
2990         (JSC::IntlPluralRules::initializePluralRules):
2991         (JSC::IntlPluralRules::resolvedOptions):
2992         (JSC::IntlPluralRules::select):
2993         * runtime/IntlPluralRules.h:
2994         * runtime/IntlPluralRulesConstructor.cpp:
2995         (JSC::constructIntlPluralRules):
2996         (JSC::callIntlPluralRules):
2997         (JSC::IntlPluralRulesConstructorFuncSupportedLocalesOf):
2998         * runtime/IntlPluralRulesPrototype.cpp:
2999         (JSC::IntlPluralRulesPrototypeFuncSelect):
3000         (JSC::IntlPluralRulesPrototypeFuncResolvedOptions):
3001         * runtime/IteratorOperations.cpp:
3002         (JSC::iteratorNext):
3003         (JSC::iteratorValue):
3004         (JSC::iteratorComplete):
3005         (JSC::iteratorStep):
3006         (JSC::iteratorClose):
3007         (JSC::createIteratorResultObject):
3008         (JSC::hasIteratorMethod):
3009         (JSC::iteratorMethod):
3010         (JSC::iteratorForIterable):
3011         * runtime/IteratorOperations.h:
3012         (JSC::forEachInIterable):
3013         * runtime/JSArray.cpp:
3014         (JSC::JSArray::setLengthWritable):
3015         (JSC::JSArray::defineOwnProperty):
3016         (JSC::JSArray::getOwnPropertySlot):
3017         (JSC::JSArray::put):
3018         (JSC::JSArray::deleteProperty):
3019         (JSC::JSArray::getOwnNonIndexPropertyNames):
3020         (JSC::JSArray::setLengthWithArrayStorage):
3021         (JSC::JSArray::appendMemcpy):
3022         (JSC::JSArray::setLength):
3023         (JSC::JSArray::pop):
3024         (JSC::JSArray::push):
3025         (JSC::JSArray::fastSlice):
3026         (JSC::JSArray::shiftCountWithAnyIndexingType):
3027         (JSC::JSArray::unshiftCountWithArrayStorage):
3028         (JSC::JSArray::unshiftCountWithAnyIndexingType):
3029         (JSC::JSArray::fillArgList):
3030         (JSC::JSArray::copyToArguments):
3031         (JSC::constructArray):
3032         (JSC::constructArrayNegativeIndexed):
3033         * runtime/JSArray.h:
3034         (JSC::JSArray::shiftCountForShift):
3035         (JSC::JSArray::shiftCountForSplice):
3036         (JSC::JSArray::shiftCount):
3037         (JSC::JSArray::unshiftCountForShift):
3038         (JSC::JSArray::unshiftCountForSplice):
3039         (JSC::JSArray::unshiftCount):
3040         * runtime/JSArrayBufferConstructor.cpp:
3041         (JSC::JSGenericArrayBufferConstructor<sharingMode>::constructArrayBuffer):
3042         (JSC::callArrayBuffer):
3043         * runtime/JSArrayBufferPrototype.cpp:
3044         (JSC::arrayBufferProtoFuncSlice):
3045         (JSC::arrayBufferProtoGetterFuncByteLength):
3046         (JSC::sharedArrayBufferProtoGetterFuncByteLength):
3047         * runtime/JSArrayBufferView.cpp:
3048         (JSC::JSArrayBufferView::toStringName):
3049         (JSC::JSArrayBufferView::put):
3050         (JSC::JSArrayBufferView::unsharedJSBuffer):
3051         (JSC::JSArrayBufferView::possiblySharedJSBuffer):
3052         (JSC::JSArrayBufferView::slowDownAndWasteMemory):
3053         * runtime/JSArrayBufferView.h:
3054         * runtime/JSArrayInlines.h:
3055         (JSC::toLength):
3056         (JSC::JSArray::pushInline):
3057         * runtime/JSBigInt.cpp:
3058         (JSC::JSBigInt::tryCreateWithLength):
3059         (JSC::JSBigInt::toPrimitive const):
3060         (JSC::JSBigInt::parseInt):
3061         (JSC::JSBigInt::stringToBigInt):
3062         (JSC::JSBigInt::toString):
3063         (JSC::JSBigInt::exponentiate):
3064         (JSC::JSBigInt::multiply):
3065         (JSC::JSBigInt::divide):
3066         (JSC::JSBigInt::remainder):
3067         (JSC::JSBigInt::add):
3068         (JSC::JSBigInt::sub):
3069         (JSC::JSBigInt::bitwiseAnd):
3070         (JSC::JSBigInt::bitwiseOr):
3071         (JSC::JSBigInt::bitwiseXor):
3072         (JSC::JSBigInt::leftShift):
3073         (JSC::JSBigInt::signedRightShift):
3074         (JSC::JSBigInt::bitwiseNot):
3075         (JSC::JSBigInt::absoluteAdd):
3076         (JSC::JSBigInt::absoluteDivWithBigIntDivisor):
3077         (JSC::JSBigInt::absoluteLeftShiftAlwaysCopy):
3078         (JSC::JSBigInt::absoluteAddOne):
3079         (JSC::JSBigInt::absoluteSubOne):
3080         (JSC::JSBigInt::leftShiftByAbsolute):
3081         (JSC::JSBigInt::rightShiftByAbsolute):
3082         (JSC::JSBigInt::toStringBasePowerOfTwo):
3083         (JSC::JSBigInt::toStringGeneric):
3084         (JSC::JSBigInt::allocateFor):
3085         (JSC::JSBigInt::toNumber const):
3086         (JSC::JSBigInt::getPrimitiveNumber const):
3087         (JSC::JSBigInt::toObject const):
3088         * runtime/JSBigInt.h:
3089         * runtime/JSBoundFunction.cpp:
3090         (JSC::boundThisNoArgsFunctionCall):
3091         (JSC::boundFunctionCall):
3092         (JSC::boundThisNoArgsFunctionConstruct):
3093         (JSC::boundFunctionConstruct):
3094         (JSC::hasInstanceBoundFunction):
3095         (JSC::getBoundFunctionStructure):
3096         (JSC::JSBoundFunction::create):
3097         (JSC::JSBoundFunction::customHasInstance):
3098         (JSC::JSBoundFunction::boundArgsCopy):
3099         * runtime/JSBoundFunction.h:
3100         * runtime/JSCJSValue.cpp:
3101         (JSC::JSValue::toInteger const):
3102         (JSC::JSValue::toIntegerPreserveNaN const):
3103         (JSC::JSValue::toLength const):
3104         (JSC::JSValue::toNumberSlowCase const):
3105         (JSC::JSValue::toObjectSlowCase const):
3106         (JSC::JSValue::toThisSlowCase const):
3107         (JSC::JSValue::synthesizePrototype const):
3108         (JSC::JSValue::putToPrimitive):
3109         (JSC::JSValue::putToPrimitiveByIndex):
3110         (JSC::JSValue::toStringSlowCase const):
3111         (JSC::JSValue::toWTFStringSlowCase const):
3112         * runtime/JSCJSValue.h:
3113         (JSC::JSValue::toFloat const):
3114         * runtime/JSCJSValueInlines.h:
3115         (JSC::JSValue::toInt32 const):
3116         (JSC::JSValue::toUInt32 const):
3117         (JSC::JSValue::toIndex const):
3118         (JSC::JSValue::getString const):
3119         (JSC::Unknown>::getString const):
3120         (JSC::JSValue::toPropertyKey const):
3121         (JSC::JSValue::toPrimitive const):
3122         (JSC::toPreferredPrimitiveType):
3123         (JSC::JSValue::getPrimitiveNumber):
3124         (JSC::JSValue::toNumber const):
3125         (JSC::JSValue::toNumeric const):
3126         (JSC::JSValue::toBigIntOrInt32 const):
3127         (JSC::JSValue::toObject const):
3128         (JSC::JSValue::toThis const):
3129         (JSC::JSValue::get const):
3130         (JSC::JSValue::getPropertySlot const):
3131         (JSC::JSValue::getOwnPropertySlot const):
3132         (JSC::JSValue::put):
3133         (JSC::JSValue::putInline):
3134         (JSC::JSValue::putByIndex):
3135         (JSC::JSValue::equal):
3136         (JSC::JSValue::equalSlowCaseInline):
3137         (JSC::JSValue::strictEqualSlowCaseInline):
3138         (JSC::JSValue::strictEqual):
3139         (JSC::JSValue::requireObjectCoercible const):
3140         (JSC::sameValue):
3141         * runtime/JSCell.cpp:
3142         (JSC::JSCell::getString const):
3143         (JSC::JSCell::put):
3144         (JSC::JSCell::putByIndex):
3145         (JSC::JSCell::deleteProperty):
3146         (JSC::JSCell::deletePropertyByIndex):
3147         (JSC::JSCell::toThis):
3148         (JSC::JSCell::toPrimitive const):
3149         (JSC::JSCell::getPrimitiveNumber const):
3150         (JSC::JSCell::toNumber const):
3151         (JSC::JSCell::toObjectSlow const):
3152         (JSC::JSCell::defaultValue):
3153         (JSC::JSCell::getOwnPropertySlot):
3154         (JSC::JSCell::getOwnPropertySlotByIndex):
3155         (JSC::JSCell::doPutPropertySecurityCheck):
3156         (JSC::JSCell::getOwnPropertyNames):
3157         (JSC::JSCell::getOwnNonIndexPropertyNames):
3158         (JSC::JSCell::toStringName):
3159         (JSC::JSCell::getPropertyNames):
3160         (JSC::JSCell::customHasInstance):
3161         (JSC::JSCell::defineOwnProperty):
3162         (JSC::JSCell::getEnumerableLength):
3163         (JSC::JSCell::getStructurePropertyNames):
3164         (JSC::JSCell::getGenericPropertyNames):
3165         (JSC::JSCell::preventExtensions):
3166         (JSC::JSCell::isExtensible):
3167         (JSC::JSCell::setPrototype):
3168         (JSC::JSCell::getPrototype):
3169         * runtime/JSCell.h:
3170         * runtime/JSCellInlines.h:
3171         (JSC::CallFrame::vm const):
3172         (JSC::JSCell::toBoolean const):
3173         (JSC::JSCell::toObject const):
3174         (JSC::JSCell::putInline):
3175         (JSC::ExecState::vm const): Deleted.
3176         * runtime/JSCustomGetterSetterFunction.cpp:
3177         (JSC::JSCustomGetterSetterFunction::customGetterSetterFunctionCall):
3178         * runtime/JSDataView.cpp:
3179         (JSC::JSDataView::create):
3180         (JSC::JSDataView::createUninitialized):
3181         (JSC::JSDataView::set):
3182         (JSC::JSDataView::setIndex):
3183         (JSC::JSDataView::getOwnPropertySlot):
3184         (JSC::JSDataView::put):
3185         (JSC::JSDataView::defineOwnProperty):
3186         (JSC::JSDataView::deleteProperty):
3187         (JSC::JSDataView::getOwnNonIndexPropertyNames):
3188         * runtime/JSDataView.h:
3189         * runtime/JSDataViewPrototype.cpp:
3190         (JSC::getData):
3191         (JSC::setData):
3192         (JSC::dataViewProtoGetterBuffer):
3193         (JSC::dataViewProtoGetterByteLength):
3194         (JSC::dataViewProtoGetterByteOffset):
3195         * runtime/JSDateMath.cpp:
3196         (JSC::parseDate):
3197         * runtime/JSDateMath.h:
3198         * runtime/JSFixedArray.cpp:
3199         (JSC::JSFixedArray::copyToArguments):
3200         * runtime/JSFixedArray.h:
3201         * runtime/JSFunction.cpp:
3202         (JSC::callHostFunctionAsConstructor):
3203         (JSC::JSFunction::prototypeForConstruction):
3204         (JSC::JSFunction::allocateAndInitializeRareData):
3205         (JSC::JSFunction::initializeRareData):
3206         (JSC::retrieveArguments):
3207         (JSC::JSFunction::argumentsGetter):
3208         (JSC::retrieveCallerFunction):
3209         (JSC::JSFunction::callerGetter):
3210         (JSC::JSFunction::getOwnPropertySlot):
3211         (JSC::JSFunction::getOwnNonIndexPropertyNames):
3212         (JSC::JSFunction::put):
3213         (JSC::JSFunction::deleteProperty):
3214         (JSC::JSFunction::defineOwnProperty):
3215         (JSC::JSFunction::setFunctionName):
3216         (JSC::JSFunction::reifyName):
3217         (JSC::JSFunction::reifyLazyPropertyIfNeeded):
3218         (JSC::JSFunction::reifyLazyPropertyForHostOrBuiltinIfNeeded):
3219         (JSC::JSFunction::reifyLazyLengthIfNeeded):
3220         (JSC::JSFunction::reifyLazyNameIfNeeded):
3221         (JSC::JSFunction::reifyLazyBoundNameIfNeeded):
3222         * runtime/JSFunction.h:
3223         * runtime/JSFunctionInlines.h:
3224         (JSC::JSFunction::ensureRareDataAndAllocationProfile):
3225         * runtime/JSGenericTypedArrayView.h:
3226         * runtime/JSGenericTypedArrayViewConstructorInlines.h:
3227         (JSC::constructGenericTypedArrayViewFromIterator):
3228         (JSC::constructGenericTypedArrayViewWithArguments):
3229         (JSC::constructGenericTypedArrayView):
3230         (JSC::callGenericTypedArrayView):
3231         * runtime/JSGenericTypedArrayViewInlines.h:
3232         (JSC::JSGenericTypedArrayView<Adaptor>::create):
3233         (JSC::JSGenericTypedArrayView<Adaptor>::createWithFastVector):
3234         (JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
3235         (JSC::JSGenericTypedArrayView<Adaptor>::validateRange):
3236         (JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType):
3237         (JSC::JSGenericTypedArrayView<Adaptor>::set):
3238         (JSC::JSGenericTypedArrayView<Adaptor>::throwNeuteredTypedArrayTypeError):
3239         (JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
3240         (JSC::JSGenericTypedArrayView<Adaptor>::put):
3241         (JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
3242         (JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):
3243         (JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
3244         (JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):
3245         (JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):
3246         (JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertyNames):
3247         * runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
3248         (JSC::speciesConstruct):
3249         (JSC::argumentClampedIndexFromStartOrEnd):
3250         (JSC::genericTypedArrayViewProtoFuncSet):
3251         (JSC::genericTypedArrayViewProtoFuncCopyWithin):
3252         (JSC::genericTypedArrayViewProtoFuncIncludes):
3253         (JSC::genericTypedArrayViewProtoFuncIndexOf):
3254         (JSC::genericTypedArrayViewProtoFuncJoin):
3255         (JSC::genericTypedArrayViewProtoFuncLastIndexOf):
3256         (JSC::genericTypedArrayViewProtoGetterFuncBuffer):
3257         (JSC::genericTypedArrayViewProtoGetterFuncLength):
3258         (JSC::genericTypedArrayViewProtoGetterFuncByteLength):
3259         (JSC::genericTypedArrayViewProtoGetterFuncByteOffset):
3260         (JSC::genericTypedArrayViewProtoFuncReverse):
3261         (JSC::genericTypedArrayViewPrivateFuncSort):
3262         (JSC::genericTypedArrayViewProtoFuncSlice):
3263         (JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
3264         * runtime/JSGlobalLexicalEnvironment.cpp:
3265         (JSC::JSGlobalLexicalEnvironment::getOwnPropertySlot):
3266         (JSC::JSGlobalLexicalEnvironment::put):
3267         * runtime/JSGlobalLexicalEnvironment.h:
3268         * runtime/JSGlobalObject.cpp:
3269         (JSC::createConsoleProperty):
3270         (JSC::makeBoundFunction):
3271         (JSC::hasOwnLengthProperty):
3272         (JSC::getGetterById):
3273         (JSC::JSGlobalObject::init):
3274         (JSC::JSGlobalObject::put):
3275         (JSC::JSGlobalObject::defineOwnProperty):
3276         (JSC::JSGlobalObject::addFunction):
3277         (JSC::JSGlobalObject::visitChildren):
3278         (JSC::JSGlobalObject::deprecatedCallFrameForDebugger):
3279         (JSC::JSGlobalObject::exposeDollarVM):
3280         (JSC::JSGlobalObject::getOwnPropertySlot):
3281         (JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):
3282         (JSC::JSGlobalObject::defaultCollator):
3283         (JSC::JSGlobalObject::globalExec): Deleted.
3284         * runtime/JSGlobalObject.h:
3285         (JSC::JSGlobalObject::addVar):
3286         (JSC::JSGlobalObject::regExpConstructor const):
3287         (JSC::JSGlobalObject::functionConstructor const):
3288         (JSC::JSGlobalObject::arrayStructureForProfileDuringAllocation const):
3289         (JSC::JSGlobalObject::supportsRichSourceInfo):
3290         (JSC::JSGlobalObject::globalObjectAtDebuggerEntry const):
3291         (JSC::JSGlobalObject::setGlobalObjectAtDebuggerEntry):
3292         (JSC::constructEmptyArray):
3293         (JSC::constructArray):
3294         (JSC::constructArrayNegativeIndexed):
3295         (JSC::JSGlobalObject::callFrameAtDebuggerEntry const): Deleted.
3296         (JSC::JSGlobalObject::setCallFrameAtDebuggerEntry): Deleted.
3297         (JSC::ExecState::globalThisValue const): Deleted.
3298         * runtime/JSGlobalObjectFunctions.cpp:
3299         (JSC::encode):
3300         (JSC::decode):
3301         (JSC::globalFuncEval):
3302         (JSC::globalFuncParseInt):
3303         (JSC::globalFuncParseFloat):
3304         (JSC::globalFuncDecodeURI):
3305         (JSC::globalFuncDecodeURIComponent):
3306         (JSC::globalFuncEncodeURI):
3307         (JSC::globalFuncEncodeURIComponent):
3308         (JSC::globalFuncEscape):
3309         (JSC::globalFuncUnescape):
3310         (JSC::globalFuncThrowTypeError):
3311         (JSC::globalFuncThrowTypeErrorArgumentsCalleeAndCaller):
3312         (JSC::globalFuncMakeTypeError):
3313         (JSC::globalFuncProtoGetter):
3314         (JSC::globalFuncProtoSetter):
3315         (JSC::globalFuncHostPromiseRejectionTracker):
3316         (JSC::globalFuncBuiltinLog):
3317         (JSC::globalFuncImportModule):
3318         (JSC::globalFuncPropertyIsEnumerable):
3319         (JSC::globalFuncOwnKeys):
3320         (JSC::globalFuncDateTimeFormat):
3321         * runtime/JSGlobalObjectFunctions.h:
3322         * runtime/JSGlobalObjectInlines.h:
3323         (JSC::JSGlobalObject::arrayStructureForIndexingTypeDuringAllocation const):
3324         (JSC::getVM):
3325         * runtime/JSImmutableButterfly.cpp:
3326         (JSC::JSImmutableButterfly::copyToArguments):
3327         * runtime/JSImmutableButterfly.h:
3328         * runtime/JSInternalPromise.cpp:
3329         (JSC::JSInternalPromise::then):
3330         * runtime/JSInternalPromise.h:
3331         * runtime/JSInternalPromiseDeferred.cpp:
3332         (JSC::JSInternalPromiseDeferred::tryCreate):
3333         (JSC::JSInternalPromiseDeferred::resolve):
3334         (JSC::JSInternalPromiseDeferred::reject):
3335         * runtime/JSInternalPromiseDeferred.h:
3336         * runtime/JSLexicalEnvironment.cpp:
3337         (JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):
3338         (JSC::JSLexicalEnvironment::getOwnPropertySlot):
3339         (JSC::JSLexicalEnvironment::put):
3340         (JSC::JSLexicalEnvironment::deleteProperty):
3341         * runtime/JSLexicalEnvironment.h:
3342         * runtime/JSLock.cpp:
3343         (JSC::JSLockHolder::JSLockHolder):
3344         (JSC::JSLock::lock):
3345         (JSC::JSLock::unlock):
3346         (JSC::JSLock::DropAllLocks::DropAllLocks):
3347         * runtime/JSLock.h:
3348         * runtime/JSMap.cpp:
3349         (JSC::JSMap::toStringName):
3350         (JSC::JSMap::clone):
3351         * runtime/JSMap.h:
3352         * runtime/JSMapIterator.cpp:
3353         (JSC::JSMapIterator::createPair):
3354         * runtime/JSMapIterator.h:
3355         * runtime/JSMicrotask.cpp:
3356         (JSC::JSMicrotask::run):
3357         * runtime/JSModuleEnvironment.cpp:
3358         (JSC::JSModuleEnvironment::getOwnPropertySlot):
3359         (JSC::JSModuleEnvironment::getOwnNonIndexPropertyNames):
3360         (JSC::JSModuleEnvironment::put):
3361         (JSC::JSModuleEnvironment::deleteProperty):
3362         * runtime/JSModuleEnvironment.h:
3363         * runtime/JSModuleLoader.cpp:
3364         (JSC::JSModuleLoader::finishCreation):
3365         (JSC::printableModuleKey):
3366         (JSC::JSModuleLoader::dependencyKeysIfEvaluated):
3367         (JSC::JSModuleLoader::provideFetch):
3368         (JSC::JSModuleLoader::loadAndEvaluateModule):
3369         (JSC::JSModuleLoader::loadModule):
3370         (JSC::JSModuleLoader::linkAndEvaluateModule):
3371         (JSC::JSModuleLoader::requestImportModule):
3372         (JSC::JSModuleLoader::importModule):
3373         (JSC::JSModuleLoader::resolveSync):
3374         (JSC::JSModuleLoader::resolve):
3375         (JSC::JSModuleLoader::fetch):
3376         (JSC::JSModuleLoader::createImportMetaProperties):
3377         (JSC::JSModuleLoader::evaluate):
3378         (JSC::JSModuleLoader::evaluateNonVirtual):
3379         (JSC::JSModuleLoader::getModuleNamespaceObject):
3380         (JSC::moduleLoaderParseModule):
3381         (JSC::moduleLoaderRequestedModules):
3382         (JSC::moduleLoaderModuleDeclarationInstantiation):
3383         (JSC::moduleLoaderResolve):
3384         (JSC::moduleLoaderResolveSync):
3385         (JSC::moduleLoaderFetch):
3386         (JSC::moduleLoaderGetModuleNamespaceObject):
3387         (JSC::moduleLoaderEvaluate):
3388         * runtime/JSModuleLoader.h:
3389         * runtime/JSModuleNamespaceObject.cpp:
3390         (JSC::JSModuleNamespaceObject::finishCreation):
3391         (JSC::JSModuleNamespaceObject::getOwnPropertySlotCommon):
3392         (JSC::JSModuleNamespaceObject::getOwnPropertySlot):
3393         (JSC::JSModuleNamespaceObject::getOwnPropertySlotByIndex):
3394         (JSC::JSModuleNamespaceObject::put):
3395         (JSC::JSModuleNamespaceObject::putByIndex):
3396         (JSC::JSModuleNamespaceObject::deleteProperty):
3397         (JSC::JSModuleNamespaceObject::getOwnPropertyNames):
3398         (JSC::JSModuleNamespaceObject::defineOwnProperty):
3399         * runtime/JSModuleNamespaceObject.h:
3400         * runtime/JSModuleRecord.cpp:
3401         (JSC::JSModuleRecord::create):
3402         (JSC::JSModuleRecord::finishCreation):
3403         (JSC::JSModuleRecord::link):
3404         (JSC::JSModuleRecord::instantiateDeclarations):
3405         (JSC::JSModuleRecord::evaluate):
3406         * runtime/JSModuleRecord.h:
3407         * runtime/JSONObject.cpp:
3408         (JSC::unwrapBoxedPrimitive):
3409         (JSC::gap):
3410         (JSC::PropertyNameForFunctionCall::value const):
3411         (JSC::Stringifier::Stringifier):
3412         (JSC::Stringifier::stringify):
3413         (JSC::Stringifier::toJSON):
3414         (JSC::Stringifier::toJSONImpl):
3415         (JSC::Stringifier::appendStringifiedValue):
3416         (JSC::Stringifier::Holder::Holder):
3417         (JSC::Stringifier::Holder::appendNextProperty):
3418         (JSC::Walker::Walker):
3419         (JSC::Walker::callReviver):
3420         (JSC::Walker::walk):
3421         (JSC::JSONProtoFuncParse):
3422         (JSC::JSONProtoFuncStringify):
3423         (JSC::JSONParse):
3424         (JSC::JSONStringify):
3425         * runtime/JSONObject.h:
3426         * runtime/JSObject.cpp:
3427         (JSC::getClassPropertyNames):
3428         (JSC::JSObject::toStringName):
3429         (JSC::JSObject::calculatedClassName):
3430         (JSC::JSObject::getOwnPropertySlotByIndex):
3431         (JSC::ordinarySetSlow):
3432         (JSC::JSObject::put):
3433         (JSC::JSObject::putInlineSlow):
3434         (JSC::JSObject::putByIndex):
3435         (JSC::JSObject::setPrototypeWithCycleCheck):
3436         (JSC::JSObject::setPrototype):
3437         (JSC::JSObject::getPrototype):
3438         (JSC::JSObject::putGetter):
3439         (JSC::JSObject::putSetter):
3440         (JSC::JSObject::putDirectAccessor):
3441         (JSC::JSObject::hasProperty const):
3442         (JSC::JSObject::hasPropertyGeneric const):
3443         (JSC::JSObject::deleteProperty):
3444         (JSC::JSObject::deletePropertyByIndex):
3445         (JSC::callToPrimitiveFunction):
3446         (JSC::JSObject::ordinaryToPrimitive const):
3447         (JSC::JSObject::defaultValue):
3448         (JSC::JSObject::toPrimitive const):
3449         (JSC::JSObject::getPrimitiveNumber const):
3450         (JSC::JSObject::hasInstance):
3451         (JSC::JSObject::defaultHasInstance):
3452         (JSC::objectPrivateFuncInstanceOf):
3453         (JSC::JSObject::getPropertyNames):
3454         (JSC::JSObject::getOwnPropertyNames):
3455         (JSC::JSObject::getOwnNonIndexPropertyNames):
3456         (JSC::JSObject::toNumber const):
3457         (JSC::JSObject::toString const):
3458         (JSC::JSObject::toThis):
3459         (JSC::JSObject::preventExtensions):
3460         (JSC::JSObject::isExtensible):
3461         (JSC::JSObject::reifyAllStaticProperties):
3462         (JSC::putIndexedDescriptor):
3463         (JSC::JSObject::defineOwnIndexedProperty):
3464         (JSC::JSObject::attemptToInterceptPutByIndexOnHoleForPrototype):
3465         (JSC::JSObject::attemptToInterceptPutByIndexOnHole):
3466         (JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
3467         (JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
3468         (JSC::JSObject::putByIndexBeyondVectorLength):
3469         (JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
3470         (JSC::JSObject::putDirectIndexSlowOrBeyondVectorLength):
3471         (JSC::getCustomGetterSetterFunctionForGetterSetter):
3472         (JSC::JSObject::getOwnPropertyDescriptor):
3473         (JSC::putDescriptor):
3474         (JSC::JSObject::putDirectMayBeIndex):
3475         (JSC::validateAndApplyPropertyDescriptor):
3476         (JSC::JSObject::defineOwnNonIndexProperty):
3477         (JSC::JSObject::defineOwnProperty):
3478         (JSC::JSObject::getEnumerableLength):
3479         (JSC::JSObject::getStructurePropertyNames):
3480         (JSC::JSObject::getGenericPropertyNames):
3481         (JSC::JSObject::getMethod):
3482         * runtime/JSObject.h:
3483         (JSC::JSObject::putByIndexInline):
3484         (JSC::JSObject::putDirectIndex):
3485         (JSC::JSObject::getDirectIndex):
3486         (JSC::JSObject::getIndex const):
3487         (JSC::JSObject::createRawObject):
3488         (JSC::JSFinalObject::create):
3489         (JSC::JSObject::getPrototype):
3490         (JSC::JSObject::getOwnPropertySlot):
3491         (JSC::JSObject::doPutPropertySecurityCheck):
3492         (JSC::JSObject::getPropertySlot):
3493         (JSC::JSObject::get const):
3494         * runtime/JSObjectInlines.h:
3495         (JSC::createListFromArrayLike):
3496         (JSC::JSObject::getPropertySlot const):
3497         (JSC::JSObject::getPropertySlot):
3498         (JSC::JSObject::getNonIndexPropertySlot):
3499         (JSC::JSObject::getOwnPropertySlotInline):
3500         (JSC::JSObject::putInlineForJSObject):
3501         (JSC::JSObject::hasOwnProperty const):
3502         (JSC::JSObject::putOwnDataPropertyMayBeIndex):
3503         * runtime/JSPromise.cpp:
3504         (JSC::JSPromise::resolve):
3505         * runtime/JSPromise.h:
3506         * runtime/JSPromiseDeferred.cpp:
3507         (JSC::JSPromiseDeferred::createDeferredData):
3508         (JSC::JSPromiseDeferred::tryCreate):
3509         (JSC::callFunction):
3510         (JSC::JSPromiseDeferred::resolve):
3511         (JSC::JSPromiseDeferred::reject):
3512         * runtime/JSPromiseDeferred.h:
3513         * runtime/JSPropertyNameEnumerator.h:
3514         (JSC::propertyNameEnumerator):
3515         * runtime/JSProxy.cpp:
3516         (JSC::JSProxy::toStringName):
3517         (JSC::JSProxy::getOwnPropertySlot):
3518         (JSC::JSProxy::getOwnPropertySlotByIndex):
3519         (JSC::JSProxy::put):
3520         (JSC::JSProxy::putByIndex):
3521         (JSC::JSProxy::defineOwnProperty):
3522         (JSC::JSProxy::deleteProperty):
3523         (JSC::JSProxy::isExtensible):
3524         (JSC::JSProxy::preventExtensions):
3525         (JSC::JSProxy::deletePropertyByIndex):
3526         (JSC::JSProxy::getPropertyNames):
3527         (JSC::JSProxy::getEnumerableLength):
3528         (JSC::JSProxy::getStructurePropertyNames):
3529         (JSC::JSProxy::getGenericPropertyNames):
3530         (JSC::JSProxy::getOwnPropertyNames):
3531         (JSC::JSProxy::setPrototype):
3532         (JSC::JSProxy::getPrototype):
3533         * runtime/JSProxy.h:
3534         * runtime/JSScope.cpp:
3535         (JSC::abstractAccess):
3536         (JSC::isUnscopable):
3537         (JSC::JSScope::resolve):
3538         (JSC::JSScope::resolveScopeForHoistingFuncDeclInEval):
3539         (JSC::JSScope::abstractResolve):
3540         (JSC::JSScope::toThis):
3541         * runtime/JSScope.h:
3542         (JSC::CallFrame::lexicalGlobalObject const):
3543         (JSC::ExecState::lexicalGlobalObject const): Deleted.
3544         * runtime/JSSet.cpp:
3545         (JSC::JSSet::toStringName):
3546         (JSC::JSSet::clone):
3547         * runtime/JSSet.h:
3548         * runtime/JSSetIterator.cpp:
3549         (JSC::JSSetIterator::createPair):
3550         * runtime/JSSetIterator.h:
3551         * runtime/JSString.cpp:
3552         (JSC::JSString::equalSlowCase const):
3553         (JSC::JSRopeString::resolveRopeToAtomString const):
3554         (JSC::JSRopeString::resolveRopeToExistingAtomString const):
3555         (JSC::JSRopeString::resolveRopeWithFunction const):
3556         (JSC::JSRopeString::resolveRope const):
3557         (JSC::JSRopeString::outOfMemory const):
3558         (JSC::JSString::toPrimitive const):
3559         (JSC::JSString::getPrimitiveNumber const):
3560         (JSC::JSString::toNumber const):
3561         (JSC::JSString::toObject const):
3562         (JSC::JSString::toThis):
3563         (JSC::JSString::getStringPropertyDescriptor):
3564         * runtime/JSString.h:
3565         (JSC::JSString::toIdentifier const):
3566         (JSC::JSString::toAtomString const):
3567         (JSC::JSString::toExistingAtomString const):
3568         (JSC::JSString::value const):
3569         (JSC::JSString::tryGetValue const):
3570         (JSC::JSString::getIndex):
3571         (JSC::jsSubstring):
3572         (JSC::jsStringWithCache):
3573         (JSC::JSString::getStringPropertySlot):
3574         (JSC::JSRopeString::unsafeView const):
3575         (JSC::JSRopeString::viewWithUnderlyingString const):
3576         (JSC::JSString::unsafeView const):
3577         (JSC::JSString::viewWithUnderlyingString const):
3578         (JSC::JSValue::toBoolean const):
3579         (JSC::JSValue::toString const):
3580         (JSC::JSValue::toStringOrNull const):
3581         (JSC::JSValue::toWTFString const):
3582         * runtime/JSStringInlines.h:
3583         (JSC::JSString::equal const):
3584         (JSC::jsMakeNontrivialString):
3585         (JSC::repeatCharacter):
3586         * runtime/JSStringIterator.cpp:
3587         (JSC::JSStringIterator::iteratedValue const):
3588         (JSC::JSStringIterator::clone):
3589         * runtime/JSStringIterator.h:
3590         * runtime/JSStringJoiner.cpp:
3591         (JSC::JSStringJoiner::joinedLength const):
3592         (JSC::JSStringJoiner::join):
3593         * runtime/JSStringJoiner.h:
3594         (JSC::JSStringJoiner::JSStringJoiner):
3595         (JSC::JSStringJoiner::appendWithoutSideEffects):
3596         (JSC::JSStringJoiner::append):
3597         * runtime/JSSymbolTableObject.cpp:
3598         (JSC::JSSymbolTableObject::deleteProperty):
3599         (JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
3600         * runtime/JSSymbolTableObject.h:
3601         (JSC::symbolTablePut):
3602         (JSC::symbolTablePutTouchWatchpointSet):
3603         (JSC::symbolTablePutInvalidateWatchpointSet):
3604         * runtime/JSTemplateObjectDescriptor.cpp:
3605         (JSC::JSTemplateObjectDescriptor::createTemplateObject):
3606         * runtime/JSTemplateObjectDescriptor.h:
3607         * runtime/JSTypedArrayViewConstructor.cpp:
3608         (JSC::constructTypedArrayView):
3609         * runtime/JSTypedArrayViewPrototype.cpp:
3610         (JSC::typedArrayViewPrivateFuncLength):
3611         (JSC::typedArrayViewProtoFuncSet):
3612         (JSC::typedArrayViewProtoFuncCopyWithin):
3613         (JSC::typedArrayViewProtoFuncIncludes):
3614         (JSC::typedArrayViewProtoFuncLastIndexOf):
3615         (JSC::typedArrayViewProtoFuncIndexOf):
3616         (JSC::typedArrayViewProtoFuncJoin):
3617         (JSC::typedArrayViewProtoGetterFuncBuffer):
3618         (JSC::typedArrayViewProtoGetterFuncLength):
3619         (JSC::typedArrayViewProtoGetterFuncByteLength):
3620         (JSC::typedArrayViewProtoGetterFuncByteOffset):
3621         (JSC::typedArrayViewProtoFuncReverse):
3622         (JSC::typedArrayViewPrivateFuncSubarrayCreate):
3623         (JSC::typedArrayViewProtoFuncSlice):
3624         * runtime/JSTypedArrays.cpp:
3625         (JSC::createUint8TypedArray):
3626         * runtime/JSTypedArrays.h:
3627         * runtime/JSWeakMap.cpp:
3628         (JSC::JSWeakMap::toStringName):
3629         * runtime/JSWeakMap.h:
3630         * runtime/JSWeakObjectRef.cpp:
3631         (JSC::JSWeakObjectRef::toStringName):
3632         * runtime/JSWeakObjectRef.h:
3633         * runtime/JSWeakSet.cpp:
3634         (JSC::JSWeakSet::toStringName):
3635         * runtime/JSWeakSet.h:
3636         * runtime/LiteralParser.cpp:
3637         (JSC::LiteralParser<CharType>::tryJSONPParse):
3638         (JSC::LiteralParser<CharType>::makeIdentifier):
3639         (JSC::LiteralParser<CharType>::parse):
3640         * runtime/LiteralParser.h:
3641         (JSC::LiteralParser::LiteralParser):
3642         * runtime/Lookup.h:
3643         (JSC::putEntry):
3644         (JSC::lookupPut):
3645         (JSC::nonCachingStaticFunctionGetter):
3646         * runtime/MapConstructor.cpp:
3647         (JSC::callMap):
3648         (JSC::constructMap):
3649         * runtime/MapPrototype.cpp:
3650         (JSC::getMap):
3651         (JSC::mapProtoFuncClear):
3652         (JSC::mapProtoFuncDelete):
3653         (JSC::mapProtoFuncGet):
3654         (JSC::mapProtoFuncHas):
3655         (JSC::mapProtoFuncSet):
3656         (JSC::mapProtoFuncSize):
3657         * runtime/MathObject.cpp:
3658         (JSC::mathProtoFuncAbs):
3659         (JSC::mathProtoFuncACos):
3660         (JSC::mathProtoFuncASin):
3661         (JSC::mathProtoFuncATan):
3662         (JSC::mathProtoFuncATan2):
3663         (JSC::mathProtoFuncCeil):
3664         (JSC::mathProtoFuncClz32):
3665         (JSC::mathProtoFuncCos):
3666         (JSC::mathProtoFuncExp):
3667         (JSC::mathProtoFuncFloor):
3668         (JSC::mathProtoFuncHypot):
3669         (JSC::mathProtoFuncLog):
3670         (JSC::mathProtoFuncMax):
3671         (JSC::mathProtoFuncMin):
3672         (JSC::mathProtoFuncPow):
3673         (JSC::mathProtoFuncRound):
3674         (JSC::mathProtoFuncSign):
3675         (JSC::mathProtoFuncSin):
3676         (JSC::mathProtoFuncSqrt):
3677         (JSC::mathProtoFuncTan):
3678         (JSC::mathProtoFuncIMul):
3679         (JSC::mathProtoFuncACosh):
3680         (JSC::mathProtoFuncASinh):
3681         (JSC::mathProtoFuncATanh):
3682         (JSC::mathProtoFuncCbrt):
3683         (JSC::mathProtoFuncCosh):
3684         (JSC::mathProtoFuncExpm1):
3685         (JSC::mathProtoFuncFround):
3686         (JSC::mathProtoFuncLog1p):
3687         (JSC::mathProtoFuncLog10):
3688         (JSC::mathProtoFuncLog2):
3689         (JSC::mathProtoFuncSinh):
3690         (JSC::mathProtoFuncTanh):
3691         (JSC::mathProtoFuncTrunc):
3692         * runtime/Microtask.h:
3693         * runtime/ModuleProgramExecutable.cpp:
3694         (JSC::ModuleProgramExecutable::ModuleProgramExecutable):
3695         (JSC::ModuleProgramExecutable::create):
3696         * runtime/ModuleProgramExecutable.h:
3697         * runtime/NativeErrorConstructor.cpp:
3698         (JSC::NativeErrorConstructor<errorType>::constructNativeErrorConstructor):
3699         (JSC::NativeErrorConstructor<errorType>::callNativeErrorConstructor):
3700         * runtime/NullSetterFunction.cpp:
3701         (JSC::callerIsStrict):
3702         (JSC::NullSetterFunctionInternal::callReturnUndefined):
3703         * runtime/NumberConstructor.cpp:
3704         (JSC::constructNumberConstructor):
3705         (JSC::callNumberConstructor):
3706         * runtime/NumberObject.cpp:
3707         (JSC::constructNumber):
3708         * runtime/NumberObject.h:
3709         * runtime/NumberPrototype.cpp:
3710         (JSC::throwVMToThisNumberError):
3711         (JSC::numberProtoFuncToExponential):
3712         (JSC::numberProtoFuncToFixed):
3713         (JSC::numberProtoFuncToPrecision):
3714         (JSC::numberProtoFuncToString):
3715         (JSC::numberProtoFuncToLocaleString):
3716         (JSC::numberProtoFuncValueOf):
3717         (JSC::extractToStringRadixArgument):
3718         * runtime/NumberPrototype.h:
3719         * runtime/ObjectConstructor.cpp:
3720         (JSC::constructObjectWithNewTarget):
3721         (JSC::constructWithObjectConstructor):
3722         (JSC::callObjectConstructor):
3723         (JSC::objectConstructorGetPrototypeOf):
3724         (JSC::objectConstructorSetPrototypeOf):
3725         (JSC::objectConstructorGetOwnPropertyDescriptor):
3726         (JSC::objectConstructorGetOwnPropertyDescriptors):
3727         (JSC::objectConstructorGetOwnPropertyNames):
3728         (JSC::objectConstructorGetOwnPropertySymbols):
3729         (JSC::objectConstructorKeys):
3730         (JSC::objectConstructorAssign):
3731         (JSC::objectConstructorValues):
3732         (JSC::toPropertyDescriptor):
3733         (JSC::objectConstructorDefineProperty):
3734         (JSC::defineProperties):
3735         (JSC::objectConstructorDefineProperties):
3736         (JSC::objectConstructorCreate):
3737         (JSC::setIntegrityLevel):
3738         (JSC::testIntegrityLevel):
3739         (JSC::objectConstructorSeal):
3740         (JSC::objectConstructorFreeze):
3741         (JSC::objectConstructorPreventExtensions):
3742         (JSC::objectConstructorIsSealed):
3743         (JSC::objectConstructorIsFrozen):
3744         (JSC::objectConstructorIsExtensible):
3745         (JSC::objectConstructorIs):
3746         (JSC::ownPropertyKeys):
3747         * runtime/ObjectConstructor.h:
3748         (JSC::constructEmptyObject):
3749         (JSC::constructObject):
3750         (JSC::constructObjectFromPropertyDescriptor):
3751         * runtime/ObjectPrototype.cpp:
3752         (JSC::objectProtoFuncValueOf):
3753         (JSC::objectProtoFuncHasOwnProperty):
3754         (JSC::objectProtoFuncIsPrototypeOf):
3755         (JSC::objectProtoFuncDefineGetter):
3756         (JSC::objectProtoFuncDefineSetter):
3757         (JSC::objectProtoFuncLookupGetter):
3758         (JSC::objectProtoFuncLookupSetter):
3759         (JSC::objectProtoFuncPropertyIsEnumerable):
3760         (JSC::objectProtoFuncToLocaleString):
3761         (JSC::objectProtoFuncToString):
3762         * runtime/Operations.cpp:
3763         (JSC::JSValue::equalSlowCase):
3764         (JSC::JSValue::strictEqualSlowCase):
3765         (JSC::jsAddSlowCase):
3766         (JSC::jsTypeStringForValue):
3767         (JSC::jsIsObjectTypeOrNull):
3768         (JSC::normalizePrototypeChain):
3769         * runtime/Operations.h:
3770         (JSC::jsString):
3771         (JSC::jsStringFromRegisterArray):
3772         (JSC::bigIntCompare):
3773         (JSC::toPrimitiveNumeric):
3774         (JSC::jsLess):
3775         (JSC::jsLessEq):
3776         (JSC::jsAddNonNumber):
3777         (JSC::jsAdd):
3778         (JSC::jsSub):
3779         (JSC::jsMul):
3780         (JSC::jsStringFromArguments): Deleted.
3781         * runtime/ParseInt.h:
3782         (JSC::toStringView):
3783         * runtime/ProgramExecutable.cpp:
3784         (JSC::ProgramExecutable::ProgramExecutable):
3785         (JSC::hasRestrictedGlobalProperty):
3786         (JSC::ProgramExecutable::initializeGlobalProperties):
3787         * runtime/ProgramExecutable.h:
3788         * runtime/PropertyDescriptor.cpp:
3789         (JSC::PropertyDescriptor::slowGetterSetter):
3790         (JSC::PropertyDescriptor::equalTo const):
3791         * runtime/PropertyDescriptor.h:
3792         * runtime/PropertySlot.cpp:
3793         (JSC::PropertySlot::functionGetter const):
3794         (JSC::PropertySlot::customGetter const):
3795         (JSC::PropertySlot::customAccessorGetter const):
3796         * runtime/PropertySlot.h:
3797         (JSC::PropertySlot::getValue const):
3798         * runtime/ProxyConstructor.cpp:
3799         (JSC::makeRevocableProxy):
3800         (JSC::proxyRevocableConstructorThrowError):
3801         (JSC::constructProxyObject):
3802         (JSC::callProxy):
3803         * runtime/ProxyConstructor.h:
3804         * runtime/ProxyObject.cpp:
3805         (JSC::ProxyObject::toStringName):
3806         (JSC::ProxyObject::finishCreation):
3807         (JSC::performProxyGet):
3808         (JSC::ProxyObject::performGet):
3809         (JSC::ProxyObject::performInternalMethodGetOwnProperty):
3810         (JSC::ProxyObject::performHasProperty):
3811         (JSC::ProxyObject::getOwnPropertySlotCommon):
3812         (JSC::ProxyObject::getOwnPropertySlot):
3813         (JSC::ProxyObject::getOwnPropertySlotByIndex):
3814         (JSC::ProxyObject::performPut):
3815         (JSC::ProxyObject::put):
3816         (JSC::ProxyObject::putByIndexCommon):
3817         (JSC::ProxyObject::putByIndex):
3818         (JSC::performProxyCall):
3819         (JSC::performProxyConstruct):
3820         (JSC::ProxyObject::performDelete):
3821         (JSC::ProxyObject::deleteProperty):
3822         (JSC::ProxyObject::deletePropertyByIndex):
3823         (JSC::ProxyObject::performPreventExtensions):
3824         (JSC::ProxyObject::preventExtensions):
3825         (JSC::ProxyObject::performIsExtensible):
3826         (JSC::ProxyObject::isExtensible):
3827         (JSC::ProxyObject::performDefineOwnProperty):
3828         (JSC::ProxyObject::defineOwnProperty):
3829         (JSC::ProxyObject::performGetOwnPropertyNames):
3830         (JSC::ProxyObject::getOwnPropertyNames):
3831         (JSC::ProxyObject::getPropertyNames):
3832         (JSC::ProxyObject::getOwnNonIndexPropertyNames):
3833         (JSC::ProxyObject::getStructurePropertyNames):
3834         (JSC::ProxyObject::getGenericPropertyNames):
3835         (JSC::ProxyObject::performSetPrototype):
3836         (JSC::ProxyObject::setPrototype):
3837         (JSC::ProxyObject::performGetPrototype):
3838         (JSC::ProxyObject::getPrototype):
3839         * runtime/ProxyObject.h:
3840         * runtime/PutPropertySlot.h:
3841         * runtime/ReflectObject.cpp:
3842         (JSC::reflectObjectConstruct):
3843         (JSC::reflectObjectDefineProperty):
3844         (JSC::reflectObjectGet):
3845         (JSC::reflectObjectGetOwnPropertyDescriptor):
3846         (JSC::reflectObjectGetPrototypeOf):
3847         (JSC::reflectObjectIsExtensible):
3848         (JSC::reflectObjectOwnKeys):
3849         (JSC::reflectObjectPreventExtensions):
3850         (JSC::reflectObjectSet):
3851         (JSC::reflectObjectSetPrototypeOf):
3852         * runtime/RegExp.h:
3853         * runtime/RegExpCachedResult.cpp:
3854         (JSC::RegExpCachedResult::lastResult):
3855         (JSC::RegExpCachedResult::leftContext):
3856         (JSC::RegExpCachedResult::rightContext):
3857         (JSC::RegExpCachedResult::setInput):
3858         * runtime/RegExpCachedResult.h:
3859         * runtime/RegExpConstructor.cpp:
3860         (JSC::regExpConstructorDollar):
3861         (JSC::regExpConstructorInput):
3862         (JSC::regExpConstructorMultiline):
3863         (JSC::regExpConstructorLastMatch):
3864         (JSC::regExpConstructorLastParen):
3865         (JSC::regExpConstructorLeftContext):
3866         (JSC::regExpConstructorRightContext):
3867         (JSC::setRegExpConstructorInput):
3868         (JSC::setRegExpConstructorMultiline):
3869         (JSC::getRegExpStructure):
3870         (JSC::toFlags):
3871         (JSC::regExpCreate):
3872         (JSC::constructRegExp):
3873         (JSC::esSpecRegExpCreate):
3874         (JSC::constructWithRegExpConstructor):
3875         (JSC::callRegExpConstructor):
3876         * runtime/RegExpConstructor.h:
3877         (JSC::isRegExp):
3878         * runtime/RegExpGlobalData.cpp:
3879         (JSC::RegExpGlobalData::getBackref):
3880         (JSC::RegExpGlobalData::getLastParen):
3881         (JSC::RegExpGlobalData::getLeftContext):
3882         (JSC::RegExpGlobalData::getRightContext):
3883         * runtime/RegExpGlobalData.h:
3884         * runtime/RegExpGlobalDataInlines.h:
3885         (JSC::RegExpGlobalData::setInput):
3886         * runtime/RegExpInlines.h:
3887         (JSC::RegExp::matchInline):
3888         * runtime/RegExpMatchesArray.h:
3889         (JSC::createRegExpMatchesArray):
3890         * runtime/RegExpObject.cpp:
3891         (JSC::RegExpObject::getOwnPropertySlot):
3892         (JSC::RegExpObject::deleteProperty):
3893         (JSC::RegExpObject::getOwnNonIndexPropertyNames):
3894         (JSC::RegExpObject::getPropertyNames):
3895         (JSC::RegExpObject::getGenericPropertyNames):
3896         (JSC::RegExpObject::defineOwnProperty):
3897         (JSC::regExpObjectSetLastIndexStrict):
3898         (JSC::regExpObjectSetLastIndexNonStrict):
3899         (JSC::RegExpObject::put):
3900         (JSC::RegExpObject::exec):
3901         (JSC::RegExpObject::match):
3902         (JSC::RegExpObject::matchGlobal):
3903         * runtime/RegExpObject.h:
3904         * runtime/RegExpObjectInlines.h:
3905         (JSC::getRegExpObjectLastIndexAsUnsigned):
3906         (JSC::RegExpObject::execInline):
3907         (JSC::RegExpObject::matchInline):
3908         (JSC::collectMatches):
3909         * runtime/RegExpPrototype.cpp:
3910         (JSC::regExpProtoFuncTestFast):
3911         (JSC::regExpProtoFuncExec):
3912         (JSC::regExpProtoFuncMatchFast):
3913         (JSC::regExpProtoFuncCompile):
3914         (JSC::flagsString):
3915         (JSC::regExpProtoFuncToString):
3916         (JSC::regExpProtoGetterGlobal):
3917         (JSC::regExpProtoGetterIgnoreCase):
3918         (JSC::regExpProtoGetterMultiline):
3919         (JSC::regExpProtoGetterDotAll):
3920         (JSC::regExpProtoGetterSticky):
3921         (JSC::regExpProtoGetterUnicode):
3922         (JSC::regExpProtoGetterFlags):
3923         (JSC::regExpProtoGetterSourceInternal):
3924         (JSC::regExpProtoGetterSource):
3925         (JSC::regExpProtoFuncSearchFast):
3926         (JSC::regExpProtoFuncSplitFast):
3927         * runtime/SamplingProfiler.cpp: