tyop fix in jsc Changelog
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2008-11-24  Gavin Barraclough  <barraclough@apple.com>
2
3         Reviewed by Camron Zwarich.
4
5         Implement repatching for get by id chain.
6         Previously the access is performed in a function stub, in the repatch form
7         the trampoline is not called to; instead the hot path is relinked to jump
8         directly to the trampoline, if it fails it will jump to the slow case.
9
10         https://bugs.webkit.org/show_bug.cgi?id=22449
11         3% progression on deltablue.
12
13         * jit/JIT.cpp:
14         (JSC::JIT::privateCompileGetByIdProto):
15         (JSC::JIT::privateCompileGetByIdChain):
16
17 2008-11-24  Joerg Bornemann  <joerg.bornemann@trolltech.com>
18
19         Reviewed by Simon Hausmann.
20
21         https://bugs.webkit.org/show_bug.cgi?id=20746
22
23         Various small compilation fixes to make the Qt port of WebKit
24         compile on Windows CE.
25
26         * config.h: Don't set _CRT_RAND_S for CE, it's not available.
27         * jsc.cpp: Disabled use of debugger includes for CE. It
28           does not have the debugging functions.
29         * runtime/DateMath.cpp: Use localtime() on Windows CE.
30         * wtf/Assertions.cpp: Compile on Windows CE without debugger.
31         * wtf/Assertions.h: Include windows.h before defining ASSERT.
32         * wtf/MathExtras.h: Include stdlib.h instead of xmath.h.
33         * wtf/Platform.h: Disable ERRNO_H and detect endianess based
34           on the Qt endianess. On Qt for Windows CE the endianess is
35           defined by the vendor specific build spec.
36         * wtf/Threading.h: Use the volatile-less atomic functions.
37         * wtf/dtoa.cpp: Compile without errno.
38         * wtf/win/MainThreadWin.cpp: Don't include windows.h on CE after
39         Assertions.h due to the redefinition of ASSERT.
40
41 2008-11-22  Gavin Barraclough  <barraclough@apple.com>
42
43         Reviewed by Camron Zwarich.
44
45         Replace accidentally deleted immediate check from get by id chain trampoline.
46         https://bugs.webkit.org/show_bug.cgi?id=22413
47
48         * jit/JIT.cpp:
49         (JSC::JIT::privateCompileGetByIdChain):
50
51 2008-11-21  Gavin Barraclough  <barraclough@apple.com>
52
53         Reviewed by Oliver Hunt.
54
55         Add (really) polymorphic caching for get by id self.
56         Very similar to caching of prototype accesses, described below.
57
58         Oh, also, probably shouldn't have been leaking those structure list objects.
59         
60         4% preogression on deltablue.
61
62         * bytecode/CodeBlock.cpp:
63         (JSC::CodeBlock::dump):
64         (JSC::CodeBlock::derefStructures):
65         (JSC::PrototypeStructureList::derefStructures):
66         * bytecode/Instruction.h:
67         * bytecode/Opcode.h:
68         * interpreter/Interpreter.cpp:
69         (JSC::Interpreter::privateExecute):
70         (JSC::Interpreter::cti_op_get_by_id_self_fail):
71         * jit/JIT.cpp:
72         (JSC::JIT::privateCompileMainPass):
73         (JSC::JIT::privateCompileGetByIdSelfList):
74         (JSC::JIT::patchGetByIdSelf):
75         * jit/JIT.h:
76         (JSC::JIT::compileGetByIdSelfList):
77
78 2008-11-21  Geoffrey Garen  <ggaren@apple.com>
79
80         Reviewed by Sam Weinig.
81         
82         Fixed many crashes seen 'round the world (but only in release builds).
83         
84         Update outputParameter offset to reflect slight re-ordering of push
85         instructions in r38669.
86
87         * wrec/WRECGenerator.cpp:
88
89 2008-11-21  Geoffrey Garen  <ggaren@apple.com>
90
91         Reviewed by Sam Weinig.
92         
93         A little more RegExp refactoring.
94         
95         Deployed a helper function for reading the next character. Used the "link
96         vector of jumps" helper in a place I missed before.
97
98         * wrec/WRECGenerator.cpp:
99         (JSC::WREC::Generator::generateLoadCharacter):
100         (JSC::WREC::Generator::generatePatternCharacter):
101         (JSC::WREC::Generator::generateCharacterClass):
102         (JSC::WREC::Generator::generateAssertionEOL):
103         (JSC::WREC::Generator::generateAssertionWordBoundary):
104         * wrec/WRECGenerator.h:
105
106 2008-11-21  Alexey Proskuryakov  <ap@webkit.org>
107
108         Reviewed by Dan Bernstein.
109
110         https://bugs.webkit.org/show_bug.cgi?id=22402
111         Replace abort() with CRASH()
112
113         * wtf/Assertions.h: Added a different method to crash, which should work even is 0xbbadbeef
114         is a valid memory address.
115
116         * runtime/Collector.cpp:
117         * wtf/FastMalloc.cpp:
118         * wtf/FastMalloc.h:
119         * wtf/TCSpinLock.h:
120         Replace abort() with CRASH().
121
122 2008-11-21  Alexey Proskuryakov  <ap@webkit.org>
123
124         Reverted fix for bug 22042 (Replace abort() with CRASH()), because it was breaking
125         FOR_EACH_OPCODE_ID macro somehow, making Safari crash.
126
127         * runtime/Collector.cpp:
128         (JSC::Heap::heapAllocate):
129         (JSC::Heap::collect):
130         * wtf/Assertions.h:
131         * wtf/FastMalloc.cpp:
132         (WTF::fastMalloc):
133         (WTF::fastCalloc):
134         (WTF::fastRealloc):
135         (WTF::InitSizeClasses):
136         (WTF::PageHeapAllocator::New):
137         (WTF::TCMallocStats::do_malloc):
138         * wtf/FastMalloc.h:
139         * wtf/TCSpinLock.h:
140         (TCMalloc_SpinLock::Init):
141         (TCMalloc_SpinLock::Finalize):
142         (TCMalloc_SpinLock::Lock):
143         (TCMalloc_SpinLock::Unlock):
144
145 2008-11-21  Geoffrey Garen  <ggaren@apple.com>
146
147         Reviewed by Sam Weinig.
148         
149         A little more RegExp refactoring.
150         
151         Moved all assembly from WREC.cpp into WRECGenerator helper functions.
152         This should help with portability and readability.
153         
154         Removed ASSERTs after calls to executableCopy(), and changed
155         executableCopy() to ASSERT instead.
156
157         * assembler/X86Assembler.h:
158         (JSC::X86Assembler::executableCopy):
159         * jit/JIT.cpp:
160         (JSC::JIT::privateCompile):
161         (JSC::JIT::privateCompileGetByIdSelf):
162         (JSC::JIT::privateCompileGetByIdProto):
163         (JSC::JIT::privateCompileGetByIdChain):
164         (JSC::JIT::privateCompilePutByIdReplace):
165         (JSC::JIT::privateCompilePutByIdTransition):
166         (JSC::JIT::privateCompileCTIMachineTrampolines):
167         (JSC::JIT::privateCompilePatchGetArrayLength):
168         * wrec/WREC.cpp:
169         (JSC::WREC::compileRegExp):
170         * wrec/WRECGenerator.cpp:
171         (JSC::WREC::Generator::generateEnter):
172         (JSC::WREC::Generator::generateReturnSuccess):
173         (JSC::WREC::Generator::generateSaveIndex):
174         (JSC::WREC::Generator::generateIncrementIndex):
175         (JSC::WREC::Generator::generateLoopIfNotEndOfInput):
176         (JSC::WREC::Generator::generateReturnFailure):
177         * wrec/WRECGenerator.h:
178         * wrec/WRECParser.h:
179         (JSC::WREC::Parser::ignoreCase):
180         (JSC::WREC::Parser::generator):
181
182 2008-11-21  Alexey Proskuryakov  <ap@webkit.org>
183
184         Build fix.
185
186         * wtf/Assertions.h: Use ::abort for C++ code.
187
188 2008-11-21  Alexey Proskuryakov  <ap@webkit.org>
189
190         Reviewed by Sam Weinig.
191
192         https://bugs.webkit.org/show_bug.cgi?id=22402
193         Replace abort() with CRASH()
194
195         * wtf/Assertions.h: Added abort() after an attempt to crash for extra safety.
196
197         * runtime/Collector.cpp:
198         * wtf/FastMalloc.cpp:
199         * wtf/FastMalloc.h:
200         * wtf/TCSpinLock.h:
201         Replace abort() with CRASH().
202
203 2008-11-21  Geoffrey Garen  <ggaren@apple.com>
204
205         Reviewed by Sam Weinig.
206         
207         Renamed wrec => generator.
208
209         * wrec/WRECFunctors.cpp:
210         (JSC::WREC::GeneratePatternCharacterFunctor::generateAtom):
211         (JSC::WREC::GeneratePatternCharacterFunctor::backtrack):
212         (JSC::WREC::GenerateCharacterClassFunctor::generateAtom):
213         (JSC::WREC::GenerateCharacterClassFunctor::backtrack):
214         (JSC::WREC::GenerateBackreferenceFunctor::generateAtom):
215         (JSC::WREC::GenerateBackreferenceFunctor::backtrack):
216         (JSC::WREC::GenerateParenthesesNonGreedyFunctor::generateAtom):
217
218 2008-11-19  Gavin Barraclough  <barraclough@apple.com>
219
220         Reviewed by Darin Adler.
221
222         Add support for (really) polymorphic caching of prototype accesses.
223         
224         If a cached prototype access misses, cti_op_get_by_id_proto_list is called.
225         When this occurs the Structure pointers from the instruction stream are copied
226         off into a new ProtoStubInfo object.  A second prototype access trampoline is
227         generated, and chained onto the first.  Subsequent missed call to
228         cti_op_get_by_id_proto_list_append, which append futher new trampolines, up to
229         PROTOTYPE_LIST_CACHE_SIZE (currently 4).  If any of the misses result in an
230         access other than to a direct prototype property, list formation is halted (or
231         for the initial miss, does not take place at all).
232
233         Separate fail case functions are provided for each access since this contributes
234         to the performance progression (enables better processor branch prediction).
235
236         Overall this is a near 5% progression on v8, with around 10% wins on richards
237         and deltablue.
238
239         * bytecode/CodeBlock.cpp:
240         (JSC::CodeBlock::dump):
241         (JSC::CodeBlock::derefStructures):
242         * bytecode/Instruction.h:
243         (JSC::ProtoStructureList::ProtoStubInfo::set):
244         (JSC::ProtoStructureList::ProtoStructureList):
245         (JSC::Instruction::Instruction):
246         (JSC::Instruction::):
247         * bytecode/Opcode.h:
248         * interpreter/Interpreter.cpp:
249         (JSC::Interpreter::privateExecute):
250         (JSC::Interpreter::tryCTICacheGetByID):
251         (JSC::Interpreter::cti_op_put_by_id_fail):
252         (JSC::Interpreter::cti_op_get_by_id_self_fail):
253         (JSC::Interpreter::cti_op_get_by_id_proto_list):
254         (JSC::Interpreter::cti_op_get_by_id_proto_list_append):
255         (JSC::Interpreter::cti_op_get_by_id_proto_list_full):
256         (JSC::Interpreter::cti_op_get_by_id_proto_fail):
257         (JSC::Interpreter::cti_op_get_by_id_chain_fail):
258         (JSC::Interpreter::cti_op_get_by_id_array_fail):
259         (JSC::Interpreter::cti_op_get_by_id_string_fail):
260         * interpreter/Interpreter.h:
261         * jit/JIT.cpp:
262         (JSC::JIT::privateCompileMainPass):
263         (JSC::JIT::privateCompileGetByIdSelf):
264         (JSC::JIT::privateCompileGetByIdProto):
265         (JSC::JIT::privateCompileGetByIdProtoList):
266         (JSC::JIT::privateCompileGetByIdChain):
267         (JSC::JIT::privateCompileCTIMachineTrampolines):
268         (JSC::JIT::privateCompilePatchGetArrayLength):
269         * jit/JIT.h:
270         (JSC::JIT::compileGetByIdProtoList):
271
272 2008-11-20  Sam Weinig  <sam@webkit.org>
273
274         Try and fix the tiger build.
275
276         * parser/Grammar.y:
277
278 2008-11-20  Eric Seidel  <eric@webkit.org>
279
280         Reviewed by Darin Adler.
281
282         Make JavaScriptCore Chromium build under Windows (cmd only, cygwin almost works)
283         https://bugs.webkit.org/show_bug.cgi?id=22347
284
285         * JavaScriptCore.scons:
286         * parser/Parser.cpp: Add using std::auto_ptr since we use auto_ptr
287
288 2008-11-20  Steve Falkenburg  <sfalken@apple.com>
289
290         Fix build.
291         
292         Reviewed by Sam Weinig.
293
294         * parser/Parser.cpp:
295         (JSC::Parser::reparse):
296
297 2008-11-20  Geoffrey Garen  <ggaren@apple.com>
298
299         Reviewed by Sam Weinig.
300
301         A little more RegExp refactoring.
302         
303         Created a helper function in the assembler for linking a vector of
304         JmpSrc to a location, and deployed it in a bunch of places.
305
306         * JavaScriptCore.xcodeproj/project.pbxproj:
307         * assembler/X86Assembler.h:
308         (JSC::X86Assembler::link):
309         * wrec/WREC.cpp:
310         (JSC::WREC::compileRegExp):
311         * wrec/WRECGenerator.cpp:
312         (JSC::WREC::Generator::generateNonGreedyQuantifier):
313         (JSC::WREC::Generator::generateGreedyQuantifier):
314         (JSC::WREC::Generator::generateCharacterClassInverted):
315         (JSC::WREC::Generator::generateParentheses):
316         (JSC::WREC::Generator::generateParenthesesResetTrampoline):
317         (JSC::WREC::Generator::generateAssertionBOL):
318         (JSC::WREC::Generator::generateAssertionEOL):
319         (JSC::WREC::Generator::generateAssertionWordBoundary):
320         (JSC::WREC::Generator::terminateAlternative):
321         (JSC::WREC::Generator::terminateDisjunction):
322         * wrec/WRECParser.cpp:
323         * wrec/WRECParser.h:
324         (JSC::WREC::Parser::consumeHex):
325
326 2008-11-20  Sam Weinig  <sam@webkit.org>
327
328         Fix non-mac builds.
329
330         * parser/Lexer.cpp:
331         * parser/Parser.cpp:
332
333 2008-11-20  Sam Weinig  <sam@webkit.org>
334
335         Reviewed by Darin Adler.
336
337         Patch for https://bugs.webkit.org/show_bug.cgi?id=22385
338         <rdar://problem/6390179>
339         Lazily reparse FunctionBodyNodes on first execution.
340
341         - Saves 57MB on Membuster head.
342
343         * bytecompiler/BytecodeGenerator.cpp:
344         (JSC::BytecodeGenerator::generate): Remove vector shrinking since this is now
345         handled by destroying the ScopeNodeData after generation.
346
347         * parser/Grammar.y: Add alternate NoNode version of the grammar
348         that does not create nodes.  This is used to lazily create FunctionBodyNodes
349         on first execution.
350
351         * parser/Lexer.cpp:
352         (JSC::Lexer::setCode): Fix bug where on reparse, the Lexer was confused about
353         what position and length meant. Position is the current position in the original
354         data buffer (important for getting correct line/column information) and length
355         the end offset in the original buffer.
356         * parser/Lexer.h:
357         (JSC::Lexer::sourceCode): Positions are relative to the beginning of the buffer.
358
359         * parser/Nodes.cpp:
360         (JSC::ScopeNodeData::ScopeNodeData): Move initialization of ScopeNode data here.
361         (JSC::ScopeNode::ScopeNode): Add constructor that only sets the JSGlobalData
362         for FunctionBodyNode stubs.
363         (JSC::ScopeNode::~ScopeNode): Release m_children now that we don't inherit from
364         BlockNode.
365         (JSC::ScopeNode::releaseNodes): Ditto.
366         (JSC::EvalNode::generateBytecode): Only shrink m_children, as we need to keep around
367         the rest of the data.
368         (JSC::FunctionBodyNode::FunctionBodyNode): Add constructor that only sets the
369         JSGlobalData. 
370         (JSC::FunctionBodyNode::create): Ditto.
371         (JSC::FunctionBodyNode::generateBytecode): If we don't have the data, do a reparse
372         to construct it. Then after generation, destroy the data.
373         (JSC::ProgramNode::generateBytecode): After generation, destroy the AST data.
374         * parser/Nodes.h:
375         (JSC::ExpressionNode::): Add isFuncExprNode for FunctionConstructor.
376         (JSC::StatementNode::): Add isExprStatementNode for FunctionConstructor.
377         (JSC::ExprStatementNode::): Ditto.
378         (JSC::ExprStatementNode::expr): Add accessor for FunctionConstructor.
379         (JSC::FuncExprNode::): Add isFuncExprNode for FunctionConstructor
380
381         (JSC::ScopeNode::adoptData): Adopts a ScopeNodeData.
382         (JSC::ScopeNode::data): Accessor for ScopeNodeData.
383         (JSC::ScopeNode::destroyData): Deletes the ScopeNodeData.
384         (JSC::ScopeNode::setFeatures): Added.
385         (JSC::ScopeNode::varStack): Added assert.
386         (JSC::ScopeNode::functionStack): Ditto.
387         (JSC::ScopeNode::children): Ditto.
388         (JSC::ScopeNode::neededConstants): Ditto.
389         Factor m_varStack, m_functionStack, m_children and m_numConstants into ScopeNodeData.
390
391         * parser/Parser.cpp:
392         (JSC::Parser::reparse): Reparse the SourceCode in the FunctionBodyNode and set
393         set up the ScopeNodeData for it. 
394         * parser/Parser.h:
395
396         * parser/SourceCode.h:
397         (JSC::SourceCode::endOffset): Added for use in the lexer.
398
399         * runtime/FunctionConstructor.cpp:
400         (JSC::getFunctionBody): Assuming a ProgramNode with one FunctionExpression in it,
401         get the FunctionBodyNode.  Any issues signifies a parse failure in constructFunction. 
402         (JSC::constructFunction): Make parsing functions in the form new Function(""), easier
403         by concatenating the strings together (with some glue) and parsing the function expression
404         as a ProgramNode from which we can receive the FunctionBodyNode. This has the added benefit
405         of not having special parsing code for the arguments and lazily constructing the 
406         FunctionBodyNode's AST on first execution.
407
408         * runtime/Identifier.h:
409         (JSC::operator!=): Added.
410
411 2008-11-20  Sam Weinig  <sam@webkit.org>
412
413         Reviewed by Geoffrey Garen.
414
415         Speedup the lexer to offset coming re-parsing patch.
416
417         - .6% progression on Sunspider.
418
419         * bytecompiler/SegmentedVector.h:
420         (JSC::SegmentedVector::shrink): Fixed bug where m_size would not be
421         set when shrinking to 0.
422
423         * parser/Lexer.cpp:
424         (JSC::Lexer::Lexer):
425         (JSC::Lexer::isIdentStart): Use isASCIIAlpha and isASCII to avoid going into ICU in the common cases.
426         (JSC::Lexer::isIdentPart): Use isASCIIAlphanumeric and isASCII to avoid going into ICU in the common cases
427         (JSC::isDecimalDigit): Use version in ASCIICType.h. Inlining it was a regression.
428         (JSC::Lexer::isHexDigit): Ditto.
429         (JSC::Lexer::isOctalDigit): Ditto.
430         (JSC::Lexer::clear): Resize the m_identifiers SegmentedVector to initial
431         capacity
432         * parser/Lexer.h: Remove unused m_strings vector. Make m_identifiers
433         a SegmentedVector<Identifier> to avoid allocating a new Identifier* for
434         each identifier found.  The SegmentedVector is need so we can passes 
435         references to the Identifier to the parser, which remain valid even when
436         the vector is resized.
437         (JSC::Lexer::makeIdentifier): Inline and return a reference to the added
438         Identifier.
439
440 2008-11-20  Sam Weinig  <sam@webkit.org>
441
442         Reviewed by Darin Adler.
443
444         Add isASCII to ASCIICType.  Use coming soon!
445
446         * wtf/ASCIICType.h:
447         (WTF::isASCII):
448
449 2008-11-20  Sam Weinig  <sam@webkit.org>
450
451         Reviewed by Darin Adler.
452
453         Add OwnPtr constructor and OwnPtr::adopt that take an auto_ptr.
454
455         * wtf/OwnPtr.h:
456         (WTF::OwnPtr::OwnPtr):
457         (WTF::OwnPtr::adopt):
458
459 2008-11-20  Alexey Proskuryakov  <ap@webkit.org>
460
461         Reviewed by Darin Adler.
462
463         https://bugs.webkit.org/show_bug.cgi?id=22364
464         Crashes seen on Tiger buildbots due to worker threads exhausting pthread keys
465
466         * runtime/Collector.cpp:
467         (JSC::Heap::Heap):
468         (JSC::Heap::destroy):
469         (JSC::Heap::makeUsableFromMultipleThreads):
470         (JSC::Heap::registerThread):
471         * runtime/Collector.h:
472         Pthread key for tracking threads is only created on request now, because this is a limited
473         resource, and thread tracking is not needed for worker heaps, or for WebCore heap.
474
475         * API/JSContextRef.cpp: (JSGlobalContextCreateInGroup): Call makeUsableFromMultipleThreads().
476
477         * runtime/JSGlobalData.cpp: (JSC::JSGlobalData::sharedInstance): Ditto.
478
479         * runtime/JSGlobalData.h: (JSC::JSGlobalData::makeUsableFromMultipleThreads): Just forward
480         the call to Heap, which clients need not know about, ideally.
481
482 2008-11-20  Geoffrey Garen  <ggaren@apple.com>
483
484         Reviewed by Sam Weinig.
485         
486         A little more WREC refactoring.
487         
488         Removed the "Register" suffix from register names in WREC, and renamed:
489             currentPosition => index
490             currentValue => character
491             quantifierCount => repeatCount
492             
493         Added a top-level parsePattern function to the WREC parser, which
494         allowed me to remove the error() and atEndOfPattern() accessors.
495         
496         Factored out an MSVC customization into a constant.
497         
498         Renamed nextLabel => beginPattern.
499
500         * wrec/WREC.cpp:
501         (JSC::WREC::compileRegExp):
502         * wrec/WRECGenerator.cpp:
503         (JSC::WREC::Generator::generateBacktrack1):
504         (JSC::WREC::Generator::generateBacktrackBackreference):
505         (JSC::WREC::Generator::generateBackreferenceQuantifier):
506         (JSC::WREC::Generator::generateNonGreedyQuantifier):
507         (JSC::WREC::Generator::generateGreedyQuantifier):
508         (JSC::WREC::Generator::generatePatternCharacter):
509         (JSC::WREC::Generator::generateCharacterClassInvertedRange):
510         (JSC::WREC::Generator::generateCharacterClassInverted):
511         (JSC::WREC::Generator::generateCharacterClass):
512         (JSC::WREC::Generator::generateParentheses):
513         (JSC::WREC::Generator::generateParenthesesResetTrampoline):
514         (JSC::WREC::Generator::generateAssertionBOL):
515         (JSC::WREC::Generator::generateAssertionEOL):
516         (JSC::WREC::Generator::generateAssertionWordBoundary):
517         (JSC::WREC::Generator::generateBackreference):
518         (JSC::WREC::Generator::generateDisjunction):
519         (JSC::WREC::Generator::terminateDisjunction):
520         * wrec/WRECGenerator.h:
521         * wrec/WRECParser.h:
522         (JSC::WREC::Parser::parsePattern):
523
524 2008-11-19  Geoffrey Garen  <ggaren@apple.com>
525
526         Reviewed by Darin Adler.
527         
528         https://bugs.webkit.org/show_bug.cgi?id=22361
529         A little more RegExp refactoring.
530         
531         Consistently named variables holding the starting position at which
532         regexp matching should begin to "startOffset".
533         
534         A few more "regExpObject" => "regExpConstructor" changes.
535         
536         Refactored RegExpObject::match for clarity, and replaced a slow "get"
537         of the "global" property with a fast access to the global bit.
538         
539         Made the error message you see when RegExpObject::match has no input a
540         little more informative, as in Firefox.
541
542         * runtime/RegExp.cpp:
543         (JSC::RegExp::match):
544         * runtime/RegExp.h:
545         * runtime/RegExpObject.cpp:
546         (JSC::RegExpObject::match):
547         * runtime/StringPrototype.cpp:
548         (JSC::stringProtoFuncReplace):
549         (JSC::stringProtoFuncMatch):
550         (JSC::stringProtoFuncSearch):
551
552 2008-11-19  Geoffrey Garen  <ggaren@apple.com>
553
554         Reviewed by Sam Weinig.
555         
556         A little more refactoring.
557         
558         Removed the "emit" and "emitUnlinked" prefixes from the assembler.
559         
560         Moved the JmpSrc and JmpDst class definitions to the top of the X86
561         assembler class, in accordance with WebKit style guidelines.
562
563         * assembler/X86Assembler.h:
564         (JSC::X86Assembler::JmpSrc::JmpSrc):
565         (JSC::X86Assembler::JmpDst::JmpDst):
566         (JSC::X86Assembler::int3):
567         (JSC::X86Assembler::pushl_m):
568         (JSC::X86Assembler::popl_m):
569         (JSC::X86Assembler::movl_rr):
570         (JSC::X86Assembler::addl_rr):
571         (JSC::X86Assembler::addl_i8r):
572         (JSC::X86Assembler::addl_i8m):
573         (JSC::X86Assembler::addl_i32r):
574         (JSC::X86Assembler::addl_mr):
575         (JSC::X86Assembler::andl_rr):
576         (JSC::X86Assembler::andl_i32r):
577         (JSC::X86Assembler::cmpl_i8r):
578         (JSC::X86Assembler::cmpl_rr):
579         (JSC::X86Assembler::cmpl_rm):
580         (JSC::X86Assembler::cmpl_mr):
581         (JSC::X86Assembler::cmpl_i32r):
582         (JSC::X86Assembler::cmpl_i32m):
583         (JSC::X86Assembler::cmpl_i8m):
584         (JSC::X86Assembler::cmpw_rm):
585         (JSC::X86Assembler::orl_rr):
586         (JSC::X86Assembler::orl_mr):
587         (JSC::X86Assembler::orl_i32r):
588         (JSC::X86Assembler::subl_rr):
589         (JSC::X86Assembler::subl_i8r):
590         (JSC::X86Assembler::subl_i8m):
591         (JSC::X86Assembler::subl_i32r):
592         (JSC::X86Assembler::subl_mr):
593         (JSC::X86Assembler::testl_i32r):
594         (JSC::X86Assembler::testl_i32m):
595         (JSC::X86Assembler::testl_rr):
596         (JSC::X86Assembler::xorl_i8r):
597         (JSC::X86Assembler::xorl_rr):
598         (JSC::X86Assembler::sarl_i8r):
599         (JSC::X86Assembler::sarl_CLr):
600         (JSC::X86Assembler::shl_i8r):
601         (JSC::X86Assembler::shll_CLr):
602         (JSC::X86Assembler::imull_rr):
603         (JSC::X86Assembler::imull_i32r):
604         (JSC::X86Assembler::idivl_r):
605         (JSC::X86Assembler::negl_r):
606         (JSC::X86Assembler::movl_mr):
607         (JSC::X86Assembler::movzbl_rr):
608         (JSC::X86Assembler::movzwl_mr):
609         (JSC::X86Assembler::movl_rm):
610         (JSC::X86Assembler::movl_i32r):
611         (JSC::X86Assembler::movl_i32m):
612         (JSC::X86Assembler::leal_mr):
613         (JSC::X86Assembler::jmp_r):
614         (JSC::X86Assembler::jmp_m):
615         (JSC::X86Assembler::movsd_mr):
616         (JSC::X86Assembler::xorpd_mr):
617         (JSC::X86Assembler::movsd_rm):
618         (JSC::X86Assembler::movd_rr):
619         (JSC::X86Assembler::cvtsi2sd_rr):
620         (JSC::X86Assembler::cvttsd2si_rr):
621         (JSC::X86Assembler::addsd_mr):
622         (JSC::X86Assembler::subsd_mr):
623         (JSC::X86Assembler::mulsd_mr):
624         (JSC::X86Assembler::addsd_rr):
625         (JSC::X86Assembler::subsd_rr):
626         (JSC::X86Assembler::mulsd_rr):
627         (JSC::X86Assembler::ucomis_rr):
628         (JSC::X86Assembler::pextrw_irr):
629         (JSC::X86Assembler::call):
630         (JSC::X86Assembler::jmp):
631         (JSC::X86Assembler::jne):
632         (JSC::X86Assembler::jnz):
633         (JSC::X86Assembler::je):
634         (JSC::X86Assembler::jl):
635         (JSC::X86Assembler::jb):
636         (JSC::X86Assembler::jle):
637         (JSC::X86Assembler::jbe):
638         (JSC::X86Assembler::jge):
639         (JSC::X86Assembler::jg):
640         (JSC::X86Assembler::ja):
641         (JSC::X86Assembler::jae):
642         (JSC::X86Assembler::jo):
643         (JSC::X86Assembler::jp):
644         (JSC::X86Assembler::js):
645         (JSC::X86Assembler::predictNotTaken):
646         (JSC::X86Assembler::convertToFastCall):
647         (JSC::X86Assembler::restoreArgumentReference):
648         (JSC::X86Assembler::restoreArgumentReferenceForTrampoline):
649         (JSC::X86Assembler::modRm_rr):
650         (JSC::X86Assembler::modRm_rr_Unchecked):
651         (JSC::X86Assembler::modRm_rm):
652         (JSC::X86Assembler::modRm_rm_Unchecked):
653         (JSC::X86Assembler::modRm_rmsib):
654         (JSC::X86Assembler::modRm_opr):
655         (JSC::X86Assembler::modRm_opr_Unchecked):
656         (JSC::X86Assembler::modRm_opm):
657         (JSC::X86Assembler::modRm_opm_Unchecked):
658         (JSC::X86Assembler::modRm_opmsib):
659         * jit/JIT.cpp:
660         (JSC::JIT::emitNakedCall):
661         (JSC::JIT::emitNakedFastCall):
662         (JSC::JIT::emitCTICall):
663         (JSC::JIT::emitJumpSlowCaseIfNotJSCell):
664         (JSC::JIT::emitJumpSlowCaseIfNotImmNum):
665         (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
666         (JSC::JIT::emitFastArithIntToImmOrSlowCase):
667         (JSC::JIT::emitArithIntToImmWithJump):
668         (JSC::JIT::compileOpCall):
669         (JSC::JIT::compileOpStrictEq):
670         (JSC::JIT::emitSlowScriptCheck):
671         (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
672         (JSC::JIT::compileBinaryArithOp):
673         (JSC::JIT::privateCompileMainPass):
674         (JSC::JIT::privateCompileSlowCases):
675         (JSC::JIT::privateCompile):
676         (JSC::JIT::privateCompileGetByIdSelf):
677         (JSC::JIT::privateCompileGetByIdProto):
678         (JSC::JIT::privateCompileGetByIdChain):
679         (JSC::JIT::privateCompilePutByIdReplace):
680         (JSC::JIT::privateCompilePutByIdTransition):
681         (JSC::JIT::privateCompileCTIMachineTrampolines):
682         (JSC::JIT::privateCompilePatchGetArrayLength):
683         * wrec/WREC.cpp:
684         (JSC::WREC::compileRegExp):
685         * wrec/WRECGenerator.cpp:
686         (JSC::WREC::Generator::generateBackreferenceQuantifier):
687         (JSC::WREC::Generator::generateNonGreedyQuantifier):
688         (JSC::WREC::Generator::generateGreedyQuantifier):
689         (JSC::WREC::Generator::generatePatternCharacter):
690         (JSC::WREC::Generator::generateCharacterClassInvertedRange):
691         (JSC::WREC::Generator::generateCharacterClassInverted):
692         (JSC::WREC::Generator::generateCharacterClass):
693         (JSC::WREC::Generator::generateParentheses):
694         (JSC::WREC::Generator::generateParenthesesNonGreedy):
695         (JSC::WREC::Generator::generateParenthesesResetTrampoline):
696         (JSC::WREC::Generator::generateAssertionBOL):
697         (JSC::WREC::Generator::generateAssertionEOL):
698         (JSC::WREC::Generator::generateAssertionWordBoundary):
699         (JSC::WREC::Generator::generateBackreference):
700         (JSC::WREC::Generator::generateDisjunction):
701
702 2008-11-19  Simon Hausmann  <hausmann@webkit.org>
703
704         Sun CC build fix, removed trailing comman for last enum value.
705
706         * wtf/unicode/qt4/UnicodeQt4.h:
707         (WTF::Unicode::):
708
709 2008-11-19  Mark Rowe  <mrowe@apple.com>
710
711         Reviewed by Alexey Proskuryakov.
712
713         Expand the workaround for Apple GCC compiler bug <rdar://problem/6354696> to all versions of GCC 4.0.1.
714         It has been observed with builds 5465 (Xcode 3.0) and 5484 (Xcode 3.1), and there is no evidence
715         that it has been fixed in newer builds of GCC 4.0.1.
716
717         This addresses <https://bugs.webkit.org/show_bug.cgi?id=22351> (WebKit nightly crashes on launch on 10.4.11).
718
719         * wtf/StdLibExtras.h:
720
721 2008-11-18  Cameron Zwarich  <zwarich@apple.com>
722
723         Reviewed by Maciej Stachowiak and Geoff Garen.
724
725         Bug 22287: ASSERTION FAILED: Not enough jumps linked in slow case codegen in CTI::privateCompileSlowCases())
726         <https://bugs.webkit.org/show_bug.cgi?id=22287>
727
728         Fix a typo in the number cell reuse code where the first and second
729         operands are sometimes confused.
730
731         * jit/JIT.cpp:
732         (JSC::JIT::compileBinaryArithOpSlowCase):
733
734 2008-11-18  Dan Bernstein  <mitz@apple.com>
735
736         - try to fix the Windows build
737
738         * interpreter/Interpreter.cpp:
739         (JSC::Interpreter::privateExecute):
740
741 2008-11-18  Geoffrey Garen  <ggaren@apple.com>
742
743         Reviewed by Sam Weinig.
744         
745         Minor RegExp cleanup.
746         
747         SunSpider says no change.
748
749         * runtime/RegExpObject.cpp:
750         (JSC::RegExpObject::match): Renamed "regExpObj" to "regExpConstructor".
751
752         * wrec/WREC.cpp:
753         (JSC::WREC::compileRegExp): Instead of checking for a NULL output vector,
754         ASSERT that the output vector is not NULL. (The rest of WREC is not
755         safe to use with a NULL output vector, and we probably don't want to
756         spend the time and/or performance to make it safe.)
757
758 2008-11-18  Geoffrey Garen  <ggaren@apple.com>
759
760         Reviewed by Darin Adler.
761         
762         A little more renaming and refactoring.
763         
764         VM_CHECK_EXCEPTION() => CHECK_FOR_EXCEPTION().
765         NEXT_INSTRUCTION => NEXT_INSTRUCTION().
766
767         Removed the "Error_" and "TempError_" prefixes from WREC error types.
768
769         Refactored the WREC parser so it doesn't need a "setError" function,
770         and changed "isEndOfPattern" and its use -- they read kind of backwards
771         before.
772         
773         Changed our "TODO:" error messages at least to say something, since you
774         can't say "TODO:" in shipping software.
775
776         * interpreter/Interpreter.cpp:
777         (JSC::Interpreter::privateExecute):
778         (JSC::Interpreter::cti_op_convert_this):
779         (JSC::Interpreter::cti_op_add):
780         (JSC::Interpreter::cti_op_pre_inc):
781         (JSC::Interpreter::cti_op_loop_if_less):
782         (JSC::Interpreter::cti_op_loop_if_lesseq):
783         (JSC::Interpreter::cti_op_put_by_id):
784         (JSC::Interpreter::cti_op_put_by_id_second):
785         (JSC::Interpreter::cti_op_put_by_id_generic):
786         (JSC::Interpreter::cti_op_put_by_id_fail):
787         (JSC::Interpreter::cti_op_get_by_id):
788         (JSC::Interpreter::cti_op_get_by_id_second):
789         (JSC::Interpreter::cti_op_get_by_id_generic):
790         (JSC::Interpreter::cti_op_get_by_id_fail):
791         (JSC::Interpreter::cti_op_instanceof):
792         (JSC::Interpreter::cti_op_del_by_id):
793         (JSC::Interpreter::cti_op_mul):
794         (JSC::Interpreter::cti_op_call_NotJSFunction):
795         (JSC::Interpreter::cti_op_resolve):
796         (JSC::Interpreter::cti_op_construct_NotJSConstruct):
797         (JSC::Interpreter::cti_op_get_by_val):
798         (JSC::Interpreter::cti_op_resolve_func):
799         (JSC::Interpreter::cti_op_sub):
800         (JSC::Interpreter::cti_op_put_by_val):
801         (JSC::Interpreter::cti_op_put_by_val_array):
802         (JSC::Interpreter::cti_op_lesseq):
803         (JSC::Interpreter::cti_op_loop_if_true):
804         (JSC::Interpreter::cti_op_negate):
805         (JSC::Interpreter::cti_op_resolve_skip):
806         (JSC::Interpreter::cti_op_resolve_global):
807         (JSC::Interpreter::cti_op_div):
808         (JSC::Interpreter::cti_op_pre_dec):
809         (JSC::Interpreter::cti_op_jless):
810         (JSC::Interpreter::cti_op_not):
811         (JSC::Interpreter::cti_op_jtrue):
812         (JSC::Interpreter::cti_op_post_inc):
813         (JSC::Interpreter::cti_op_eq):
814         (JSC::Interpreter::cti_op_lshift):
815         (JSC::Interpreter::cti_op_bitand):
816         (JSC::Interpreter::cti_op_rshift):
817         (JSC::Interpreter::cti_op_bitnot):
818         (JSC::Interpreter::cti_op_resolve_with_base):
819         (JSC::Interpreter::cti_op_mod):
820         (JSC::Interpreter::cti_op_less):
821         (JSC::Interpreter::cti_op_neq):
822         (JSC::Interpreter::cti_op_post_dec):
823         (JSC::Interpreter::cti_op_urshift):
824         (JSC::Interpreter::cti_op_bitxor):
825         (JSC::Interpreter::cti_op_bitor):
826         (JSC::Interpreter::cti_op_push_scope):
827         (JSC::Interpreter::cti_op_to_jsnumber):
828         (JSC::Interpreter::cti_op_in):
829         (JSC::Interpreter::cti_op_del_by_val):
830         * wrec/WREC.cpp:
831         (JSC::WREC::compileRegExp):
832         * wrec/WRECParser.cpp:
833         (JSC::WREC::Parser::parseGreedyQuantifier):
834         (JSC::WREC::Parser::parseParentheses):
835         (JSC::WREC::Parser::parseCharacterClass):
836         (JSC::WREC::Parser::parseEscape):
837         * wrec/WRECParser.h:
838         (JSC::WREC::Parser::):
839         (JSC::WREC::Parser::atEndOfPattern):
840
841 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
842
843         Reviewed by Darin Adler.
844
845         https://bugs.webkit.org/show_bug.cgi?id=22337
846         Enable workers by default
847
848         * Configurations/JavaScriptCore.xcconfig: Define ENABLE_WORKERS.
849
850 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
851
852         - Windows build fix
853
854         * wrec/WRECFunctors.h:
855         * wrec/WRECGenerator.h:
856         * wrec/WRECParser.h:
857         CharacterClass is a struct, not a class, fix forward declarations.
858
859 2008-11-18  Dan Bernstein  <mitz@apple.com>
860
861         - Windows build fix
862
863         * assembler/X86Assembler.h:
864
865 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
866
867         Not reviewed.
868         
869         Try to fix gtk build.
870
871         * wrec/Quantifier.h:
872
873 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
874
875         Not reviewed.
876         
877         Try to fix gtk build.
878
879         * assembler/AssemblerBuffer.h:
880
881 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
882
883         Reviewed by Sam Weinig.
884         
885         Split WREC classes out into individual files, with a few modifications
886         to more closely match the WebKit coding style.
887
888         * GNUmakefile.am:
889         * JavaScriptCore.scons:
890         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
891         * JavaScriptCore.xcodeproj/project.pbxproj:
892         * assembler/X86Assembler.h:
893         * runtime/RegExp.cpp:
894         * wrec/CharacterClass.cpp: Copied from wrec/CharacterClassConstructor.cpp.
895         (JSC::WREC::CharacterClass::newline):
896         (JSC::WREC::CharacterClass::digits):
897         (JSC::WREC::CharacterClass::spaces):
898         (JSC::WREC::CharacterClass::wordchar):
899         (JSC::WREC::CharacterClass::nondigits):
900         (JSC::WREC::CharacterClass::nonspaces):
901         (JSC::WREC::CharacterClass::nonwordchar):
902         * wrec/CharacterClass.h: Copied from wrec/CharacterClassConstructor.h.
903         * wrec/CharacterClassConstructor.cpp:
904         (JSC::WREC::CharacterClassConstructor::addSortedRange):
905         (JSC::WREC::CharacterClassConstructor::append):
906         * wrec/CharacterClassConstructor.h:
907         * wrec/Quantifier.h: Copied from wrec/WREC.h.
908         * wrec/WREC.cpp:
909         (JSC::WREC::compileRegExp):
910         * wrec/WREC.h:
911         * wrec/WRECFunctors.cpp: Copied from wrec/WREC.cpp.
912         * wrec/WRECFunctors.h: Copied from wrec/WREC.cpp.
913         (JSC::WREC::GenerateAtomFunctor::~GenerateAtomFunctor):
914         (JSC::WREC::GeneratePatternCharacterFunctor::GeneratePatternCharacterFunctor):
915         (JSC::WREC::GenerateCharacterClassFunctor::GenerateCharacterClassFunctor):
916         (JSC::WREC::GenerateBackreferenceFunctor::GenerateBackreferenceFunctor):
917         (JSC::WREC::GenerateParenthesesNonGreedyFunctor::GenerateParenthesesNonGreedyFunctor):
918         * wrec/WRECGenerator.cpp: Copied from wrec/WREC.cpp.
919         (JSC::WREC::Generator::generatePatternCharacter):
920         (JSC::WREC::Generator::generateCharacterClassInvertedRange):
921         (JSC::WREC::Generator::generateCharacterClassInverted):
922         (JSC::WREC::Generator::generateCharacterClass):
923         (JSC::WREC::Generator::generateParentheses):
924         (JSC::WREC::Generator::generateAssertionBOL):
925         (JSC::WREC::Generator::generateAssertionEOL):
926         (JSC::WREC::Generator::generateAssertionWordBoundary):
927         * wrec/WRECGenerator.h: Copied from wrec/WREC.h.
928         * wrec/WRECParser.cpp: Copied from wrec/WREC.cpp.
929         (JSC::WREC::Parser::parseGreedyQuantifier):
930         (JSC::WREC::Parser::parseCharacterClassQuantifier):
931         (JSC::WREC::Parser::parseParentheses):
932         (JSC::WREC::Parser::parseCharacterClass):
933         (JSC::WREC::Parser::parseEscape):
934         (JSC::WREC::Parser::parseTerm):
935         * wrec/WRECParser.h: Copied from wrec/WREC.h.
936         (JSC::WREC::Parser::):
937         (JSC::WREC::Parser::Parser):
938         (JSC::WREC::Parser::setError):
939         (JSC::WREC::Parser::error):
940         (JSC::WREC::Parser::recordSubpattern):
941         (JSC::WREC::Parser::numSubpatterns):
942         (JSC::WREC::Parser::ignoreCase):
943         (JSC::WREC::Parser::multiline):
944
945 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
946
947         Not reviewed.
948         
949         Try to fix a few builds.
950
951         * JavaScriptCoreSources.bkl:
952
953 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
954
955         Not reviewed.
956         
957         Try to fix a few builds.
958
959         * JavaScriptCore.pri:
960         * JavaScriptCore.scons:
961         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
962
963 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
964
965         Reviewed by Sam Weinig.
966         
967         Moved VM/CTI.* => jit/JIT.*.
968         
969         Removed VM.
970
971         * GNUmakefile.am:
972         * JavaScriptCore.pri:
973         * JavaScriptCore.scons:
974         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
975         * JavaScriptCore.xcodeproj/project.pbxproj:
976         * VM/CTI.cpp: Removed.
977         * VM/CTI.h: Removed.
978         * bytecode/CodeBlock.cpp:
979         * interpreter/Interpreter.cpp:
980         * jit: Added.
981         * jit/JIT.cpp: Copied from VM/CTI.cpp.
982         * jit/JIT.h: Copied from VM/CTI.h.
983         * runtime/RegExp.cpp:
984
985 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
986
987         Reviewed by Sam Weinig.
988         
989         Moved runtime/ExecState.* => interpreter/CallFrame.*.
990
991         * API/JSBase.cpp:
992         * API/OpaqueJSString.cpp:
993         * GNUmakefile.am:
994         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
995         * JavaScriptCore.xcodeproj/project.pbxproj:
996         * debugger/DebuggerCallFrame.h:
997         * interpreter/CallFrame.cpp: Copied from runtime/ExecState.cpp.
998         * interpreter/CallFrame.h: Copied from runtime/ExecState.h.
999         * interpreter/Interpreter.cpp:
1000         * parser/Nodes.cpp:
1001         * profiler/ProfileGenerator.cpp:
1002         * profiler/Profiler.cpp:
1003         * runtime/ClassInfo.h:
1004         * runtime/Collector.cpp:
1005         * runtime/Completion.cpp:
1006         * runtime/ExceptionHelpers.cpp:
1007         * runtime/ExecState.cpp: Removed.
1008         * runtime/ExecState.h: Removed.
1009         * runtime/Identifier.cpp:
1010         * runtime/JSFunction.cpp:
1011         * runtime/JSGlobalObjectFunctions.cpp:
1012         * runtime/JSLock.cpp:
1013         * runtime/JSNumberCell.h:
1014         * runtime/JSObject.h:
1015         * runtime/JSString.h:
1016         * runtime/Lookup.h:
1017         * runtime/PropertyNameArray.h:
1018
1019 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1020
1021         Not reviewed.
1022         
1023         Try to fix Windows build.
1024
1025         * API/APICast.h:
1026
1027 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1028
1029         Not reviewed.
1030         
1031         Try to fix Windows build.
1032
1033         * API/APICast.h:
1034         * runtime/ExecState.h:
1035
1036 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1037
1038         Reviewed by Sam Weinig.
1039         
1040         Moved VM/SamplingTool.* => bytecode/SamplingTool.*.
1041
1042         * GNUmakefile.am:
1043         * JavaScriptCore.pri:
1044         * JavaScriptCore.scons:
1045         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1046         * JavaScriptCore.xcodeproj/project.pbxproj:
1047         * JavaScriptCoreSources.bkl:
1048         * VM/SamplingTool.cpp: Removed.
1049         * VM/SamplingTool.h: Removed.
1050         * bytecode/SamplingTool.cpp: Copied from VM/SamplingTool.cpp.
1051         * bytecode/SamplingTool.h: Copied from VM/SamplingTool.h.
1052         * jsc.cpp:
1053         (runWithScripts):
1054
1055 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1056
1057         Not reviewed.
1058         
1059         Try to fix Windows build.
1060
1061         * runtime/ExecState.h:
1062
1063 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1064
1065         Reviewed by Sam Weinig.
1066         
1067         Moved VM/ExceptionHelpers.cpp => runtime/ExceptionHelpers.cpp.
1068
1069         * GNUmakefile.am:
1070         * JavaScriptCore.pri:
1071         * JavaScriptCore.scons:
1072         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1073         * JavaScriptCore.xcodeproj/project.pbxproj:
1074         * JavaScriptCoreSources.bkl:
1075         * VM/ExceptionHelpers.cpp: Removed.
1076         * runtime/ExceptionHelpers.cpp: Copied from VM/ExceptionHelpers.cpp.
1077
1078 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1079
1080         Reviewed by Sam Weinig.
1081         
1082         Moved VM/RegisterFile.cpp => interpreter/RegisterFile.cpp.
1083
1084         * AllInOneFile.cpp:
1085         * GNUmakefile.am:
1086         * JavaScriptCore.pri:
1087         * JavaScriptCore.scons:
1088         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1089         * JavaScriptCore.xcodeproj/project.pbxproj:
1090         * JavaScriptCoreSources.bkl:
1091         * VM/RegisterFile.cpp: Removed.
1092         * interpreter/RegisterFile.cpp: Copied from VM/RegisterFile.cpp.
1093
1094 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1095
1096         Not reviewed.
1097         
1098         Try to fix Windows build.
1099
1100         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1101
1102 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1103
1104         Not reviewed.
1105         
1106         Try to fix Windows build.
1107
1108         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
1109
1110 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1111
1112         Not reviewed.
1113         
1114         Try to fix Windows build.
1115
1116         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1117
1118 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1119
1120         Reviewed by Sam Weinig.
1121         
1122         Moved:
1123             VM/ExceptionHelpers.h => runtime/ExceptionHelpers.h
1124             VM/Register.h => interpreter/Register.h
1125             VM/RegisterFile.h => interpreter/RegisterFile.h
1126         
1127         
1128         * GNUmakefile.am:
1129         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1130         * JavaScriptCore.xcodeproj/project.pbxproj:
1131         * VM/ExceptionHelpers.h: Removed.
1132         * VM/Register.h: Removed.
1133         * VM/RegisterFile.h: Removed.
1134         * interpreter/Register.h: Copied from VM/Register.h.
1135         * interpreter/RegisterFile.h: Copied from VM/RegisterFile.h.
1136         * runtime/ExceptionHelpers.h: Copied from VM/ExceptionHelpers.h.
1137
1138 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1139
1140         Not reviewed.
1141         
1142         Try to fix Qt build.
1143
1144         * JavaScriptCore.pri:
1145
1146 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1147
1148         Reviewed by Sam Weinig.
1149         
1150         Moved VM/Machine.cpp => interpreter/Interpreter.cpp.
1151
1152         * DerivedSources.make:
1153         * GNUmakefile.am:
1154         * JavaScriptCore.pri:
1155         * JavaScriptCore.scons:
1156         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1157         * JavaScriptCore.xcodeproj/project.pbxproj:
1158         * JavaScriptCoreSources.bkl:
1159         * VM/Machine.cpp: Removed.
1160         * interpreter/Interpreter.cpp: Copied from VM/Machine.cpp.
1161
1162 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1163
1164         Reviewed by Sam Weinig.
1165         
1166         Moved VM/Machine.h => interpreter/Interpreter.h
1167
1168         * GNUmakefile.am:
1169         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1170         * JavaScriptCore.xcodeproj/project.pbxproj:
1171         * VM/CTI.cpp:
1172         * VM/CTI.h:
1173         * VM/ExceptionHelpers.cpp:
1174         * VM/Machine.cpp:
1175         * VM/Machine.h: Removed.
1176         * VM/SamplingTool.cpp:
1177         * bytecode/CodeBlock.cpp:
1178         * bytecompiler/BytecodeGenerator.cpp:
1179         * bytecompiler/BytecodeGenerator.h:
1180         * debugger/DebuggerCallFrame.cpp:
1181         * interpreter: Added.
1182         * interpreter/Interpreter.h: Copied from VM/Machine.h.
1183         * profiler/ProfileGenerator.cpp:
1184         * runtime/Arguments.h:
1185         * runtime/ArrayPrototype.cpp:
1186         * runtime/Collector.cpp:
1187         * runtime/Completion.cpp:
1188         * runtime/ExecState.h:
1189         * runtime/FunctionPrototype.cpp:
1190         * runtime/JSActivation.cpp:
1191         * runtime/JSFunction.cpp:
1192         * runtime/JSGlobalData.cpp:
1193         * runtime/JSGlobalObject.cpp:
1194         * runtime/JSGlobalObjectFunctions.cpp:
1195         * wrec/WREC.cpp:
1196
1197 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1198
1199         Reviewed by Sam Weinig.
1200         
1201         Moved runtime/Interpreter.cpp => runtime/Completion.cpp.
1202
1203         Moved functions from Interpreter.h to Completion.h, and removed
1204         Interpreter.h from the project.
1205
1206         * API/JSBase.cpp:
1207         * AllInOneFile.cpp:
1208         * GNUmakefile.am:
1209         * JavaScriptCore.pri:
1210         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1211         * JavaScriptCore.xcodeproj/project.pbxproj:
1212         * JavaScriptCoreSources.bkl:
1213         * jsc.cpp:
1214         * runtime/Completion.cpp: Copied from runtime/Interpreter.cpp.
1215         * runtime/Completion.h:
1216         * runtime/Interpreter.cpp: Removed.
1217         * runtime/Interpreter.h: Removed.
1218
1219 2008-11-17  Gabor Loki  <loki@inf.u-szeged.hu>
1220
1221         Reviewed by Darin Adler.
1222
1223         <https://bugs.webkit.org/show_bug.cgi?id=22312>
1224         Fix PCRE include path problem on Qt-port
1225
1226         * JavaScriptCore.pri:
1227         * pcre/pcre.pri:
1228
1229 2008-11-17  Gabor Loki  <loki@inf.u-szeged.hu>
1230
1231         Reviewed by Darin Adler.
1232
1233         <https://bugs.webkit.org/show_bug.cgi?id=22313>
1234         Add missing CTI source to the build system on Qt-port
1235
1236         * JavaScriptCore.pri:
1237
1238 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1239
1240         Not reviewed.
1241         
1242         Try to fix JSGlue build.
1243
1244         * JavaScriptCore.xcodeproj/project.pbxproj:
1245
1246 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1247
1248         Not reviewed.
1249         
1250         Try to fix Qt build.
1251
1252         * jsc.pro:
1253
1254 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1255
1256         Not reviewed.
1257         
1258         Try to fix Qt build.
1259
1260         * JavaScriptCore.pri:
1261
1262 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1263
1264         Not reviewed.
1265         
1266         Try to fix Qt build.
1267
1268         * JavaScriptCore.pri:
1269
1270 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1271
1272         Reviewed by Sam Weinig.
1273         
1274         More file moves:
1275         
1276         VM/CodeBlock.* => bytecode/CodeBlock.*
1277         VM/EvalCodeCache.h => bytecode/EvalCodeCache.h
1278         VM/Instruction.h => bytecode/Instruction.h
1279         VM/Opcode.* => bytecode/Opcode.*
1280
1281         * GNUmakefile.am:
1282         * JavaScriptCore.scons:
1283         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1284         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
1285         * JavaScriptCore.xcodeproj/project.pbxproj:
1286         * JavaScriptCoreSources.bkl:
1287         * VM/CodeBlock.cpp: Removed.
1288         * VM/CodeBlock.h: Removed.
1289         * VM/EvalCodeCache.h: Removed.
1290         * VM/Instruction.h: Removed.
1291         * VM/Opcode.cpp: Removed.
1292         * VM/Opcode.h: Removed.
1293         * bytecode: Added.
1294         * bytecode/CodeBlock.cpp: Copied from VM/CodeBlock.cpp.
1295         * bytecode/CodeBlock.h: Copied from VM/CodeBlock.h.
1296         * bytecode/EvalCodeCache.h: Copied from VM/EvalCodeCache.h.
1297         * bytecode/Instruction.h: Copied from VM/Instruction.h.
1298         * bytecode/Opcode.cpp: Copied from VM/Opcode.cpp.
1299         * bytecode/Opcode.h: Copied from VM/Opcode.h.
1300         * jsc.pro:
1301         * jscore.bkl:
1302
1303 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1304
1305         Not reviewed.
1306         
1307         Try to fix a few more builds.
1308
1309         * GNUmakefile.am:
1310         * JavaScriptCore.pri:
1311         * JavaScriptCore.scons:
1312         * JavaScriptCoreSources.bkl:
1313
1314 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1315
1316         Not reviewed.
1317         
1318         Try to fix gtk build.
1319
1320         * GNUmakefile.am:
1321
1322 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1323
1324         Not reviewed.
1325         
1326         Try to fix Windows build.
1327
1328         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1329
1330 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1331
1332         Reviewed by Sam Weinig.
1333         
1334         Some file moves:
1335         
1336         VM/LabelID.h => bytecompiler/Label.h
1337         VM/RegisterID.h => bytecompiler/RegisterID.h
1338         VM/SegmentedVector.h => bytecompiler/SegmentedVector.h
1339         bytecompiler/CodeGenerator.* => bytecompiler/BytecodeGenerator.*
1340
1341         * AllInOneFile.cpp:
1342         * JavaScriptCore.xcodeproj/project.pbxproj:
1343         * VM/LabelID.h: Removed.
1344         * VM/RegisterID.h: Removed.
1345         * VM/SegmentedVector.h: Removed.
1346         * bytecompiler/BytecodeGenerator.cpp: Copied from bytecompiler/CodeGenerator.cpp.
1347         * bytecompiler/BytecodeGenerator.h: Copied from bytecompiler/CodeGenerator.h.
1348         * bytecompiler/CodeGenerator.cpp: Removed.
1349         * bytecompiler/CodeGenerator.h: Removed.
1350         * bytecompiler/Label.h: Copied from VM/LabelID.h.
1351         * bytecompiler/LabelScope.h:
1352         * bytecompiler/RegisterID.h: Copied from VM/RegisterID.h.
1353         * bytecompiler/SegmentedVector.h: Copied from VM/SegmentedVector.h.
1354         * jsc.cpp:
1355         * parser/Nodes.cpp:
1356
1357 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1358
1359         Not reviewed.
1360         
1361         Try to fix Windows build.
1362
1363         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1364
1365 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1366
1367         Not reviewed.
1368         
1369         Try to fix Windows build.
1370
1371         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1372
1373 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
1374
1375         Not reviewed.
1376         
1377         Try to fix Windows build.
1378
1379         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1380
1381 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1382
1383         Not reviewed.
1384         
1385         Try to fix Windows build.
1386
1387         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
1388
1389 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1390
1391         Not reviewed.
1392         
1393         Try to fix Windows build.
1394
1395         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1396
1397 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1398
1399         Reviewed by Sam Weinig.
1400         
1401         Moved masm => assembler and split "AssemblerBuffer.h" out of "X86Assembler.h".
1402         
1403         Also renamed ENABLE_MASM to ENABLE_ASSEMBLER.
1404
1405         * GNUmakefile.am:
1406         * JavaScriptCore.xcodeproj/project.pbxproj:
1407         * assembler: Added.
1408         * assembler/AssemblerBuffer.h: Copied from masm/X86Assembler.h.
1409         (JSC::AssemblerBuffer::AssemblerBuffer):
1410         (JSC::AssemblerBuffer::~AssemblerBuffer):
1411         (JSC::AssemblerBuffer::ensureSpace):
1412         (JSC::AssemblerBuffer::isAligned):
1413         (JSC::AssemblerBuffer::putByteUnchecked):
1414         (JSC::AssemblerBuffer::putByte):
1415         (JSC::AssemblerBuffer::putShortUnchecked):
1416         (JSC::AssemblerBuffer::putShort):
1417         (JSC::AssemblerBuffer::putIntUnchecked):
1418         (JSC::AssemblerBuffer::putInt):
1419         (JSC::AssemblerBuffer::data):
1420         (JSC::AssemblerBuffer::size):
1421         (JSC::AssemblerBuffer::reset):
1422         (JSC::AssemblerBuffer::executableCopy):
1423         (JSC::AssemblerBuffer::grow):
1424         * assembler/X86Assembler.h: Copied from masm/X86Assembler.h.
1425         * masm: Removed.
1426         * masm/X86Assembler.h: Removed.
1427         * wtf/Platform.h:
1428
1429 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1430
1431         Not reviewed.
1432         
1433         Try to fix gtk build.
1434
1435         * GNUmakefile.am:
1436
1437 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1438
1439         Not reviewed.
1440         
1441         Fixed tyop.
1442
1443         * VM/CTI.cpp:
1444
1445 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1446
1447         Not reviewed.
1448         
1449         Try to fix windows build.
1450
1451         * VM/CTI.cpp:
1452
1453 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1454
1455         Not reviewed.
1456         
1457         Try to fix gtk build.
1458
1459         * GNUmakefile.am:
1460
1461 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1462
1463         Reviewed by Sam Weinig.
1464
1465         Renamed ENABLE_CTI and ENABLE(CTI) to ENABLE_JIT and ENABLE(JIT).
1466
1467         * VM/CTI.cpp:
1468         * VM/CTI.h:
1469         * VM/CodeBlock.cpp:
1470         (JSC::CodeBlock::~CodeBlock):
1471         * VM/CodeBlock.h:
1472         (JSC::CodeBlock::CodeBlock):
1473         * VM/Machine.cpp:
1474         (JSC::Interpreter::Interpreter):
1475         (JSC::Interpreter::initialize):
1476         (JSC::Interpreter::~Interpreter):
1477         (JSC::Interpreter::execute):
1478         (JSC::Interpreter::privateExecute):
1479         * VM/Machine.h:
1480         * bytecompiler/CodeGenerator.cpp:
1481         (JSC::prepareJumpTableForStringSwitch):
1482         * runtime/JSFunction.cpp:
1483         (JSC::JSFunction::~JSFunction):
1484         * runtime/JSGlobalData.h:
1485         * wrec/WREC.h:
1486         * wtf/Platform.h:
1487         * wtf/TCSystemAlloc.cpp:
1488
1489 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1490
1491         Not reviewed.
1492         
1493         Try to fix gtk build.
1494
1495         * VM/CTI.cpp:
1496
1497 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1498
1499         Reviewed by a few people on squirrelfish-dev.
1500         
1501         Renamed CTI => JIT.
1502
1503         * VM/CTI.cpp:
1504         (JSC::JIT::killLastResultRegister):
1505         (JSC::JIT::emitGetVirtualRegister):
1506         (JSC::JIT::emitGetVirtualRegisters):
1507         (JSC::JIT::emitPutCTIArgFromVirtualRegister):
1508         (JSC::JIT::emitPutCTIArg):
1509         (JSC::JIT::emitGetCTIArg):
1510         (JSC::JIT::emitPutCTIArgConstant):
1511         (JSC::JIT::getConstantImmediateNumericArg):
1512         (JSC::JIT::emitPutCTIParam):
1513         (JSC::JIT::emitGetCTIParam):
1514         (JSC::JIT::emitPutToCallFrameHeader):
1515         (JSC::JIT::emitGetFromCallFrameHeader):
1516         (JSC::JIT::emitPutVirtualRegister):
1517         (JSC::JIT::emitInitRegister):
1518         (JSC::JIT::printBytecodeOperandTypes):
1519         (JSC::JIT::emitAllocateNumber):
1520         (JSC::JIT::emitNakedCall):
1521         (JSC::JIT::emitNakedFastCall):
1522         (JSC::JIT::emitCTICall):
1523         (JSC::JIT::emitJumpSlowCaseIfNotJSCell):
1524         (JSC::JIT::linkSlowCaseIfNotJSCell):
1525         (JSC::JIT::emitJumpSlowCaseIfNotImmNum):
1526         (JSC::JIT::emitJumpSlowCaseIfNotImmNums):
1527         (JSC::JIT::getDeTaggedConstantImmediate):
1528         (JSC::JIT::emitFastArithDeTagImmediate):
1529         (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
1530         (JSC::JIT::emitFastArithReTagImmediate):
1531         (JSC::JIT::emitFastArithPotentiallyReTagImmediate):
1532         (JSC::JIT::emitFastArithImmToInt):
1533         (JSC::JIT::emitFastArithIntToImmOrSlowCase):
1534         (JSC::JIT::emitFastArithIntToImmNoCheck):
1535         (JSC::JIT::emitArithIntToImmWithJump):
1536         (JSC::JIT::emitTagAsBoolImmediate):
1537         (JSC::JIT::JIT):
1538         (JSC::JIT::compileOpCallInitializeCallFrame):
1539         (JSC::JIT::compileOpCallSetupArgs):
1540         (JSC::JIT::compileOpCallEvalSetupArgs):
1541         (JSC::JIT::compileOpConstructSetupArgs):
1542         (JSC::JIT::compileOpCall):
1543         (JSC::JIT::compileOpStrictEq):
1544         (JSC::JIT::emitSlowScriptCheck):
1545         (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
1546         (JSC::JIT::compileBinaryArithOp):
1547         (JSC::JIT::compileBinaryArithOpSlowCase):
1548         (JSC::JIT::privateCompileMainPass):
1549         (JSC::JIT::privateCompileLinkPass):
1550         (JSC::JIT::privateCompileSlowCases):
1551         (JSC::JIT::privateCompile):
1552         (JSC::JIT::privateCompileGetByIdSelf):
1553         (JSC::JIT::privateCompileGetByIdProto):
1554         (JSC::JIT::privateCompileGetByIdChain):
1555         (JSC::JIT::privateCompilePutByIdReplace):
1556         (JSC::JIT::privateCompilePutByIdTransition):
1557         (JSC::JIT::unlinkCall):
1558         (JSC::JIT::linkCall):
1559         (JSC::JIT::privateCompileCTIMachineTrampolines):
1560         (JSC::JIT::freeCTIMachineTrampolines):
1561         (JSC::JIT::patchGetByIdSelf):
1562         (JSC::JIT::patchPutByIdReplace):
1563         (JSC::JIT::privateCompilePatchGetArrayLength):
1564         (JSC::JIT::emitGetVariableObjectRegister):
1565         (JSC::JIT::emitPutVariableObjectRegister):
1566         * VM/CTI.h:
1567         (JSC::JIT::compile):
1568         (JSC::JIT::compileGetByIdSelf):
1569         (JSC::JIT::compileGetByIdProto):
1570         (JSC::JIT::compileGetByIdChain):
1571         (JSC::JIT::compilePutByIdReplace):
1572         (JSC::JIT::compilePutByIdTransition):
1573         (JSC::JIT::compileCTIMachineTrampolines):
1574         (JSC::JIT::compilePatchGetArrayLength):
1575         * VM/CodeBlock.cpp:
1576         (JSC::CodeBlock::unlinkCallers):
1577         * VM/Machine.cpp:
1578         (JSC::Interpreter::initialize):
1579         (JSC::Interpreter::~Interpreter):
1580         (JSC::Interpreter::execute):
1581         (JSC::Interpreter::tryCTICachePutByID):
1582         (JSC::Interpreter::tryCTICacheGetByID):
1583         (JSC::Interpreter::cti_op_call_JSFunction):
1584         (JSC::Interpreter::cti_vm_dontLazyLinkCall):
1585         (JSC::Interpreter::cti_vm_lazyLinkCall):
1586         * VM/Machine.h:
1587         * VM/RegisterFile.h:
1588         * parser/Nodes.h:
1589         * runtime/JSArray.h:
1590         * runtime/JSCell.h:
1591         * runtime/JSFunction.h:
1592         * runtime/JSImmediate.h:
1593         * runtime/JSNumberCell.h:
1594         * runtime/JSObject.h:
1595         * runtime/JSString.h:
1596         * runtime/JSVariableObject.h:
1597         * runtime/ScopeChain.h:
1598         * runtime/Structure.h:
1599         * runtime/TypeInfo.h:
1600         * runtime/UString.h:
1601
1602 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1603
1604         Not reviewed.
1605         
1606         Try to fix wx build.
1607
1608         * jscore.bkl:
1609
1610 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1611
1612         Reviewed by Sam Weinig.
1613
1614         Nixed X86:: and X86Assembler:: prefixes in a lot of places using typedefs.
1615
1616         * VM/CTI.cpp:
1617         (JSC::CTI::emitGetVirtualRegister):
1618         (JSC::CTI::emitGetVirtualRegisters):
1619         (JSC::CTI::emitPutCTIArgFromVirtualRegister):
1620         (JSC::CTI::emitPutCTIArg):
1621         (JSC::CTI::emitGetCTIArg):
1622         (JSC::CTI::emitPutCTIParam):
1623         (JSC::CTI::emitGetCTIParam):
1624         (JSC::CTI::emitPutToCallFrameHeader):
1625         (JSC::CTI::emitGetFromCallFrameHeader):
1626         (JSC::CTI::emitPutVirtualRegister):
1627         (JSC::CTI::emitNakedCall):
1628         (JSC::CTI::emitNakedFastCall):
1629         (JSC::CTI::emitCTICall):
1630         (JSC::CTI::emitJumpSlowCaseIfNotJSCell):
1631         (JSC::CTI::emitJumpSlowCaseIfNotImmNum):
1632         (JSC::CTI::emitJumpSlowCaseIfNotImmNums):
1633         (JSC::CTI::emitFastArithDeTagImmediate):
1634         (JSC::CTI::emitFastArithDeTagImmediateJumpIfZero):
1635         (JSC::CTI::emitFastArithReTagImmediate):
1636         (JSC::CTI::emitFastArithPotentiallyReTagImmediate):
1637         (JSC::CTI::emitFastArithImmToInt):
1638         (JSC::CTI::emitFastArithIntToImmOrSlowCase):
1639         (JSC::CTI::emitFastArithIntToImmNoCheck):
1640         (JSC::CTI::emitArithIntToImmWithJump):
1641         (JSC::CTI::emitTagAsBoolImmediate):
1642         (JSC::CTI::compileOpCall):
1643         (JSC::CTI::compileOpStrictEq):
1644         (JSC::CTI::emitSlowScriptCheck):
1645         (JSC::CTI::putDoubleResultToJSNumberCellOrJSImmediate):
1646         (JSC::CTI::compileBinaryArithOp):
1647         (JSC::CTI::compileBinaryArithOpSlowCase):
1648         (JSC::CTI::privateCompileMainPass):
1649         (JSC::CTI::privateCompileSlowCases):
1650         (JSC::CTI::privateCompile):
1651         (JSC::CTI::privateCompileGetByIdSelf):
1652         (JSC::CTI::privateCompileGetByIdProto):
1653         (JSC::CTI::privateCompileGetByIdChain):
1654         (JSC::CTI::privateCompilePutByIdReplace):
1655         (JSC::CTI::privateCompilePutByIdTransition):
1656         (JSC::CTI::privateCompileCTIMachineTrampolines):
1657         (JSC::CTI::privateCompilePatchGetArrayLength):
1658         (JSC::CTI::emitGetVariableObjectRegister):
1659         (JSC::CTI::emitPutVariableObjectRegister):
1660         * VM/CTI.h:
1661         (JSC::CallRecord::CallRecord):
1662         (JSC::JmpTable::JmpTable):
1663         (JSC::SlowCaseEntry::SlowCaseEntry):
1664         (JSC::CTI::JSRInfo::JSRInfo):
1665         * wrec/WREC.h:
1666
1667 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1668
1669         Not reviewed.
1670         
1671         Try to fix Qt build.
1672
1673         * JavaScriptCore.pri:
1674
1675 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1676
1677         Reviewed by Sam Weinig.
1678         
1679         Renamed OBJECT_OFFSET => FIELD_OFFSET
1680
1681         Nixed use of OBJECT_OFFSET outside of CTI.cpp by making CTI a friend in
1682         more places.
1683
1684         * VM/CTI.cpp:
1685         (JSC::CTI::compileOpCallInitializeCallFrame):
1686         (JSC::CTI::compileOpCall):
1687         (JSC::CTI::emitSlowScriptCheck):
1688         (JSC::CTI::putDoubleResultToJSNumberCellOrJSImmediate):
1689         (JSC::CTI::compileBinaryArithOp):
1690         (JSC::CTI::privateCompileMainPass):
1691         (JSC::CTI::privateCompileSlowCases):
1692         (JSC::CTI::privateCompile):
1693         (JSC::CTI::privateCompileGetByIdSelf):
1694         (JSC::CTI::privateCompileGetByIdProto):
1695         (JSC::CTI::privateCompileGetByIdChain):
1696         (JSC::CTI::privateCompilePutByIdReplace):
1697         (JSC::CTI::privateCompilePutByIdTransition):
1698         (JSC::CTI::privateCompileCTIMachineTrampolines):
1699         (JSC::CTI::privateCompilePatchGetArrayLength):
1700         (JSC::CTI::emitGetVariableObjectRegister):
1701         (JSC::CTI::emitPutVariableObjectRegister):
1702         * runtime/JSValue.h:
1703         * runtime/JSVariableObject.h:
1704
1705 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1706
1707         Reviewed by Sam Weinig.
1708         
1709         Renames:
1710         
1711         X86Assembler::copy => X86Assembler::executableCopy
1712         AssemblerBuffer::copy => AssemblerBuffer::executableCopy
1713
1714         * VM/CTI.cpp:
1715         (JSC::CTI::privateCompile):
1716         (JSC::CTI::privateCompileGetByIdSelf):
1717         (JSC::CTI::privateCompileGetByIdProto):
1718         (JSC::CTI::privateCompileGetByIdChain):
1719         (JSC::CTI::privateCompilePutByIdReplace):
1720         (JSC::CTI::privateCompilePutByIdTransition):
1721         (JSC::CTI::privateCompileCTIMachineTrampolines):
1722         (JSC::CTI::privateCompilePatchGetArrayLength):
1723         * masm/X86Assembler.h:
1724         (JSC::AssemblerBuffer::executableCopy):
1725         (JSC::X86Assembler::executableCopy):
1726         * wrec/WREC.cpp:
1727         (JSC::WREC::compileRegExp):
1728
1729 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1730
1731         Reviewed by Sam Weinig.
1732         
1733         Renamed WREC => JSC::WREC, removing JSC:: prefix in a lot of places.
1734         Renamed WRECFunction => WREC::CompiledRegExp, and deployed this type
1735         name in place of a few casts.
1736
1737         * runtime/RegExp.cpp:
1738         (JSC::RegExp::RegExp):
1739         (JSC::RegExp::~RegExp):
1740         (JSC::RegExp::match):
1741         * runtime/RegExp.h:
1742         * wrec/CharacterClassConstructor.cpp:
1743         * wrec/CharacterClassConstructor.h:
1744         * wrec/WREC.cpp:
1745         (JSC::WREC::compileRegExp):
1746         * wrec/WREC.h:
1747         (JSC::WREC::Generator::Generator):
1748         (JSC::WREC::Parser::Parser):
1749         (JSC::WREC::Parser::parseAlternative):
1750
1751 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1752
1753         Reviewed by Sam Weinig.
1754         
1755         Renamed BytecodeInterpreter => Interpreter.
1756
1757         * JavaScriptCore.exp:
1758         * VM/CTI.cpp:
1759         (JSC::):
1760         (JSC::CTI::compileOpCall):
1761         (JSC::CTI::emitSlowScriptCheck):
1762         (JSC::CTI::compileBinaryArithOpSlowCase):
1763         (JSC::CTI::privateCompileMainPass):
1764         (JSC::CTI::privateCompileSlowCases):
1765         (JSC::CTI::privateCompile):
1766         (JSC::CTI::privateCompileGetByIdSelf):
1767         (JSC::CTI::privateCompileGetByIdProto):
1768         (JSC::CTI::privateCompileGetByIdChain):
1769         (JSC::CTI::privateCompilePutByIdReplace):
1770         (JSC::CTI::privateCompilePutByIdTransition):
1771         (JSC::CTI::privateCompileCTIMachineTrampolines):
1772         (JSC::CTI::freeCTIMachineTrampolines):
1773         (JSC::CTI::patchGetByIdSelf):
1774         (JSC::CTI::patchPutByIdReplace):
1775         (JSC::CTI::privateCompilePatchGetArrayLength):
1776         * VM/CTI.h:
1777         * VM/CodeBlock.cpp:
1778         (JSC::CodeBlock::printStructures):
1779         (JSC::CodeBlock::derefStructures):
1780         (JSC::CodeBlock::refStructures):
1781         * VM/Machine.cpp:
1782         (JSC::jsLess):
1783         (JSC::jsLessEq):
1784         (JSC::Interpreter::resolve):
1785         (JSC::Interpreter::resolveSkip):
1786         (JSC::Interpreter::resolveGlobal):
1787         (JSC::Interpreter::resolveBase):
1788         (JSC::Interpreter::resolveBaseAndProperty):
1789         (JSC::Interpreter::resolveBaseAndFunc):
1790         (JSC::Interpreter::slideRegisterWindowForCall):
1791         (JSC::Interpreter::callEval):
1792         (JSC::Interpreter::Interpreter):
1793         (JSC::Interpreter::initialize):
1794         (JSC::Interpreter::~Interpreter):
1795         (JSC::Interpreter::dumpCallFrame):
1796         (JSC::Interpreter::dumpRegisters):
1797         (JSC::Interpreter::isOpcode):
1798         (JSC::Interpreter::unwindCallFrame):
1799         (JSC::Interpreter::throwException):
1800         (JSC::Interpreter::execute):
1801         (JSC::Interpreter::debug):
1802         (JSC::Interpreter::resetTimeoutCheck):
1803         (JSC::Interpreter::checkTimeout):
1804         (JSC::Interpreter::createExceptionScope):
1805         (JSC::Interpreter::tryCachePutByID):
1806         (JSC::Interpreter::uncachePutByID):
1807         (JSC::Interpreter::tryCacheGetByID):
1808         (JSC::Interpreter::uncacheGetByID):
1809         (JSC::Interpreter::privateExecute):
1810         (JSC::Interpreter::retrieveArguments):
1811         (JSC::Interpreter::retrieveCaller):
1812         (JSC::Interpreter::retrieveLastCaller):
1813         (JSC::Interpreter::findFunctionCallFrame):
1814         (JSC::Interpreter::tryCTICachePutByID):
1815         (JSC::Interpreter::tryCTICacheGetByID):
1816         (JSC::Interpreter::cti_op_convert_this):
1817         (JSC::Interpreter::cti_op_end):
1818         (JSC::Interpreter::cti_op_add):
1819         (JSC::Interpreter::cti_op_pre_inc):
1820         (JSC::Interpreter::cti_timeout_check):
1821         (JSC::Interpreter::cti_register_file_check):
1822         (JSC::Interpreter::cti_op_loop_if_less):
1823         (JSC::Interpreter::cti_op_loop_if_lesseq):
1824         (JSC::Interpreter::cti_op_new_object):
1825         (JSC::Interpreter::cti_op_put_by_id):
1826         (JSC::Interpreter::cti_op_put_by_id_second):
1827         (JSC::Interpreter::cti_op_put_by_id_generic):
1828         (JSC::Interpreter::cti_op_put_by_id_fail):
1829         (JSC::Interpreter::cti_op_get_by_id):
1830         (JSC::Interpreter::cti_op_get_by_id_second):
1831         (JSC::Interpreter::cti_op_get_by_id_generic):
1832         (JSC::Interpreter::cti_op_get_by_id_fail):
1833         (JSC::Interpreter::cti_op_instanceof):
1834         (JSC::Interpreter::cti_op_del_by_id):
1835         (JSC::Interpreter::cti_op_mul):
1836         (JSC::Interpreter::cti_op_new_func):
1837         (JSC::Interpreter::cti_op_call_JSFunction):
1838         (JSC::Interpreter::cti_op_call_arityCheck):
1839         (JSC::Interpreter::cti_vm_dontLazyLinkCall):
1840         (JSC::Interpreter::cti_vm_lazyLinkCall):
1841         (JSC::Interpreter::cti_op_push_activation):
1842         (JSC::Interpreter::cti_op_call_NotJSFunction):
1843         (JSC::Interpreter::cti_op_create_arguments):
1844         (JSC::Interpreter::cti_op_create_arguments_no_params):
1845         (JSC::Interpreter::cti_op_tear_off_activation):
1846         (JSC::Interpreter::cti_op_tear_off_arguments):
1847         (JSC::Interpreter::cti_op_profile_will_call):
1848         (JSC::Interpreter::cti_op_profile_did_call):
1849         (JSC::Interpreter::cti_op_ret_scopeChain):
1850         (JSC::Interpreter::cti_op_new_array):
1851         (JSC::Interpreter::cti_op_resolve):
1852         (JSC::Interpreter::cti_op_construct_JSConstruct):
1853         (JSC::Interpreter::cti_op_construct_NotJSConstruct):
1854         (JSC::Interpreter::cti_op_get_by_val):
1855         (JSC::Interpreter::cti_op_resolve_func):
1856         (JSC::Interpreter::cti_op_sub):
1857         (JSC::Interpreter::cti_op_put_by_val):
1858         (JSC::Interpreter::cti_op_put_by_val_array):
1859         (JSC::Interpreter::cti_op_lesseq):
1860         (JSC::Interpreter::cti_op_loop_if_true):
1861         (JSC::Interpreter::cti_op_negate):
1862         (JSC::Interpreter::cti_op_resolve_base):
1863         (JSC::Interpreter::cti_op_resolve_skip):
1864         (JSC::Interpreter::cti_op_resolve_global):
1865         (JSC::Interpreter::cti_op_div):
1866         (JSC::Interpreter::cti_op_pre_dec):
1867         (JSC::Interpreter::cti_op_jless):
1868         (JSC::Interpreter::cti_op_not):
1869         (JSC::Interpreter::cti_op_jtrue):
1870         (JSC::Interpreter::cti_op_post_inc):
1871         (JSC::Interpreter::cti_op_eq):
1872         (JSC::Interpreter::cti_op_lshift):
1873         (JSC::Interpreter::cti_op_bitand):
1874         (JSC::Interpreter::cti_op_rshift):
1875         (JSC::Interpreter::cti_op_bitnot):
1876         (JSC::Interpreter::cti_op_resolve_with_base):
1877         (JSC::Interpreter::cti_op_new_func_exp):
1878         (JSC::Interpreter::cti_op_mod):
1879         (JSC::Interpreter::cti_op_less):
1880         (JSC::Interpreter::cti_op_neq):
1881         (JSC::Interpreter::cti_op_post_dec):
1882         (JSC::Interpreter::cti_op_urshift):
1883         (JSC::Interpreter::cti_op_bitxor):
1884         (JSC::Interpreter::cti_op_new_regexp):
1885         (JSC::Interpreter::cti_op_bitor):
1886         (JSC::Interpreter::cti_op_call_eval):
1887         (JSC::Interpreter::cti_op_throw):
1888         (JSC::Interpreter::cti_op_get_pnames):
1889         (JSC::Interpreter::cti_op_next_pname):
1890         (JSC::Interpreter::cti_op_push_scope):
1891         (JSC::Interpreter::cti_op_pop_scope):
1892         (JSC::Interpreter::cti_op_typeof):
1893         (JSC::Interpreter::cti_op_is_undefined):
1894         (JSC::Interpreter::cti_op_is_boolean):
1895         (JSC::Interpreter::cti_op_is_number):
1896         (JSC::Interpreter::cti_op_is_string):
1897         (JSC::Interpreter::cti_op_is_object):
1898         (JSC::Interpreter::cti_op_is_function):
1899         (JSC::Interpreter::cti_op_stricteq):
1900         (JSC::Interpreter::cti_op_nstricteq):
1901         (JSC::Interpreter::cti_op_to_jsnumber):
1902         (JSC::Interpreter::cti_op_in):
1903         (JSC::Interpreter::cti_op_push_new_scope):
1904         (JSC::Interpreter::cti_op_jmp_scopes):
1905         (JSC::Interpreter::cti_op_put_by_index):
1906         (JSC::Interpreter::cti_op_switch_imm):
1907         (JSC::Interpreter::cti_op_switch_char):
1908         (JSC::Interpreter::cti_op_switch_string):
1909         (JSC::Interpreter::cti_op_del_by_val):
1910         (JSC::Interpreter::cti_op_put_getter):
1911         (JSC::Interpreter::cti_op_put_setter):
1912         (JSC::Interpreter::cti_op_new_error):
1913         (JSC::Interpreter::cti_op_debug):
1914         (JSC::Interpreter::cti_vm_throw):
1915         * VM/Machine.h:
1916         * VM/Register.h:
1917         * VM/SamplingTool.h:
1918         (JSC::SamplingTool::SamplingTool):
1919         * bytecompiler/CodeGenerator.cpp:
1920         (JSC::BytecodeGenerator::generate):
1921         (JSC::BytecodeGenerator::BytecodeGenerator):
1922         * jsc.cpp:
1923         (runWithScripts):
1924         * runtime/ExecState.h:
1925         (JSC::ExecState::interpreter):
1926         * runtime/JSCell.h:
1927         * runtime/JSFunction.h:
1928         * runtime/JSGlobalData.cpp:
1929         (JSC::JSGlobalData::JSGlobalData):
1930         * runtime/JSGlobalData.h:
1931         * runtime/JSString.h:
1932         * wrec/WREC.cpp:
1933         (WREC::compileRegExp):
1934         * wrec/WREC.h:
1935
1936 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1937
1938         Roll out r38461 (my last patch) because it broke the world.
1939
1940 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
1941
1942         Reviewed by Sam Weinig.
1943
1944         A few more renames:
1945
1946         BytecodeInterpreter => Interpreter
1947         WREC => JSC::WREC, removing JSC:: prefix in a lot of places
1948         X86Assembler::copy => X86Assembler::executableCopy
1949         AssemblerBuffer::copy => AssemblerBuffer::executableCopy
1950         WRECFunction => WREC::RegExpFunction
1951         OBJECT_OFFSET => FIELD_OFFSET
1952         
1953         Also:
1954
1955         Nixed use of OBJECT_OFFSET outside of CTI.cpp by making CTI a friend in more places.
1956         Nixed X86:: and X86Assembler:: prefixes in a lot of places using typedefs
1957
1958         * JavaScriptCore.exp:
1959         * VM/CTI.cpp:
1960         (JSC::):
1961         (JSC::CTI::emitGetVirtualRegister):
1962         (JSC::CTI::emitGetVirtualRegisters):
1963         (JSC::CTI::emitPutCTIArgFromVirtualRegister):
1964         (JSC::CTI::emitPutCTIArg):
1965         (JSC::CTI::emitGetCTIArg):
1966         (JSC::CTI::emitPutCTIParam):
1967         (JSC::CTI::emitGetCTIParam):
1968         (JSC::CTI::emitPutToCallFrameHeader):
1969         (JSC::CTI::emitGetFromCallFrameHeader):
1970         (JSC::CTI::emitPutVirtualRegister):
1971         (JSC::CTI::emitNakedCall):
1972         (JSC::CTI::emitNakedFastCall):
1973         (JSC::CTI::emitCTICall):
1974         (JSC::CTI::emitJumpSlowCaseIfNotJSCell):
1975         (JSC::CTI::emitJumpSlowCaseIfNotImmNum):
1976         (JSC::CTI::emitJumpSlowCaseIfNotImmNums):
1977         (JSC::CTI::emitFastArithDeTagImmediate):
1978         (JSC::CTI::emitFastArithDeTagImmediateJumpIfZero):
1979         (JSC::CTI::emitFastArithReTagImmediate):
1980         (JSC::CTI::emitFastArithPotentiallyReTagImmediate):
1981         (JSC::CTI::emitFastArithImmToInt):
1982         (JSC::CTI::emitFastArithIntToImmOrSlowCase):
1983         (JSC::CTI::emitFastArithIntToImmNoCheck):
1984         (JSC::CTI::emitArithIntToImmWithJump):
1985         (JSC::CTI::emitTagAsBoolImmediate):
1986         (JSC::CTI::compileOpCallInitializeCallFrame):
1987         (JSC::CTI::compileOpCall):
1988         (JSC::CTI::compileOpStrictEq):
1989         (JSC::CTI::emitSlowScriptCheck):
1990         (JSC::CTI::putDoubleResultToJSNumberCellOrJSImmediate):
1991         (JSC::CTI::compileBinaryArithOp):
1992         (JSC::CTI::compileBinaryArithOpSlowCase):
1993         (JSC::CTI::privateCompileMainPass):
1994         (JSC::CTI::privateCompileSlowCases):
1995         (JSC::CTI::privateCompile):
1996         (JSC::CTI::privateCompileGetByIdSelf):
1997         (JSC::CTI::privateCompileGetByIdProto):
1998         (JSC::CTI::privateCompileGetByIdChain):
1999         (JSC::CTI::privateCompilePutByIdReplace):
2000         (JSC::CTI::privateCompilePutByIdTransition):
2001         (JSC::CTI::privateCompileCTIMachineTrampolines):
2002         (JSC::CTI::freeCTIMachineTrampolines):
2003         (JSC::CTI::patchGetByIdSelf):
2004         (JSC::CTI::patchPutByIdReplace):
2005         (JSC::CTI::privateCompilePatchGetArrayLength):
2006         (JSC::CTI::emitGetVariableObjectRegister):
2007         (JSC::CTI::emitPutVariableObjectRegister):
2008         * VM/CTI.h:
2009         (JSC::CallRecord::CallRecord):
2010         (JSC::JmpTable::JmpTable):
2011         (JSC::SlowCaseEntry::SlowCaseEntry):
2012         (JSC::CTI::JSRInfo::JSRInfo):
2013         * VM/CodeBlock.cpp:
2014         (JSC::CodeBlock::printStructures):
2015         (JSC::CodeBlock::derefStructures):
2016         (JSC::CodeBlock::refStructures):
2017         * VM/Machine.cpp:
2018         (JSC::jsLess):
2019         (JSC::jsLessEq):
2020         (JSC::Interpreter::resolve):
2021         (JSC::Interpreter::resolveSkip):
2022         (JSC::Interpreter::resolveGlobal):
2023         (JSC::Interpreter::resolveBase):
2024         (JSC::Interpreter::resolveBaseAndProperty):
2025         (JSC::Interpreter::resolveBaseAndFunc):
2026         (JSC::Interpreter::slideRegisterWindowForCall):
2027         (JSC::Interpreter::callEval):
2028         (JSC::Interpreter::Interpreter):
2029         (JSC::Interpreter::initialize):
2030         (JSC::Interpreter::~Interpreter):
2031         (JSC::Interpreter::dumpCallFrame):
2032         (JSC::Interpreter::dumpRegisters):
2033         (JSC::Interpreter::isOpcode):
2034         (JSC::Interpreter::unwindCallFrame):
2035         (JSC::Interpreter::throwException):
2036         (JSC::Interpreter::execute):
2037         (JSC::Interpreter::debug):
2038         (JSC::Interpreter::resetTimeoutCheck):
2039         (JSC::Interpreter::checkTimeout):
2040         (JSC::Interpreter::createExceptionScope):
2041         (JSC::Interpreter::tryCachePutByID):
2042         (JSC::Interpreter::uncachePutByID):
2043         (JSC::Interpreter::tryCacheGetByID):
2044         (JSC::Interpreter::uncacheGetByID):
2045         (JSC::Interpreter::privateExecute):
2046         (JSC::Interpreter::retrieveArguments):
2047         (JSC::Interpreter::retrieveCaller):
2048         (JSC::Interpreter::retrieveLastCaller):
2049         (JSC::Interpreter::findFunctionCallFrame):
2050         (JSC::Interpreter::tryCTICachePutByID):
2051         (JSC::Interpreter::tryCTICacheGetByID):
2052         (JSC::):
2053         (JSC::Interpreter::cti_op_convert_this):
2054         (JSC::Interpreter::cti_op_end):
2055         (JSC::Interpreter::cti_op_add):
2056         (JSC::Interpreter::cti_op_pre_inc):
2057         (JSC::Interpreter::cti_timeout_check):
2058         (JSC::Interpreter::cti_register_file_check):
2059         (JSC::Interpreter::cti_op_loop_if_less):
2060         (JSC::Interpreter::cti_op_loop_if_lesseq):
2061         (JSC::Interpreter::cti_op_new_object):
2062         (JSC::Interpreter::cti_op_put_by_id):
2063         (JSC::Interpreter::cti_op_put_by_id_second):
2064         (JSC::Interpreter::cti_op_put_by_id_generic):
2065         (JSC::Interpreter::cti_op_put_by_id_fail):
2066         (JSC::Interpreter::cti_op_get_by_id):
2067         (JSC::Interpreter::cti_op_get_by_id_second):
2068         (JSC::Interpreter::cti_op_get_by_id_generic):
2069         (JSC::Interpreter::cti_op_get_by_id_fail):
2070         (JSC::Interpreter::cti_op_instanceof):
2071         (JSC::Interpreter::cti_op_del_by_id):
2072         (JSC::Interpreter::cti_op_mul):
2073         (JSC::Interpreter::cti_op_new_func):
2074         (JSC::Interpreter::cti_op_call_JSFunction):
2075         (JSC::Interpreter::cti_op_call_arityCheck):
2076         (JSC::Interpreter::cti_vm_dontLazyLinkCall):
2077         (JSC::Interpreter::cti_vm_lazyLinkCall):
2078         (JSC::Interpreter::cti_op_push_activation):
2079         (JSC::Interpreter::cti_op_call_NotJSFunction):
2080         (JSC::Interpreter::cti_op_create_arguments):
2081         (JSC::Interpreter::cti_op_create_arguments_no_params):
2082         (JSC::Interpreter::cti_op_tear_off_activation):
2083         (JSC::Interpreter::cti_op_tear_off_arguments):
2084         (JSC::Interpreter::cti_op_profile_will_call):
2085         (JSC::Interpreter::cti_op_profile_did_call):
2086         (JSC::Interpreter::cti_op_ret_scopeChain):
2087         (JSC::Interpreter::cti_op_new_array):
2088         (JSC::Interpreter::cti_op_resolve):
2089         (JSC::Interpreter::cti_op_construct_JSConstruct):
2090         (JSC::Interpreter::cti_op_construct_NotJSConstruct):
2091         (JSC::Interpreter::cti_op_get_by_val):
2092         (JSC::Interpreter::cti_op_resolve_func):
2093         (JSC::Interpreter::cti_op_sub):
2094         (JSC::Interpreter::cti_op_put_by_val):
2095         (JSC::Interpreter::cti_op_put_by_val_array):
2096         (JSC::Interpreter::cti_op_lesseq):
2097         (JSC::Interpreter::cti_op_loop_if_true):
2098         (JSC::Interpreter::cti_op_negate):
2099         (JSC::Interpreter::cti_op_resolve_base):
2100         (JSC::Interpreter::cti_op_resolve_skip):
2101         (JSC::Interpreter::cti_op_resolve_global):
2102         (JSC::Interpreter::cti_op_div):
2103         (JSC::Interpreter::cti_op_pre_dec):
2104         (JSC::Interpreter::cti_op_jless):
2105         (JSC::Interpreter::cti_op_not):
2106         (JSC::Interpreter::cti_op_jtrue):
2107         (JSC::Interpreter::cti_op_post_inc):
2108         (JSC::Interpreter::cti_op_eq):
2109         (JSC::Interpreter::cti_op_lshift):
2110         (JSC::Interpreter::cti_op_bitand):
2111         (JSC::Interpreter::cti_op_rshift):
2112         (JSC::Interpreter::cti_op_bitnot):
2113         (JSC::Interpreter::cti_op_resolve_with_base):
2114         (JSC::Interpreter::cti_op_new_func_exp):
2115         (JSC::Interpreter::cti_op_mod):
2116         (JSC::Interpreter::cti_op_less):
2117         (JSC::Interpreter::cti_op_neq):
2118         (JSC::Interpreter::cti_op_post_dec):
2119         (JSC::Interpreter::cti_op_urshift):
2120         (JSC::Interpreter::cti_op_bitxor):
2121         (JSC::Interpreter::cti_op_new_regexp):
2122         (JSC::Interpreter::cti_op_bitor):
2123         (JSC::Interpreter::cti_op_call_eval):
2124         (JSC::Interpreter::cti_op_throw):
2125         (JSC::Interpreter::cti_op_get_pnames):
2126         (JSC::Interpreter::cti_op_next_pname):
2127         (JSC::Interpreter::cti_op_push_scope):
2128         (JSC::Interpreter::cti_op_pop_scope):
2129         (JSC::Interpreter::cti_op_typeof):
2130         (JSC::Interpreter::cti_op_is_undefined):
2131         (JSC::Interpreter::cti_op_is_boolean):
2132         (JSC::Interpreter::cti_op_is_number):
2133         (JSC::Interpreter::cti_op_is_string):
2134         (JSC::Interpreter::cti_op_is_object):
2135         (JSC::Interpreter::cti_op_is_function):
2136         (JSC::Interpreter::cti_op_stricteq):
2137         (JSC::Interpreter::cti_op_nstricteq):
2138         (JSC::Interpreter::cti_op_to_jsnumber):
2139         (JSC::Interpreter::cti_op_in):
2140         (JSC::Interpreter::cti_op_push_new_scope):
2141         (JSC::Interpreter::cti_op_jmp_scopes):
2142         (JSC::Interpreter::cti_op_put_by_index):
2143         (JSC::Interpreter::cti_op_switch_imm):
2144         (JSC::Interpreter::cti_op_switch_char):
2145         (JSC::Interpreter::cti_op_switch_string):
2146         (JSC::Interpreter::cti_op_del_by_val):
2147         (JSC::Interpreter::cti_op_put_getter):
2148         (JSC::Interpreter::cti_op_put_setter):
2149         (JSC::Interpreter::cti_op_new_error):
2150         (JSC::Interpreter::cti_op_debug):
2151         (JSC::Interpreter::cti_vm_throw):
2152         * VM/Machine.h:
2153         * VM/Register.h:
2154         * VM/SamplingTool.cpp:
2155         (JSC::SamplingTool::dump):
2156         * VM/SamplingTool.h:
2157         (JSC::SamplingTool::SamplingTool):
2158         * bytecompiler/CodeGenerator.cpp:
2159         (JSC::BytecodeGenerator::generate):
2160         (JSC::BytecodeGenerator::BytecodeGenerator):
2161         * jsc.cpp:
2162         (runWithScripts):
2163         * masm/X86Assembler.h:
2164         (JSC::AssemblerBuffer::executableCopy):
2165         (JSC::X86Assembler::executableCopy):
2166         * runtime/ExecState.h:
2167         (JSC::ExecState::interpreter):
2168         * runtime/JSCell.h:
2169         * runtime/JSFunction.h:
2170         * runtime/JSGlobalData.cpp:
2171         (JSC::JSGlobalData::JSGlobalData):
2172         * runtime/JSGlobalData.h:
2173         * runtime/JSImmediate.h:
2174         * runtime/JSString.h:
2175         * runtime/JSValue.h:
2176         * runtime/JSVariableObject.h:
2177         * runtime/RegExp.cpp:
2178         (JSC::RegExp::RegExp):
2179         (JSC::RegExp::~RegExp):
2180         (JSC::RegExp::match):
2181         * runtime/RegExp.h:
2182         * wrec/CharacterClassConstructor.cpp:
2183         * wrec/CharacterClassConstructor.h:
2184         * wrec/WREC.cpp:
2185         (JSC::WREC::compileRegExp):
2186         * wrec/WREC.h:
2187         (JSC::WREC::Generator::Generator):
2188         (JSC::WREC::Parser::):
2189         (JSC::WREC::Parser::Parser):
2190         (JSC::WREC::Parser::parseAlternative):
2191
2192 2008-11-16  Greg Bolsinga  <bolsinga@apple.com>
2193
2194         Reviewed by Darin Adler.
2195
2196         https://bugs.webkit.org/show_bug.cgi?id=21810
2197         Remove use of static C++ objects that are destroyed at exit time (destructors)
2198
2199         Conditionally have the DEFINE_STATIC_LOCAL workaround <rdar://problem/6354696> 
2200         (Codegen issue with C++ static reference in gcc build 5465) based upon the compiler 
2201         build versions. It will use the:
2202         static T& = *new T;
2203         style for all other compilers.
2204
2205         * wtf/StdLibExtras.h:
2206
2207 2008-11-16  Alexey Proskuryakov  <ap@webkit.org>
2208
2209         Reviewed by Dan Bernstein.
2210
2211         https://bugs.webkit.org/show_bug.cgi?id=22290
2212         Remove cross-heap GC and MessagePort multi-threading support
2213
2214         It is broken (and may not be implementable at all), and no longer needed, as we
2215         don't use MessagePorts for communication with workers any more.
2216
2217         * JavaScriptCore.exp:
2218         * runtime/Collector.cpp:
2219         (JSC::Heap::collect):
2220         * runtime/JSGlobalObject.cpp:
2221         * runtime/JSGlobalObject.h:
2222         Remove hooks for cross-heap GC.
2223
2224 2008-11-15  Sam Weinig  <sam@webkit.org>
2225
2226         Reviewed by Cameron Zwarich.
2227
2228         Cleanup jsc command line code a little.
2229
2230         * jsc.cpp:
2231         (functionQuit):
2232         (main): Use standard exit status macros
2233         (cleanupGlobalData): Factor out cleanup code into this function.
2234         (printUsageStatement): Use standard exit status macros.
2235
2236 2008-11-15  Sam Weinig  <sam@webkit.org>
2237
2238         Reviewed by Cameron Zwarich.
2239
2240         Cleanup BytecodeGenerator constructors.
2241
2242         * bytecompiler/CodeGenerator.cpp:
2243         (JSC::BytecodeGenerator::BytecodeGenerator):
2244         * bytecompiler/CodeGenerator.h:
2245         * parser/Nodes.cpp:
2246         (JSC::ProgramNode::generateBytecode):
2247
2248 2008-11-15  Darin Adler  <darin@apple.com>
2249
2250         Rubber stamped by Geoff Garen.
2251
2252         - do the long-planned StructureID -> Structure rename
2253
2254         * API/JSCallbackConstructor.cpp:
2255         (JSC::JSCallbackConstructor::JSCallbackConstructor):
2256         * API/JSCallbackConstructor.h:
2257         (JSC::JSCallbackConstructor::createStructure):
2258         * API/JSCallbackFunction.h:
2259         (JSC::JSCallbackFunction::createStructure):
2260         * API/JSCallbackObject.h:
2261         (JSC::JSCallbackObject::createStructure):
2262         * API/JSCallbackObjectFunctions.h:
2263         (JSC::::JSCallbackObject):
2264         * API/JSValueRef.cpp:
2265         (JSValueIsInstanceOfConstructor):
2266         * GNUmakefile.am:
2267         * JavaScriptCore.exp:
2268         * JavaScriptCore.pri:
2269         * JavaScriptCore.scons:
2270         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2271         * JavaScriptCore.xcodeproj/project.pbxproj:
2272         * JavaScriptCoreSources.bkl:
2273         * VM/CTI.cpp:
2274         (JSC::CTI::compileBinaryArithOp):
2275         (JSC::CTI::privateCompileMainPass):
2276         (JSC::CTI::privateCompileGetByIdSelf):
2277         (JSC::CTI::privateCompileGetByIdProto):
2278         (JSC::CTI::privateCompileGetByIdChain):
2279         (JSC::CTI::privateCompilePutByIdReplace):
2280         (JSC::transitionWillNeedStorageRealloc):
2281         (JSC::CTI::privateCompilePutByIdTransition):
2282         (JSC::CTI::patchGetByIdSelf):
2283         (JSC::CTI::patchPutByIdReplace):
2284         * VM/CTI.h:
2285         (JSC::CTI::compileGetByIdSelf):
2286         (JSC::CTI::compileGetByIdProto):
2287         (JSC::CTI::compileGetByIdChain):
2288         (JSC::CTI::compilePutByIdReplace):
2289         (JSC::CTI::compilePutByIdTransition):
2290         * VM/CodeBlock.cpp:
2291         (JSC::CodeBlock::printStructure):
2292         (JSC::CodeBlock::printStructures):
2293         (JSC::CodeBlock::dump):
2294         (JSC::CodeBlock::~CodeBlock):
2295         (JSC::CodeBlock::derefStructures):
2296         (JSC::CodeBlock::refStructures):
2297         * VM/CodeBlock.h:
2298         * VM/Instruction.h:
2299         (JSC::Instruction::Instruction):
2300         (JSC::Instruction::):
2301         * VM/Machine.cpp:
2302         (JSC::jsTypeStringForValue):
2303         (JSC::jsIsObjectType):
2304         (JSC::BytecodeInterpreter::resolveGlobal):
2305         (JSC::BytecodeInterpreter::BytecodeInterpreter):
2306         (JSC::cachePrototypeChain):
2307         (JSC::BytecodeInterpreter::tryCachePutByID):
2308         (JSC::BytecodeInterpreter::uncachePutByID):
2309         (JSC::BytecodeInterpreter::tryCacheGetByID):
2310         (JSC::BytecodeInterpreter::uncacheGetByID):
2311         (JSC::BytecodeInterpreter::privateExecute):
2312         (JSC::BytecodeInterpreter::tryCTICachePutByID):
2313         (JSC::BytecodeInterpreter::tryCTICacheGetByID):
2314         (JSC::BytecodeInterpreter::cti_op_instanceof):
2315         (JSC::BytecodeInterpreter::cti_op_construct_JSConstruct):
2316         (JSC::BytecodeInterpreter::cti_op_resolve_global):
2317         (JSC::BytecodeInterpreter::cti_op_is_undefined):
2318         * runtime/Arguments.h:
2319         (JSC::Arguments::createStructure):
2320         * runtime/ArrayConstructor.cpp:
2321         (JSC::ArrayConstructor::ArrayConstructor):
2322         * runtime/ArrayConstructor.h:
2323         * runtime/ArrayPrototype.cpp:
2324         (JSC::ArrayPrototype::ArrayPrototype):
2325         * runtime/ArrayPrototype.h:
2326         * runtime/BatchedTransitionOptimizer.h:
2327         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
2328         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
2329         * runtime/BooleanConstructor.cpp:
2330         (JSC::BooleanConstructor::BooleanConstructor):
2331         * runtime/BooleanConstructor.h:
2332         * runtime/BooleanObject.cpp:
2333         (JSC::BooleanObject::BooleanObject):
2334         * runtime/BooleanObject.h:
2335         * runtime/BooleanPrototype.cpp:
2336         (JSC::BooleanPrototype::BooleanPrototype):
2337         * runtime/BooleanPrototype.h:
2338         * runtime/DateConstructor.cpp:
2339         (JSC::DateConstructor::DateConstructor):
2340         * runtime/DateConstructor.h:
2341         * runtime/DateInstance.cpp:
2342         (JSC::DateInstance::DateInstance):
2343         * runtime/DateInstance.h:
2344         * runtime/DatePrototype.cpp:
2345         (JSC::DatePrototype::DatePrototype):
2346         * runtime/DatePrototype.h:
2347         (JSC::DatePrototype::createStructure):
2348         * runtime/ErrorConstructor.cpp:
2349         (JSC::ErrorConstructor::ErrorConstructor):
2350         * runtime/ErrorConstructor.h:
2351         * runtime/ErrorInstance.cpp:
2352         (JSC::ErrorInstance::ErrorInstance):
2353         * runtime/ErrorInstance.h:
2354         * runtime/ErrorPrototype.cpp:
2355         (JSC::ErrorPrototype::ErrorPrototype):
2356         * runtime/ErrorPrototype.h:
2357         * runtime/FunctionConstructor.cpp:
2358         (JSC::FunctionConstructor::FunctionConstructor):
2359         * runtime/FunctionConstructor.h:
2360         * runtime/FunctionPrototype.cpp:
2361         (JSC::FunctionPrototype::FunctionPrototype):
2362         (JSC::FunctionPrototype::addFunctionProperties):
2363         * runtime/FunctionPrototype.h:
2364         (JSC::FunctionPrototype::createStructure):
2365         * runtime/GlobalEvalFunction.cpp:
2366         (JSC::GlobalEvalFunction::GlobalEvalFunction):
2367         * runtime/GlobalEvalFunction.h:
2368         * runtime/Identifier.h:
2369         * runtime/InternalFunction.cpp:
2370         (JSC::InternalFunction::InternalFunction):
2371         * runtime/InternalFunction.h:
2372         (JSC::InternalFunction::createStructure):
2373         (JSC::InternalFunction::InternalFunction):
2374         * runtime/JSActivation.cpp:
2375         (JSC::JSActivation::JSActivation):
2376         * runtime/JSActivation.h:
2377         (JSC::JSActivation::createStructure):
2378         * runtime/JSArray.cpp:
2379         (JSC::JSArray::JSArray):
2380         * runtime/JSArray.h:
2381         (JSC::JSArray::createStructure):
2382         * runtime/JSCell.h:
2383         (JSC::JSCell::JSCell):
2384         (JSC::JSCell::isObject):
2385         (JSC::JSCell::isString):
2386         (JSC::JSCell::structure):
2387         (JSC::JSValue::needsThisConversion):
2388         * runtime/JSFunction.cpp:
2389         (JSC::JSFunction::construct):
2390         * runtime/JSFunction.h:
2391         (JSC::JSFunction::JSFunction):
2392         (JSC::JSFunction::createStructure):
2393         * runtime/JSGlobalData.cpp:
2394         (JSC::JSGlobalData::JSGlobalData):
2395         (JSC::JSGlobalData::createLeaked):
2396         * runtime/JSGlobalData.h:
2397         * runtime/JSGlobalObject.cpp:
2398         (JSC::markIfNeeded):
2399         (JSC::JSGlobalObject::reset):
2400         * runtime/JSGlobalObject.h:
2401         (JSC::JSGlobalObject::JSGlobalObject):
2402         (JSC::JSGlobalObject::argumentsStructure):
2403         (JSC::JSGlobalObject::arrayStructure):
2404         (JSC::JSGlobalObject::booleanObjectStructure):
2405         (JSC::JSGlobalObject::callbackConstructorStructure):
2406         (JSC::JSGlobalObject::callbackFunctionStructure):
2407         (JSC::JSGlobalObject::callbackObjectStructure):
2408         (JSC::JSGlobalObject::dateStructure):
2409         (JSC::JSGlobalObject::emptyObjectStructure):
2410         (JSC::JSGlobalObject::errorStructure):
2411         (JSC::JSGlobalObject::functionStructure):
2412         (JSC::JSGlobalObject::numberObjectStructure):
2413         (JSC::JSGlobalObject::prototypeFunctionStructure):
2414         (JSC::JSGlobalObject::regExpMatchesArrayStructure):
2415         (JSC::JSGlobalObject::regExpStructure):
2416         (JSC::JSGlobalObject::stringObjectStructure):
2417         (JSC::JSGlobalObject::createStructure):
2418         (JSC::Structure::prototypeForLookup):
2419         * runtime/JSNotAnObject.h:
2420         (JSC::JSNotAnObject::createStructure):
2421         * runtime/JSNumberCell.h:
2422         (JSC::JSNumberCell::createStructure):
2423         (JSC::JSNumberCell::JSNumberCell):
2424         * runtime/JSObject.cpp:
2425         (JSC::JSObject::mark):
2426         (JSC::JSObject::put):
2427         (JSC::JSObject::deleteProperty):
2428         (JSC::JSObject::defineGetter):
2429         (JSC::JSObject::defineSetter):
2430         (JSC::JSObject::getPropertyAttributes):
2431         (JSC::JSObject::getPropertyNames):
2432         (JSC::JSObject::removeDirect):
2433         (JSC::JSObject::createInheritorID):
2434         * runtime/JSObject.h:
2435         (JSC::JSObject::getDirect):
2436         (JSC::JSObject::getDirectLocation):
2437         (JSC::JSObject::hasCustomProperties):
2438         (JSC::JSObject::hasGetterSetterProperties):
2439         (JSC::JSObject::createStructure):
2440         (JSC::JSObject::JSObject):
2441         (JSC::JSObject::~JSObject):
2442         (JSC::JSObject::prototype):
2443         (JSC::JSObject::setPrototype):
2444         (JSC::JSObject::setStructure):
2445         (JSC::JSObject::inheritorID):
2446         (JSC::JSObject::inlineGetOwnPropertySlot):
2447         (JSC::JSObject::getOwnPropertySlotForWrite):
2448         (JSC::JSCell::fastGetOwnPropertySlot):
2449         (JSC::JSObject::putDirect):
2450         (JSC::JSObject::putDirectWithoutTransition):
2451         (JSC::JSObject::transitionTo):
2452         * runtime/JSPropertyNameIterator.h:
2453         (JSC::JSPropertyNameIterator::next):
2454         * runtime/JSStaticScopeObject.h:
2455         (JSC::JSStaticScopeObject::JSStaticScopeObject):
2456         (JSC::JSStaticScopeObject::createStructure):
2457         * runtime/JSString.h:
2458         (JSC::JSString::JSString):
2459         (JSC::JSString::createStructure):
2460         * runtime/JSVariableObject.h:
2461         (JSC::JSVariableObject::JSVariableObject):
2462         * runtime/JSWrapperObject.h:
2463         (JSC::JSWrapperObject::JSWrapperObject):
2464         * runtime/MathObject.cpp:
2465         (JSC::MathObject::MathObject):
2466         * runtime/MathObject.h:
2467         (JSC::MathObject::createStructure):
2468         * runtime/NativeErrorConstructor.cpp:
2469         (JSC::NativeErrorConstructor::NativeErrorConstructor):
2470         * runtime/NativeErrorConstructor.h:
2471         * runtime/NativeErrorPrototype.cpp:
2472         (JSC::NativeErrorPrototype::NativeErrorPrototype):
2473         * runtime/NativeErrorPrototype.h:
2474         * runtime/NumberConstructor.cpp:
2475         (JSC::NumberConstructor::NumberConstructor):
2476         * runtime/NumberConstructor.h:
2477         (JSC::NumberConstructor::createStructure):
2478         * runtime/NumberObject.cpp:
2479         (JSC::NumberObject::NumberObject):
2480         * runtime/NumberObject.h:
2481         * runtime/NumberPrototype.cpp:
2482         (JSC::NumberPrototype::NumberPrototype):
2483         * runtime/NumberPrototype.h:
2484         * runtime/ObjectConstructor.cpp:
2485         (JSC::ObjectConstructor::ObjectConstructor):
2486         * runtime/ObjectConstructor.h:
2487         * runtime/ObjectPrototype.cpp:
2488         (JSC::ObjectPrototype::ObjectPrototype):
2489         * runtime/ObjectPrototype.h:
2490         * runtime/Operations.h:
2491         (JSC::equalSlowCaseInline):
2492         * runtime/PropertyNameArray.h:
2493         (JSC::PropertyNameArrayData::setCachedStructure):
2494         (JSC::PropertyNameArrayData::cachedStructure):
2495         (JSC::PropertyNameArrayData::setCachedPrototypeChain):
2496         (JSC::PropertyNameArrayData::cachedPrototypeChain):
2497         (JSC::PropertyNameArrayData::PropertyNameArrayData):
2498         * runtime/PrototypeFunction.cpp:
2499         (JSC::PrototypeFunction::PrototypeFunction):
2500         * runtime/PrototypeFunction.h:
2501         * runtime/RegExpConstructor.cpp:
2502         (JSC::RegExpConstructor::RegExpConstructor):
2503         * runtime/RegExpConstructor.h:
2504         (JSC::RegExpConstructor::createStructure):
2505         * runtime/RegExpObject.cpp:
2506         (JSC::RegExpObject::RegExpObject):
2507         * runtime/RegExpObject.h:
2508         (JSC::RegExpObject::createStructure):
2509         * runtime/RegExpPrototype.cpp:
2510         (JSC::RegExpPrototype::RegExpPrototype):
2511         * runtime/RegExpPrototype.h:
2512         * runtime/StringConstructor.cpp:
2513         (JSC::StringConstructor::StringConstructor):
2514         * runtime/StringConstructor.h:
2515         * runtime/StringObject.cpp:
2516         (JSC::StringObject::StringObject):
2517         * runtime/StringObject.h:
2518         (JSC::StringObject::createStructure):
2519         * runtime/StringObjectThatMasqueradesAsUndefined.h:
2520         (JSC::StringObjectThatMasqueradesAsUndefined::create):
2521         (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
2522         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
2523         * runtime/StringPrototype.cpp:
2524         (JSC::StringPrototype::StringPrototype):
2525         * runtime/StringPrototype.h:
2526         * runtime/Structure.cpp: Copied from JavaScriptCore/runtime/StructureID.cpp.
2527         (JSC::Structure::dumpStatistics):
2528         (JSC::Structure::Structure):
2529         (JSC::Structure::~Structure):
2530         (JSC::Structure::startIgnoringLeaks):
2531         (JSC::Structure::stopIgnoringLeaks):
2532         (JSC::Structure::materializePropertyMap):
2533         (JSC::Structure::getEnumerablePropertyNames):
2534         (JSC::Structure::clearEnumerationCache):
2535         (JSC::Structure::growPropertyStorageCapacity):
2536         (JSC::Structure::addPropertyTransitionToExistingStructure):
2537         (JSC::Structure::addPropertyTransition):
2538         (JSC::Structure::removePropertyTransition):
2539         (JSC::Structure::changePrototypeTransition):
2540         (JSC::Structure::getterSetterTransition):
2541         (JSC::Structure::toDictionaryTransition):
2542         (JSC::Structure::fromDictionaryTransition):
2543         (JSC::Structure::addPropertyWithoutTransition):
2544         (JSC::Structure::removePropertyWithoutTransition):
2545         (JSC::Structure::createCachedPrototypeChain):
2546         (JSC::Structure::checkConsistency):
2547         (JSC::Structure::copyPropertyTable):
2548         (JSC::Structure::get):
2549         (JSC::Structure::put):
2550         (JSC::Structure::remove):
2551         (JSC::Structure::insertIntoPropertyMapHashTable):
2552         (JSC::Structure::createPropertyMapHashTable):
2553         (JSC::Structure::expandPropertyMapHashTable):
2554         (JSC::Structure::rehashPropertyMapHashTable):
2555         (JSC::Structure::getEnumerablePropertyNamesInternal):
2556         * runtime/Structure.h: Copied from JavaScriptCore/runtime/StructureID.h.
2557         (JSC::Structure::create):
2558         (JSC::Structure::previousID):
2559         (JSC::Structure::setCachedPrototypeChain):
2560         (JSC::Structure::cachedPrototypeChain):
2561         (JSC::Structure::):
2562         (JSC::Structure::get):
2563         * runtime/StructureChain.cpp: Copied from JavaScriptCore/runtime/StructureIDChain.cpp.
2564         (JSC::StructureChain::StructureChain):
2565         (JSC::structureChainsAreEqual):
2566         * runtime/StructureChain.h: Copied from JavaScriptCore/runtime/StructureIDChain.h.
2567         (JSC::StructureChain::create):
2568         (JSC::StructureChain::head):
2569         * runtime/StructureID.cpp: Removed.
2570         * runtime/StructureID.h: Removed.
2571         * runtime/StructureIDChain.cpp: Removed.
2572         * runtime/StructureIDChain.h: Removed.
2573         * runtime/StructureIDTransitionTable.h: Removed.
2574         * runtime/StructureTransitionTable.h: Copied from JavaScriptCore/runtime/StructureIDTransitionTable.h.
2575
2576 2008-11-15  Darin Adler  <darin@apple.com>
2577
2578         - fix non-WREC build
2579
2580         * runtime/RegExp.cpp: Put "using namespace WREC" inside #if ENABLE(WREC).
2581
2582 2008-11-15  Kevin Ollivier  <kevino@theolliviers.com>
2583
2584         Reviewed by Timothy Hatcher.
2585         
2586         As ThreadingNone doesn't implement threads, isMainThread should return true,
2587         not false.
2588         
2589         https://bugs.webkit.org/show_bug.cgi?id=22285
2590
2591         * wtf/ThreadingNone.cpp:
2592         (WTF::isMainThread):
2593
2594 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
2595
2596         Reviewed by Sam Weinig.
2597         
2598         Moved all WREC-related code into WREC.cpp and put it in a WREC namespace.
2599         Removed the WREC prefix from class names.
2600
2601         * VM/CTI.cpp:
2602         * VM/CTI.h:
2603         * VM/Machine.h:
2604         (JSC::BytecodeInterpreter::assemblerBuffer):
2605         * masm/X86Assembler.h:
2606         * runtime/RegExp.cpp:
2607         (JSC::RegExp::RegExp):
2608         * wrec/CharacterClassConstructor.cpp:
2609         * wrec/CharacterClassConstructor.h:
2610         * wrec/WREC.cpp:
2611         (WREC::GenerateParenthesesNonGreedyFunctor::GenerateParenthesesNonGreedyFunctor):
2612         (WREC::GeneratePatternCharacterFunctor::generateAtom):
2613         (WREC::GeneratePatternCharacterFunctor::backtrack):
2614         (WREC::GenerateCharacterClassFunctor::generateAtom):
2615         (WREC::GenerateCharacterClassFunctor::backtrack):
2616         (WREC::GenerateBackreferenceFunctor::generateAtom):
2617         (WREC::GenerateBackreferenceFunctor::backtrack):
2618         (WREC::GenerateParenthesesNonGreedyFunctor::generateAtom):
2619         (WREC::GenerateParenthesesNonGreedyFunctor::backtrack):
2620         (WREC::Generator::generateBacktrack1):
2621         (WREC::Generator::generateBacktrackBackreference):
2622         (WREC::Generator::generateBackreferenceQuantifier):
2623         (WREC::Generator::generateNonGreedyQuantifier):
2624         (WREC::Generator::generateGreedyQuantifier):
2625         (WREC::Generator::generatePatternCharacter):
2626         (WREC::Generator::generateCharacterClassInvertedRange):
2627         (WREC::Generator::generateCharacterClassInverted):
2628         (WREC::Generator::generateCharacterClass):
2629         (WREC::Generator::generateParentheses):
2630         (WREC::Generator::generateParenthesesNonGreedy):
2631         (WREC::Generator::generateParenthesesResetTrampoline):
2632         (WREC::Generator::generateAssertionBOL):
2633         (WREC::Generator::generateAssertionEOL):
2634         (WREC::Generator::generateAssertionWordBoundary):
2635         (WREC::Generator::generateBackreference):
2636         (WREC::Generator::generateDisjunction):
2637         (WREC::Generator::terminateDisjunction):
2638         (WREC::Parser::parseGreedyQuantifier):
2639         (WREC::Parser::parseQuantifier):
2640         (WREC::Parser::parsePatternCharacterQualifier):
2641         (WREC::Parser::parseCharacterClassQuantifier):
2642         (WREC::Parser::parseBackreferenceQuantifier):
2643         (WREC::Parser::parseParentheses):
2644         (WREC::Parser::parseCharacterClass):
2645         (WREC::Parser::parseOctalEscape):
2646         (WREC::Parser::parseEscape):
2647         (WREC::Parser::parseTerm):
2648         (WREC::Parser::parseDisjunction):
2649         (WREC::compileRegExp):
2650         * wrec/WREC.h:
2651         (WREC::Generator::Generator):
2652         (WREC::Parser::Parser):
2653         (WREC::Parser::parseAlternative):
2654
2655 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
2656
2657         Reviewed by Sam Weinig.
2658         
2659         Changed another case of "m_jit" to "m_assembler".
2660
2661         * VM/CTI.cpp:
2662         * wrec/WREC.cpp:
2663         * wrec/WREC.h:
2664         (JSC::WRECGenerator::WRECGenerator):
2665         (JSC::WRECParser::WRECParser):
2666
2667 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
2668
2669         Reviewed by Sam Weinig.
2670         
2671         Renamed "jit" to "assembler" and, for brevity, replaced *jit.* with __
2672         using a macro.
2673
2674         * VM/CTI.cpp:
2675         (JSC::CTI::emitGetVirtualRegister):
2676         (JSC::CTI::emitPutCTIArgFromVirtualRegister):
2677         (JSC::CTI::emitPutCTIArg):
2678         (JSC::CTI::emitGetCTIArg):
2679         (JSC::CTI::emitPutCTIArgConstant):
2680         (JSC::CTI::emitPutCTIParam):
2681         (JSC::CTI::emitGetCTIParam):
2682         (JSC::CTI::emitPutToCallFrameHeader):
2683         (JSC::CTI::emitGetFromCallFrameHeader):
2684         (JSC::CTI::emitPutVirtualRegister):
2685         (JSC::CTI::emitInitRegister):
2686         (JSC::CTI::emitAllocateNumber):
2687         (JSC::CTI::emitNakedCall):
2688         (JSC::CTI::emitNakedFastCall):
2689         (JSC::CTI::emitCTICall):
2690         (JSC::CTI::emitJumpSlowCaseIfNotJSCell):
2691         (JSC::CTI::linkSlowCaseIfNotJSCell):
2692         (JSC::CTI::emitJumpSlowCaseIfNotImmNum):
2693         (JSC::CTI::emitJumpSlowCaseIfNotImmNums):
2694         (JSC::CTI::emitFastArithDeTagImmediate):
2695         (JSC::CTI::emitFastArithDeTagImmediateJumpIfZero):
2696         (JSC::CTI::emitFastArithReTagImmediate):
2697         (JSC::CTI::emitFastArithPotentiallyReTagImmediate):
2698         (JSC::CTI::emitFastArithImmToInt):
2699         (JSC::CTI::emitFastArithIntToImmOrSlowCase):
2700         (JSC::CTI::emitFastArithIntToImmNoCheck):
2701         (JSC::CTI::emitArithIntToImmWithJump):
2702         (JSC::CTI::emitTagAsBoolImmediate):
2703         (JSC::CTI::CTI):
2704         (JSC::CTI::compileOpCallInitializeCallFrame):
2705         (JSC::CTI::compileOpCall):
2706         (JSC::CTI::compileOpStrictEq):
2707         (JSC::CTI::emitSlowScriptCheck):
2708         (JSC::CTI::putDoubleResultToJSNumberCellOrJSImmediate):
2709         (JSC::CTI::compileBinaryArithOp):
2710         (JSC::CTI::compileBinaryArithOpSlowCase):
2711         (JSC::CTI::privateCompileMainPass):
2712         (JSC::CTI::privateCompileLinkPass):
2713         (JSC::CTI::privateCompileSlowCases):
2714         (JSC::CTI::privateCompile):
2715         (JSC::CTI::privateCompileGetByIdSelf):
2716         (JSC::CTI::privateCompileGetByIdProto):
2717         (JSC::CTI::privateCompileGetByIdChain):
2718         (JSC::CTI::privateCompilePutByIdReplace):
2719         (JSC::CTI::privateCompilePutByIdTransition):
2720         (JSC::CTI::privateCompileCTIMachineTrampolines):
2721         (JSC::CTI::privateCompilePatchGetArrayLength):
2722         (JSC::CTI::emitGetVariableObjectRegister):
2723         (JSC::CTI::emitPutVariableObjectRegister):
2724         (JSC::CTI::compileRegExp):
2725         * VM/CTI.h:
2726         * wrec/WREC.cpp:
2727         (JSC::WRECGenerator::generateBacktrack1):
2728         (JSC::WRECGenerator::generateBacktrackBackreference):
2729         (JSC::WRECGenerator::generateBackreferenceQuantifier):
2730         (JSC::WRECGenerator::generateNonGreedyQuantifier):
2731         (JSC::WRECGenerator::generateGreedyQuantifier):
2732         (JSC::WRECGenerator::generatePatternCharacter):
2733         (JSC::WRECGenerator::generateCharacterClassInvertedRange):
2734         (JSC::WRECGenerator::generateCharacterClassInverted):
2735         (JSC::WRECGenerator::generateCharacterClass):
2736         (JSC::WRECGenerator::generateParentheses):
2737         (JSC::WRECGenerator::generateParenthesesNonGreedy):
2738         (JSC::WRECGenerator::generateParenthesesResetTrampoline):
2739         (JSC::WRECGenerator::generateAssertionBOL):
2740         (JSC::WRECGenerator::generateAssertionEOL):
2741         (JSC::WRECGenerator::generateAssertionWordBoundary):
2742         (JSC::WRECGenerator::generateBackreference):
2743         (JSC::WRECGenerator::generateDisjunction):
2744         (JSC::WRECGenerator::terminateDisjunction):
2745
2746 2008-11-15  Sam Weinig  <sam@webkit.org>
2747
2748         Reviewed by Geoffrey Garen.
2749
2750         Remove dead method declaration.
2751
2752         * bytecompiler/CodeGenerator.h:
2753
2754 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
2755
2756         Reviewed by Sam Weinig.
2757         
2758         Renamed LabelID to Label, Label::isForwardLabel to Label::isForward.
2759
2760         * VM/LabelID.h:
2761         (JSC::Label::Label):
2762         (JSC::Label::isForward):
2763         * bytecompiler/CodeGenerator.cpp:
2764         (JSC::BytecodeGenerator::newLabel):
2765         (JSC::BytecodeGenerator::emitLabel):
2766         (JSC::BytecodeGenerator::emitJump):
2767         (JSC::BytecodeGenerator::emitJumpIfTrue):
2768         (JSC::BytecodeGenerator::emitJumpIfFalse):
2769         (JSC::BytecodeGenerator::pushFinallyContext):
2770         (JSC::BytecodeGenerator::emitComplexJumpScopes):
2771         (JSC::BytecodeGenerator::emitJumpScopes):
2772         (JSC::BytecodeGenerator::emitNextPropertyName):
2773         (JSC::BytecodeGenerator::emitCatch):
2774         (JSC::BytecodeGenerator::emitJumpSubroutine):
2775         (JSC::prepareJumpTableForImmediateSwitch):
2776         (JSC::prepareJumpTableForCharacterSwitch):
2777         (JSC::prepareJumpTableForStringSwitch):
2778         (JSC::BytecodeGenerator::endSwitch):
2779         * bytecompiler/CodeGenerator.h:
2780         * bytecompiler/LabelScope.h:
2781         (JSC::LabelScope::LabelScope):
2782         (JSC::LabelScope::breakTarget):
2783         (JSC::LabelScope::continueTarget):
2784         * parser/Nodes.cpp:
2785         (JSC::LogicalOpNode::emitBytecode):
2786         (JSC::ConditionalNode::emitBytecode):
2787         (JSC::IfNode::emitBytecode):
2788         (JSC::IfElseNode::emitBytecode):
2789         (JSC::DoWhileNode::emitBytecode):
2790         (JSC::WhileNode::emitBytecode):
2791         (JSC::ForNode::emitBytecode):
2792         (JSC::ForInNode::emitBytecode):
2793         (JSC::ReturnNode::emitBytecode):
2794         (JSC::CaseBlockNode::emitBytecodeForBlock):
2795         (JSC::TryNode::emitBytecode):
2796
2797 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
2798
2799         Reviewed by Sam Weinig.
2800         
2801         Renamed JITCodeBuffer to AssemblerBuffer and renamed its data members
2802         to be more like the rest of our buffer classes, with a size and a
2803         capacity.
2804         
2805         Added an assert in the unchecked put case to match the test in the checked
2806         put case.
2807         
2808         Changed a C-style cast to a C++-style cast.
2809         
2810         Renamed MAX_INSTRUCTION_SIZE to maxInstructionSize.
2811
2812         * VM/CTI.cpp:
2813         (JSC::CTI::CTI):
2814         (JSC::CTI::compileRegExp):
2815         * VM/Machine.cpp:
2816         (JSC::BytecodeInterpreter::BytecodeInterpreter):
2817         * VM/Machine.h:
2818         (JSC::BytecodeInterpreter::assemblerBuffer):
2819         * masm/X86Assembler.h:
2820         (JSC::AssemblerBuffer::AssemblerBuffer):
2821         (JSC::AssemblerBuffer::~AssemblerBuffer):
2822         (JSC::AssemblerBuffer::ensureSpace):
2823         (JSC::AssemblerBuffer::isAligned):
2824         (JSC::AssemblerBuffer::putByteUnchecked):
2825         (JSC::AssemblerBuffer::putByte):
2826         (JSC::AssemblerBuffer::putShortUnchecked):
2827         (JSC::AssemblerBuffer::putShort):
2828         (JSC::AssemblerBuffer::putIntUnchecked):
2829         (JSC::AssemblerBuffer::putInt):
2830         (JSC::AssemblerBuffer::data):
2831         (JSC::AssemblerBuffer::size):
2832         (JSC::AssemblerBuffer::reset):
2833         (JSC::AssemblerBuffer::copy):
2834         (JSC::AssemblerBuffer::grow):
2835         (JSC::X86Assembler::):
2836         (JSC::X86Assembler::X86Assembler):
2837         (JSC::X86Assembler::testl_i32r):
2838         (JSC::X86Assembler::movl_mr):
2839         (JSC::X86Assembler::movl_rm):
2840         (JSC::X86Assembler::movl_i32m):
2841         (JSC::X86Assembler::emitCall):
2842         (JSC::X86Assembler::label):
2843         (JSC::X86Assembler::emitUnlinkedJmp):
2844         (JSC::X86Assembler::emitUnlinkedJne):
2845         (JSC::X86Assembler::emitUnlinkedJe):
2846         (JSC::X86Assembler::emitUnlinkedJl):
2847         (JSC::X86Assembler::emitUnlinkedJb):
2848         (JSC::X86Assembler::emitUnlinkedJle):
2849         (JSC::X86Assembler::emitUnlinkedJbe):
2850         (JSC::X86Assembler::emitUnlinkedJge):
2851         (JSC::X86Assembler::emitUnlinkedJg):
2852         (JSC::X86Assembler::emitUnlinkedJa):
2853         (JSC::X86Assembler::emitUnlinkedJae):
2854         (JSC::X86Assembler::emitUnlinkedJo):
2855         (JSC::X86Assembler::emitUnlinkedJp):
2856         (JSC::X86Assembler::emitUnlinkedJs):
2857         (JSC::X86Assembler::link):
2858         (JSC::X86Assembler::emitModRm_rr):
2859         (JSC::X86Assembler::emitModRm_rm):
2860         (JSC::X86Assembler::emitModRm_opr):
2861
2862 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
2863
2864         Suggested by Maciej Stachowiak.
2865         
2866         Reverted most "opcode" => "bytecode" renames. We use "bytecode" as a
2867         mass noun to refer to a stream of instructions. Each instruction may be
2868         an opcode or an operand.
2869
2870         * VM/CTI.cpp:
2871         (JSC::CTI::emitCTICall):
2872         (JSC::CTI::compileOpCall):
2873         (JSC::CTI::compileBinaryArithOp):
2874         (JSC::CTI::compileBinaryArithOpSlowCase):
2875         (JSC::CTI::privateCompileMainPass):
2876         (JSC::CTI::privateCompileSlowCases):
2877         (JSC::CTI::privateCompile):
2878         * VM/CTI.h:
2879         * VM/CodeBlock.cpp:
2880         (JSC::CodeBlock::printStructureIDs):
2881         (JSC::CodeBlock::dump):
2882         (JSC::CodeBlock::derefStructureIDs):
2883         (JSC::CodeBlock::refStructureIDs):
2884         * VM/CodeBlock.h:
2885         * VM/ExceptionHelpers.cpp:
2886         (JSC::createNotAnObjectError):
2887         * VM/Instruction.h:
2888         (JSC::Instruction::Instruction):
2889         (JSC::Instruction::):
2890         * VM/Machine.cpp:
2891         (JSC::BytecodeInterpreter::isOpcode):
2892         (JSC::BytecodeInterpreter::throwException):
2893         (JSC::BytecodeInterpreter::tryCachePutByID):
2894         (JSC::BytecodeInterpreter::uncachePutByID):
2895         (JSC::BytecodeInterpreter::tryCacheGetByID):
2896         (JSC::BytecodeInterpreter::uncacheGetByID):
2897         (JSC::BytecodeInterpreter::privateExecute):
2898         (JSC::BytecodeInterpreter::tryCTICachePutByID):
2899         (JSC::BytecodeInterpreter::tryCTICacheGetByID):
2900         * VM/Machine.h:
2901         (JSC::BytecodeInterpreter::getOpcode):
2902         (JSC::BytecodeInterpreter::getOpcodeID):
2903         (JSC::BytecodeInterpreter::isCallBytecode):
2904         * VM/Opcode.cpp:
2905         (JSC::):
2906         (JSC::OpcodeStats::OpcodeStats):
2907         (JSC::compareOpcodeIndices):
2908         (JSC::compareOpcodePairIndices):
2909         (JSC::OpcodeStats::~OpcodeStats):
2910         (JSC::OpcodeStats::recordInstruction):
2911         (JSC::OpcodeStats::resetLastInstruction):
2912         * VM/Opcode.h:
2913         (JSC::):
2914         (JSC::padOpcodeName):
2915         * VM/SamplingTool.cpp:
2916         (JSC::ScopeSampleRecord::sample):
2917         (JSC::SamplingTool::run):
2918         (JSC::compareOpcodeIndicesSampling):
2919         (JSC::SamplingTool::dump):
2920         * VM/SamplingTool.h:
2921         (JSC::ScopeSampleRecord::ScopeSampleRecord):
2922         (JSC::SamplingTool::SamplingTool):
2923         * bytecompiler/CodeGenerator.cpp:
2924         (JSC::BytecodeGenerator::BytecodeGenerator):
2925         (JSC::BytecodeGenerator::emitLabel):
2926         (JSC::BytecodeGenerator::emitOpcode):
2927         (JSC::BytecodeGenerator::emitJump):
2928         (JSC::BytecodeGenerator::emitJumpIfTrue):
2929         (JSC::BytecodeGenerator::emitJumpIfFalse):
2930         (JSC::BytecodeGenerator::emitMove):
2931         (JSC::BytecodeGenerator::emitUnaryOp):
2932         (JSC::BytecodeGenerator::emitPreInc):
2933         (JSC::BytecodeGenerator::emitPreDec):
2934         (JSC::BytecodeGenerator::emitPostInc):
2935         (JSC::BytecodeGenerator::emitPostDec):
2936         (JSC::BytecodeGenerator::emitBinaryOp):
2937         (JSC::BytecodeGenerator::emitEqualityOp):
2938         (JSC::BytecodeGenerator::emitUnexpectedLoad):
2939         (JSC::BytecodeGenerator::emitInstanceOf):
2940         (JSC::BytecodeGenerator::emitResolve):
2941         (JSC::BytecodeGenerator::emitGetScopedVar):
2942         (JSC::BytecodeGenerator::emitPutScopedVar):
2943         (JSC::BytecodeGenerator::emitResolveBase):
2944         (JSC::BytecodeGenerator::emitResolveWithBase):
2945         (JSC::BytecodeGenerator::emitResolveFunction):
2946         (JSC::BytecodeGenerator::emitGetById):
2947         (JSC::BytecodeGenerator::emitPutById):
2948         (JSC::BytecodeGenerator::emitPutGetter):
2949         (JSC::BytecodeGenerator::emitPutSetter):
2950         (JSC::BytecodeGenerator::emitDeleteById):
2951         (JSC::BytecodeGenerator::emitGetByVal):
2952         (JSC::BytecodeGenerator::emitPutByVal):
2953         (JSC::BytecodeGenerator::emitDeleteByVal):
2954         (JSC::BytecodeGenerator::emitPutByIndex):
2955         (JSC::BytecodeGenerator::emitNewObject):
2956         (JSC::BytecodeGenerator::emitNewArray):
2957         (JSC::BytecodeGenerator::emitNewFunction):
2958         (JSC::BytecodeGenerator::emitNewRegExp):
2959         (JSC::BytecodeGenerator::emitNewFunctionExpression):
2960         (JSC::BytecodeGenerator::emitCall):
2961         (JSC::BytecodeGenerator::emitReturn):
2962         (JSC::BytecodeGenerator::emitUnaryNoDstOp):
2963         (JSC::BytecodeGenerator::emitConstruct):
2964         (JSC::BytecodeGenerator::emitPopScope):
2965         (JSC::BytecodeGenerator::emitDebugHook):
2966         (JSC::BytecodeGenerator::emitComplexJumpScopes):
2967         (JSC::BytecodeGenerator::emitJumpScopes):
2968         (JSC::BytecodeGenerator::emitNextPropertyName):
2969         (JSC::BytecodeGenerator::emitCatch):
2970         (JSC::BytecodeGenerator::emitNewError):
2971         (JSC::BytecodeGenerator::emitJumpSubroutine):
2972         (JSC::BytecodeGenerator::emitSubroutineReturn):
2973         (JSC::BytecodeGenerator::emitPushNewScope):
2974         (JSC::BytecodeGenerator::beginSwitch):
2975         * bytecompiler/CodeGenerator.h:
2976         * jsc.cpp:
2977         (runWithScripts):
2978         * masm/X86Assembler.h:
2979         (JSC::X86Assembler::):
2980         (JSC::X86Assembler::emitModRm_opr):
2981         (JSC::X86Assembler::emitModRm_opr_Unchecked):
2982         (JSC::X86Assembler::emitModRm_opm):
2983         (JSC::X86Assembler::emitModRm_opm_Unchecked):
2984         (JSC::X86Assembler::emitModRm_opmsib):
2985         * parser/Nodes.cpp:
2986         (JSC::UnaryOpNode::emitBytecode):
2987         (JSC::BinaryOpNode::emitBytecode):
2988         (JSC::ReverseBinaryOpNode::emitBytecode):
2989         (JSC::ThrowableBinaryOpNode::emitBytecode):
2990         (JSC::emitReadModifyAssignment):
2991         (JSC::ScopeNode::ScopeNode):
2992         * parser/Nodes.h:
2993         (JSC::UnaryPlusNode::):
2994         (JSC::NegateNode::):
2995         (JSC::BitwiseNotNode::):
2996         (JSC::LogicalNotNode::):
2997         (JSC::MultNode::):
2998         (JSC::DivNode::):
2999         (JSC::ModNode::):
3000         (JSC::AddNode::):
3001         (JSC::SubNode::):
3002         (JSC::LeftShiftNode::):
3003         (JSC::RightShiftNode::):
3004         (JSC::UnsignedRightShiftNode::):
3005         (JSC::LessNode::):
3006         (JSC::GreaterNode::):
3007         (JSC::LessEqNode::):
3008         (JSC::GreaterEqNode::):
3009         (JSC::InstanceOfNode::):
3010         (JSC::InNode::):
3011         (JSC::EqualNode::):
3012         (JSC::NotEqualNode::):
3013         (JSC::StrictEqualNode::):
3014         (JSC::NotStrictEqualNode::):
3015         (JSC::BitAndNode::):
3016         (JSC::BitOrNode::):
3017         (JSC::BitXOrNode::):
3018         * runtime/StructureID.cpp:
3019         (JSC::StructureID::fromDictionaryTransition):
3020         * wtf/Platform.h:
3021
3022 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
3023
3024         Reviewed by Sam Weinig.
3025         
3026         Renames:
3027         
3028         CodeGenerator => BytecodeGenerator
3029         emitCodeForBlock => emitBytecodeForBlock
3030         generatedByteCode => generatedBytecode
3031         generateCode => generateBytecode
3032
3033         * JavaScriptCore.exp:
3034         * bytecompiler/CodeGenerator.cpp:
3035         (JSC::BytecodeGenerator::setDumpsGeneratedCode):
3036         (JSC::BytecodeGenerator::generate):
3037         (JSC::BytecodeGenerator::addVar):
3038         (JSC::BytecodeGenerator::addGlobalVar):
3039         (JSC::BytecodeGenerator::allocateConstants):
3040         (JSC::BytecodeGenerator::BytecodeGenerator):
3041         (JSC::BytecodeGenerator::addParameter):
3042         (JSC::BytecodeGenerator::registerFor):
3043         (JSC::BytecodeGenerator::constRegisterFor):
3044         (JSC::BytecodeGenerator::isLocal):
3045         (JSC::BytecodeGenerator::isLocalConstant):
3046         (JSC::BytecodeGenerator::newRegister):
3047         (JSC::BytecodeGenerator::newTemporary):
3048         (JSC::BytecodeGenerator::highestUsedRegister):
3049         (JSC::BytecodeGenerator::newLabelScope):
3050         (JSC::BytecodeGenerator::newLabel):
3051         (JSC::BytecodeGenerator::emitLabel):
3052         (JSC::BytecodeGenerator::emitBytecode):
3053         (JSC::BytecodeGenerator::retrieveLastBinaryOp):
3054         (JSC::BytecodeGenerator::retrieveLastUnaryOp):
3055         (JSC::BytecodeGenerator::rewindBinaryOp):
3056         (JSC::BytecodeGenerator::rewindUnaryOp):
3057         (JSC::BytecodeGenerator::emitJump):
3058         (JSC::BytecodeGenerator::emitJumpIfTrue):
3059         (JSC::BytecodeGenerator::emitJumpIfFalse):
3060         (JSC::BytecodeGenerator::addConstant):
3061         (JSC::BytecodeGenerator::addUnexpectedConstant):
3062         (JSC::BytecodeGenerator::addRegExp):
3063         (JSC::BytecodeGenerator::emitMove):
3064         (JSC::BytecodeGenerator::emitUnaryOp):
3065         (JSC::BytecodeGenerator::emitPreInc):
3066         (JSC::BytecodeGenerator::emitPreDec):
3067         (JSC::BytecodeGenerator::emitPostInc):
3068         (JSC::BytecodeGenerator::emitPostDec):
3069         (JSC::BytecodeGenerator::emitBinaryOp):
3070         (JSC::BytecodeGenerator::emitEqualityOp):
3071         (JSC::BytecodeGenerator::emitLoad):
3072         (JSC::BytecodeGenerator::emitUnexpectedLoad):
3073         (JSC::BytecodeGenerator::findScopedProperty):
3074         (JSC::BytecodeGenerator::emitInstanceOf):
3075         (JSC::BytecodeGenerator::emitResolve):
3076         (JSC::BytecodeGenerator::emitGetScopedVar):
3077         (JSC::BytecodeGenerator::emitPutScopedVar):
3078         (JSC::BytecodeGenerator::emitResolveBase):
3079         (JSC::BytecodeGenerator::emitResolveWithBase):
3080         (JSC::BytecodeGenerator::emitResolveFunction):
3081         (JSC::BytecodeGenerator::emitGetById):
3082         (JSC::BytecodeGenerator::emitPutById):
3083         (JSC::BytecodeGenerator::emitPutGetter):
3084         (JSC::BytecodeGenerator::emitPutSetter):
3085         (JSC::BytecodeGenerator::emitDeleteById):
3086         (JSC::BytecodeGenerator::emitGetByVal):
3087         (JSC::BytecodeGenerator::emitPutByVal):
3088         (JSC::BytecodeGenerator::emitDeleteByVal):
3089         (JSC::BytecodeGenerator::emitPutByIndex):
3090         (JSC::BytecodeGenerator::emitNewObject):
3091         (JSC::BytecodeGenerator::emitNewArray):
3092         (JSC::BytecodeGenerator::emitNewFunction):
3093         (JSC::BytecodeGenerator::emitNewRegExp):
3094         (JSC::BytecodeGenerator::emitNewFunctionExpression):
3095         (JSC::BytecodeGenerator::emitCall):
3096         (JSC::BytecodeGenerator::emitCallEval):
3097         (JSC::BytecodeGenerator::emitReturn):
3098         (JSC::BytecodeGenerator::emitUnaryNoDstOp):
3099         (JSC::BytecodeGenerator::emitConstruct):
3100         (JSC::BytecodeGenerator::emitPushScope):
3101         (JSC::BytecodeGenerator::emitPopScope):
3102         (JSC::BytecodeGenerator::emitDebugHook):
3103         (JSC::BytecodeGenerator::pushFinallyContext):
3104         (JSC::BytecodeGenerator::popFinallyContext):
3105         (JSC::BytecodeGenerator::breakTarget):
3106         (JSC::BytecodeGenerator::continueTarget):
3107         (JSC::BytecodeGenerator::emitComplexJumpScopes):
3108         (JSC::BytecodeGenerator::emitJumpScopes):
3109         (JSC::BytecodeGenerator::emitNextPropertyName):
3110         (JSC::BytecodeGenerator::emitCatch):
3111         (JSC::BytecodeGenerator::emitNewError):
3112         (JSC::BytecodeGenerator::emitJumpSubroutine):
3113         (JSC::BytecodeGenerator::emitSubroutineReturn):
3114         (JSC::BytecodeGenerator::emitPushNewScope):
3115         (JSC::BytecodeGenerator::beginSwitch):
3116         (JSC::BytecodeGenerator::endSwitch):
3117         (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
3118         * bytecompiler/CodeGenerator.h:
3119         * jsc.cpp:
3120         (runWithScripts):
3121         * parser/Nodes.cpp:
3122         (JSC::ThrowableExpressionData::emitThrowError):
3123         (JSC::NullNode::emitBytecode):
3124         (JSC::BooleanNode::emitBytecode):
3125         (JSC::NumberNode::emitBytecode):
3126         (JSC::StringNode::emitBytecode):
3127         (JSC::RegExpNode::emitBytecode):
3128         (JSC::ThisNode::emitBytecode):
3129         (JSC::ResolveNode::isPure):
3130         (JSC::ResolveNode::emitBytecode):
3131         (JSC::ArrayNode::emitBytecode):
3132         (JSC::ObjectLiteralNode::emitBytecode):
3133         (JSC::PropertyListNode::emitBytecode):
3134         (JSC::BracketAccessorNode::emitBytecode):
3135         (JSC::DotAccessorNode::emitBytecode):
3136         (JSC::ArgumentListNode::emitBytecode):
3137         (JSC::NewExprNode::emitBytecode):
3138         (JSC::EvalFunctionCallNode::emitBytecode):
3139         (JSC::FunctionCallValueNode::emitBytecode):
3140         (JSC::FunctionCallResolveNode::emitBytecode):
3141         (JSC::FunctionCallBracketNode::emitBytecode):
3142         (JSC::FunctionCallDotNode::emitBytecode):
3143         (JSC::emitPreIncOrDec):
3144         (JSC::emitPostIncOrDec):
3145         (JSC::PostfixResolveNode::emitBytecode):
3146         (JSC::PostfixBracketNode::emitBytecode):
3147         (JSC::PostfixDotNode::emitBytecode):
3148         (JSC::PostfixErrorNode::emitBytecode):
3149         (JSC::DeleteResolveNode::emitBytecode):
3150         (JSC::DeleteBracketNode::emitBytecode):
3151         (JSC::DeleteDotNode::emitBytecode):
3152         (JSC::DeleteValueNode::emitBytecode):
3153         (JSC::VoidNode::emitBytecode):
3154         (JSC::TypeOfResolveNode::emitBytecode):
3155         (JSC::TypeOfValueNode::emitBytecode):
3156         (JSC::PrefixResolveNode::emitBytecode):
3157         (JSC::PrefixBracketNode::emitBytecode):
3158         (JSC::PrefixDotNode::emitBytecode):
3159         (JSC::PrefixErrorNode::emitBytecode):
3160         (JSC::UnaryOpNode::emitBytecode):
3161         (JSC::BinaryOpNode::emitBytecode):
3162         (JSC::EqualNode::emitBytecode):
3163         (JSC::StrictEqualNode::emitBytecode):
3164         (JSC::ReverseBinaryOpNode::emitBytecode):
3165         (JSC::ThrowableBinaryOpNode::emitBytecode):
3166         (JSC::InstanceOfNode::emitBytecode):
3167         (JSC::LogicalOpNode::emitBytecode):
3168         (JSC::ConditionalNode::emitBytecode):
3169         (JSC::emitReadModifyAssignment):
3170         (JSC::ReadModifyResolveNode::emitBytecode):
3171         (JSC::AssignResolveNode::emitBytecode):
3172         (JSC::AssignDotNode::emitBytecode):
3173         (JSC::ReadModifyDotNode::emitBytecode):
3174         (JSC::AssignErrorNode::emitBytecode):
3175         (JSC::AssignBracketNode::emitBytecode):
3176         (JSC::ReadModifyBracketNode::emitBytecode):
3177         (JSC::CommaNode::emitBytecode):
3178         (JSC::ConstDeclNode::emitCodeSingle):
3179         (JSC::ConstDeclNode::emitBytecode):
3180         (JSC::ConstStatementNode::emitBytecode):
3181         (JSC::statementListEmitCode):
3182         (JSC::BlockNode::emitBytecode):
3183         (JSC::EmptyStatementNode::emitBytecode):
3184         (JSC::DebuggerStatementNode::emitBytecode):
3185         (JSC::ExprStatementNode::emitBytecode):
3186         (JSC::VarStatementNode::emitBytecode):
3187         (JSC::IfNode::emitBytecode):
3188         (JSC::IfElseNode::emitBytecode):
3189         (JSC::DoWhileNode::emitBytecode):
3190         (JSC::WhileNode::emitBytecode):
3191         (JSC::ForNode::emitBytecode):
3192         (JSC::ForInNode::emitBytecode):
3193         (JSC::ContinueNode::emitBytecode):
3194         (JSC::BreakNode::emitBytecode):
3195         (JSC::ReturnNode::emitBytecode):
3196         (JSC::WithNode::emitBytecode):
3197         (JSC::CaseBlockNode::emitBytecodeForBlock):
3198         (JSC::SwitchNode::emitBytecode):
3199         (JSC::LabelNode::emitBytecode):
3200         (JSC::ThrowNode::emitBytecode):
3201         (JSC::TryNode::emitBytecode):
3202         (JSC::EvalNode::emitBytecode):
3203         (JSC::EvalNode::generateBytecode):
3204         (JSC::FunctionBodyNode::generateBytecode):
3205         (JSC::FunctionBodyNode::emitBytecode):
3206         (JSC::ProgramNode::emitBytecode):
3207         (JSC::ProgramNode::generateBytecode):
3208         (JSC::FuncDeclNode::emitBytecode):
3209         (JSC::FuncExprNode::emitBytecode):
3210         * parser/Nodes.h:
3211         (JSC::ExpressionNode::):
3212         (JSC::BooleanNode::):
3213         (JSC::NumberNode::):
3214         (JSC::StringNode::):
3215         (JSC::ProgramNode::):
3216         (JSC::EvalNode::):
3217         (JSC::FunctionBodyNode::):
3218         * runtime/Arguments.h:
3219         (JSC::Arguments::getArgumentsData):
3220         (JSC::JSActivation::copyRegisters):
3221         * runtime/JSActivation.cpp:
3222         (JSC::JSActivation::mark):
3223         * runtime/JSActivation.h:
3224         (JSC::JSActivation::JSActivationData::JSActivationData):
3225         * runtime/JSFunction.cpp:
3226         (JSC::JSFunction::~JSFunction):
3227
3228 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
3229
3230         Reviewed by Sam Weinig.
3231         
3232         Renamed all forms of "byte code" "opcode" "op code" "code" "bitcode"
3233         etc. to "bytecode".
3234
3235         * VM/CTI.cpp:
3236         (JSC::CTI::printBytecodeOperandTypes):
3237         (JSC::CTI::emitAllocateNumber):
3238         (JSC::CTI::emitNakedCall):
3239         (JSC::CTI::emitNakedFastCall):
3240         (JSC::CTI::emitCTICall):
3241         (JSC::CTI::emitJumpSlowCaseIfNotJSCell):
3242         (JSC::CTI::emitJumpSlowCaseIfNotImmNum):
3243         (JSC::CTI::emitJumpSlowCaseIfNotImmNums):
3244         (JSC::CTI::emitFastArithIntToImmOrSlowCase):
3245         (JSC::CTI::compileOpCall):
3246         (JSC::CTI::emitSlowScriptCheck):
3247         (JSC::CTI::compileBinaryArithOp):
3248         (JSC::CTI::compileBinaryArithOpSlowCase):
3249         (JSC::CTI::privateCompileMainPass):
3250         (JSC::CTI::privateCompileSlowCases):
3251         (JSC::CTI::privateCompile):
3252         * VM/CTI.h:
3253         (JSC::CallRecord::CallRecord):
3254         (JSC::SwitchRecord::SwitchRecord):
3255         * VM/CodeBlock.cpp:
3256         (JSC::CodeBlock::printStructureIDs):
3257         (JSC::CodeBlock::dump):
3258         (JSC::CodeBlock::~CodeBlock):
3259         (JSC::CodeBlock::derefStructureIDs):
3260         (JSC::CodeBlock::refStructureIDs):
3261         * VM/CodeBlock.h:
3262         (JSC::StructureStubInfo::StructureStubInfo):
3263         * VM/ExceptionHelpers.cpp:
3264         (JSC::createNotAnObjectError):
3265         * VM/Instruction.h:
3266         (JSC::Instruction::Instruction):
3267         (JSC::Instruction::):
3268         * VM/Machine.cpp:
3269         (JSC::BytecodeInterpreter::isBytecode):
3270         (JSC::BytecodeInterpreter::throwException):
3271         (JSC::BytecodeInterpreter::execute):
3272         (JSC::BytecodeInterpreter::tryCachePutByID):
3273         (JSC::BytecodeInterpreter::uncachePutByID):
3274         (JSC::BytecodeInterpreter::tryCacheGetByID):
3275         (JSC::BytecodeInterpreter::uncacheGetByID):
3276         (JSC::BytecodeInterpreter::privateExecute):
3277         (JSC::BytecodeInterpreter::tryCTICachePutByID):
3278         (JSC::BytecodeInterpreter::tryCTICacheGetByID):
3279         (JSC::BytecodeInterpreter::cti_op_call_JSFunction):
3280         (JSC::BytecodeInterpreter::cti_vm_dontLazyLinkCall):
3281         (JSC::BytecodeInterpreter::cti_vm_lazyLinkCall):
3282         * VM/Machine.h:
3283         (JSC::BytecodeInterpreter::getBytecode):
3284         (JSC::BytecodeInterpreter::getBytecodeID):
3285         (JSC::BytecodeInterpreter::isCallBytecode):
3286         * VM/Opcode.cpp:
3287         (JSC::):
3288         (JSC::BytecodeStats::BytecodeStats):
3289         (JSC::compareBytecodeIndices):
3290         (JSC::compareBytecodePairIndices):
3291         (JSC::BytecodeStats::~BytecodeStats):
3292         (JSC::BytecodeStats::recordInstruction):
3293         (JSC::BytecodeStats::resetLastInstruction):
3294         * VM/Opcode.h:
3295         (JSC::):
3296         (JSC::padBytecodeName):
3297         * VM/SamplingTool.cpp:
3298         (JSC::ScopeSampleRecord::sample):
3299         (JSC::SamplingTool::run):
3300         (JSC::compareBytecodeIndicesSampling):
3301         (JSC::SamplingTool::dump):
3302         * VM/SamplingTool.h:
3303         (JSC::ScopeSampleRecord::ScopeSampleRecord):
3304         (JSC::SamplingTool::SamplingTool):
3305         * bytecompiler/CodeGenerator.cpp:
3306         (JSC::CodeGenerator::generate):
3307         (JSC::CodeGenerator::CodeGenerator):
3308         (JSC::CodeGenerator::emitLabel):
3309         (JSC::CodeGenerator::emitBytecode):
3310         (JSC::CodeGenerator::emitJump):
3311         (JSC::CodeGenerator::emitJumpIfTrue):
3312         (JSC::CodeGenerator::emitJumpIfFalse):
3313         (JSC::CodeGenerator::emitMove):
3314         (JSC::CodeGenerator::emitUnaryOp):
3315         (JSC::CodeGenerator::emitPreInc):
3316         (JSC::CodeGenerator::emitPreDec):
3317         (JSC::CodeGenerator::emitPostInc):
3318         (JSC::CodeGenerator::emitPostDec):
3319         (JSC::CodeGenerator::emitBinaryOp):
3320         (JSC::CodeGenerator::emitEqualityOp):
3321         (JSC::CodeGenerator::emitUnexpectedLoad):
3322         (JSC::CodeGenerator::emitInstanceOf):
3323         (JSC::CodeGenerator::emitResolve):
3324         (JSC::CodeGenerator::emitGetScopedVar):
3325         (JSC::CodeGenerator::emitPutScopedVar):
3326         (JSC::CodeGenerator::emitResolveBase):
3327         (JSC::CodeGenerator::emitResolveWithBase):
3328         (JSC::CodeGenerator::emitResolveFunction):
3329         (JSC::CodeGenerator::emitGetById):
3330         (JSC::CodeGenerator::emitPutById):
3331         (JSC::CodeGenerator::emitPutGetter):
3332         (JSC::CodeGenerator::emitPutSetter):
3333         (JSC::CodeGenerator::emitDeleteById):
3334         (JSC::CodeGenerator::emitGetByVal):
3335         (JSC::CodeGenerator::emitPutByVal):
3336         (JSC::CodeGenerator::emitDeleteByVal):
3337         (JSC::CodeGenerator::emitPutByIndex):
3338         (JSC::CodeGenerator::emitNewObject):
3339         (JSC::CodeGenerator::emitNewArray):
3340         (JSC::CodeGenerator::emitNewFunction):
3341         (JSC::CodeGenerator::emitNewRegExp):
3342         (JSC::CodeGenerator::emitNewFunctionExpression):
3343         (JSC::CodeGenerator::emitCall):
3344         (JSC::CodeGenerator::emitReturn):
3345         (JSC::CodeGenerator::emitUnaryNoDstOp):
3346         (JSC::CodeGenerator::emitConstruct):
3347         (JSC::CodeGenerator::emitPopScope):
3348         (JSC::CodeGenerator::emitDebugHook):
3349         (JSC::CodeGenerator::emitComplexJumpScopes):
3350         (JSC::CodeGenerator::emitJumpScopes):
3351         (JSC::CodeGenerator::emitNextPropertyName):
3352         (JSC::CodeGenerator::emitCatch):
3353         (JSC::CodeGenerator::emitNewError):
3354         (JSC::CodeGenerator::emitJumpSubroutine):
3355         (JSC::CodeGenerator::emitSubroutineReturn):
3356         (JSC::CodeGenerator::emitPushNewScope):
3357         (JSC::CodeGenerator::beginSwitch):
3358         (JSC::CodeGenerator::endSwitch):
3359         * bytecompiler/CodeGenerator.h:
3360         (JSC::CodeGenerator::emitNode):
3361         * jsc.cpp:
3362         (runWithScripts):
3363         * masm/X86Assembler.h:
3364         (JSC::X86Assembler::):
3365         (JSC::X86Assembler::emitModRm_opr):
3366         (JSC::X86Assembler::emitModRm_opr_Unchecked):
3367         (JSC::X86Assembler::emitModRm_opm):
3368         (JSC::X86Assembler::emitModRm_opm_Unchecked):
3369         (JSC::X86Assembler::emitModRm_opmsib):
3370         * parser/Nodes.cpp:
3371         (JSC::NullNode::emitBytecode):
3372         (JSC::BooleanNode::emitBytecode):
3373         (JSC::NumberNode::emitBytecode):
3374         (JSC::StringNode::emitBytecode):
3375         (JSC::RegExpNode::emitBytecode):
3376         (JSC::ThisNode::emitBytecode):
3377         (JSC::ResolveNode::emitBytecode):
3378         (JSC::ArrayNode::emitBytecode):
3379         (JSC::ObjectLiteralNode::emitBytecode):
3380         (JSC::PropertyListNode::emitBytecode):
3381         (JSC::BracketAccessorNode::emitBytecode):
3382         (JSC::DotAccessorNode::emitBytecode):
3383         (JSC::ArgumentListNode::emitBytecode):
3384         (JSC::NewExprNode::emitBytecode):
3385         (JSC::EvalFunctionCallNode::emitBytecode):
3386         (JSC::FunctionCallValueNode::emitBytecode):
3387         (JSC::FunctionCallResolveNode::emitBytecode):
3388         (JSC::FunctionCallBracketNode::emitBytecode):
3389         (JSC::FunctionCallDotNode::emitBytecode):
3390         (JSC::PostfixResolveNode::emitBytecode):
3391         (JSC::PostfixBracketNode::emitBytecode):
3392         (JSC::PostfixDotNode::emitBytecode):
3393         (JSC::PostfixErrorNode::emitBytecode):
3394         (JSC::DeleteResolveNode::emitBytecode):
3395         (JSC::DeleteBracketNode::emitBytecode):
3396         (JSC::DeleteDotNode::emitBytecode):
3397         (JSC::DeleteValueNode::emitBytecode):
3398         (JSC::VoidNode::emitBytecode):
3399         (JSC::TypeOfResolveNode::emitBytecode):
3400         (JSC::TypeOfValueNode::emitBytecode):
3401         (JSC::PrefixResolveNode::emitBytecode):
3402         (JSC::PrefixBracketNode::emitBytecode):
3403         (JSC::PrefixDotNode::emitBytecode):
3404         (JSC::PrefixErrorNode::emitBytecode):
3405         (JSC::UnaryOpNode::emitBytecode):
3406         (JSC::BinaryOpNode::emitBytecode):
3407         (JSC::EqualNode::emitBytecode):
3408         (JSC::StrictEqualNode::emitBytecode):
3409         (JSC::ReverseBinaryOpNode::emitBytecode):
3410         (JSC::ThrowableBinaryOpNode::emitBytecode):
3411         (JSC::InstanceOfNode::emitBytecode):
3412         (JSC::LogicalOpNode::emitBytecode):
3413         (JSC::ConditionalNode::emitBytecode):
3414         (JSC::emitReadModifyAssignment):
3415         (JSC::ReadModifyResolveNode::emitBytecode):
3416         (JSC::AssignResolveNode::emitBytecode):
3417         (JSC::AssignDotNode::emitBytecode):
3418         (JSC::ReadModifyDotNode::emitBytecode):
3419         (JSC::AssignErrorNode::emitBytecode):
3420         (JSC::AssignBracketNode::emitBytecode):
3421         (JSC::ReadModifyBracketNode::emitBytecode):
3422         (JSC::CommaNode::emitBytecode):
3423         (JSC::ConstDeclNode::emitBytecode):
3424         (JSC::ConstStatementNode::emitBytecode):
3425         (JSC::BlockNode::emitBytecode):
3426         (JSC::EmptyStatementNode::emitBytecode):
3427         (JSC::DebuggerStatementNode::emitBytecode):
3428         (JSC::ExprStatementNode::emitBytecode):
3429         (JSC::VarStatementNode::emitBytecode):
3430         (JSC::IfNode::emitBytecode):
3431         (JSC::IfElseNode::emitBytecode):
3432         (JSC::DoWhileNode::emitBytecode):
3433         (JSC::WhileNode::emitBytecode):
3434         (JSC::ForNode::emitBytecode):
3435         (JSC::ForInNode::emitBytecode):
3436         (JSC::ContinueNode::emitBytecode):
3437         (JSC::BreakNode::emitBytecode):
3438         (JSC::ReturnNode::emitBytecode):
3439         (JSC::WithNode::emitBytecode):
3440         (JSC::SwitchNode::emitBytecode):
3441         (JSC::LabelNode::emitBytecode):
3442         (JSC::ThrowNode::emitBytecode):
3443         (JSC::TryNode::emitBytecode):
3444         (JSC::ScopeNode::ScopeNode):
3445         (JSC::EvalNode::emitBytecode):
3446         (JSC::FunctionBodyNode::emitBytecode):
3447         (JSC::ProgramNode::emitBytecode):
3448         (JSC::FuncDeclNode::emitBytecode):
3449         (JSC::FuncExprNode::emitBytecode):
3450         * parser/Nodes.h:
3451         (JSC::UnaryPlusNode::):
3452         (JSC::NegateNode::):
3453         (JSC::BitwiseNotNode::):
3454         (JSC::LogicalNotNode::):
3455         (JSC::MultNode::):
3456         (JSC::DivNode::):
3457         (JSC::ModNode::):
3458         (JSC::AddNode::):
3459         (JSC::SubNode::):
3460         (JSC::LeftShiftNode::):
3461         (JSC::RightShiftNode::):
3462         (JSC::UnsignedRightShiftNode::):
3463         (JSC::LessNode::):
3464         (JSC::GreaterNode::):
3465         (JSC::LessEqNode::):
3466         (JSC::GreaterEqNode::):
3467         (JSC::InstanceOfNode::):
3468         (JSC::InNode::):
3469         (JSC::EqualNode::):
3470         (JSC::NotEqualNode::):
3471         (JSC::StrictEqualNode::):
3472         (JSC::NotStrictEqualNode::):
3473         (JSC::BitAndNode::):
3474         (JSC::BitOrNode::):
3475         (JSC::BitXOrNode::):
3476         (JSC::ProgramNode::):
3477         (JSC::EvalNode::):
3478         (JSC::FunctionBodyNode::):
3479         * runtime/JSNotAnObject.h:
3480         * runtime/StructureID.cpp:
3481         (JSC::StructureID::fromDictionaryTransition):
3482         * wtf/Platform.h:
3483
3484 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
3485
3486         Reviewed by Sam Weinig.
3487         
3488         Renamed Machine to BytecodeInterpreter.
3489         
3490         Nixed the Interpreter class, and changed its two functions to stand-alone
3491         functions.
3492
3493         * JavaScriptCore.exp:
3494         * VM/CTI.cpp:
3495         (JSC::):
3496         (JSC::CTI::emitCTICall):
3497         (JSC::CTI::CTI):
3498         (JSC::CTI::compileOpCall):
3499         (JSC::CTI::emitSlowScriptCheck):
3500         (JSC::CTI::compileBinaryArithOpSlowCase):
3501         (JSC::CTI::privateCompileMainPass):
3502         (JSC::CTI::privateCompileSlowCases):
3503         (JSC::CTI::privateCompile):
3504         (JSC::CTI::privateCompileGetByIdSelf):
3505         (JSC::CTI::privateCompileGetByIdProto):
3506         (JSC::CTI::privateCompileGetByIdChain):
3507         (JSC::CTI::privateCompilePutByIdReplace):
3508         (JSC::CTI::privateCompilePutByIdTransition):
3509         (JSC::CTI::privateCompileCTIMachineTrampolines):
3510         (JSC::CTI::freeCTIMachineTrampolines):
3511         (JSC::CTI::patchGetByIdSelf):
3512         (JSC::CTI::patchPutByIdReplace):
3513         (JSC::CTI::privateCompilePatchGetArrayLength):
3514         (JSC::CTI::compileRegExp):
3515         * VM/CTI.h:
3516         * VM/CodeBlock.cpp:
3517         (JSC::CodeBlock::printStructureIDs):
3518         (JSC::CodeBlock::dump):
3519         (JSC::CodeBlock::derefStructureIDs):
3520         (JSC::CodeBlock::refStructureIDs):
3521         * VM/ExceptionHelpers.cpp:
3522         (JSC::createNotAnObjectError):
3523         * VM/Machine.cpp:
3524         (JSC::jsLess):
3525         (JSC::jsLessEq):
3526         (JSC::BytecodeInterpreter::resolve):
3527         (JSC::BytecodeInterpreter::resolveSkip):
3528         (JSC::BytecodeInterpreter::resolveGlobal):
3529         (JSC::BytecodeInterpreter::resolveBase):
3530         (JSC::BytecodeInterpreter::resolveBaseAndProperty):
3531         (JSC::BytecodeInterpreter::resolveBaseAndFunc):
3532         (JSC::BytecodeInterpreter::slideRegisterWindowForCall):
3533         (JSC::BytecodeInterpreter::callEval):
3534         (JSC::BytecodeInterpreter::BytecodeInterpreter):
3535         (JSC::BytecodeInterpreter::initialize):
3536         (JSC::BytecodeInterpreter::~BytecodeInterpreter):
3537         (JSC::BytecodeInterpreter::dumpCallFrame):
3538         (JSC::BytecodeInterpreter::dumpRegisters):
3539         (JSC::BytecodeInterpreter::isOpcode):
3540         (JSC::BytecodeInterpreter::unwindCallFrame):
3541         (JSC::BytecodeInterpreter::throwException):
3542         (JSC::BytecodeInterpreter::execute):
3543         (JSC::BytecodeInterpreter::debug):
3544         (JSC::BytecodeInterpreter::resetTimeoutCheck):
3545         (JSC::BytecodeInterpreter::checkTimeout):
3546         (JSC::BytecodeInterpreter::createExceptionScope):
3547         (JSC::BytecodeInterpreter::tryCachePutByID):