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