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