[YARR] Precompute BMP / non-BMP status when constructing character classes
[WebKit-https.git] / Source / JavaScriptCore / ChangeLog-2013-04-24
1 2013-04-23  Filip Pizlo  <fpizlo@apple.com>
2
3         DFG CFA filters CheckFunction in a really weird way, and assumes that the function's structure won't change
4         https://bugs.webkit.org/show_bug.cgi?id=115077
5
6         Reviewed by Oliver Hunt.
7         
8         The filtering did three things that are unusual:
9         
10         1) AbstractValue::filterByValue() assumed that the passed value's structure wouldn't change, in
11            the sense that at it assumed it could use that value's *current* structure to do structure
12            filtering. Filtering by structure only makes sense if you can prove that the given value will
13            always have that structure (for example by either using a watchpoing or emitting code that
14            checks that structure at run-time).
15         
16         2) AbstractValue::filterByValue() and the CheckFunction case in AbstractState::executeEffects()
17            tried to invalidate the CFA based on whether the filtration led to an empty value. This is
18            well-intentioned, but it's not how the CFA currently works. It's inconsistent with other
19            parts of the CFA. We shouldn't introduce this feature into just one kind of filtration and
20            not have it elsewhere.
21         
22         3) The attempt to detect when the value was empty was actually implemented incorrectly. It
23            relied on AbstractValue::validate(). That method says that a concrete value does not belong
24            to the abstract value if it has a different structure. This makes sense for the other place
25            where AbstractValue::validate() is called: during OSR entry, where we are talking about a
26            JSValue that we see *right now*. It doesn't make sense in the CFA, since in the CFA any
27            value we observe in the code is a value whose structure may change when the code starts
28            running, and so we cannot use the value's current structure to infer things about the code
29            when it starts running.
30         
31         I fixed the above problems by (1) changing filterByValue() to not filter the structure, (2)
32         changing filterByValue() and the CheckFunction case to not invalidate the CFA, and (3)
33         making sure that nobody else was misusing AbstractValue::validate() (they weren't).
34
35         * dfg/DFGAbstractState.cpp:
36         (JSC::DFG::AbstractState::executeEffects):
37         * dfg/DFGAbstractValue.h:
38         (JSC::DFG::AbstractValue::filterByValue):
39
40 2013-04-23  Oliver Hunt  <oliver@apple.com>
41
42         Default ParserError() initialiser doesn't initialise all fields
43         https://bugs.webkit.org/show_bug.cgi?id=115074
44
45         Reviewed by Joseph Pecoraro.
46
47         Only the jsc command prompt depended on this, but we'll fix it to
48         be on the safe side.
49
50         * parser/ParserError.h:
51         (JSC::ParserError::ParserError):
52
53 2013-04-23  Christophe Dumez  <ch.dumez@sisa.samsung.com>
54
55         Global constructors should be configurable and not enumerable
56         https://bugs.webkit.org/show_bug.cgi?id=110573
57
58         Reviewed by Geoffrey Garen.
59
60         Update JSObject::deleteProperty() so that mark to set the property
61         value to undefined if it is in static hashtable of properties. The
62         previous code was not doing anything in this case and this meant
63         we could not remove builtin DOMWindow properties such as
64         "ProgressEvent" even if marked as Deletable.
65
66         * runtime/JSObject.cpp:
67         (JSC::JSObject::deleteProperty):
68         * runtime/Lookup.h:
69         (JSC):
70         (JSC::putEntry):
71         (JSC::lookupPut):
72
73 2013-04-23  Geoffrey Garen  <ggaren@apple.com>
74
75         Filled out more cases of branch folding in bytecode when emitting
76         expressions into a branching context
77         https://bugs.webkit.org/show_bug.cgi?id=115057
78
79         Reviewed by Filip Pizlo.
80
81         This covers a few cases like:
82
83             - while (true) { }
84             - while (1) { }
85             - if (x) break;
86             - if (x) continue;
87             - if (boolean_expr == boolean_const) { }
88             - if (boolean_expr == 1_or_0) { }
89             - if (bitop == 1_or_0) { }
90
91         This also works, but will bring shame on your family:
92
93             - while ("hello world") { }
94
95         No change on the benchmarks we track, but a 2.5X speedup on a microbenchmark
96         that uses these techniques.
97
98         * JavaScriptCore.order: Order!
99
100         * bytecompiler/BytecodeGenerator.cpp:
101         (JSC::BytecodeGenerator::emitNewArray):
102         (JSC::BytecodeGenerator::emitThrowReferenceError):
103         (JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):
104         * bytecompiler/BytecodeGenerator.h:
105         (JSC::BytecodeGenerator::shouldEmitDebugHooks): Updated ancillary code
106         for interface simplifications.
107
108         * bytecompiler/NodesCodegen.cpp:
109         (JSC::ConstantNode::emitBytecodeInConditionContext): Constants can
110         jump unconditionally when used within a condition context.
111
112         (JSC::ConstantNode::emitBytecode):
113         (JSC::StringNode::jsValue): Gave constants a common base class so I
114         could implement their codegen just once.
115
116         (JSC::BinaryOpNode::emitBytecodeInConditionContext):
117         (JSC::canFoldToBranch):
118         (JSC::BinaryOpNode::tryFoldToBranch): Fold (!/=)= and (!/=)== where
119         appropriate. A lot of cases are not appropriate because of the surprising
120         type conversion semantics of ==. For example, if (number == true) { } is
121         not the same as if (number) { } because the former will up-convert true
122         to number and then do numeric comparison.
123
124         (JSC::singleStatement):
125         (JSC::IfElseNode::tryFoldBreakAndContinue):
126         (JSC::IfElseNode::emitBytecode):
127         (JSC::ContinueNode::trivialTarget):
128         (JSC::BreakNode::trivialTarget): Fold "if (expression) break" and
129         "if (expression) continue" into direct jumps from expression.
130
131         * parser/ASTBuilder.h:
132         (ASTBuilder):
133         (JSC::ASTBuilder::createIfStatement):
134         * parser/NodeConstructors.h:
135         (JSC::ConstantNode::ConstantNode):
136         (JSC):
137         (JSC::NullNode::NullNode):
138         (JSC::BooleanNode::BooleanNode):
139         (JSC::NumberNode::NumberNode):
140         (JSC::StringNode::StringNode):
141         (JSC::IfElseNode::IfElseNode):
142         * parser/Nodes.h:
143         (JSC::ExpressionNode::isConstant):
144         (JSC::ExpressionNode::isBoolean):
145         (JSC::StatementNode::isBreak):
146         (JSC::StatementNode::isContinue):
147         (ConstantNode):
148         (JSC::ConstantNode::isPure):
149         (JSC::ConstantNode::isConstant):
150         (NullNode):
151         (JSC::NullNode::jsValue):
152         (JSC::BooleanNode::value):
153         (JSC::BooleanNode::isBoolean):
154         (JSC::BooleanNode::jsValue):
155         (JSC::NumberNode::value):
156         (NumberNode):
157         (JSC::NumberNode::jsValue):
158         (StringNode):
159         (BinaryOpNode):
160         (IfElseNode):
161         (ContinueNode):
162         (JSC::ContinueNode::isContinue):
163         (BreakNode):
164         (JSC::BreakNode::isBreak):
165         * parser/Parser.cpp:
166         (JSC::::parseIfStatement):
167         * parser/ResultType.h:
168         (JSC::ResultType::definitelyIsBoolean):
169         (ResultType):
170         * runtime/JSCJSValueInlines.h:
171         (JSC::JSValue::pureToBoolean):
172         * runtime/JSCell.h:
173         * runtime/JSCellInlines.h:
174         (JSC::JSCell::pureToBoolean): Updated for interface changes above.
175
176 2013-04-23  Mark Lam  <mark.lam@apple.com>
177
178         Simplify the baseline JIT loop hint call site.
179         https://bugs.webkit.org/show_bug.cgi?id=115052.
180
181         Reviewed by Geoffrey Garen.
182
183         Moved the watchdog timer check after the JIT optimization check. This
184         ensures that the JIT opimization counter is incremented on every loop
185         hint even if the watchdog timer fires.
186
187         Removed the code that allows the JIT OSR to happen if the watchdog
188         timer fires but does not result in a termination. It is extremely rare
189         that the JIT optimization counter would trigger an OSR on the same pass
190         as when the watchdog timer fire. If it does happen, we'll simply hold
191         off on servicing the watchdog timer until the next pass (because it's
192         not time critical).
193
194         * jit/JITOpcodes.cpp:
195         (JSC::JIT::emit_op_loop_hint):
196         (JSC::JIT::emitSlow_op_loop_hint):
197
198 2013-04-23  Roger Fong  <roger_fong@apple.com>
199
200         AppleWin build fix.
201
202         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
203
204 2013-04-18  Mark Hahnenberg  <mhahnenberg@apple.com>
205
206         Objective-C API: Update public header documentation
207         https://bugs.webkit.org/show_bug.cgi?id=114841
208
209         Reviewed by Geoffrey Garen.
210
211         Added documentation for the newly added object lifetime-related stuff.
212
213         * API/JSManagedValue.h:
214         * API/JSVirtualMachine.h:
215
216 2013-04-22  Mark Lam  <mark.lam@apple.com>
217
218         Fix a typo in MacroAssemblerARMv7.h.
219         https://bugs.webkit.org/show_bug.cgi?id=115011.
220
221         Reviewed by Geoffrey Garen.
222
223         * assembler/ARMAssembler.h: Fix a comment.
224         * assembler/ARMv7Assembler.h: Added some comments.
225         * assembler/MacroAssemblerARMv7.h:
226           - ARMAssembler::PL should be ARMv7Assembler::ConditionPL.
227
228 2013-04-22  Julien Brianceau  <jbrianceau@nds.com>
229
230         Add branchAdd32 missing implementation in SH4 base JIT.
231         This should fix SH4 build, broken since r148893.
232         https://bugs.webkit.org/show_bug.cgi?id=114993.
233
234         Reviewed by Oliver Hunt.
235
236         * assembler/MacroAssemblerSH4.h:
237         (JSC::MacroAssemblerSH4::branchAdd32):
238         (MacroAssemblerSH4):
239
240 2013-04-22  Benjamin Poulain  <bpoulain@apple.com>
241
242         Windows build fix after r148921
243
244         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
245         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
246
247 2013-04-22  Benjamin Poulain  <benjamin@webkit.org>
248
249         Remove the memory instrumentation code
250         https://bugs.webkit.org/show_bug.cgi?id=114931
251
252         Reviewed by Andreas Kling.
253
254         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
255         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
256
257 2013-04-22  Mark Lam  <mark.lam@apple.com>
258
259         Fix broken 32-bit build to green the bots.
260         https://bugs.webkit.org/show_bug.cgi?id=114968.
261
262         Unreviewed.
263
264         Basically, I moved a JIT::emit_op_loop_hint() and JIT::emitSlow_op_loop_hint()
265         into common code where they belong, instead of the 64-bit specific section.
266
267         Also fixed some SH4 assertions failures which were also caused by
268         https://bugs.webkit.org/show_bug.cgi?id=114963. Thanks to Julien Brianceau
269         for pointing this out.
270
271         * assembler/MacroAssemblerSH4.h:
272         (JSC::MacroAssemblerSH4::branchAdd32):
273         * jit/JITOpcodes.cpp:
274         (JSC):
275         (JSC::JIT::emit_op_loop_hint):
276         (JSC::JIT::emitSlow_op_loop_hint):
277
278 2013-04-22  Oliver Hunt  <oliver@apple.com>
279
280         Perform null check before trying to use the result of readline()
281
282         RS=Gavin
283
284         * jsc.cpp:
285         (runInteractive):
286
287 2013-04-22  Oliver Hunt  <oliver@apple.com>
288
289         Fix assertions to account for new Vector layout
290
291         RS=Gavin
292
293         * llint/LLIntData.cpp:
294         (JSC::LLInt::Data::performAssertions):
295
296 2013-04-22  Mark Lam  <mark.lam@apple.com>
297
298         Change baseline JIT watchdog timer check to use the proper fast slow path
299         infrastructure.
300         https://bugs.webkit.org/show_bug.cgi?id=114963.
301
302         Reviewed by Oliver Hunt.
303
304         Edit: The PositiveOrZero condition is added because it is needed for
305         the JIT optimization check. Previously, the JIT check branches around
306         the slow path if the test result is 'Signed' i.e. negative. Since we
307         now need to test for a condition that branches to the slow path (not
308         around it), we need the complement of 'Signed / Negative' i.e. Positive
309         or zero.
310
311         SH4 parts contributed by Julien Brianceau.
312
313         * assembler/ARMAssembler.h:
314         * assembler/MacroAssemblerARM.h:
315         * assembler/MacroAssemblerARMv7.h:
316         * assembler/MacroAssemblerMIPS.h:
317         (JSC::MacroAssemblerMIPS::branchAdd32):
318         * assembler/MacroAssemblerSH4.h:
319         (JSC::MacroAssemblerSH4::branchAdd32):
320         * assembler/MacroAssemblerX86Common.h:
321         * assembler/SH4Assembler.h:
322         * jit/JIT.cpp:
323         (JSC::JIT::emitEnterOptimizationCheck):
324         (JSC::JIT::privateCompileSlowCases):
325         * jit/JIT.h:
326         (JSC::JIT::emitEnterOptimizationCheck):
327         * jit/JITOpcodes.cpp:
328         (JSC::JIT::emit_op_loop_hint):
329         (JSC::JIT::emitSlow_op_loop_hint):
330         (JSC::JIT::emit_op_enter):
331         * jit/JITOpcodes32_64.cpp:
332         (JSC::JIT::emit_op_enter):
333
334 2013-04-22  Andreas Kling  <akling@apple.com>
335
336         Shrink baseline size of WTF::Vector on 64-bit by switching to unsigned capacity and size.
337         <http://webkit.org/b/97268>
338         <rdar://problem/12376519>
339
340         Reviewed by Sam Weinig.
341
342         Update LLInt WTF::Vector offset constants to match the new memory layout.
343
344         * llint/LowLevelInterpreter.asm:
345
346 2013-04-21  Oliver Hunt  <oliver@apple.com>
347
348         JS Lexer and Parser should be more informative when they encounter errors
349         https://bugs.webkit.org/show_bug.cgi?id=114924
350
351         Reviewed by Filip Pizlo.
352
353         Add new tokens to represent the various ways that parsing and lexing have failed.
354         This gives us the ability to produce better error messages in some cases,
355         and to indicate whether or not the failure was due to invalid source, or simply
356         early termination.
357
358         The jsc prompt now makes use of this so that you can write functions that
359         are more than one line long.
360
361         * bytecompiler/BytecodeGenerator.cpp:
362         (JSC::BytecodeGenerator::generate):
363         * jsc.cpp:
364         (stringFromUTF):
365         (jscSource):
366         (runInteractive):
367         * parser/Lexer.cpp:
368         (JSC::::parseFourDigitUnicodeHex):
369         (JSC::::parseIdentifierSlowCase):
370         (JSC::::parseString):
371         (JSC::::parseStringSlowCase):
372         (JSC::::lex):
373         * parser/Lexer.h:
374         (UnicodeHexValue):
375         (JSC::Lexer::UnicodeHexValue::UnicodeHexValue):
376         (JSC::Lexer::UnicodeHexValue::valueType):
377         (JSC::Lexer::UnicodeHexValue::isValid):
378         (JSC::Lexer::UnicodeHexValue::value):
379         (Lexer):
380         * parser/Parser.h:
381         (JSC::Parser::getTokenName):
382         (JSC::Parser::updateErrorMessageSpecialCase):
383         (JSC::::parse):
384         * parser/ParserError.h:
385         (ParserError):
386         (JSC::ParserError::ParserError):
387         * parser/ParserTokens.h:
388         * runtime/Completion.cpp:
389         (JSC):
390         (JSC::checkSyntax):
391         * runtime/Completion.h:
392         (JSC):
393
394 2013-04-21  Mark Lam  <mark.lam@apple.com>
395
396         Refactor identical inline functions in JSVALUE64 and JSVALUE32_64 sections
397         out into the common section.
398         https://bugs.webkit.org/show_bug.cgi?id=114910.
399
400         Reviewed by Filip Pizlo.
401
402         * dfg/DFGSpeculativeJIT.h:
403         (SpeculativeJIT):
404         (JSC::DFG::SpeculativeJIT::callOperation):
405
406 2013-04-20  Allan Sandfeld Jensen  <allan.jensen@digia.com>
407
408         LLint should be able to use x87 instead of SSE for floating pointer
409         https://bugs.webkit.org/show_bug.cgi?id=112239
410
411         Reviewed by Filip Pizlo.
412
413         Implements LLInt floating point operations in x87, to ensure we support
414         x86 without SSE2.
415
416         X86 (except 64bit) now defaults to using x87 instructions in order to
417         support all 32bit x86 back to i686. The implementation uses the fucomi
418         instruction from i686 which sets the new minimum.
419
420         The FPU registers must always be empty on entering or exiting a function.
421         We make sure to only use two X87 registers, and they are always emptied
422         before calling deeper functions or returning from the LLInt.
423
424         * jit/JITStubs.cpp:
425         (JSC): Empty FPU registers before exiting.
426         * llint/LowLevelInterpreter32_64.asm:
427         * llint/LowLevelInterpreter64.asm:
428         * offlineasm/instructions.rb:
429         * offlineasm/x86.rb:
430
431 2013-04-19  Roger Fong  <roger_fong@apple.com>
432
433         Remove uses of WebKit_Source from AppleWin build in JavaScriptCore.
434
435         * JavaScriptCore.vcxproj/JavaScriptCore.make:
436         * JavaScriptCore.vcxproj/build-generated-files.sh:
437         * JavaScriptCore.vcxproj/copy-files.cmd:
438         * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj:
439
440 2013-04-19  Benjamin Poulain  <bpoulain@apple.com>
441
442         Rename JSStringJoiner::build() to join()
443         https://bugs.webkit.org/show_bug.cgi?id=114845
444
445         Reviewed by Geoffrey Garen.
446
447         The method name build() came from StringBuilder history. It does not make much
448         sense on the StringJoiner.
449
450         * runtime/ArrayPrototype.cpp:
451         (JSC::arrayProtoFuncToString):
452         (JSC::arrayProtoFuncToLocaleString):
453         (JSC::arrayProtoFuncJoin):
454         * runtime/JSStringJoiner.cpp:
455         (JSC::JSStringJoiner::join):
456         * runtime/JSStringJoiner.h:
457         (JSStringJoiner):
458
459 2013-04-19  Roger Fong  <roger_fong@apple.com>
460
461         Unreviewed. WebKit_Source is incorrectly set.
462
463         * JavaScriptCore.vcxproj/JavaScriptCore.make:
464
465 2013-04-19  Martin Robinson  <mrobinson@igalia.com>
466
467         [GTK] JSCore.gir.in has a few problems
468         https://bugs.webkit.org/show_bug.cgi?id=114710
469
470         Reviewed by Philippe Normand.
471
472         * GNUmakefile.am: Add the gobject introspection steps for JavaScriptCore here,
473         because they are shared between WebKit1 and WebKit2.
474         * JavaScriptCore.gir.in: Added. Moved from the WebKit1 directory. Now written
475         as foreign interfaces and referencing the javascriptcoregtk library.
476
477 2013-04-18  Benjamin Poulain  <bpoulain@apple.com>
478
479         Use StringJoiner to create the JSString of arrayProtoFuncToString
480         https://bugs.webkit.org/show_bug.cgi?id=114779
481
482         Reviewed by Geoffrey Garen.
483
484         The function arrayProtoFuncToString was just a glorified JSStringJoiner.
485         This patch replaces it by JSStringJoiner to simplify the code and enjoy any optimization
486         made on JSStringJoiner.
487
488         For some reason, this makes the execution 3.4% faster, despite having almost identical code.
489
490         * runtime/ArrayPrototype.cpp:
491         (JSC::arrayProtoFuncToString):
492
493 2013-04-18  Oliver Hunt  <oliver@apple.com>
494
495         StackFrame::column() returning bogus value
496         https://bugs.webkit.org/show_bug.cgi?id=114840
497
498         Reviewed by Gavin Barraclough.
499
500         Don't add one part of the expression offset to the other part of the expression.
501         Make StackFrame::toString() include the column info.
502
503         * interpreter/Interpreter.cpp:
504         (JSC::StackFrame::expressionInfo):
505         (JSC::StackFrame::toString):
506
507 2013-04-18  Mark Hahnenberg  <mhahnenberg@apple.com>
508
509         Crash beneath JSC::JIT::privateCompileSlowCases @ stephenrdonaldson.com
510         https://bugs.webkit.org/show_bug.cgi?id=114774
511
512         Reviewed by Geoffrey Garen.
513
514         We're not linking up all of the slow cases in the baseline JIT when compiling put_to_base.
515
516         * jit/JITOpcodes.cpp:
517         (JSC::JIT::emitSlow_op_put_to_base):
518
519 2013-04-18  Mark Lam  <mark.lam@apple.com>
520
521         Interpreter entry points should throw the TerminatedExecutionException from the caller frame.
522         https://bugs.webkit.org/show_bug.cgi?id=114816.
523
524         Reviewed by Oliver Hunt.
525
526         * interpreter/Interpreter.cpp:
527         (JSC::Interpreter::execute):
528         (JSC::Interpreter::executeCall):
529         (JSC::Interpreter::executeConstruct):
530
531 2013-04-18  Gabor Rapcsanyi  <rgabor@webkit.org>
532
533         LLInt ARM backend should not use the d8 register as scratch register
534         https://bugs.webkit.org/show_bug.cgi?id=114811
535
536         Reviewed by Filip Pizlo.
537
538         The d8 register must preserved across function calls and should
539         not used as scratch register. Changing it to d6.
540
541         * offlineasm/arm.rb:
542
543 2013-04-18  Geoffrey Garen  <ggaren@apple.com>
544
545         Removed HeapTimer::synchronize
546         https://bugs.webkit.org/show_bug.cgi?id=114832
547
548         Reviewed by Mark Hahnenberg.
549
550         HeapTimer::synchronize was a flawed attempt to make HeapTimer thread-safe.
551         Instead, we use proper locking now.
552
553         This is a slight API change, since the GC timer will now only fire in the
554         run loop that created the JS VM, even if another run loop later executes
555         some JS.
556
557         * API/APIShims.h:
558         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock):
559         * heap/HeapTimer.cpp:
560         (JSC):
561         * heap/HeapTimer.h:
562         (HeapTimer):
563
564 2013-04-17  Geoffrey Garen  <ggaren@apple.com>
565
566         Renamed JSGlobalData to VM
567         https://bugs.webkit.org/show_bug.cgi?id=114777
568
569         Reviewed by Phil Pizlo.
570
571         * API/APICast.h:
572         (JSC):
573         (toJS):
574         (toRef):
575         * API/APIShims.h:
576         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock):
577         (APIEntryShimWithoutLock):
578         (JSC::APIEntryShim::APIEntryShim):
579         (APIEntryShim):
580         (JSC::APIEntryShim::~APIEntryShim):
581         (JSC::APICallbackShim::APICallbackShim):
582         (JSC::APICallbackShim::~APICallbackShim):
583         (APICallbackShim):
584         * API/JSAPIWrapperObject.h:
585         (JSAPIWrapperObject):
586         * API/JSAPIWrapperObject.mm:
587         (JSC::::createStructure):
588         (JSC::JSAPIWrapperObject::JSAPIWrapperObject):
589         (JSC::JSAPIWrapperObject::finishCreation):
590         (JSC::JSAPIWrapperObject::visitChildren):
591         * API/JSBase.cpp:
592         (JSGarbageCollect):
593         (JSReportExtraMemoryCost):
594         (JSSynchronousGarbageCollectForDebugging):
595         * API/JSCallbackConstructor.cpp:
596         (JSC::JSCallbackConstructor::JSCallbackConstructor):
597         (JSC::JSCallbackConstructor::finishCreation):
598         * API/JSCallbackConstructor.h:
599         (JSC::JSCallbackConstructor::createStructure):
600         * API/JSCallbackFunction.cpp:
601         (JSC::JSCallbackFunction::finishCreation):
602         (JSC::JSCallbackFunction::create):
603         * API/JSCallbackFunction.h:
604         (JSCallbackFunction):
605         (JSC::JSCallbackFunction::createStructure):
606         * API/JSCallbackObject.cpp:
607         (JSC::::create):
608         (JSC::::createStructure):
609         * API/JSCallbackObject.h:
610         (JSC::JSCallbackObjectData::setPrivateProperty):
611         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
612         (JSCallbackObject):
613         (JSC::JSCallbackObject::setPrivateProperty):
614         * API/JSCallbackObjectFunctions.h:
615         (JSC::::JSCallbackObject):
616         (JSC::::finishCreation):
617         (JSC::::put):
618         (JSC::::staticFunctionGetter):
619         * API/JSClassRef.cpp:
620         (OpaqueJSClassContextData::OpaqueJSClassContextData):
621         (OpaqueJSClass::contextData):
622         (OpaqueJSClass::prototype):
623         * API/JSClassRef.h:
624         (OpaqueJSClassContextData):
625         * API/JSContext.mm:
626         (-[JSContext setException:]):
627         (-[JSContext initWithGlobalContextRef:]):
628         (+[JSContext contextWithGlobalContextRef:]):
629         * API/JSContextRef.cpp:
630         (JSContextGroupCreate):
631         (JSContextGroupRelease):
632         (JSGlobalContextCreate):
633         (JSGlobalContextCreateInGroup):
634         (JSGlobalContextRetain):
635         (JSGlobalContextRelease):
636         (JSContextGetGroup):
637         (JSContextCreateBacktrace):
638         * API/JSObjectRef.cpp:
639         (JSObjectMake):
640         (JSObjectMakeConstructor):
641         (JSObjectMakeFunction):
642         (JSObjectSetPrototype):
643         (JSObjectHasProperty):
644         (JSObjectGetProperty):
645         (JSObjectSetProperty):
646         (JSObjectDeleteProperty):
647         (JSObjectGetPrivateProperty):
648         (JSObjectSetPrivateProperty):
649         (JSObjectDeletePrivateProperty):
650         (OpaqueJSPropertyNameArray::OpaqueJSPropertyNameArray):
651         (OpaqueJSPropertyNameArray):
652         (JSObjectCopyPropertyNames):
653         (JSPropertyNameArrayRelease):
654         (JSPropertyNameAccumulatorAddName):
655         * API/JSScriptRef.cpp:
656         (OpaqueJSScript::create):
657         (OpaqueJSScript::vm):
658         (OpaqueJSScript::OpaqueJSScript):
659         (OpaqueJSScript):
660         (parseScript):
661         * API/JSVirtualMachine.mm:
662         (scanExternalObjectGraph):
663         * API/JSVirtualMachineInternal.h:
664         (JSC):
665         * API/JSWrapperMap.mm:
666         (makeWrapper):
667         * API/ObjCCallbackFunction.h:
668         (JSC::ObjCCallbackFunction::createStructure):
669         * API/ObjCCallbackFunction.mm:
670         (JSC::ObjCCallbackFunction::create):
671         * API/OpaqueJSString.cpp:
672         (OpaqueJSString::identifier):
673         * API/OpaqueJSString.h:
674         (JSC):
675         (OpaqueJSString):
676         * GNUmakefile.list.am:
677         * JSCTypedArrayStubs.h:
678         (JSC):
679         * JavaScriptCore.order:
680         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
681         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
682         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
683         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
684         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
685         * JavaScriptCore.xcodeproj/project.pbxproj:
686         * KeywordLookupGenerator.py:
687         (Trie.printSubTreeAsC):
688         * Target.pri:
689         * assembler/ARMAssembler.cpp:
690         (JSC::ARMAssembler::executableCopy):
691         * assembler/ARMAssembler.h:
692         (ARMAssembler):
693         * assembler/AssemblerBuffer.h:
694         (JSC::AssemblerBuffer::executableCopy):
695         * assembler/AssemblerBufferWithConstantPool.h:
696         (JSC::AssemblerBufferWithConstantPool::executableCopy):
697         * assembler/LinkBuffer.cpp:
698         (JSC::LinkBuffer::linkCode):
699         * assembler/LinkBuffer.h:
700         (JSC):
701         (JSC::LinkBuffer::LinkBuffer):
702         (LinkBuffer):
703         * assembler/MIPSAssembler.h:
704         (JSC::MIPSAssembler::executableCopy):
705         * assembler/SH4Assembler.h:
706         (JSC::SH4Assembler::executableCopy):
707         * assembler/X86Assembler.h:
708         (JSC::X86Assembler::executableCopy):
709         (JSC::X86Assembler::X86InstructionFormatter::executableCopy):
710         * bytecode/CallLinkInfo.cpp:
711         (JSC::CallLinkInfo::unlink):
712         * bytecode/CallLinkInfo.h:
713         (CallLinkInfo):
714         * bytecode/CodeBlock.cpp:
715         (JSC::dumpStructure):
716         (JSC::CodeBlock::printStructures):
717         (JSC::CodeBlock::CodeBlock):
718         (JSC::CodeBlock::~CodeBlock):
719         (JSC::CodeBlock::visitStructures):
720         (JSC::CodeBlock::finalizeUnconditionally):
721         (JSC::CodeBlock::createActivation):
722         (JSC::CodeBlock::unlinkCalls):
723         (JSC::CodeBlock::unlinkIncomingCalls):
724         (JSC::CodeBlock::findClosureCallForReturnPC):
725         (JSC::ProgramCodeBlock::jettisonImpl):
726         (JSC::EvalCodeBlock::jettisonImpl):
727         (JSC::FunctionCodeBlock::jettisonImpl):
728         (JSC::CodeBlock::predictedMachineCodeSize):
729         (JSC::CodeBlock::usesOpcode):
730         * bytecode/CodeBlock.h:
731         (JSC::CodeBlock::appendWeakReference):
732         (JSC::CodeBlock::appendWeakReferenceTransition):
733         (JSC::CodeBlock::setJITCode):
734         (JSC::CodeBlock::setGlobalData):
735         (JSC::CodeBlock::vm):
736         (JSC::CodeBlock::valueProfileForBytecodeOffset):
737         (JSC::CodeBlock::addConstant):
738         (JSC::CodeBlock::setConstantRegisters):
739         (CodeBlock):
740         (JSC::CodeBlock::WeakReferenceTransition::WeakReferenceTransition):
741         * bytecode/EvalCodeCache.h:
742         (JSC::EvalCodeCache::getSlow):
743         * bytecode/GetByIdStatus.cpp:
744         (JSC::GetByIdStatus::computeFromLLInt):
745         (JSC::GetByIdStatus::computeForChain):
746         (JSC::GetByIdStatus::computeFor):
747         * bytecode/GetByIdStatus.h:
748         (GetByIdStatus):
749         * bytecode/Instruction.h:
750         (JSC::Instruction::Instruction):
751         * bytecode/ObjectAllocationProfile.h:
752         (JSC::ObjectAllocationProfile::initialize):
753         (JSC::ObjectAllocationProfile::possibleDefaultPropertyCount):
754         * bytecode/PolymorphicAccessStructureList.h:
755         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
756         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
757         * bytecode/PolymorphicPutByIdList.h:
758         (JSC::PutByIdAccess::transition):
759         (JSC::PutByIdAccess::replace):
760         * bytecode/PreciseJumpTargets.cpp:
761         (JSC::computePreciseJumpTargets):
762         * bytecode/PutByIdStatus.cpp:
763         (JSC::PutByIdStatus::computeFromLLInt):
764         (JSC::PutByIdStatus::computeFor):
765         * bytecode/PutByIdStatus.h:
766         (JSC):
767         (PutByIdStatus):
768         * bytecode/ResolveGlobalStatus.cpp:
769         (JSC::computeForStructure):
770         * bytecode/SamplingTool.cpp:
771         (JSC::SamplingTool::notifyOfScope):
772         * bytecode/SamplingTool.h:
773         (JSC::ScriptSampleRecord::ScriptSampleRecord):
774         (SamplingTool):
775         * bytecode/StructureStubInfo.h:
776         (JSC::StructureStubInfo::initGetByIdSelf):
777         (JSC::StructureStubInfo::initGetByIdProto):
778         (JSC::StructureStubInfo::initGetByIdChain):
779         (JSC::StructureStubInfo::initPutByIdTransition):
780         (JSC::StructureStubInfo::initPutByIdReplace):
781         * bytecode/UnlinkedCodeBlock.cpp:
782         (JSC::generateFunctionCodeBlock):
783         (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
784         (JSC::UnlinkedFunctionExecutable::link):
785         (JSC::UnlinkedFunctionExecutable::fromGlobalCode):
786         (JSC::UnlinkedFunctionExecutable::codeBlockFor):
787         (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
788         * bytecode/UnlinkedCodeBlock.h:
789         (JSC::UnlinkedFunctionExecutable::create):
790         (UnlinkedFunctionExecutable):
791         (JSC::UnlinkedFunctionExecutable::finishCreation):
792         (JSC::UnlinkedFunctionExecutable::createStructure):
793         (JSC::UnlinkedCodeBlock::addRegExp):
794         (JSC::UnlinkedCodeBlock::addConstant):
795         (JSC::UnlinkedCodeBlock::addFunctionDecl):
796         (JSC::UnlinkedCodeBlock::addFunctionExpr):
797         (JSC::UnlinkedCodeBlock::vm):
798         (UnlinkedCodeBlock):
799         (JSC::UnlinkedCodeBlock::finishCreation):
800         (JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):
801         (JSC::UnlinkedProgramCodeBlock::create):
802         (JSC::UnlinkedProgramCodeBlock::addFunctionDeclaration):
803         (JSC::UnlinkedProgramCodeBlock::UnlinkedProgramCodeBlock):
804         (JSC::UnlinkedProgramCodeBlock::createStructure):
805         (JSC::UnlinkedEvalCodeBlock::create):
806         (JSC::UnlinkedEvalCodeBlock::UnlinkedEvalCodeBlock):
807         (JSC::UnlinkedEvalCodeBlock::createStructure):
808         (JSC::UnlinkedFunctionCodeBlock::create):
809         (JSC::UnlinkedFunctionCodeBlock::UnlinkedFunctionCodeBlock):
810         (JSC::UnlinkedFunctionCodeBlock::createStructure):
811         * bytecompiler/BytecodeGenerator.cpp:
812         (JSC::BytecodeGenerator::BytecodeGenerator):
813         (JSC::BytecodeGenerator::addConstant):
814         (JSC::BytecodeGenerator::emitLoad):
815         (JSC::BytecodeGenerator::emitDirectPutById):
816         (JSC::BytecodeGenerator::addStringConstant):
817         (JSC::BytecodeGenerator::expectedFunctionForIdentifier):
818         (JSC::BytecodeGenerator::emitThrowReferenceError):
819         (JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):
820         * bytecompiler/BytecodeGenerator.h:
821         (BytecodeGenerator):
822         (JSC::BytecodeGenerator::vm):
823         (JSC::BytecodeGenerator::propertyNames):
824         (JSC::BytecodeGenerator::makeFunction):
825         * bytecompiler/NodesCodegen.cpp:
826         (JSC::RegExpNode::emitBytecode):
827         (JSC::ArrayNode::toArgumentList):
828         (JSC::ApplyFunctionCallDotNode::emitBytecode):
829         (JSC::InstanceOfNode::emitBytecode):
830         * debugger/Debugger.cpp:
831         (JSC::Debugger::recompileAllJSFunctions):
832         (JSC::evaluateInGlobalCallFrame):
833         * debugger/Debugger.h:
834         (JSC):
835         * debugger/DebuggerActivation.cpp:
836         (JSC::DebuggerActivation::DebuggerActivation):
837         (JSC::DebuggerActivation::finishCreation):
838         * debugger/DebuggerActivation.h:
839         (JSC::DebuggerActivation::create):
840         (JSC::DebuggerActivation::createStructure):
841         (DebuggerActivation):
842         * debugger/DebuggerCallFrame.cpp:
843         (JSC::DebuggerCallFrame::evaluate):
844         * dfg/DFGAbstractState.cpp:
845         (JSC::DFG::AbstractState::executeEffects):
846         * dfg/DFGAssemblyHelpers.h:
847         (JSC::DFG::AssemblyHelpers::AssemblyHelpers):
848         (JSC::DFG::AssemblyHelpers::vm):
849         (JSC::DFG::AssemblyHelpers::debugCall):
850         (JSC::DFG::AssemblyHelpers::emitExceptionCheck):
851         (AssemblyHelpers):
852         * dfg/DFGByteCodeParser.cpp:
853         (JSC::DFG::ByteCodeParser::ByteCodeParser):
854         (ByteCodeParser):
855         (JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
856         (JSC::DFG::ByteCodeParser::parseBlock):
857         (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
858         (JSC::DFG::ByteCodeParser::parseCodeBlock):
859         * dfg/DFGByteCodeParser.h:
860         (JSC):
861         * dfg/DFGCCallHelpers.h:
862         (JSC::DFG::CCallHelpers::CCallHelpers):
863         * dfg/DFGCapabilities.cpp:
864         (JSC::DFG::canHandleOpcodes):
865         * dfg/DFGConstantFoldingPhase.cpp:
866         (JSC::DFG::ConstantFoldingPhase::foldConstants):
867         * dfg/DFGDisassembler.cpp:
868         (JSC::DFG::Disassembler::reportToProfiler):
869         * dfg/DFGDriver.cpp:
870         (JSC::DFG::compile):
871         * dfg/DFGDriver.h:
872         (JSC):
873         * dfg/DFGFixupPhase.cpp:
874         (JSC::DFG::FixupPhase::fixupNode):
875         (JSC::DFG::FixupPhase::isStringPrototypeMethodSane):
876         (JSC::DFG::FixupPhase::canOptimizeStringObjectAccess):
877         * dfg/DFGGraph.cpp:
878         (JSC::DFG::Graph::Graph):
879         * dfg/DFGGraph.h:
880         (Graph):
881         * dfg/DFGJITCompiler.cpp:
882         (JSC::DFG::JITCompiler::JITCompiler):
883         (JSC::DFG::JITCompiler::linkOSRExits):
884         (JSC::DFG::JITCompiler::link):
885         (JSC::DFG::JITCompiler::compile):
886         (JSC::DFG::JITCompiler::compileFunction):
887         * dfg/DFGJITCompiler.h:
888         (JSC):
889         * dfg/DFGOSREntry.cpp:
890         (JSC::DFG::prepareOSREntry):
891         * dfg/DFGOSRExitCompiler.cpp:
892         * dfg/DFGOSRExitCompiler32_64.cpp:
893         (JSC::DFG::OSRExitCompiler::compileExit):
894         * dfg/DFGOSRExitCompiler64.cpp:
895         (JSC::DFG::OSRExitCompiler::compileExit):
896         * dfg/DFGOperations.cpp:
897         (JSC::DFG::putByVal):
898         (JSC::DFG::operationPutByValInternal):
899         (JSC::getHostCallReturnValueWithExecState):
900         * dfg/DFGPhase.h:
901         (JSC::DFG::Phase::vm):
902         * dfg/DFGRepatch.cpp:
903         (JSC::DFG::generateProtoChainAccessStub):
904         (JSC::DFG::tryCacheGetByID):
905         (JSC::DFG::tryBuildGetByIDList):
906         (JSC::DFG::tryBuildGetByIDProtoList):
907         (JSC::DFG::emitPutReplaceStub):
908         (JSC::DFG::emitPutTransitionStub):
909         (JSC::DFG::tryCachePutByID):
910         (JSC::DFG::tryBuildPutByIdList):
911         (JSC::DFG::linkSlowFor):
912         (JSC::DFG::dfgLinkFor):
913         (JSC::DFG::dfgLinkSlowFor):
914         (JSC::DFG::dfgLinkClosureCall):
915         * dfg/DFGSpeculativeJIT.cpp:
916         (JSC::DFG::SpeculativeJIT::typedArrayDescriptor):
917         (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
918         (JSC::DFG::SpeculativeJIT::compileGetByValOnString):
919         (JSC::DFG::SpeculativeJIT::compileFromCharCode):
920         (JSC::DFG::SpeculativeJIT::compileMakeRope):
921         (JSC::DFG::SpeculativeJIT::compileStringEquality):
922         (JSC::DFG::SpeculativeJIT::compileToStringOnCell):
923         (JSC::DFG::SpeculativeJIT::speculateObject):
924         (JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
925         (JSC::DFG::SpeculativeJIT::speculateString):
926         (JSC::DFG::SpeculativeJIT::speculateStringOrStringObject):
927         * dfg/DFGSpeculativeJIT.h:
928         (JSC::DFG::SpeculativeJIT::prepareForExternalCall):
929         (JSC::DFG::SpeculativeJIT::emitAllocateBasicStorage):
930         (JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
931         * dfg/DFGSpeculativeJIT32_64.cpp:
932         (JSC::DFG::SpeculativeJIT::compileObjectEquality):
933         (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
934         (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
935         (JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
936         (JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
937         (JSC::DFG::SpeculativeJIT::compile):
938         * dfg/DFGSpeculativeJIT64.cpp:
939         (JSC::DFG::SpeculativeJIT::compileObjectEquality):
940         (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
941         (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
942         (JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
943         (JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
944         (JSC::DFG::SpeculativeJIT::compile):
945         * dfg/DFGThunks.cpp:
946         (JSC::DFG::osrExitGenerationThunkGenerator):
947         (JSC::DFG::throwExceptionFromCallSlowPathGenerator):
948         (JSC::DFG::slowPathFor):
949         (JSC::DFG::linkForThunkGenerator):
950         (JSC::DFG::linkCallThunkGenerator):
951         (JSC::DFG::linkConstructThunkGenerator):
952         (JSC::DFG::linkClosureCallThunkGenerator):
953         (JSC::DFG::virtualForThunkGenerator):
954         (JSC::DFG::virtualCallThunkGenerator):
955         (JSC::DFG::virtualConstructThunkGenerator):
956         * dfg/DFGThunks.h:
957         (JSC):
958         (DFG):
959         * heap/BlockAllocator.h:
960         (JSC):
961         * heap/CopiedSpace.cpp:
962         (JSC::CopiedSpace::tryAllocateSlowCase):
963         (JSC::CopiedSpace::tryReallocate):
964         * heap/CopiedSpaceInlines.h:
965         (JSC::CopiedSpace::tryAllocate):
966         * heap/GCThreadSharedData.cpp:
967         (JSC::GCThreadSharedData::GCThreadSharedData):
968         (JSC::GCThreadSharedData::reset):
969         * heap/GCThreadSharedData.h:
970         (JSC):
971         (GCThreadSharedData):
972         * heap/HandleSet.cpp:
973         (JSC::HandleSet::HandleSet):
974         (JSC::HandleSet::~HandleSet):
975         (JSC::HandleSet::grow):
976         * heap/HandleSet.h:
977         (JSC):
978         (HandleSet):
979         (JSC::HandleSet::vm):
980         * heap/Heap.cpp:
981         (JSC::Heap::Heap):
982         (JSC):
983         (JSC::Heap::lastChanceToFinalize):
984         (JSC::Heap::protect):
985         (JSC::Heap::unprotect):
986         (JSC::Heap::stack):
987         (JSC::Heap::getConservativeRegisterRoots):
988         (JSC::Heap::markRoots):
989         (JSC::Heap::deleteAllCompiledCode):
990         (JSC::Heap::collect):
991         (JSC::Heap::isValidAllocation):
992         * heap/Heap.h:
993         (JSC):
994         (Heap):
995         (JSC::Heap::vm):
996         * heap/HeapTimer.cpp:
997         (JSC::HeapTimer::HeapTimer):
998         (JSC::HeapTimer::timerDidFire):
999         (JSC::HeapTimer::timerEvent):
1000         * heap/HeapTimer.h:
1001         (JSC):
1002         (HeapTimer):
1003         * heap/IncrementalSweeper.cpp:
1004         (JSC::IncrementalSweeper::IncrementalSweeper):
1005         (JSC::IncrementalSweeper::sweepNextBlock):
1006         (JSC::IncrementalSweeper::willFinishSweeping):
1007         (JSC::IncrementalSweeper::create):
1008         * heap/IncrementalSweeper.h:
1009         (IncrementalSweeper):
1010         * heap/Local.h:
1011         (Local):
1012         (JSC::::Local):
1013         (JSC::LocalStack::LocalStack):
1014         (JSC::LocalStack::push):
1015         (LocalStack):
1016         * heap/LocalScope.h:
1017         (JSC):
1018         (LocalScope):
1019         (JSC::LocalScope::LocalScope):
1020         * heap/MachineStackMarker.cpp:
1021         (JSC::MachineThreads::addCurrentThread):
1022         * heap/MarkedAllocator.cpp:
1023         (JSC::MarkedAllocator::allocateSlowCase):
1024         * heap/MarkedBlock.cpp:
1025         (JSC::MarkedBlock::MarkedBlock):
1026         * heap/MarkedBlock.h:
1027         (JSC::MarkedBlock::vm):
1028         * heap/SlotVisitor.cpp:
1029         (JSC::SlotVisitor::SlotVisitor):
1030         (JSC::SlotVisitor::setup):
1031         * heap/Strong.h:
1032         (JSC):
1033         (Strong):
1034         (JSC::Strong::operator=):
1035         * heap/StrongInlines.h:
1036         (JSC::::Strong):
1037         (JSC::::set):
1038         * heap/SuperRegion.h:
1039         (JSC):
1040         * heap/WeakSet.cpp:
1041         * heap/WeakSet.h:
1042         (WeakSet):
1043         (JSC::WeakSet::WeakSet):
1044         (JSC::WeakSet::vm):
1045         * interpreter/AbstractPC.cpp:
1046         (JSC::AbstractPC::AbstractPC):
1047         * interpreter/AbstractPC.h:
1048         (JSC):
1049         (AbstractPC):
1050         * interpreter/CachedCall.h:
1051         (JSC::CachedCall::CachedCall):
1052         * interpreter/CallFrame.h:
1053         (ExecState):
1054         (JSC::ExecState::clearException):
1055         (JSC::ExecState::clearSupplementaryExceptionInfo):
1056         (JSC::ExecState::exception):
1057         (JSC::ExecState::hadException):
1058         (JSC::ExecState::propertyNames):
1059         (JSC::ExecState::emptyList):
1060         (JSC::ExecState::interpreter):
1061         (JSC::ExecState::heap):
1062         (JSC::ExecState::arrayConstructorTable):
1063         (JSC::ExecState::arrayPrototypeTable):
1064         (JSC::ExecState::booleanPrototypeTable):
1065         (JSC::ExecState::dateTable):
1066         (JSC::ExecState::dateConstructorTable):
1067         (JSC::ExecState::errorPrototypeTable):
1068         (JSC::ExecState::globalObjectTable):
1069         (JSC::ExecState::jsonTable):
1070         (JSC::ExecState::mathTable):
1071         (JSC::ExecState::numberConstructorTable):
1072         (JSC::ExecState::numberPrototypeTable):
1073         (JSC::ExecState::objectConstructorTable):
1074         (JSC::ExecState::privateNamePrototypeTable):
1075         (JSC::ExecState::regExpTable):
1076         (JSC::ExecState::regExpConstructorTable):
1077         (JSC::ExecState::regExpPrototypeTable):
1078         (JSC::ExecState::stringConstructorTable):
1079         (JSC::ExecState::abstractReturnPC):
1080         * interpreter/CallFrameClosure.h:
1081         (CallFrameClosure):
1082         * interpreter/Interpreter.cpp:
1083         (JSC):
1084         (JSC::eval):
1085         (JSC::loadVarargs):
1086         (JSC::Interpreter::Interpreter):
1087         (JSC::Interpreter::dumpRegisters):
1088         (JSC::Interpreter::unwindCallFrame):
1089         (JSC::appendSourceToError):
1090         (JSC::getCallerInfo):
1091         (JSC::Interpreter::getStackTrace):
1092         (JSC::Interpreter::addStackTraceIfNecessary):
1093         (JSC::Interpreter::throwException):
1094         (JSC::Interpreter::execute):
1095         (JSC::Interpreter::executeCall):
1096         (JSC::Interpreter::executeConstruct):
1097         (JSC::Interpreter::prepareForRepeatCall):
1098         (JSC::Interpreter::retrieveArgumentsFromVMCode):
1099         (JSC::Interpreter::retrieveCallerFromVMCode):
1100         * interpreter/Interpreter.h:
1101         (JSC):
1102         (JSC::TopCallFrameSetter::TopCallFrameSetter):
1103         (JSC::TopCallFrameSetter::~TopCallFrameSetter):
1104         (TopCallFrameSetter):
1105         (JSC::NativeCallFrameTracer::NativeCallFrameTracer):
1106         (Interpreter):
1107         * interpreter/JSStack.cpp:
1108         (JSC::JSStack::JSStack):
1109         * interpreter/JSStack.h:
1110         (JSC):
1111         * jit/ClosureCallStubRoutine.cpp:
1112         (JSC::ClosureCallStubRoutine::ClosureCallStubRoutine):
1113         * jit/ClosureCallStubRoutine.h:
1114         (ClosureCallStubRoutine):
1115         * jit/ExecutableAllocator.cpp:
1116         (JSC::ExecutableAllocator::ExecutableAllocator):
1117         (JSC::ExecutableAllocator::allocate):
1118         * jit/ExecutableAllocator.h:
1119         (JSC):
1120         (ExecutableAllocator):
1121         * jit/ExecutableAllocatorFixedVMPool.cpp:
1122         (JSC::ExecutableAllocator::ExecutableAllocator):
1123         (JSC::ExecutableAllocator::allocate):
1124         * jit/GCAwareJITStubRoutine.cpp:
1125         (JSC::GCAwareJITStubRoutine::GCAwareJITStubRoutine):
1126         (JSC::MarkingGCAwareJITStubRoutineWithOneObject::MarkingGCAwareJITStubRoutineWithOneObject):
1127         (JSC::createJITStubRoutine):
1128         * jit/GCAwareJITStubRoutine.h:
1129         (GCAwareJITStubRoutine):
1130         (MarkingGCAwareJITStubRoutineWithOneObject):
1131         (JSC):
1132         * jit/JIT.cpp:
1133         (JSC::JIT::JIT):
1134         (JSC::JIT::privateCompile):
1135         (JSC::JIT::linkFor):
1136         (JSC::JIT::linkSlowCall):
1137         * jit/JIT.h:
1138         (JSC::JIT::compile):
1139         (JSC::JIT::compileClosureCall):
1140         (JSC::JIT::compileGetByIdProto):
1141         (JSC::JIT::compileGetByIdSelfList):
1142         (JSC::JIT::compileGetByIdProtoList):
1143         (JSC::JIT::compileGetByIdChainList):
1144         (JSC::JIT::compileGetByIdChain):
1145         (JSC::JIT::compilePutByIdTransition):
1146         (JSC::JIT::compileGetByVal):
1147         (JSC::JIT::compilePutByVal):
1148         (JSC::JIT::compileCTINativeCall):
1149         (JSC::JIT::compilePatchGetArrayLength):
1150         (JIT):
1151         * jit/JITCall.cpp:
1152         (JSC::JIT::compileLoadVarargs):
1153         (JSC::JIT::compileCallEvalSlowCase):
1154         (JSC::JIT::compileOpCallSlowCase):
1155         (JSC::JIT::privateCompileClosureCall):
1156         * jit/JITCall32_64.cpp:
1157         (JSC::JIT::compileLoadVarargs):
1158         (JSC::JIT::compileCallEvalSlowCase):
1159         (JSC::JIT::compileOpCallSlowCase):
1160         (JSC::JIT::privateCompileClosureCall):
1161         * jit/JITCode.h:
1162         (JSC):
1163         (JSC::JITCode::execute):
1164         * jit/JITDriver.h:
1165         (JSC::jitCompileIfAppropriate):
1166         (JSC::jitCompileFunctionIfAppropriate):
1167         * jit/JITExceptions.cpp:
1168         (JSC::genericThrow):
1169         (JSC::jitThrow):
1170         * jit/JITExceptions.h:
1171         (JSC):
1172         * jit/JITInlines.h:
1173         (JSC::JIT::emitLoadCharacterString):
1174         (JSC::JIT::updateTopCallFrame):
1175         * jit/JITOpcodes.cpp:
1176         (JSC::JIT::privateCompileCTINativeCall):
1177         (JSC::JIT::emit_op_new_object):
1178         (JSC::JIT::emit_op_to_primitive):
1179         (JSC::JIT::emit_op_catch):
1180         (JSC::JIT::emit_op_convert_this):
1181         (JSC::JIT::emitSlow_op_convert_this):
1182         * jit/JITOpcodes32_64.cpp:
1183         (JSC::JIT::privateCompileCTINativeCall):
1184         (JSC::JIT::emit_op_new_object):
1185         (JSC::JIT::emit_op_to_primitive):
1186         (JSC::JIT::emitSlow_op_eq):
1187         (JSC::JIT::emitSlow_op_neq):
1188         (JSC::JIT::compileOpStrictEq):
1189         (JSC::JIT::emit_op_catch):
1190         (JSC::JIT::emit_op_convert_this):
1191         (JSC::JIT::emitSlow_op_convert_this):
1192         * jit/JITPropertyAccess.cpp:
1193         (JSC::JIT::stringGetByValStubGenerator):
1194         (JSC::JIT::emitSlow_op_get_by_val):
1195         (JSC::JIT::compileGetByIdHotPath):
1196         (JSC::JIT::privateCompilePutByIdTransition):
1197         (JSC::JIT::privateCompilePatchGetArrayLength):
1198         (JSC::JIT::privateCompileGetByIdProto):
1199         (JSC::JIT::privateCompileGetByIdSelfList):
1200         (JSC::JIT::privateCompileGetByIdProtoList):
1201         (JSC::JIT::privateCompileGetByIdChainList):
1202         (JSC::JIT::privateCompileGetByIdChain):
1203         (JSC::JIT::privateCompileGetByVal):
1204         (JSC::JIT::privateCompilePutByVal):
1205         * jit/JITPropertyAccess32_64.cpp:
1206         (JSC::JIT::stringGetByValStubGenerator):
1207         (JSC::JIT::emitSlow_op_get_by_val):
1208         (JSC::JIT::compileGetByIdHotPath):
1209         (JSC::JIT::privateCompilePutByIdTransition):
1210         (JSC::JIT::privateCompilePatchGetArrayLength):
1211         (JSC::JIT::privateCompileGetByIdProto):
1212         (JSC::JIT::privateCompileGetByIdSelfList):
1213         (JSC::JIT::privateCompileGetByIdProtoList):
1214         (JSC::JIT::privateCompileGetByIdChainList):
1215         (JSC::JIT::privateCompileGetByIdChain):
1216         * jit/JITStubs.cpp:
1217         (JSC::ctiTrampoline):
1218         (JSC):
1219         (JSC::performPlatformSpecificJITAssertions):
1220         (JSC::tryCachePutByID):
1221         (JSC::tryCacheGetByID):
1222         (JSC::returnToThrowTrampoline):
1223         (JSC::throwExceptionFromOpCall):
1224         (JSC::DEFINE_STUB_FUNCTION):
1225         (JSC::getPolymorphicAccessStructureListSlot):
1226         (JSC::jitCompileFor):
1227         (JSC::lazyLinkFor):
1228         (JSC::putByVal):
1229         * jit/JITStubs.h:
1230         (JSC):
1231         (JITStackFrame):
1232         * jit/JITThunks.cpp:
1233         (JSC::JITThunks::ctiNativeCall):
1234         (JSC::JITThunks::ctiNativeConstruct):
1235         (JSC::JITThunks::ctiStub):
1236         (JSC::JITThunks::hostFunctionStub):
1237         * jit/JITThunks.h:
1238         (JSC):
1239         (JITThunks):
1240         * jit/JITWriteBarrier.h:
1241         (JSC):
1242         (JSC::JITWriteBarrierBase::set):
1243         (JSC::JITWriteBarrier::set):
1244         * jit/SpecializedThunkJIT.h:
1245         (JSC::SpecializedThunkJIT::loadJSStringArgument):
1246         (JSC::SpecializedThunkJIT::finalize):
1247         * jit/ThunkGenerator.h:
1248         (JSC):
1249         * jit/ThunkGenerators.cpp:
1250         (JSC::generateSlowCaseFor):
1251         (JSC::linkForGenerator):
1252         (JSC::linkCallGenerator):
1253         (JSC::linkConstructGenerator):
1254         (JSC::linkClosureCallGenerator):
1255         (JSC::virtualForGenerator):
1256         (JSC::virtualCallGenerator):
1257         (JSC::virtualConstructGenerator):
1258         (JSC::stringLengthTrampolineGenerator):
1259         (JSC::nativeForGenerator):
1260         (JSC::nativeCallGenerator):
1261         (JSC::nativeConstructGenerator):
1262         (JSC::stringCharLoad):
1263         (JSC::charToString):
1264         (JSC::charCodeAtThunkGenerator):
1265         (JSC::charAtThunkGenerator):
1266         (JSC::fromCharCodeThunkGenerator):
1267         (JSC::sqrtThunkGenerator):
1268         (JSC::floorThunkGenerator):
1269         (JSC::ceilThunkGenerator):
1270         (JSC::roundThunkGenerator):
1271         (JSC::expThunkGenerator):
1272         (JSC::logThunkGenerator):
1273         (JSC::absThunkGenerator):
1274         (JSC::powThunkGenerator):
1275         * jit/ThunkGenerators.h:
1276         (JSC):
1277         * jsc.cpp:
1278         (GlobalObject):
1279         (GlobalObject::create):
1280         (GlobalObject::createStructure):
1281         (GlobalObject::finishCreation):
1282         (GlobalObject::addFunction):
1283         (GlobalObject::addConstructableFunction):
1284         (functionDumpCallFrame):
1285         (functionJSCStack):
1286         (functionReleaseExecutableMemory):
1287         (functionRun):
1288         (main):
1289         (runWithScripts):
1290         (jscmain):
1291         * llint/LLIntData.cpp:
1292         (JSC::LLInt::Data::performAssertions):
1293         * llint/LLIntData.h:
1294         (JSC):
1295         (Data):
1296         (JSC::LLInt::Data::performAssertions):
1297         * llint/LLIntEntrypoints.cpp:
1298         (JSC::LLInt::getFunctionEntrypoint):
1299         (JSC::LLInt::getEvalEntrypoint):
1300         (JSC::LLInt::getProgramEntrypoint):
1301         * llint/LLIntEntrypoints.h:
1302         (JSC):
1303         (LLInt):
1304         (JSC::LLInt::getEntrypoint):
1305         * llint/LLIntExceptions.cpp:
1306         (JSC::LLInt::interpreterThrowInCaller):
1307         (JSC::LLInt::returnToThrow):
1308         (JSC::LLInt::callToThrow):
1309         * llint/LLIntOffsetsExtractor.cpp:
1310         * llint/LLIntSlowPaths.cpp:
1311         (LLInt):
1312         (JSC::LLInt::llint_trace_operand):
1313         (JSC::LLInt::llint_trace_value):
1314         (JSC::LLInt::LLINT_SLOW_PATH_DECL):
1315         (JSC::LLInt::shouldJIT):
1316         (JSC::LLInt::handleHostCall):
1317         (JSC::LLInt::setUpCall):
1318         * llint/LLIntThunks.cpp:
1319         (JSC::LLInt::generateThunkWithJumpTo):
1320         (JSC::LLInt::functionForCallEntryThunkGenerator):
1321         (JSC::LLInt::functionForConstructEntryThunkGenerator):
1322         (JSC::LLInt::functionForCallArityCheckThunkGenerator):
1323         (JSC::LLInt::functionForConstructArityCheckThunkGenerator):
1324         (JSC::LLInt::evalEntryThunkGenerator):
1325         (JSC::LLInt::programEntryThunkGenerator):
1326         * llint/LLIntThunks.h:
1327         (JSC):
1328         (LLInt):
1329         * llint/LowLevelInterpreter.asm:
1330         * llint/LowLevelInterpreter.cpp:
1331         (JSC::CLoop::execute):
1332         * llint/LowLevelInterpreter32_64.asm:
1333         * llint/LowLevelInterpreter64.asm:
1334         * offlineasm/cloop.rb:
1335         * parser/ASTBuilder.h:
1336         (JSC::ASTBuilder::ASTBuilder):
1337         (JSC::ASTBuilder::createSourceElements):
1338         (JSC::ASTBuilder::createCommaExpr):
1339         (JSC::ASTBuilder::createLogicalNot):
1340         (JSC::ASTBuilder::createUnaryPlus):
1341         (JSC::ASTBuilder::createVoid):
1342         (JSC::ASTBuilder::thisExpr):
1343         (JSC::ASTBuilder::createResolve):
1344         (JSC::ASTBuilder::createObjectLiteral):
1345         (JSC::ASTBuilder::createArray):
1346         (JSC::ASTBuilder::createNumberExpr):
1347         (JSC::ASTBuilder::createString):
1348         (JSC::ASTBuilder::createBoolean):
1349         (JSC::ASTBuilder::createNull):
1350         (JSC::ASTBuilder::createBracketAccess):
1351         (JSC::ASTBuilder::createDotAccess):
1352         (JSC::ASTBuilder::createRegExp):
1353         (JSC::ASTBuilder::createNewExpr):
1354         (JSC::ASTBuilder::createConditionalExpr):
1355         (JSC::ASTBuilder::createAssignResolve):
1356         (JSC::ASTBuilder::createFunctionExpr):
1357         (JSC::ASTBuilder::createFunctionBody):
1358         (JSC::ASTBuilder::createGetterOrSetterProperty):
1359         (JSC::ASTBuilder::createArguments):
1360         (JSC::ASTBuilder::createArgumentsList):
1361         (JSC::ASTBuilder::createProperty):
1362         (JSC::ASTBuilder::createPropertyList):
1363         (JSC::ASTBuilder::createElementList):
1364         (JSC::ASTBuilder::createFormalParameterList):
1365         (JSC::ASTBuilder::createClause):
1366         (JSC::ASTBuilder::createClauseList):
1367         (JSC::ASTBuilder::createFuncDeclStatement):
1368         (JSC::ASTBuilder::createBlockStatement):
1369         (JSC::ASTBuilder::createExprStatement):
1370         (JSC::ASTBuilder::createIfStatement):
1371         (JSC::ASTBuilder::createForLoop):
1372         (JSC::ASTBuilder::createForInLoop):
1373         (JSC::ASTBuilder::createEmptyStatement):
1374         (JSC::ASTBuilder::createVarStatement):
1375         (JSC::ASTBuilder::createReturnStatement):
1376         (JSC::ASTBuilder::createBreakStatement):
1377         (JSC::ASTBuilder::createContinueStatement):
1378         (JSC::ASTBuilder::createTryStatement):
1379         (JSC::ASTBuilder::createSwitchStatement):
1380         (JSC::ASTBuilder::createWhileStatement):
1381         (JSC::ASTBuilder::createDoWhileStatement):
1382         (JSC::ASTBuilder::createLabelStatement):
1383         (JSC::ASTBuilder::createWithStatement):
1384         (JSC::ASTBuilder::createThrowStatement):
1385         (JSC::ASTBuilder::createDebugger):
1386         (JSC::ASTBuilder::createConstStatement):
1387         (JSC::ASTBuilder::appendConstDecl):
1388         (JSC::ASTBuilder::addVar):
1389         (JSC::ASTBuilder::combineCommaNodes):
1390         (JSC::ASTBuilder::Scope::Scope):
1391         (JSC::ASTBuilder::createNumber):
1392         (ASTBuilder):
1393         (JSC::ASTBuilder::makeTypeOfNode):
1394         (JSC::ASTBuilder::makeDeleteNode):
1395         (JSC::ASTBuilder::makeNegateNode):
1396         (JSC::ASTBuilder::makeBitwiseNotNode):
1397         (JSC::ASTBuilder::makeMultNode):
1398         (JSC::ASTBuilder::makeDivNode):
1399         (JSC::ASTBuilder::makeModNode):
1400         (JSC::ASTBuilder::makeAddNode):
1401         (JSC::ASTBuilder::makeSubNode):
1402         (JSC::ASTBuilder::makeLeftShiftNode):
1403         (JSC::ASTBuilder::makeRightShiftNode):
1404         (JSC::ASTBuilder::makeURightShiftNode):
1405         (JSC::ASTBuilder::makeBitOrNode):
1406         (JSC::ASTBuilder::makeBitAndNode):
1407         (JSC::ASTBuilder::makeBitXOrNode):
1408         (JSC::ASTBuilder::makeFunctionCallNode):
1409         (JSC::ASTBuilder::makeBinaryNode):
1410         (JSC::ASTBuilder::makeAssignNode):
1411         (JSC::ASTBuilder::makePrefixNode):
1412         (JSC::ASTBuilder::makePostfixNode):
1413         * parser/Lexer.cpp:
1414         (JSC::Keywords::Keywords):
1415         (JSC::::Lexer):
1416         (JSC::::parseIdentifier):
1417         (JSC::::parseIdentifierSlowCase):
1418         * parser/Lexer.h:
1419         (JSC::Keywords::isKeyword):
1420         (JSC::Keywords::getKeyword):
1421         (Keywords):
1422         (Lexer):
1423         (JSC::::makeIdentifier):
1424         (JSC::::makeRightSizedIdentifier):
1425         (JSC::::makeIdentifierLCharFromUChar):
1426         (JSC::::makeLCharIdentifier):
1427         * parser/NodeConstructors.h:
1428         (JSC::ParserArenaFreeable::operator new):
1429         (JSC::ParserArenaDeletable::operator new):
1430         (JSC::ParserArenaRefCounted::ParserArenaRefCounted):
1431         (JSC::PropertyNode::PropertyNode):
1432         (JSC::ContinueNode::ContinueNode):
1433         (JSC::BreakNode::BreakNode):
1434         (JSC::ForInNode::ForInNode):
1435         * parser/Nodes.cpp:
1436         (JSC::ScopeNode::ScopeNode):
1437         (JSC::ProgramNode::ProgramNode):
1438         (JSC::ProgramNode::create):
1439         (JSC::EvalNode::EvalNode):
1440         (JSC::EvalNode::create):
1441         (JSC::FunctionBodyNode::FunctionBodyNode):
1442         (JSC::FunctionBodyNode::create):
1443         * parser/Nodes.h:
1444         (ParserArenaFreeable):
1445         (ParserArenaDeletable):
1446         (ParserArenaRefCounted):
1447         (ArrayNode):
1448         (ForInNode):
1449         (ContinueNode):
1450         (BreakNode):
1451         (ScopeNode):
1452         (ProgramNode):
1453         (EvalNode):
1454         (FunctionBodyNode):
1455         * parser/Parser.cpp:
1456         (JSC::::Parser):
1457         (JSC::::parseInner):
1458         (JSC::::parseSourceElements):
1459         (JSC::::parseTryStatement):
1460         (JSC::::parseFunctionBody):
1461         (JSC::::parseFunctionInfo):
1462         (JSC::::parseAssignmentExpression):
1463         (JSC::::parseProperty):
1464         (JSC::::parsePrimaryExpression):
1465         (JSC::::parseMemberExpression):
1466         (JSC::::parseUnaryExpression):
1467         * parser/Parser.h:
1468         (JSC):
1469         (JSC::Scope::Scope):
1470         (JSC::Scope::declareVariable):
1471         (JSC::Scope::declareParameter):
1472         (Scope):
1473         (Parser):
1474         (JSC::Parser::pushScope):
1475         (JSC::::parse):
1476         (JSC::parse):
1477         * parser/ParserArena.h:
1478         (IdentifierArena):
1479         (JSC::IdentifierArena::makeIdentifier):
1480         (JSC::IdentifierArena::makeIdentifierLCharFromUChar):
1481         (JSC::IdentifierArena::makeNumericIdentifier):
1482         * parser/SyntaxChecker.h:
1483         (JSC::SyntaxChecker::SyntaxChecker):
1484         (JSC::SyntaxChecker::createProperty):
1485         (JSC::SyntaxChecker::createGetterOrSetterProperty):
1486         * profiler/LegacyProfiler.cpp:
1487         (JSC::LegacyProfiler::startProfiling):
1488         (JSC::LegacyProfiler::stopProfiling):
1489         * profiler/LegacyProfiler.h:
1490         (JSC):
1491         * profiler/ProfilerBytecode.cpp:
1492         (JSC::Profiler::Bytecode::toJS):
1493         * profiler/ProfilerBytecodeSequence.cpp:
1494         (JSC::Profiler::BytecodeSequence::BytecodeSequence):
1495         (JSC::Profiler::BytecodeSequence::addSequenceProperties):
1496         * profiler/ProfilerBytecodes.cpp:
1497         (JSC::Profiler::Bytecodes::toJS):
1498         * profiler/ProfilerCompilation.cpp:
1499         (JSC::Profiler::Compilation::toJS):
1500         * profiler/ProfilerCompiledBytecode.cpp:
1501         (JSC::Profiler::CompiledBytecode::toJS):
1502         * profiler/ProfilerDatabase.cpp:
1503         (JSC::Profiler::Database::Database):
1504         (JSC::Profiler::Database::toJS):
1505         (JSC::Profiler::Database::toJSON):
1506         * profiler/ProfilerDatabase.h:
1507         (Database):
1508         * profiler/ProfilerOSRExit.cpp:
1509         (JSC::Profiler::OSRExit::toJS):
1510         * profiler/ProfilerOrigin.cpp:
1511         (JSC::Profiler::Origin::toJS):
1512         * profiler/ProfilerProfiledBytecodes.cpp:
1513         (JSC::Profiler::ProfiledBytecodes::toJS):
1514         * runtime/ArgList.h:
1515         (MarkedArgumentBuffer):
1516         * runtime/Arguments.cpp:
1517         (JSC::Arguments::putByIndex):
1518         (JSC::Arguments::put):
1519         (JSC::Arguments::deleteProperty):
1520         (JSC::Arguments::defineOwnProperty):
1521         (JSC::Arguments::tearOff):
1522         (JSC::Arguments::didTearOffActivation):
1523         (JSC::Arguments::tearOffForInlineCallFrame):
1524         * runtime/Arguments.h:
1525         (JSC::Arguments::create):
1526         (JSC::Arguments::createStructure):
1527         (Arguments):
1528         (JSC::Arguments::Arguments):
1529         (JSC::Arguments::trySetArgument):
1530         (JSC::Arguments::finishCreation):
1531         * runtime/ArrayConstructor.cpp:
1532         (JSC::ArrayConstructor::finishCreation):
1533         * runtime/ArrayConstructor.h:
1534         (JSC::ArrayConstructor::createStructure):
1535         * runtime/ArrayPrototype.cpp:
1536         (JSC::ArrayPrototype::ArrayPrototype):
1537         (JSC::ArrayPrototype::finishCreation):
1538         (JSC::arrayProtoFuncSort):
1539         (JSC::arrayProtoFuncSplice):
1540         * runtime/ArrayPrototype.h:
1541         (JSC::ArrayPrototype::createStructure):
1542         * runtime/BatchedTransitionOptimizer.h:
1543         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
1544         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
1545         (BatchedTransitionOptimizer):
1546         * runtime/BooleanConstructor.cpp:
1547         (JSC::BooleanConstructor::finishCreation):
1548         (JSC::constructBoolean):
1549         (JSC::constructBooleanFromImmediateBoolean):
1550         * runtime/BooleanConstructor.h:
1551         (JSC::BooleanConstructor::createStructure):
1552         * runtime/BooleanObject.cpp:
1553         (JSC::BooleanObject::BooleanObject):
1554         (JSC::BooleanObject::finishCreation):
1555         * runtime/BooleanObject.h:
1556         (BooleanObject):
1557         (JSC::BooleanObject::create):
1558         (JSC::BooleanObject::createStructure):
1559         * runtime/BooleanPrototype.cpp:
1560         (JSC::BooleanPrototype::BooleanPrototype):
1561         (JSC::BooleanPrototype::finishCreation):
1562         (JSC::booleanProtoFuncToString):
1563         * runtime/BooleanPrototype.h:
1564         (JSC::BooleanPrototype::createStructure):
1565         * runtime/Butterfly.h:
1566         (JSC):
1567         (Butterfly):
1568         * runtime/ButterflyInlines.h:
1569         (JSC::Butterfly::createUninitialized):
1570         (JSC::Butterfly::create):
1571         (JSC::Butterfly::growPropertyStorage):
1572         (JSC::Butterfly::createOrGrowArrayRight):
1573         (JSC::Butterfly::growArrayRight):
1574         (JSC::Butterfly::resizeArray):
1575         * runtime/CodeCache.cpp:
1576         (JSC::CodeCache::getCodeBlock):
1577         (JSC::CodeCache::getProgramCodeBlock):
1578         (JSC::CodeCache::getEvalCodeBlock):
1579         (JSC::CodeCache::getFunctionExecutableFromGlobalCode):
1580         * runtime/CodeCache.h:
1581         (JSC):
1582         (JSC::SourceCodeValue::SourceCodeValue):
1583         (CodeCache):
1584         * runtime/CommonIdentifiers.cpp:
1585         (JSC):
1586         (JSC::CommonIdentifiers::CommonIdentifiers):
1587         * runtime/CommonIdentifiers.h:
1588         (CommonIdentifiers):
1589         * runtime/CommonSlowPaths.h:
1590         (JSC::CommonSlowPaths::opIn):
1591         * runtime/Completion.cpp:
1592         (JSC::checkSyntax):
1593         (JSC::evaluate):
1594         * runtime/DateConstructor.cpp:
1595         (JSC::DateConstructor::finishCreation):
1596         * runtime/DateConstructor.h:
1597         (JSC::DateConstructor::createStructure):
1598         * runtime/DateInstance.cpp:
1599         (JSC::DateInstance::DateInstance):
1600         (JSC::DateInstance::finishCreation):
1601         (JSC::DateInstance::calculateGregorianDateTime):
1602         (JSC::DateInstance::calculateGregorianDateTimeUTC):
1603         * runtime/DateInstance.h:
1604         (DateInstance):
1605         (JSC::DateInstance::create):
1606         (JSC::DateInstance::createStructure):
1607         * runtime/DatePrototype.cpp:
1608         (JSC::DatePrototype::finishCreation):
1609         (JSC::dateProtoFuncSetTime):
1610         (JSC::setNewValueFromTimeArgs):
1611         (JSC::setNewValueFromDateArgs):
1612         (JSC::dateProtoFuncSetYear):
1613         (JSC::dateProtoFuncToJSON):
1614         * runtime/DatePrototype.h:
1615         (JSC::DatePrototype::createStructure):
1616         * runtime/Error.cpp:
1617         (JSC::createError):
1618         (JSC::createEvalError):
1619         (JSC::createRangeError):
1620         (JSC::createReferenceError):
1621         (JSC::createSyntaxError):
1622         (JSC::createTypeError):
1623         (JSC::createURIError):
1624         (JSC::addErrorInfo):
1625         (JSC::throwError):
1626         * runtime/Error.h:
1627         (JSC):
1628         (JSC::StrictModeTypeErrorFunction::create):
1629         (JSC::StrictModeTypeErrorFunction::createStructure):
1630         * runtime/ErrorConstructor.cpp:
1631         (JSC::ErrorConstructor::finishCreation):
1632         * runtime/ErrorConstructor.h:
1633         (JSC::ErrorConstructor::createStructure):
1634         * runtime/ErrorInstance.cpp:
1635         (JSC::ErrorInstance::ErrorInstance):
1636         * runtime/ErrorInstance.h:
1637         (JSC::ErrorInstance::createStructure):
1638         (JSC::ErrorInstance::create):
1639         (ErrorInstance):
1640         (JSC::ErrorInstance::finishCreation):
1641         * runtime/ErrorPrototype.cpp:
1642         (JSC::ErrorPrototype::ErrorPrototype):
1643         (JSC::ErrorPrototype::finishCreation):
1644         * runtime/ErrorPrototype.h:
1645         (JSC::ErrorPrototype::createStructure):
1646         * runtime/ExceptionHelpers.cpp:
1647         (JSC::createInterruptedExecutionException):
1648         (JSC::createTerminatedExecutionException):
1649         * runtime/ExceptionHelpers.h:
1650         (JSC):
1651         (JSC::InterruptedExecutionError::InterruptedExecutionError):
1652         (JSC::InterruptedExecutionError::create):
1653         (JSC::InterruptedExecutionError::createStructure):
1654         (JSC::TerminatedExecutionError::TerminatedExecutionError):
1655         (JSC::TerminatedExecutionError::create):
1656         (JSC::TerminatedExecutionError::createStructure):
1657         * runtime/Executable.cpp:
1658         (JSC::jettisonCodeBlock):
1659         (JSC::EvalExecutable::EvalExecutable):
1660         (JSC::ProgramExecutable::ProgramExecutable):
1661         (JSC::FunctionExecutable::FunctionExecutable):
1662         (JSC::EvalExecutable::compileOptimized):
1663         (JSC::EvalExecutable::compileInternal):
1664         (JSC::EvalExecutable::jettisonOptimizedCode):
1665         (JSC::ProgramExecutable::checkSyntax):
1666         (JSC::ProgramExecutable::compileOptimized):
1667         (JSC::ProgramExecutable::jettisonOptimizedCode):
1668         (JSC::ProgramExecutable::initializeGlobalProperties):
1669         (JSC::FunctionExecutable::compileOptimizedForCall):
1670         (JSC::FunctionExecutable::compileOptimizedForConstruct):
1671         (JSC::FunctionExecutable::produceCodeBlockFor):
1672         (JSC::FunctionExecutable::jettisonOptimizedCodeForCall):
1673         (JSC::FunctionExecutable::jettisonOptimizedCodeForConstruct):
1674         (JSC::FunctionExecutable::fromGlobalCode):
1675         * runtime/Executable.h:
1676         (JSC::ExecutableBase::ExecutableBase):
1677         (JSC::ExecutableBase::finishCreation):
1678         (JSC::ExecutableBase::createStructure):
1679         (JSC::NativeExecutable::create):
1680         (JSC::NativeExecutable::createStructure):
1681         (JSC::NativeExecutable::finishCreation):
1682         (JSC::NativeExecutable::NativeExecutable):
1683         (JSC::ScriptExecutable::ScriptExecutable):
1684         (JSC::ScriptExecutable::finishCreation):
1685         (JSC::EvalExecutable::compile):
1686         (EvalExecutable):
1687         (JSC::EvalExecutable::create):
1688         (JSC::EvalExecutable::createStructure):
1689         (JSC::ProgramExecutable::create):
1690         (ProgramExecutable):
1691         (JSC::ProgramExecutable::compile):
1692         (JSC::ProgramExecutable::createStructure):
1693         (JSC::FunctionExecutable::create):
1694         (JSC::FunctionExecutable::compileForCall):
1695         (FunctionExecutable):
1696         (JSC::FunctionExecutable::compileForConstruct):
1697         (JSC::FunctionExecutable::jettisonOptimizedCodeFor):
1698         (JSC::FunctionExecutable::createStructure):
1699         (JSC::JSFunction::JSFunction):
1700         * runtime/ExecutionHarness.h:
1701         (JSC::prepareForExecution):
1702         (JSC::prepareFunctionForExecution):
1703         * runtime/FunctionConstructor.cpp:
1704         (JSC::FunctionConstructor::finishCreation):
1705         * runtime/FunctionConstructor.h:
1706         (JSC::FunctionConstructor::createStructure):
1707         * runtime/FunctionPrototype.cpp:
1708         (JSC::FunctionPrototype::finishCreation):
1709         (JSC::FunctionPrototype::addFunctionProperties):
1710         (JSC::functionProtoFuncBind):
1711         * runtime/FunctionPrototype.h:
1712         (JSC::FunctionPrototype::createStructure):
1713         * runtime/GCActivityCallback.cpp:
1714         (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
1715         (JSC::DefaultGCActivityCallback::doWork):
1716         (JSC::DefaultGCActivityCallback::didAllocate):
1717         * runtime/GCActivityCallback.h:
1718         (JSC::GCActivityCallback::GCActivityCallback):
1719         * runtime/GCActivityCallbackBlackBerry.cpp:
1720         (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
1721         (JSC::DefaultGCActivityCallback::doWork):
1722         (JSC::DefaultGCActivityCallback::didAllocate):
1723         * runtime/GetterSetter.h:
1724         (JSC::GetterSetter::GetterSetter):
1725         (JSC::GetterSetter::create):
1726         (JSC::GetterSetter::setGetter):
1727         (JSC::GetterSetter::setSetter):
1728         (JSC::GetterSetter::createStructure):
1729         * runtime/Identifier.cpp:
1730         (JSC::Identifier::add):
1731         (JSC::Identifier::add8):
1732         (JSC::Identifier::addSlowCase):
1733         (JSC::Identifier::from):
1734         (JSC::Identifier::checkCurrentIdentifierTable):
1735         * runtime/Identifier.h:
1736         (JSC::Identifier::Identifier):
1737         (JSC::Identifier::createLCharFromUChar):
1738         (Identifier):
1739         (JSC::Identifier::add):
1740         * runtime/InternalFunction.cpp:
1741         (JSC::InternalFunction::InternalFunction):
1742         (JSC::InternalFunction::finishCreation):
1743         (JSC::InternalFunction::name):
1744         (JSC::InternalFunction::displayName):
1745         * runtime/InternalFunction.h:
1746         (JSC::InternalFunction::createStructure):
1747         (InternalFunction):
1748         * runtime/JSAPIValueWrapper.h:
1749         (JSC::JSAPIValueWrapper::createStructure):
1750         (JSC::JSAPIValueWrapper::finishCreation):
1751         (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
1752         * runtime/JSActivation.cpp:
1753         (JSC::JSActivation::symbolTablePut):
1754         (JSC::JSActivation::symbolTablePutWithAttributes):
1755         (JSC::JSActivation::getOwnPropertySlot):
1756         (JSC::JSActivation::put):
1757         (JSC::JSActivation::putDirectVirtual):
1758         (JSC::JSActivation::argumentsGetter):
1759         * runtime/JSActivation.h:
1760         (JSActivation):
1761         (JSC::JSActivation::create):
1762         (JSC::JSActivation::createStructure):
1763         (JSC::JSActivation::JSActivation):
1764         (JSC::JSActivation::tearOff):
1765         * runtime/JSArray.cpp:
1766         (JSC::createArrayButterflyInDictionaryIndexingMode):
1767         (JSC::JSArray::setLengthWritable):
1768         (JSC::JSArray::unshiftCountSlowCase):
1769         (JSC::JSArray::setLength):
1770         (JSC::JSArray::push):
1771         (JSC::JSArray::shiftCountWithAnyIndexingType):
1772         (JSC::JSArray::unshiftCountWithArrayStorage):
1773         (JSC::JSArray::unshiftCountWithAnyIndexingType):
1774         (JSC::ContiguousTypeAccessor::setWithValue):
1775         (JSC::JSArray::sortCompactedVector):
1776         (JSC::JSArray::sortVector):
1777         * runtime/JSArray.h:
1778         (JSC::JSArray::JSArray):
1779         (JSArray):
1780         (JSC::JSArray::shiftCountForShift):
1781         (JSC::JSArray::unshiftCountForShift):
1782         (JSC::JSArray::createStructure):
1783         (JSC::createContiguousArrayButterfly):
1784         (JSC::createArrayButterfly):
1785         (JSC):
1786         (JSC::JSArray::create):
1787         (JSC::JSArray::tryCreateUninitialized):
1788         (JSC::constructArray):
1789         * runtime/JSBoundFunction.cpp:
1790         (JSC::JSBoundFunction::create):
1791         (JSC::JSBoundFunction::JSBoundFunction):
1792         * runtime/JSBoundFunction.h:
1793         (JSC::JSBoundFunction::createStructure):
1794         * runtime/JSCJSValue.cpp:
1795         (JSC::JSValue::putToPrimitive):
1796         (JSC::JSValue::toStringSlowCase):
1797         * runtime/JSCJSValue.h:
1798         (JSC):
1799         * runtime/JSCell.h:
1800         (JSCell):
1801         * runtime/JSCellInlines.h:
1802         (JSC::JSCell::JSCell):
1803         (JSC::JSCell::finishCreation):
1804         (JSC::allocateCell):
1805         (JSC::JSCell::setStructure):
1806         (JSC::JSCell::fastGetOwnProperty):
1807         * runtime/JSDateMath.cpp:
1808         (JSC::getDSTOffset):
1809         (JSC::getUTCOffset):
1810         (JSC::parseDate):
1811         * runtime/JSDestructibleObject.h:
1812         (JSC::JSDestructibleObject::JSDestructibleObject):
1813         * runtime/JSFunction.cpp:
1814         (JSC::JSFunction::create):
1815         (JSC::JSFunction::JSFunction):
1816         (JSC::JSFunction::finishCreation):
1817         (JSC::JSFunction::createAllocationProfile):
1818         (JSC::JSFunction::name):
1819         (JSC::JSFunction::displayName):
1820         (JSC::JSFunction::getOwnPropertySlot):
1821         (JSC::JSFunction::deleteProperty):
1822         * runtime/JSFunction.h:
1823         (JSFunction):
1824         (JSC::JSFunction::create):
1825         (JSC::JSFunction::setScope):
1826         (JSC::JSFunction::createStructure):
1827         * runtime/JSGlobalData.cpp: Removed.
1828         * runtime/JSGlobalData.h: Removed.
1829         * runtime/JSGlobalObject.cpp:
1830         (JSC::JSGlobalObject::JSGlobalObject):
1831         (JSC::JSGlobalObject::~JSGlobalObject):
1832         (JSC::JSGlobalObject::setGlobalThis):
1833         (JSC::JSGlobalObject::init):
1834         (JSC::JSGlobalObject::putDirectVirtual):
1835         (JSC::JSGlobalObject::reset):
1836         (JSC):
1837         (JSC::JSGlobalObject::haveABadTime):
1838         (JSC::JSGlobalObject::createThrowTypeError):
1839         (JSC::JSGlobalObject::resetPrototype):
1840         (JSC::JSGlobalObject::addStaticGlobals):
1841         (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope):
1842         (JSC::JSGlobalObject::createProgramCodeBlock):
1843         (JSC::JSGlobalObject::createEvalCodeBlock):
1844         * runtime/JSGlobalObject.h:
1845         (JSC::JSGlobalObject::create):
1846         (JSGlobalObject):
1847         (JSC::JSGlobalObject::finishCreation):
1848         (JSC::JSGlobalObject::vm):
1849         (JSC::JSGlobalObject::createStructure):
1850         (JSC::ExecState::dynamicGlobalObject):
1851         (JSC::constructEmptyArray):
1852         (DynamicGlobalObjectScope):
1853         * runtime/JSGlobalObjectFunctions.cpp:
1854         (JSC::globalFuncProtoSetter):
1855         * runtime/JSLock.cpp:
1856         (JSC::JSLockHolder::JSLockHolder):
1857         (JSC::JSLockHolder::init):
1858         (JSC::JSLockHolder::~JSLockHolder):
1859         (JSC::JSLock::JSLock):
1860         (JSC::JSLock::willDestroyGlobalData):
1861         (JSC::JSLock::lock):
1862         (JSC::JSLock::unlock):
1863         (JSC::JSLock::DropAllLocks::DropAllLocks):
1864         (JSC::JSLock::DropAllLocks::~DropAllLocks):
1865         * runtime/JSLock.h:
1866         (JSC):
1867         (JSLockHolder):
1868         (JSLock):
1869         (JSC::JSLock::vm):
1870         (DropAllLocks):
1871         * runtime/JSNameScope.h:
1872         (JSC::JSNameScope::createStructure):
1873         (JSC::JSNameScope::finishCreation):
1874         (JSC::JSNameScope::JSNameScope):
1875         * runtime/JSNotAnObject.h:
1876         (JSC::JSNotAnObject::JSNotAnObject):
1877         (JSC::JSNotAnObject::create):
1878         (JSC::JSNotAnObject::createStructure):
1879         * runtime/JSONObject.cpp:
1880         (JSC::JSONObject::JSONObject):
1881         (JSC::JSONObject::finishCreation):
1882         (Holder):
1883         (JSC::Stringifier::Stringifier):
1884         (JSC::Stringifier::stringify):
1885         (JSC::Stringifier::toJSON):
1886         (JSC::Stringifier::appendStringifiedValue):
1887         (JSC::Stringifier::Holder::Holder):
1888         (JSC::Stringifier::Holder::appendNextProperty):
1889         (JSC::Walker::Walker):
1890         (JSC::Walker::walk):
1891         (JSC::JSONProtoFuncParse):
1892         (JSC::JSONProtoFuncStringify):
1893         (JSC::JSONStringify):
1894         * runtime/JSONObject.h:
1895         (JSC::JSONObject::createStructure):
1896         * runtime/JSObject.cpp:
1897         (JSC::JSObject::put):
1898         (JSC::JSObject::putByIndex):
1899         (JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
1900         (JSC::JSObject::enterDictionaryIndexingMode):
1901         (JSC::JSObject::notifyPresenceOfIndexedAccessors):
1902         (JSC::JSObject::createInitialIndexedStorage):
1903         (JSC::JSObject::createInitialUndecided):
1904         (JSC::JSObject::createInitialInt32):
1905         (JSC::JSObject::createInitialDouble):
1906         (JSC::JSObject::createInitialContiguous):
1907         (JSC::JSObject::createArrayStorage):
1908         (JSC::JSObject::createInitialArrayStorage):
1909         (JSC::JSObject::convertUndecidedToInt32):
1910         (JSC::JSObject::convertUndecidedToDouble):
1911         (JSC::JSObject::convertUndecidedToContiguous):
1912         (JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
1913         (JSC::JSObject::convertUndecidedToArrayStorage):
1914         (JSC::JSObject::convertInt32ToDouble):
1915         (JSC::JSObject::convertInt32ToContiguous):
1916         (JSC::JSObject::convertInt32ToArrayStorage):
1917         (JSC::JSObject::genericConvertDoubleToContiguous):
1918         (JSC::JSObject::convertDoubleToContiguous):
1919         (JSC::JSObject::rageConvertDoubleToContiguous):
1920         (JSC::JSObject::convertDoubleToArrayStorage):
1921         (JSC::JSObject::convertContiguousToArrayStorage):
1922         (JSC::JSObject::convertUndecidedForValue):
1923         (JSC::JSObject::convertInt32ForValue):
1924         (JSC::JSObject::setIndexQuicklyToUndecided):
1925         (JSC::JSObject::convertInt32ToDoubleOrContiguousWhilePerformingSetIndex):
1926         (JSC::JSObject::convertDoubleToContiguousWhilePerformingSetIndex):
1927         (JSC::JSObject::ensureInt32Slow):
1928         (JSC::JSObject::ensureDoubleSlow):
1929         (JSC::JSObject::ensureContiguousSlow):
1930         (JSC::JSObject::rageEnsureContiguousSlow):
1931         (JSC::JSObject::ensureArrayStorageSlow):
1932         (JSC::JSObject::ensureArrayStorageExistsAndEnterDictionaryIndexingMode):
1933         (JSC::JSObject::switchToSlowPutArrayStorage):
1934         (JSC::JSObject::putDirectVirtual):
1935         (JSC::JSObject::setPrototype):
1936         (JSC::JSObject::setPrototypeWithCycleCheck):
1937         (JSC::JSObject::putDirectAccessor):
1938         (JSC::JSObject::deleteProperty):
1939         (JSC::JSObject::getPropertySpecificValue):
1940         (JSC::JSObject::getOwnNonIndexPropertyNames):
1941         (JSC::JSObject::seal):
1942         (JSC::JSObject::freeze):
1943         (JSC::JSObject::preventExtensions):
1944         (JSC::JSObject::reifyStaticFunctionsForDelete):
1945         (JSC::JSObject::removeDirect):
1946         (JSC::JSObject::putIndexedDescriptor):
1947         (JSC::JSObject::defineOwnIndexedProperty):
1948         (JSC::JSObject::allocateSparseIndexMap):
1949         (JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
1950         (JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
1951         (JSC::JSObject::putByIndexBeyondVectorLength):
1952         (JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
1953         (JSC::JSObject::putDirectIndexBeyondVectorLength):
1954         (JSC::JSObject::putDirectNativeFunction):
1955         (JSC::JSObject::increaseVectorLength):
1956         (JSC::JSObject::ensureLengthSlow):
1957         (JSC::JSObject::growOutOfLineStorage):
1958         (JSC::JSObject::getOwnPropertyDescriptor):
1959         (JSC::putDescriptor):
1960         (JSC::JSObject::putDirectMayBeIndex):
1961         (JSC::DefineOwnPropertyScope::DefineOwnPropertyScope):
1962         (JSC::DefineOwnPropertyScope::~DefineOwnPropertyScope):
1963         (DefineOwnPropertyScope):
1964         (JSC::JSObject::defineOwnNonIndexProperty):
1965         * runtime/JSObject.h:
1966         (JSObject):
1967         (JSC::JSObject::putByIndexInline):
1968         (JSC::JSObject::putDirectIndex):
1969         (JSC::JSObject::setIndexQuickly):
1970         (JSC::JSObject::initializeIndex):
1971         (JSC::JSObject::getDirect):
1972         (JSC::JSObject::getDirectOffset):
1973         (JSC::JSObject::putDirect):
1974         (JSC::JSObject::isSealed):
1975         (JSC::JSObject::isFrozen):
1976         (JSC::JSObject::flattenDictionaryObject):
1977         (JSC::JSObject::ensureInt32):
1978         (JSC::JSObject::ensureDouble):
1979         (JSC::JSObject::ensureContiguous):
1980         (JSC::JSObject::rageEnsureContiguous):
1981         (JSC::JSObject::ensureArrayStorage):
1982         (JSC::JSObject::finishCreation):
1983         (JSC::JSObject::createStructure):
1984         (JSC::JSObject::ensureLength):
1985         (JSC::JSNonFinalObject::createStructure):
1986         (JSC::JSNonFinalObject::JSNonFinalObject):
1987         (JSC::JSNonFinalObject::finishCreation):
1988         (JSC::JSFinalObject::createStructure):
1989         (JSC::JSFinalObject::finishCreation):
1990         (JSC::JSFinalObject::JSFinalObject):
1991         (JSC::JSFinalObject::create):
1992         (JSC::JSObject::setButterfly):
1993         (JSC::JSObject::JSObject):
1994         (JSC::JSObject::inlineGetOwnPropertySlot):
1995         (JSC::JSObject::putDirectInternal):
1996         (JSC::JSObject::setStructureAndReallocateStorageIfNecessary):
1997         (JSC::JSObject::putOwnDataProperty):
1998         (JSC::JSObject::putDirectWithoutTransition):
1999         (JSC):
2000         * runtime/JSPropertyNameIterator.cpp:
2001         (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
2002         (JSC::JSPropertyNameIterator::create):
2003         * runtime/JSPropertyNameIterator.h:
2004         (JSC::JSPropertyNameIterator::createStructure):
2005         (JSC::JSPropertyNameIterator::setCachedStructure):
2006         (JSC::JSPropertyNameIterator::setCachedPrototypeChain):
2007         (JSC::JSPropertyNameIterator::finishCreation):
2008         (JSC::StructureRareData::setEnumerationCache):
2009         * runtime/JSProxy.cpp:
2010         (JSC::JSProxy::setTarget):
2011         * runtime/JSProxy.h:
2012         (JSC::JSProxy::create):
2013         (JSC::JSProxy::createStructure):
2014         (JSC::JSProxy::JSProxy):
2015         (JSC::JSProxy::finishCreation):
2016         (JSProxy):
2017         * runtime/JSScope.cpp:
2018         (JSC::executeResolveOperations):
2019         (JSC::JSScope::resolveContainingScopeInternal):
2020         (JSC::JSScope::resolveWithBase):
2021         (JSC::JSScope::resolveWithThis):
2022         (JSC::JSScope::resolvePut):
2023         * runtime/JSScope.h:
2024         (JSScope):
2025         (JSC::JSScope::JSScope):
2026         (JSC::JSScope::vm):
2027         (JSC::ExecState::vm):
2028         * runtime/JSSegmentedVariableObject.h:
2029         (JSC::JSSegmentedVariableObject::JSSegmentedVariableObject):
2030         (JSC::JSSegmentedVariableObject::finishCreation):
2031         * runtime/JSString.cpp:
2032         (JSC::JSRopeString::RopeBuilder::expand):
2033         (JSC::StringObject::create):
2034         * runtime/JSString.h:
2035         (JSC):
2036         (JSString):
2037         (JSC::JSString::JSString):
2038         (JSC::JSString::finishCreation):
2039         (JSC::JSString::create):
2040         (JSC::JSString::createHasOtherOwner):
2041         (JSC::JSString::createStructure):
2042         (JSRopeString):
2043         (JSC::JSRopeString::RopeBuilder::RopeBuilder):
2044         (JSC::JSRopeString::RopeBuilder::append):
2045         (RopeBuilder):
2046         (JSC::JSRopeString::JSRopeString):
2047         (JSC::JSRopeString::finishCreation):
2048         (JSC::JSRopeString::append):
2049         (JSC::JSRopeString::createNull):
2050         (JSC::JSRopeString::create):
2051         (JSC::jsEmptyString):
2052         (JSC::jsSingleCharacterString):
2053         (JSC::jsSingleCharacterSubstring):
2054         (JSC::jsNontrivialString):
2055         (JSC::jsString):
2056         (JSC::jsSubstring):
2057         (JSC::jsSubstring8):
2058         (JSC::jsOwnedString):
2059         (JSC::jsStringBuilder):
2060         (JSC::inlineJSValueNotStringtoString):
2061         * runtime/JSStringJoiner.cpp:
2062         (JSC::JSStringJoiner::build):
2063         * runtime/JSSymbolTableObject.h:
2064         (JSC::JSSymbolTableObject::JSSymbolTableObject):
2065         (JSC::JSSymbolTableObject::finishCreation):
2066         (JSC::symbolTablePut):
2067         (JSC::symbolTablePutWithAttributes):
2068         * runtime/JSVariableObject.h:
2069         (JSC::JSVariableObject::JSVariableObject):
2070         * runtime/JSWithScope.h:
2071         (JSC::JSWithScope::create):
2072         (JSC::JSWithScope::createStructure):
2073         (JSC::JSWithScope::JSWithScope):
2074         * runtime/JSWrapperObject.h:
2075         (JSWrapperObject):
2076         (JSC::JSWrapperObject::createStructure):
2077         (JSC::JSWrapperObject::JSWrapperObject):
2078         (JSC::JSWrapperObject::setInternalValue):
2079         * runtime/LiteralParser.cpp:
2080         (JSC::::tryJSONPParse):
2081         (JSC::::makeIdentifier):
2082         (JSC::::parse):
2083         * runtime/Lookup.cpp:
2084         (JSC::HashTable::createTable):
2085         (JSC::setUpStaticFunctionSlot):
2086         * runtime/Lookup.h:
2087         (JSC::HashTable::initializeIfNeeded):
2088         (JSC::HashTable::entry):
2089         (JSC::HashTable::begin):
2090         (JSC::HashTable::end):
2091         (HashTable):
2092         (JSC::lookupPut):
2093         * runtime/MathObject.cpp:
2094         (JSC::MathObject::MathObject):
2095         (JSC::MathObject::finishCreation):
2096         (JSC::mathProtoFuncSin):
2097         * runtime/MathObject.h:
2098         (JSC::MathObject::createStructure):
2099         * runtime/MemoryStatistics.cpp:
2100         * runtime/MemoryStatistics.h:
2101         * runtime/NameConstructor.cpp:
2102         (JSC::NameConstructor::finishCreation):
2103         (JSC::constructPrivateName):
2104         * runtime/NameConstructor.h:
2105         (JSC::NameConstructor::createStructure):
2106         * runtime/NameInstance.cpp:
2107         (JSC::NameInstance::NameInstance):
2108         * runtime/NameInstance.h:
2109         (JSC::NameInstance::createStructure):
2110         (JSC::NameInstance::create):
2111         (NameInstance):
2112         (JSC::NameInstance::finishCreation):
2113         * runtime/NamePrototype.cpp:
2114         (JSC::NamePrototype::NamePrototype):
2115         (JSC::NamePrototype::finishCreation):
2116         * runtime/NamePrototype.h:
2117         (JSC::NamePrototype::createStructure):
2118         * runtime/NativeErrorConstructor.h:
2119         (JSC::NativeErrorConstructor::createStructure):
2120         (JSC::NativeErrorConstructor::finishCreation):
2121         * runtime/NativeErrorPrototype.cpp:
2122         (JSC::NativeErrorPrototype::finishCreation):
2123         * runtime/NumberConstructor.cpp:
2124         (JSC::NumberConstructor::finishCreation):
2125         (JSC::constructWithNumberConstructor):
2126         * runtime/NumberConstructor.h:
2127         (JSC::NumberConstructor::createStructure):
2128         * runtime/NumberObject.cpp:
2129         (JSC::NumberObject::NumberObject):
2130         (JSC::NumberObject::finishCreation):
2131         (JSC::constructNumber):
2132         * runtime/NumberObject.h:
2133         (NumberObject):
2134         (JSC::NumberObject::create):
2135         (JSC::NumberObject::createStructure):
2136         * runtime/NumberPrototype.cpp:
2137         (JSC::NumberPrototype::NumberPrototype):
2138         (JSC::NumberPrototype::finishCreation):
2139         (JSC::integerValueToString):
2140         (JSC::numberProtoFuncToString):
2141         * runtime/NumberPrototype.h:
2142         (JSC::NumberPrototype::createStructure):
2143         * runtime/ObjectConstructor.cpp:
2144         (JSC::ObjectConstructor::finishCreation):
2145         (JSC::objectConstructorGetOwnPropertyDescriptor):
2146         (JSC::objectConstructorSeal):
2147         (JSC::objectConstructorFreeze):
2148         (JSC::objectConstructorPreventExtensions):
2149         (JSC::objectConstructorIsSealed):
2150         (JSC::objectConstructorIsFrozen):
2151         * runtime/ObjectConstructor.h:
2152         (JSC::ObjectConstructor::createStructure):
2153         (JSC::constructEmptyObject):
2154         * runtime/ObjectPrototype.cpp:
2155         (JSC::ObjectPrototype::ObjectPrototype):
2156         (JSC::ObjectPrototype::finishCreation):
2157         (JSC::objectProtoFuncToString):
2158         * runtime/ObjectPrototype.h:
2159         (JSC::ObjectPrototype::createStructure):
2160         * runtime/Operations.cpp:
2161         (JSC::jsTypeStringForValue):
2162         * runtime/Operations.h:
2163         (JSC):
2164         (JSC::jsString):
2165         (JSC::jsStringFromArguments):
2166         (JSC::normalizePrototypeChainForChainAccess):
2167         (JSC::normalizePrototypeChain):
2168         * runtime/PropertyMapHashTable.h:
2169         (JSC::PropertyMapEntry::PropertyMapEntry):
2170         (JSC::PropertyTable::createStructure):
2171         (PropertyTable):
2172         (JSC::PropertyTable::copy):
2173         * runtime/PropertyNameArray.h:
2174         (JSC::PropertyNameArray::PropertyNameArray):
2175         (JSC::PropertyNameArray::vm):
2176         (JSC::PropertyNameArray::addKnownUnique):
2177         (PropertyNameArray):
2178         * runtime/PropertyTable.cpp:
2179         (JSC::PropertyTable::create):
2180         (JSC::PropertyTable::clone):
2181         (JSC::PropertyTable::PropertyTable):
2182         * runtime/PrototypeMap.cpp:
2183         (JSC::PrototypeMap::emptyObjectStructureForPrototype):
2184         * runtime/RegExp.cpp:
2185         (JSC::RegExp::RegExp):
2186         (JSC::RegExp::finishCreation):
2187         (JSC::RegExp::createWithoutCaching):
2188         (JSC::RegExp::create):
2189         (JSC::RegExp::compile):
2190         (JSC::RegExp::compileIfNecessary):
2191         (JSC::RegExp::match):
2192         (JSC::RegExp::compileMatchOnly):
2193         (JSC::RegExp::compileIfNecessaryMatchOnly):
2194         * runtime/RegExp.h:
2195         (JSC):
2196         (RegExp):
2197         (JSC::RegExp::createStructure):
2198         * runtime/RegExpCache.cpp:
2199         (JSC::RegExpCache::lookupOrCreate):
2200         (JSC::RegExpCache::RegExpCache):
2201         (JSC::RegExpCache::addToStrongCache):
2202         * runtime/RegExpCache.h:
2203         (RegExpCache):
2204         * runtime/RegExpCachedResult.cpp:
2205         (JSC::RegExpCachedResult::lastResult):
2206         (JSC::RegExpCachedResult::setInput):
2207         * runtime/RegExpCachedResult.h:
2208         (JSC::RegExpCachedResult::RegExpCachedResult):
2209         (JSC::RegExpCachedResult::record):
2210         * runtime/RegExpConstructor.cpp:
2211         (JSC::RegExpConstructor::RegExpConstructor):
2212         (JSC::RegExpConstructor::finishCreation):
2213         (JSC::constructRegExp):
2214         * runtime/RegExpConstructor.h:
2215         (JSC::RegExpConstructor::createStructure):
2216         (RegExpConstructor):
2217         (JSC::RegExpConstructor::performMatch):
2218         * runtime/RegExpMatchesArray.cpp:
2219         (JSC::RegExpMatchesArray::RegExpMatchesArray):
2220         (JSC::RegExpMatchesArray::create):
2221         (JSC::RegExpMatchesArray::finishCreation):
2222         (JSC::RegExpMatchesArray::reifyAllProperties):
2223         * runtime/RegExpMatchesArray.h:
2224         (RegExpMatchesArray):
2225         (JSC::RegExpMatchesArray::createStructure):
2226         * runtime/RegExpObject.cpp:
2227         (JSC::RegExpObject::RegExpObject):
2228         (JSC::RegExpObject::finishCreation):
2229         (JSC::RegExpObject::match):
2230         * runtime/RegExpObject.h:
2231         (JSC::RegExpObject::create):
2232         (JSC::RegExpObject::setRegExp):
2233         (JSC::RegExpObject::setLastIndex):
2234         (JSC::RegExpObject::createStructure):
2235         * runtime/RegExpPrototype.cpp:
2236         (JSC::regExpProtoFuncCompile):
2237         * runtime/RegExpPrototype.h:
2238         (JSC::RegExpPrototype::createStructure):
2239         * runtime/SmallStrings.cpp:
2240         (JSC::SmallStrings::initializeCommonStrings):
2241         (JSC::SmallStrings::createEmptyString):
2242         (JSC::SmallStrings::createSingleCharacterString):
2243         (JSC::SmallStrings::initialize):
2244         * runtime/SmallStrings.h:
2245         (JSC):
2246         (JSC::SmallStrings::singleCharacterString):
2247         (SmallStrings):
2248         * runtime/SparseArrayValueMap.cpp:
2249         (JSC::SparseArrayValueMap::SparseArrayValueMap):
2250         (JSC::SparseArrayValueMap::finishCreation):
2251         (JSC::SparseArrayValueMap::create):
2252         (JSC::SparseArrayValueMap::createStructure):
2253         (JSC::SparseArrayValueMap::putDirect):
2254         (JSC::SparseArrayEntry::put):
2255         * runtime/SparseArrayValueMap.h:
2256         * runtime/StrictEvalActivation.cpp:
2257         (JSC::StrictEvalActivation::StrictEvalActivation):
2258         * runtime/StrictEvalActivation.h:
2259         (JSC::StrictEvalActivation::create):
2260         (JSC::StrictEvalActivation::createStructure):
2261         * runtime/StringConstructor.cpp:
2262         (JSC::StringConstructor::finishCreation):
2263         * runtime/StringConstructor.h:
2264         (JSC::StringConstructor::createStructure):
2265         * runtime/StringObject.cpp:
2266         (JSC::StringObject::StringObject):
2267         (JSC::StringObject::finishCreation):
2268         (JSC::constructString):
2269         * runtime/StringObject.h:
2270         (JSC::StringObject::create):
2271         (JSC::StringObject::createStructure):
2272         (StringObject):
2273         * runtime/StringPrototype.cpp:
2274         (JSC::StringPrototype::StringPrototype):
2275         (JSC::StringPrototype::finishCreation):
2276         (JSC::removeUsingRegExpSearch):
2277         (JSC::replaceUsingRegExpSearch):
2278         (JSC::stringProtoFuncMatch):
2279         (JSC::stringProtoFuncSearch):
2280         (JSC::stringProtoFuncSplit):
2281         * runtime/StringPrototype.h:
2282         (JSC::StringPrototype::createStructure):
2283         * runtime/StringRecursionChecker.h:
2284         (JSC::StringRecursionChecker::performCheck):
2285         (JSC::StringRecursionChecker::~StringRecursionChecker):
2286         * runtime/Structure.cpp:
2287         (JSC::StructureTransitionTable::add):
2288         (JSC::Structure::Structure):
2289         (JSC::Structure::materializePropertyMap):
2290         (JSC::Structure::despecifyDictionaryFunction):
2291         (JSC::Structure::addPropertyTransition):
2292         (JSC::Structure::removePropertyTransition):
2293         (JSC::Structure::changePrototypeTransition):
2294         (JSC::Structure::despecifyFunctionTransition):
2295         (JSC::Structure::attributeChangeTransition):
2296         (JSC::Structure::toDictionaryTransition):
2297         (JSC::Structure::toCacheableDictionaryTransition):
2298         (JSC::Structure::toUncacheableDictionaryTransition):
2299         (JSC::Structure::sealTransition):
2300         (JSC::Structure::freezeTransition):
2301         (JSC::Structure::preventExtensionsTransition):
2302         (JSC::Structure::takePropertyTableOrCloneIfPinned):
2303         (JSC::Structure::nonPropertyTransition):
2304         (JSC::Structure::isSealed):
2305         (JSC::Structure::isFrozen):
2306         (JSC::Structure::flattenDictionaryStructure):
2307         (JSC::Structure::addPropertyWithoutTransition):
2308         (JSC::Structure::removePropertyWithoutTransition):
2309         (JSC::Structure::allocateRareData):
2310         (JSC::Structure::cloneRareDataFrom):
2311         (JSC::Structure::copyPropertyTable):
2312         (JSC::Structure::copyPropertyTableForPinning):
2313         (JSC::Structure::get):
2314         (JSC::Structure::despecifyFunction):
2315         (JSC::Structure::despecifyAllFunctions):
2316         (JSC::Structure::putSpecificValue):
2317         (JSC::Structure::createPropertyMap):
2318         (JSC::Structure::getPropertyNamesFromStructure):
2319         (JSC::Structure::prototypeChainMayInterceptStoreTo):
2320         * runtime/Structure.h:
2321         (Structure):
2322         (JSC::Structure::finishCreation):
2323         (JSC::Structure::setPrototypeWithoutTransition):
2324         (JSC::Structure::setGlobalObject):
2325         (JSC::Structure::setObjectToStringValue):
2326         (JSC::Structure::materializePropertyMapIfNecessary):
2327         (JSC::Structure::materializePropertyMapIfNecessaryForPinning):
2328         (JSC::Structure::setPreviousID):
2329         * runtime/StructureChain.cpp:
2330         (JSC::StructureChain::StructureChain):
2331         * runtime/StructureChain.h:
2332         (JSC::StructureChain::create):
2333         (JSC::StructureChain::createStructure):
2334         (JSC::StructureChain::finishCreation):
2335         (StructureChain):
2336         * runtime/StructureInlines.h:
2337         (JSC::Structure::create):
2338         (JSC::Structure::createStructure):
2339         (JSC::Structure::get):
2340         (JSC::Structure::setEnumerationCache):
2341         (JSC::Structure::prototypeChain):
2342         (JSC::Structure::propertyTable):
2343         * runtime/StructureRareData.cpp:
2344         (JSC::StructureRareData::createStructure):
2345         (JSC::StructureRareData::create):
2346         (JSC::StructureRareData::clone):
2347         (JSC::StructureRareData::StructureRareData):
2348         * runtime/StructureRareData.h:
2349         (StructureRareData):
2350         * runtime/StructureRareDataInlines.h:
2351         (JSC::StructureRareData::setPreviousID):
2352         (JSC::StructureRareData::setObjectToStringValue):
2353         * runtime/StructureTransitionTable.h:
2354         (StructureTransitionTable):
2355         (JSC::StructureTransitionTable::setSingleTransition):
2356         * runtime/SymbolTable.h:
2357         (JSC::SharedSymbolTable::create):
2358         (JSC::SharedSymbolTable::createStructure):
2359         (JSC::SharedSymbolTable::SharedSymbolTable):
2360         * runtime/VM.cpp: Copied from Source/JavaScriptCore/runtime/JSGlobalData.cpp.
2361         (JSC::VM::VM):
2362         (JSC::VM::~VM):
2363         (JSC::VM::createContextGroup):
2364         (JSC::VM::create):
2365         (JSC::VM::createLeaked):
2366         (JSC::VM::sharedInstanceExists):
2367         (JSC::VM::sharedInstance):
2368         (JSC::VM::sharedInstanceInternal):
2369         (JSC::VM::getHostFunction):
2370         (JSC::VM::ClientData::~ClientData):
2371         (JSC::VM::resetDateCache):
2372         (JSC::VM::startSampling):
2373         (JSC::VM::stopSampling):
2374         (JSC::VM::discardAllCode):
2375         (JSC::VM::dumpSampleData):
2376         (JSC::VM::addSourceProviderCache):
2377         (JSC::VM::clearSourceProviderCaches):
2378         (JSC::VM::releaseExecutableMemory):
2379         (JSC::releaseExecutableMemory):
2380         (JSC::VM::gatherConservativeRoots):
2381         (JSC::VM::addRegExpToTrace):
2382         (JSC::VM::dumpRegExpTrace):
2383         * runtime/VM.h: Copied from Source/JavaScriptCore/runtime/JSGlobalData.h.
2384         (VM):
2385         (JSC::VM::isSharedInstance):
2386         (JSC::VM::usingAPI):
2387         (JSC::VM::isInitializingObject):
2388         (JSC::VM::setInitializingObjectClass):
2389         (JSC::WeakSet::heap):
2390         * runtime/WriteBarrier.h:
2391         (JSC):
2392         (JSC::WriteBarrierBase::set):
2393         (JSC::WriteBarrierBase::setMayBeNull):
2394         (JSC::WriteBarrierBase::setEarlyValue):
2395         (JSC::WriteBarrier::WriteBarrier):
2396         * testRegExp.cpp:
2397         (GlobalObject):
2398         (GlobalObject::create):
2399         (GlobalObject::createStructure):
2400         (GlobalObject::finishCreation):
2401         (main):
2402         (testOneRegExp):
2403         (parseRegExpLine):
2404         (runFromFiles):
2405         (realMain):
2406         * yarr/YarrInterpreter.h:
2407         (BytecodePattern):
2408         * yarr/YarrJIT.cpp:
2409         (YarrGenerator):
2410         (JSC::Yarr::YarrGenerator::compile):
2411         (JSC::Yarr::jitCompile):
2412         * yarr/YarrJIT.h:
2413         (JSC):
2414
2415 2013-04-18  Xuefei Ren  <xren@blackberry.com>
2416
2417         remove build warning(unused parameter)
2418         https://bugs.webkit.org/show_bug.cgi?id=114670
2419
2420         Reviewed by Rob Buis.
2421
2422         remove warning in Source/JavaScriptCore/runtime/GCActivityCallbackBlackBerry.cpp
2423
2424         * runtime/GCActivityCallbackBlackBerry.cpp:
2425         (JSC::DefaultGCActivityCallback::didAllocate):
2426
2427 2013-04-18  Jonathan Liu  <net147@gmail.com>
2428
2429         Implement JIT for MinGW-w64 64-bit
2430         https://bugs.webkit.org/show_bug.cgi?id=114580
2431
2432         Reviewed by Jocelyn Turcotte.
2433
2434         * jit/JITStubs.cpp:
2435         (JSC):
2436
2437 2013-04-17  Mark Lam  <mark.lam@apple.com>
2438
2439         Avoid using a branch range that is too far for some CPU architectures.
2440         https://bugs.webkit.org/show_bug.cgi?id=114782.
2441
2442         Reviewed by David Kilzer.
2443
2444         * llint/LowLevelInterpreter.asm:
2445         * llint/LowLevelInterpreter32_64.asm:
2446         * llint/LowLevelInterpreter64.asm:
2447
2448 2013-04-17  Julien Brianceau  <jbrianceau@nds.com>
2449
2450         Fix SH4 build (broken since r148639).
2451         https://bugs.webkit.org/show_bug.cgi?id=114773.
2452
2453         Allow longer displacements for specific branches in SH4 LLINT.
2454
2455         Reviewed by Oliver Hunt.
2456
2457         * offlineasm/sh4.rb:
2458
2459 2013-04-14  Roger Fong  <roger_fong@apple.com>
2460
2461         Unreviewed. More Windows build fix.
2462
2463         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
2464         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
2465
2466 2013-04-14  Roger Fong  <roger_fong@apple.com>
2467
2468         Unreviewed. Windows build fix.
2469
2470         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
2471         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
2472
2473 2013-04-17  Mark Lam  <mark.lam@apple.com>
2474
2475         Fix broken build. Replaced a static const with a #define.
2476         https://bugs.webkit.org/show_bug.cgi?id=114577.
2477
2478         Unreviewed.
2479
2480         * runtime/Watchdog.cpp:
2481         (JSC::Watchdog::Watchdog):
2482         (JSC::Watchdog::isEnabled):
2483
2484 2013-04-17  Mark Lam  <mark.lam@apple.com>
2485
2486         Add LLINT and baseline JIT support for timing out scripts.
2487         https://bugs.webkit.org/show_bug.cgi?id=114577.
2488
2489         Reviewed by Geoffrey Garen.
2490
2491         Introduces the new Watchdog class which is used to track script
2492         execution time, and initiate script termination if needed.
2493
2494         * API/JSContextRef.cpp:
2495         (internalScriptTimeoutCallback):
2496         (JSContextGroupSetExecutionTimeLimit):
2497         (JSContextGroupClearExecutionTimeLimit):
2498         * API/JSContextRefPrivate.h:
2499         - Added new script execution time limit APIs.
2500         * API/tests/testapi.c:
2501         (currentCPUTime):
2502         (shouldTerminateCallback):
2503         (cancelTerminateCallback):
2504         (extendTerminateCallback):
2505         (main):
2506         - Added new API tests for script execution time limit.
2507         * CMakeLists.txt:
2508         * GNUmakefile.list.am:
2509         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2510         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
2511         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
2512         * JavaScriptCore.xcodeproj/project.pbxproj:
2513         * Target.pri:
2514         * bytecompiler/BytecodeGenerator.cpp:
2515         (JSC::BytecodeGenerator::emitLoopHint):
2516         - loop hints are needed for the llint as well. Hence, it will be
2517           emitted unconditionally.
2518         * interpreter/Interpreter.cpp:
2519         (JSC::Interpreter::addStackTraceIfNecessary):
2520         (JSC::Interpreter::throwException):
2521         (JSC::Interpreter::execute):
2522         (JSC::Interpreter::executeCall):
2523         (JSC::Interpreter::executeConstruct):
2524         - Added checks for script termination before entering script code.
2525         * jit/JIT.cpp:
2526         (JSC::JIT::emitWatchdogTimerCheck):
2527         * jit/JIT.h:
2528         (JSC::JIT::emit_op_loop_hint):
2529         * jit/JITStubs.cpp:
2530         (JSC::DEFINE_STUB_FUNCTION(void, handle_watchdog_timer)):
2531         * jit/JITStubs.h:
2532         * llint/LLIntExceptions.cpp:
2533         (JSC::LLInt::doThrow):
2534         - Factored out some common code from returnToThrow() and callToThrow().
2535         (JSC::LLInt::returnToThrow):
2536         (JSC::LLInt::callToThrow):
2537         * llint/LLIntSlowPaths.cpp:
2538         (JSC::LLInt::LLINT_SLOW_PATH_DECL(slow_path_handle_watchdog_timer)):
2539         * llint/LLIntSlowPaths.h:
2540         * llint/LowLevelInterpreter.asm:
2541         * llint/LowLevelInterpreter32_64.asm:
2542         * llint/LowLevelInterpreter64.asm:
2543         * runtime/ExceptionHelpers.cpp:
2544         (JSC::throwTerminatedExecutionException):
2545         - Also removed the now unused InterruptedExecutionException.
2546         * runtime/ExceptionHelpers.h:
2547         * runtime/JSGlobalData.cpp:
2548         (JSC::JSGlobalData::JSGlobalData):
2549         * runtime/JSGlobalData.h:
2550         - Added watchdog, and removed the now obsolete Terminator.
2551         * runtime/Terminator.h: Removed.
2552         * runtime/Watchdog.cpp: Added.
2553         (JSC::Watchdog::Watchdog):
2554         (JSC::Watchdog::~Watchdog):
2555         (JSC::Watchdog::setTimeLimit):
2556         (JSC::Watchdog::didFire):
2557         (JSC::Watchdog::isEnabled):
2558         (JSC::Watchdog::fire):
2559         (JSC::Watchdog::arm):
2560         (JSC::Watchdog::disarm):
2561         (JSC::Watchdog::startCountdownIfNeeded):
2562         (JSC::Watchdog::startCountdown):
2563         (JSC::Watchdog::stopCountdown):
2564         (JSC::Watchdog::Scope::Scope):
2565         (JSC::Watchdog::Scope::~Scope):
2566         * runtime/Watchdog.h: Added.
2567         (Watchdog):
2568         (JSC::Watchdog::didFire):
2569         (JSC::Watchdog::timerDidFireAddress):
2570         (JSC::Watchdog::isArmed):
2571         (Watchdog::Scope):
2572         * runtime/WatchdogMac.cpp: Added.
2573         (JSC::Watchdog::initTimer):
2574         (JSC::Watchdog::destroyTimer):
2575         (JSC::Watchdog::startTimer):
2576         (JSC::Watchdog::stopTimer):
2577         * runtime/WatchdogNone.cpp: Added.
2578         (JSC::Watchdog::initTimer):
2579         (JSC::Watchdog::destroyTimer):
2580         (JSC::Watchdog::startTimer):
2581         (JSC::Watchdog::stopTimer):
2582
2583 2013-04-14  Roger Fong  <roger_fong@apple.com>
2584
2585         Unreviewed. VS2010 Windows build fix.
2586
2587         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorPostBuild.cmd:
2588
2589 2013-04-14  Roger Fong  <roger_fong@apple.com>
2590
2591         Copy make-file-export-generator script to the the Source folders of the projects that use it.
2592         <rdar://problem/13675604>
2593
2594         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGenerator.vcxproj:
2595         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGenerator.vcxproj.filters:
2596         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorBuildCmd.cmd:
2597         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/make-export-file-generator: Copied from Source/WebCore/make-export-file-generator.
2598
2599 2013-04-17  Brent Fulgham  <bfulgham@webkit.org>
2600
2601         [Windows, WinCairo] Stop individually building WTF files in JSC.
2602         https://bugs.webkit.org/show_bug.cgi?id=114705
2603
2604         Reviewed by Anders Carlsson.
2605
2606         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
2607         Export additional String/fastMalloc symbols needed by JSC program.
2608         * JavaScriptCore.vcproj/jsc/jsc.vcproj: Don't manually build
2609         WTF implementation files (a second time!) in this project.
2610         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
2611         Export additional String/fastMalloc symbols needed by JSC program.
2612         * JavaScriptCore.vcxproj/jsc/jsc.vcxproj: Don't manually
2613         build WTF implementation files (a second time!) in this project.
2614         * JavaScriptCore.vcxproj/jsc/jsc.vcxproj.filters: Ditto.
2615
2616 2013-04-17  Mark Lam  <mark.lam@apple.com>
2617
2618         releaseExecutableMemory() should canonicalize cell liveness data before
2619         it scans the GC roots.
2620         https://bugs.webkit.org/show_bug.cgi?id=114733.
2621
2622         Reviewed by Mark Hahnenberg.
2623
2624         * heap/Heap.cpp:
2625         (JSC::Heap::canonicalizeCellLivenessData):
2626         * heap/Heap.h:
2627         * runtime/JSGlobalData.cpp:
2628         (JSC::JSGlobalData::releaseExecutableMemory):
2629
2630 2013-04-16  Commit Queue  <rniwa@webkit.org>
2631
2632         Unreviewed, rolling out r148576.
2633         http://trac.webkit.org/changeset/148576
2634         https://bugs.webkit.org/show_bug.cgi?id=114714
2635
2636         WebCore is building some of these same files (Requested by
2637         bfulgham on #webkit).
2638
2639         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
2640         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
2641         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
2642         * JavaScriptCore.vcxproj/jsc/jsc.vcxproj:
2643         * JavaScriptCore.vcxproj/jsc/jsc.vcxproj.filters:
2644
2645 2013-04-16  Brent Fulgham  <bfulgham@webkit.org>
2646
2647         [Windows, WinCairo] Stop individually building WTF files in JSC.
2648         https://bugs.webkit.org/show_bug.cgi?id=114705
2649
2650         Reviewed by Anders Carlsson.
2651
2652         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
2653         Export additional String/fastMalloc symbols needed by JSC program.
2654         * JavaScriptCore.vcproj/jsc/jsc.vcproj: Don't manually build
2655         WTF implementation files (a second time!) in this project.
2656         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
2657         Export additional String/fastMalloc symbols needed by JSC program.
2658         * JavaScriptCore.vcxproj/jsc/jsc.vcxproj: Don't manually
2659         build WTF implementation files (a second time!) in this project.
2660         * JavaScriptCore.vcxproj/jsc/jsc.vcxproj.filters: Ditto.
2661
2662 2013-04-16  Patrick Gansterer  <paroga@webkit.org>
2663
2664         [CMake] Do not use JAVASCRIPTCORE_DIR in add_custom_command() of JavaScriptCore project
2665         https://bugs.webkit.org/show_bug.cgi?id=114265
2666
2667         Reviewed by Brent Fulgham.
2668
2669         Use CMAKE_CURRENT_SOURCE_DIR instead, since it provides the same value and is more
2670         understandable. Also move the GENERATE_HASH_LUT macro into the CMakeLists.txt
2671         of JavaScriptCore to avoid the usage of JAVASCRIPTCORE_DIR there too.
2672
2673         * CMakeLists.txt:
2674
2675 2013-04-16  Anders Carlsson  <andersca@apple.com>
2676
2677         Another Windows build fix attempt.
2678
2679         * runtime/JSGlobalData.h:
2680         (JSGlobalData):
2681
2682 2013-04-16  Anders Carlsson  <andersca@apple.com>
2683
2684         Try to fix the Windows build.
2685
2686         * runtime/JSGlobalData.h:
2687
2688 2013-04-16  Brent Fulgham  <bfulgham@webkit.org>
2689
2690         [Windows] Unreviewed VS2010 build correction.
2691
2692         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorCommon.props:
2693         Specify proper link library to avoid mixture of ICU 4.0 and 4.6
2694         symbols during link.
2695
2696 2013-04-15  Ryosuke Niwa  <rniwa@webkit.org>
2697
2698         Windows clean build fix after r148479.
2699
2700         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
2701         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
2702
2703 2013-04-15  Anders Carlsson  <andersca@apple.com>
2704
2705         ScriptWrappable subclasses shouldn't have to include WeakInlines.h
2706         https://bugs.webkit.org/show_bug.cgi?id=114641
2707
2708         Reviewed by Alexey Proskuryakov.
2709
2710         Move back the Weak constructor, destructor and clear() to Weak.h. Add a new weakClearSlowCase function
2711         and put it in Weak.cpp.
2712
2713         * CMakeLists.txt:
2714         * GNUmakefile.list.am:
2715         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2716         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
2717         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
2718         * JavaScriptCore.xcodeproj/project.pbxproj:
2719         * Target.pri:
2720         * heap/Weak.cpp: Added.
2721         * heap/Weak.h:
2722         * heap/WeakInlines.h:
2723         * heap/WeakSetInlines.h:
2724
2725 2013-04-15  Mark Hahnenberg  <mhahnenberg@apple.com>
2726
2727         HeapTimer lifetime should be less complicated
2728         https://bugs.webkit.org/show_bug.cgi?id=114529
2729
2730         Reviewed by Oliver Hunt.
2731
2732         Right now our HeapTimer lifetime is rather complicated. HeapTimers are "owned" by the JSGlobalData, 
2733         but there's an issue in that there can be races between a thread that is trying to tear down a JSGlobalData 
2734         and the HeapTimer's fire function. Our current code for tearing down HeapTimers is an intricate and delicate 
2735         dance which probably contains subtle bugs.
2736
2737         We can make our lives easier by changing things around a bit. 
2738
2739         1) We should free the API lock from being solely owned by the JSGlobalData so we don't have to worry about 
2740            grabbing the lock out of invalid memory when our HeapTimer callback fires. 
2741
2742         2) We should also make it so that we deref the JSGlobalData first, then unlock the API lock so that when we 
2743            have the lock, the JSGlobalData is in one of two states: fully valid or completely destroyed, and we know exactly which one. 
2744
2745         3) The JSLock can tell us this information by keeping a back pointer to the JSGlobalData. When the JSGlobalData's 
2746            destructor is called, it clears this pointer in the JSLock. Other clients of the API lock can then check 
2747            this pointer to determine whether or not the JSGlobalData is still around.
2748
2749         4) The CFRunLoopTimer will use the API lock as its context rather than the HeapTimer itself. The only way 
2750            the HeapTimer's callback can get to the HeapTimer is through the API lock's JSGlobalData pointer.
2751
2752         5) The CFRunLoopTimerContext struct has two fields for retain and release callbacks for the context's info field. 
2753            We'll provide these callbacks to ref() and deref() the JSLock as necessary. Thus, the timer becomes the other 
2754            owner of the JSLock apart from the JSGlobalData.
2755
2756         * API/APIShims.h: Remove the cruft that was required by the previous design, such as RefGlobalDataTag.
2757         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock):
2758         (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock):
2759         (APIEntryShimWithoutLock):
2760         (JSC::APIEntryShim::APIEntryShim):
2761         (JSC::APIEntryShim::~APIEntryShim): Protect the API lock with a RefPtr, deref the JSGlobalData, which could destroy it,
2762         then unlock the API lock. This ordering prevents others from obtaining the API lock while the JSGlobalData is in the 
2763         middle of being torn down.
2764         (JSC::APIEntryShim::init): We now take the lock, then ref the JSGlobalData, which is the opposite order of when we 
2765         tear down the shim.
2766         * heap/Heap.cpp:
2767         (JSC::Heap::setActivityCallback): Use PassOwnPtr now.
2768         (JSC::Heap::activityCallback): Ditto.
2769         (JSC::Heap::sweeper): Ditto.
2770         (JSC):
2771         * heap/Heap.h:
2772         (Heap):
2773         * heap/HeapTimer.cpp:
2774         (JSC::retainAPILock): Retain callback for CFRunLoopTimerContext struct.
2775         (JSC::releaseAPILock): Release callback for the CFRunLoopTimerContext struct.
2776         (JSC::HeapTimer::HeapTimer): Use the API lock as the context's info field rather than the HeapTimer.
2777         (JSC::HeapTimer::timerDidFire): Grab the API lock. Return early if the JSGlobalData has already been destroyed.
2778         Otherwise, figure out which kind of HeapTimer we are based on the CFRunLoopTimerRef passed to the callback and 
2779         call the HeapTimer's callback.
2780         * heap/HeapTimer.h:
2781         (HeapTimer):
2782         * heap/IncrementalSweeper.cpp:
2783         (JSC::IncrementalSweeper::create): PassOwnPtr all the things.
2784         * heap/IncrementalSweeper.h:
2785         (IncrementalSweeper):
2786         * jsc.cpp:
2787         (jscmain): We use an APIEntryShim instead of a RefPtr for the JSGlobalData because we need to 
2788         tear down the JSGlobalData while we still hold the lock, which the APIEntryShim handles correctly.
2789         * runtime/GCActivityCallback.h:
2790         (DefaultGCActivityCallback):
2791         (JSC::DefaultGCActivityCallback::create):
2792         * runtime/JSGlobalData.cpp:
2793         (JSC::JSGlobalData::JSGlobalData):
2794         (JSC::JSGlobalData::~JSGlobalData): Notify the API lock that the JSGlobalData is being torn down.
2795         * runtime/JSGlobalData.h:
2796         (JSGlobalData):
2797         (JSC::JSGlobalData::apiLock):
2798         * runtime/JSLock.cpp:
2799         (JSC::JSLockHolder::JSLockHolder): Ref, then lock (just like the API shim).
2800         (JSC):
2801         (JSC::JSLock::willDestroyGlobalData):
2802         (JSC::JSLockHolder::init):
2803         (JSC::JSLockHolder::~JSLockHolder): Protect, deref, then unlock (just like the API shim).
2804         (JSC::JSLock::JSLock):
2805         * runtime/JSLock.h: Add back pointer to the JSGlobalData and a callback for when the JSGlobalData is being
2806         torn down that clears this pointer to notify other clients (i.e. timer callbacks) that the JSGlobalData is no
2807         longer valid.
2808         (JSLockHolder):
2809         (JSLock):
2810         (JSC::JSLock::globalData):
2811         * testRegExp.cpp:
2812         (realMain): We use an APIEntryShim instead of a RefPtr for the JSGlobalData because we need to 
2813         tear down the JSGlobalData while we still hold the lock, which the APIEntryShim handles correctly.
2814
2815 2013-04-15  Julien Brianceau  <jbrianceau@nds.com>
2816
2817         LLInt SH4 backend implementation
2818         https://bugs.webkit.org/show_bug.cgi?id=112886
2819
2820         Reviewed by Oliver Hunt.
2821
2822         * dfg/DFGOperations.cpp:
2823         (JSC):
2824         * jit/JITStubs.cpp:
2825         * llint/LLIntOfflineAsmConfig.h:
2826         * llint/LowLevelInterpreter.asm:
2827         * llint/LowLevelInterpreter32_64.asm:
2828         * offlineasm/arm.rb:
2829         * offlineasm/ast.rb:
2830         * offlineasm/backends.rb:
2831         * offlineasm/instructions.rb:
2832         * offlineasm/mips.rb:
2833         * offlineasm/risc.rb:
2834         * offlineasm/sh4.rb: Added.
2835
2836 2013-04-15  Patrick Gansterer  <paroga@webkit.org>
2837
2838         [CMake] Add WTF_USE_*_UNICODE variables
2839         https://bugs.webkit.org/show_bug.cgi?id=114556
2840
2841         Reviewed by Brent Fulgham.
2842
2843         WTF_USE_ICU_UNICODE and WTF_USE_WCHAR_UNICODE are used to
2844         reduce duplication in the platform specific CMake files.
2845
2846         * CMakeLists.txt:
2847         * PlatformEfl.cmake:
2848
2849 2013-04-13  Patrick Gansterer  <paroga@webkit.org>
2850
2851         Add missing export macro to SymbolTableEntry::freeFatEntrySlow()
2852
2853         * runtime/SymbolTable.h:
2854         (SymbolTableEntry):
2855
2856 2013-04-12  Mark Hahnenberg  <mhahnenberg@apple.com>
2857
2858         Block freeing thread should call Region::destroy instead of delete
2859         https://bugs.webkit.org/show_bug.cgi?id=114544
2860
2861         Reviewed by Oliver Hunt.
2862
2863         Since Region doesn't have a virtual destructor, calling delete will not properly clean up all of 
2864         the state of the Region. We should call destroy() instead.
2865
2866         * heap/BlockAllocator.cpp:
2867         (JSC::BlockAllocator::releaseFreeRegions):
2868         (JSC::BlockAllocator::blockFreeingThreadMain):
2869
2870 2013-04-11  Benjamin Poulain  <bpoulain@apple.com>
2871
2872         Merge CharacterClassTable into CharacterClass
2873         https://bugs.webkit.org/show_bug.cgi?id=114409
2874
2875         Reviewed by Darin Adler.
2876
2877         CharacterClassTable is only a pointer and a boolean.
2878         It is a little overkill to make a separate allocation
2879         for that.
2880
2881         * create_regex_tables:
2882         * yarr/YarrJIT.cpp:
2883         (JSC::Yarr::YarrGenerator::matchCharacterClass):
2884         * yarr/YarrPattern.cpp:
2885         (JSC::Yarr::CharacterClassConstructor::charClass):
2886         * yarr/YarrPattern.h:
2887         (CharacterClass):
2888         (JSC::Yarr::CharacterClass::CharacterClass):
2889
2890 2013-04-11  Michael Saboff  <msaboff@apple.com>
2891
2892         Added UNLIKELY() suggested in https://bugs.webkit.org/show_bug.cgi?id=114366
2893         after checking in the original change. 
2894
2895         Rubber-stamped by Jessie Berlin.
2896
2897         * dfg/DFGOperations.cpp:
2898
2899 2013-04-10  Benjamin Poulain  <benjamin@webkit.org>
2900
2901         Unify JSC Parser's error and error message
2902         https://bugs.webkit.org/show_bug.cgi?id=114363
2903
2904         Reviewed by Geoffrey Garen.
2905
2906         The parser kept the error state over two attributes:
2907         error and errorMessage. They were changed in sync,
2908         but had some discrepancy (for example, the error message
2909         was always defined to something).
2910
2911         This patch unifies the two. There is an error if
2912         if the error message is non-null or if the parsing finished
2913         before the end.
2914
2915         This also gets rid of the allocation of the error message
2916         when instantiating a parser.
2917
2918         * parser/Parser.cpp:
2919         (JSC::::Parser):
2920         (JSC::::parseInner):
2921         (JSC::::parseSourceElements):
2922         (JSC::::parseVarDeclaration):
2923         (JSC::::parseConstDeclaration):
2924         (JSC::::parseForStatement):
2925         (JSC::::parseSwitchStatement):
2926         (JSC::::parsePrimaryExpression):
2927         * parser/Parser.h:
2928         (JSC::Parser::updateErrorMessage):
2929         (JSC::Parser::updateErrorWithNameAndMessage):
2930         (JSC::Parser::hasError):
2931         (Parser):
2932
2933 2013-04-10  Oliver Hunt  <oliver@apple.com>
2934
2935         Set trap is not being called for API objects
2936         https://bugs.webkit.org/show_bug.cgi?id=114403
2937
2938         Reviewed by Anders Carlsson.
2939
2940         Intercept putByIndex on the callback object and add tests
2941         to make sure we don't regress in future.
2942
2943         * API/JSCallbackObject.h:
2944         (JSCallbackObject):
2945         * API/JSCallbackObjectFunctions.h:
2946         (JSC::::putByIndex):
2947         (JSC):
2948         * API/tests/testapi.c:
2949         (PropertyCatchalls_setProperty):
2950         * API/tests/testapi.js:
2951
2952 2013-04-10  Benjamin Poulain  <bpoulain@apple.com>
2953
2954         Mass remove all the empty directories
2955
2956         Rubberstamped by Ryosuke Niwa.
2957
2958         * qt/api: Removed.
2959         * qt/benchmarks/qscriptengine: Removed.
2960         * qt/benchmarks/qscriptvalue: Removed.
2961         * qt/tests/qscriptengine: Removed.
2962         * qt/tests/qscriptstring: Removed.
2963         * qt/tests/qscriptvalue: Removed.
2964         * qt/tests/qscriptvalueiterator: Removed.
2965
2966 2013-04-10  Mark Hahnenberg  <mhahnenberg@apple.com>
2967
2968         JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots incorrectly
2969         https://bugs.webkit.org/show_bug.cgi?id=114235
2970
2971         Reviewed by Filip Pizlo.
2972
2973         If the object doesn't have any properties but the prototype does, we'll assume those prototype properties are 
2974         accessible in the base object's backing store, which is bad.
2975
2976         * runtime/JSObject.cpp:
2977         (JSC::JSObject::getPropertyNames):
2978         (JSC::JSObject::getOwnNonIndexPropertyNames):
2979         * runtime/PropertyNameArray.h:
2980         (JSC::PropertyNameArray::PropertyNameArray):
2981         (JSC::PropertyNameArray::setNumCacheableSlotsForObject):
2982         (JSC::PropertyNameArray::setBaseObject):
2983         (PropertyNameArray):
2984
2985 2013-04-10  Patrick Gansterer  <paroga@webkit.org>
2986
2987         Remove code duplicates from MacroAssemblerARM
2988         https://bugs.webkit.org/show_bug.cgi?id=104457
2989
2990         Reviewed by Oliver Hunt.
2991
2992         Reuse some existing methods to avoid duplicated code.
2993
2994         * assembler/MacroAssemblerARM.h:
2995         (JSC::MacroAssemblerARM::store8):
2996         (JSC::MacroAssemblerARM::store32):
2997         (JSC::MacroAssemblerARM::swap):
2998         (JSC::MacroAssemblerARM::add32):
2999         (JSC::MacroAssemblerARM::sub32):
3000
3001 2013-04-10  Michael Saboff  <msaboff@apple.com>
3002
3003         DFG: Negative size for new Array() interpreted as large unsigned int
3004         https://bugs.webkit.org/show_bug.cgi?id=114366
3005
3006         Reviewed by Oliver Hunt.
3007
3008         Added new check in operationNewArrayWithSize() for a negative
3009         size.  If size is negative throw a "RangeError: Array size is not a
3010         small enough positive integer" exception.
3011
3012         * dfg/DFGOperations.cpp:
3013
3014 2013-04-10  peavo@outlook.com  <peavo@outlook.com>
3015
3016         WinCairo build fails to link.
3017         https://bugs.webkit.org/show_bug.cgi?id=114358
3018
3019         Reviewed by Brent Fulgham.
3020
3021         Export the symbol WTF::MD5::checksum().
3022
3023         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
3024         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
3025
3026 2013-04-08  Anders Carlsson  <andersca@apple.com>
3027
3028         Remove unneeded headers from FrameLoader.h
3029         https://bugs.webkit.org/show_bug.cgi?id=114223
3030
3031         Reviewed by Geoffrey Garen.
3032
3033         Update for WTF changes.
3034
3035         * bytecode/SpeculatedType.h:
3036         * runtime/JSCJSValue.h:
3037
3038 2013-04-09  Geoffrey Garen  <ggaren@apple.com>
3039
3040         Removed bitrotted TimeoutChecker code
3041         https://bugs.webkit.org/show_bug.cgi?id=114336
3042
3043         Reviewed by Alexey Proskuryakov.
3044
3045         This mechanism hasn't worked for a while.
3046
3047         MarkL is working on a new version of this feature with a distinct
3048         implementation.
3049
3050         * API/APIShims.h:
3051         (JSC::APIEntryShim::~APIEntryShim):
3052         (JSC::APIEntryShim::init):
3053         * GNUmakefile.list.am:
3054         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3055         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
3056         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
3057         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
3058         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
3059         * JavaScriptCore.xcodeproj/project.pbxproj:
3060         * Target.pri:
3061         * dfg/DFGGPRInfo.h:
3062         * jit/JIT.cpp:
3063         * jit/JIT.h:
3064         * jit/JITStubs.cpp:
3065         * jit/JITStubs.h:
3066         * jit/JSInterfaceJIT.h:
3067         (JSInterfaceJIT):
3068         * runtime/JSGlobalData.cpp:
3069         (JSC::JSGlobalData::JSGlobalData):
3070         * runtime/JSGlobalData.h:
3071         * runtime/JSGlobalObject.cpp:
3072         * runtime/JSONObject.cpp:
3073         (JSC::Stringifier::appendStringifiedValue):
3074         (JSC::Walker::walk):
3075         * runtime/TimeoutChecker.cpp: Removed.
3076         * runtime/TimeoutChecker.h: Removed.
3077
3078 2013-04-10  Oliver Hunt  <oliver@apple.com>
3079
3080         REGRESSION (r148073): WebKit Nightly r148082 crashes on launch in JSObjectSetPrivate
3081         https://bugs.webkit.org/show_bug.cgi?id=114341
3082
3083         Reviewed by Alexey Proskuryakov.
3084
3085         Make JSObjectSetPrivate use uncheckedToJS as some clients
3086         clear their private data during finalization for some reason.
3087
3088         * API/JSObjectRef.cpp:
3089         (JSObjectSetPrivate):
3090
3091 2013-04-09  Oliver Hunt  <oliver@apple.com>
3092
3093         Add liveness tests to JSC API entry points
3094         https://bugs.webkit.org/show_bug.cgi?id=114318
3095
3096         Reviewed by Geoffrey Garen.
3097
3098         Add simple checks for the existence of a method table on any
3099         JSCells passed across the API.  This in turn forces a structure
3100         validity test.
3101
3102         * API/APICast.h:
3103         (toJS):
3104         (toJSForGC):
3105         (unsafeToJS):
3106         * API/JSObjectRef.cpp:
3107         (JSObjectGetPrivate):
3108
3109 2013-04-09  Oliver Hunt  <oliver@apple.com>
3110
3111         Rollout last patch as it destroyed everything
3112
3113         * API/APICast.h:
3114         (toJS):
3115         (toJSForGC):
3116
3117 2013-04-09  Oliver Hunt  <oliver@apple.com>
3118
3119         Add liveness tests to JSC API entry points
3120         https://bugs.webkit.org/show_bug.cgi?id=114318
3121
3122         Reviewed by Filip Pizlo.
3123
3124         Add simple checks for the existence of a method table on any
3125         JSCells passed across the API.  This in turn forces a structure
3126         validity test.
3127
3128         * API/APICast.h:
3129         (toJS):
3130         (toJSForGC):
3131
3132 2013-04-09  Balazs Kilvady  <kilvadyb@homejinni.com>
3133
3134         LLInt conditional branch compilation fault on MIPS.
3135         https://bugs.webkit.org/show_bug.cgi?id=114264
3136
3137         Reviewed by Filip Pizlo.
3138
3139         Fix conditional branch compilation in LLInt offlineasm.
3140
3141         * offlineasm/mips.rb:
3142
3143 2013-04-08  Mark Hahnenberg  <mhahnenberg@apple.com>
3144
3145         JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots incorrectly
3146         https://bugs.webkit.org/show_bug.cgi?id=114235
3147
3148         Reviewed by Geoffrey Garen.
3149
3150         Due to the way that numCacheableSlots is currently calculated, checking an object's prototype for enumerable 
3151         properties causes us not to cache any properties at all. We should only cache properties on the object itself
3152         since we currently don't take advantage of any sort of name caching for properties in the prototype chain.
3153         This fix undoes a ~2% SunSpider regression caused by http://trac.webkit.org/changeset/147570.
3154
3155         * runtime/JSObject.cpp:
3156         (JSC::JSObject::getOwnNonIndexPropertyNames):
3157
3158 2013-04-09  Ryosuke Niwa  <rniwa@webkit.org>
3159
3160         Remove yarr.gyp
3161         https://bugs.webkit.org/show_bug.cgi?id=114247
3162
3163         Reviewed by Benjamin Poulain.
3164
3165         * yarr/yarr.gyp: Removed.
3166
3167 2013-04-08  Ryosuke Niwa  <rniwa@webkit.org>
3168
3169         Remove JavaScriptCore.gyp/gypi
3170         https://bugs.webkit.org/show_bug.cgi?id=114238
3171
3172         Reviewed by Benjamin Poulain.
3173
3174         * JavaScriptCore.gyp: Removed.
3175         * JavaScriptCore.gyp/.gitignore: Removed.
3176         * JavaScriptCore.gypi: Removed.
3177
3178 2013-04-08  Vahag Vardanyan  <vaag@ispras.ru>
3179
3180         Adds fromCharCode intrinsic support.
3181         https://bugs.webkit.org/show_bug.cgi?id=104807
3182
3183         Reviewed by Oliver Hunt.
3184
3185         Switch to using fromCharCode intrinsic instead of call operation in some cases.
3186
3187         * dfg/DFGAbstractState.cpp:
3188         (JSC::DFG::AbstractState::executeEffects):
3189         * dfg/DFGByteCodeParser.cpp:
3190         (JSC::DFG::ByteCodeParser::handleIntrinsic):
3191         * dfg/DFGFixupPhase.cpp:
3192         (JSC::DFG::FixupPhase::fixupNode):
3193         * dfg/DFGNodeType.h:
3194         (DFG):
3195         * dfg/DFGOperations.cpp:
3196         * dfg/DFGOperations.h:
3197         * dfg/DFGPredictionPropagationPhase.cpp:
3198         (JSC::DFG::PredictionPropagationPhase::propagate):
3199         * dfg/DFGSpeculativeJIT.cpp:
3200         (JSC::DFG::SpeculativeJIT::compileFromCharCode):
3201         (DFG):
3202         * dfg/DFGSpeculativeJIT.h:
3203         (JSC::DFG::SpeculativeJIT::callOperation):
3204         (SpeculativeJIT):
3205         * dfg/DFGSpeculativeJIT32_64.cpp:
3206         (JSC::DFG::SpeculativeJIT::compile):
3207         * dfg/DFGSpeculativeJIT64.cpp:
3208         (JSC::DFG::SpeculativeJIT::compile):
3209         * runtime/StringConstructor.cpp:
3210         (JSC::stringFromCharCode):
3211         (JSC):
3212         * runtime/StringConstructor.h:
3213         (JSC):
3214
3215 2013-04-08  Benjamin Poulain  <benjamin@webkit.org>
3216
3217         Remove HTML Notification
3218         https://bugs.webkit.org/show_bug.cgi?id=114231
3219
3220         Reviewed by Ryosuke Niwa.
3221
3222         * Configurations/FeatureDefines.xcconfig:
3223
3224 2013-04-05  Roger Fong  <roger_fong@apple.com>
3225
3226         Build fix.
3227
3228         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
3229         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
3230
3231 2013-04-08  Filip Pizlo  <fpizlo@apple.com>
3232
3233         DFG should be able to inline string equality comparisons
3234         https://bugs.webkit.org/show_bug.cgi?id=114224
3235
3236         Reviewed by Oliver Hunt.
3237         
3238         Inline 8-bit string equality, go to slow path for 16-bit strings. 2x speed-up for string equality
3239         comparisons on 8-bit strings. 20-50% speed-up on JSRegress/HashMap tests. 30% speed-up on
3240         string-fasta. 2% speed-up on SunSpider overall. Some small speed-ups elsewhere.
3241
3242         This is a gnarly change but we have loads of test coverage already between the HashMap tests and
3243         preexisting DFG string equality tests (which appear to have been designed to test OSR exits, but
3244         also give us good overall coverage on string equality behavior).
3245
3246         * dfg/DFGFixupPhase.cpp:
3247         (JSC::DFG::FixupPhase::fixupNode):
3248         * dfg/DFGOperations.cpp:
3249         * dfg/DFGOperations.h:
3250         * dfg/DFGSpeculativeJIT.cpp:
3251         (JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
3252         (JSC::DFG::SpeculativeJIT::compare):
3253         (JSC::DFG::SpeculativeJIT::compileStrictEq):
3254         (JSC::DFG::SpeculativeJIT::compileStringEquality):
3255         (DFG):
3256         * dfg/DFGSpeculativeJIT.h:
3257         (SpeculativeJIT):
3258
3259 2013-04-08  Geoffrey Garen  <ggaren@apple.com>
3260
3261         Stop #include-ing all of JavaScriptCore in every DOM-related file
3262         https://bugs.webkit.org/show_bug.cgi?id=114220
3263
3264         Reviewed by Sam Weinig.
3265
3266         I separated WeakInlines.h from Weak.h so WebCore data types that need
3267         to declare a Weak<T> data member don't have to #include all of the
3268         infrastructure for accessing that data member.
3269
3270         This also required separating Weak<T> from PassWeak<T> by removing the
3271         WeakImplAccessor class template and pushing code down into its subclasses.
3272
3273         * API/JSWeakObjectMapRefPrivate.cpp:
3274         * JavaScriptCore.xcodeproj/project.pbxproj:
3275         * bytecode/UnlinkedCodeBlock.h:
3276         * heap/PassWeak.h:
3277         (JSC):
3278         (PassWeak):
3279         (JSC::::PassWeak):
3280         (JSC::::operator):
3281         (JSC::::get):
3282         * heap/SlotVisitorInlines.h:
3283         * heap/Weak.h:
3284         (JSC):
3285         (Weak):
3286         * heap/WeakInlines.h: Copied from Source/JavaScriptCore/heap/Weak.h.
3287         (JSC):
3288         (JSC::::Weak):
3289         (JSC::::operator):
3290         (JSC::::get):
3291         (JSC::::was):
3292         (JSC::weakClear):
3293         * jit/JITThunks.h:
3294         * runtime/RegExpCache.h:
3295         * runtime/Structure.h:
3296         * runtime/WeakGCMap.h:
3297
3298 2013-04-05  Roger Fong  <roger_fong@apple.com>
3299
3300         Windows build fix fix.
3301
3302         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
3303
3304 2013-04-05  Roger Fong  <roger_fong@apple.com>
3305
3306         Windows build fix.
3307
3308         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
3309         * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
3310
3311 2013-04-08  Oliver Hunt  <oliver@apple.com>
3312
3313         Make resolve more robust in the face of lookup misses
3314         https://bugs.webkit.org/show_bug.cgi?id=114211
3315
3316         Reviewed by Filip Pizlo.
3317
3318         This simply short circuits the resolve operations in the
3319         event that we don't find a path to a property.  There's no
3320         repro case for this happening unfortunately.
3321
3322         * llint/LLIntSlowPaths.cpp:
3323         (JSC::LLInt::LLINT_SLOW_PATH_DECL):
3324
3325 2013-04-08  Oliver Hunt  <oliver@apple.com>
3326
3327         Build fix.
3328
3329         * assembler/ARMv7Assembler.h:
3330         (ARMv7Assembler):
3331