Rolling out r64097:64100, oops, more b0rked than I relized by my last changes, sorry!
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
2
3         Rolling out r64097:64100, oops, more b0rked than I relized by my last changes, sorry!
4
5         * CMakeListsEfl.txt:
6         * GNUmakefile.am:
7         * JavaScriptCore.gypi:
8         * JavaScriptCore.pro:
9         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
10         * JavaScriptCore.xcodeproj/project.pbxproj:
11         * jit/ExecutableAllocator.cpp:
12         (JSC::ExecutableAllocator::reprotectRegion):
13         (JSC::ExecutableAllocator::cacheFlush):
14         * jit/ExecutableAllocator.h:
15         (JSC::ExecutablePool::ExecutablePool):
16         (JSC::ExecutablePool::poolAllocate):
17         * jit/ExecutableAllocatorFixedVMPool.cpp:
18         (JSC::FixedVMPoolAllocator::release):
19         (JSC::FixedVMPoolAllocator::reuse):
20         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
21         (JSC::FixedVMPoolAllocator::alloc):
22         (JSC::FixedVMPoolAllocator::free):
23         (JSC::FixedVMPoolAllocator::isValid):
24         (JSC::FixedVMPoolAllocator::isWithinVMPool):
25         (JSC::ExecutablePool::systemAlloc):
26         (JSC::ExecutablePool::systemRelease):
27         * jit/ExecutableAllocatorPosix.cpp: Added.
28         (JSC::ExecutableAllocator::intializePageSize):
29         (JSC::ExecutablePool::systemAlloc):
30         (JSC::ExecutablePool::systemRelease):
31         (JSC::ExecutableAllocator::isValid):
32         * jit/ExecutableAllocatorSymbian.cpp: Added.
33         (JSC::ExecutableAllocator::intializePageSize):
34         (JSC::ExecutablePool::systemAlloc):
35         (JSC::ExecutablePool::systemRelease):
36         (JSC::ExecutableAllocator::isValid):
37         * jit/ExecutableAllocatorWin.cpp: Added.
38         (JSC::ExecutableAllocator::intializePageSize):
39         (JSC::ExecutablePool::systemAlloc):
40         (JSC::ExecutablePool::systemRelease):
41         (JSC::ExecutableAllocator::isValid):
42         * wscript:
43         * wtf/PageAllocation.cpp: Removed.
44         * wtf/PageAllocation.h: Removed.
45
46 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
47
48         Speculative !debug build fix II.
49
50         * wtf/PageAllocation.h:
51         (WTF::PageAllocation::PageAllocation):
52
53 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
54
55         Speculative !debug build fix.
56
57         * wtf/PageAllocation.h:
58         (WTF::PageAllocation::PageAllocation):
59
60 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
61
62         Reviewed by Oliver Hunt.
63
64         Bug 43009 - Abstract out page allocation from executable allocators
65
66         It would be great to have a single platform abstraction for block allocation, rather than copy/paste code.
67
68         In this initial implementation I've made Symbian fall back to use malloc/free for non-executable memory.
69         I think this will match current behaviour for the next client we will want to port across (RegisterFile &
70         Collector).
71
72         * CMakeListsEfl.txt:
73         * GNUmakefile.am:
74         * JavaScriptCore.gypi:
75         * JavaScriptCore.pro:
76         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
77         * JavaScriptCore.xcodeproj/project.pbxproj:
78         * jit/ExecutableAllocator.cpp:
79         (JSC::ExecutableAllocator::intializePageSize):
80         (JSC::ExecutablePool::systemAlloc):
81         (JSC::ExecutablePool::systemRelease):
82         (JSC::ExecutableAllocator::isValid):
83         * jit/ExecutableAllocator.h:
84         (JSC::ExecutablePool::ExecutablePool):
85         (JSC::ExecutablePool::poolAllocate):
86         * jit/ExecutableAllocatorFixedVMPool.cpp:
87         (JSC::FixedVMPoolAllocator::release):
88         (JSC::FixedVMPoolAllocator::reuse):
89         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
90         (JSC::FixedVMPoolAllocator::alloc):
91         (JSC::FixedVMPoolAllocator::free):
92         (JSC::FixedVMPoolAllocator::isValid):
93         (JSC::FixedVMPoolAllocator::isWithinVMPool):
94         (JSC::ExecutablePool::systemAlloc):
95         (JSC::ExecutablePool::systemRelease):
96         * jit/ExecutableAllocatorPosix.cpp: Removed.
97         * jit/ExecutableAllocatorSymbian.cpp: Removed.
98         * jit/ExecutableAllocatorWin.cpp: Removed.
99         * wscript:
100         * wtf/PageAllocator.cpp: Added.
101         (WTF::protection):
102         (WTF::PageAllocation::commit):
103         (WTF::PageAllocation::decommit):
104         (WTF::PageAllocator::allocate):
105         (WTF::PageAllocator::reserve):
106         (WTF::PageAllocator::deallocate):
107         (WTF::PageAllocator::pagesize):
108         * wtf/PageAllocator.h: Added.
109         (WTF::PageAllocation::PageAllocation):
110         (WTF::PageAllocation::base):
111         (WTF::PageAllocation::size):
112         (WTF::PageAllocation::chunk):
113         (WTF::PageAllocation::operator!):
114         (WTF::PageAllocator::):
115
116 2009-10-30  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
117
118         Reviewed by Kenneth Rohde Christiansen.
119
120         [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml()
121
122         This ensures that long-running JavaScript (for example due to a modal alert() dialog),
123         will not trigger a deferred load after only 500ms (the default tokenizer delay) while
124         still giving a reasonable timeout (10 seconds) to prevent deadlock.
125
126         https://bugs.webkit.org/show_bug.cgi?id=29381
127
128         * runtime/TimeoutChecker.h: Add getter for the timeout interval
129
130 2010-07-25  Patrick Gansterer  <paroga@paroga.com>
131
132         Reviewed by Kent Tamura.
133
134         [WINCE] Buildfix for JSC in release mode
135         https://bugs.webkit.org/show_bug.cgi?id=42934
136
137         * jsc.cpp: Don't use __try on WinCE.
138
139 2010-07-24  Patrick Gansterer  <paroga@paroga.com>
140
141         Reviewed by Darin Adler.
142
143         [MSVC] Ensure 4 byte alignment on ARM
144         https://bugs.webkit.org/show_bug.cgi?id=42935
145
146         * jit/JITStubs.h: Added #pragma pack(4) around JITStackFrame.
147
148 2010-07-24  Patrick Gansterer  <paroga@paroga.com>
149
150         Reviewed by Darin Adler.
151
152         [WINCE] Cleanup defines in Platform.h
153         https://bugs.webkit.org/show_bug.cgi?id=42933
154
155         * wtf/Platform.h:
156
157 2010-07-23  Rafael Antognolli  <antognolli@profusion.mobi>
158
159         Reviewed by Antonio Gomes.
160
161         [EFL] Cleanup glib support (make it optional)
162         https://bugs.webkit.org/show_bug.cgi?id=42480
163
164         Remove gobject/GRefPtr.cpp if not using soup/glib.
165
166         * wtf/CMakeListsEfl.txt:
167
168 2010-07-23  Patrick Gansterer  <paroga@paroga.com>
169
170         Reviewed by Adam Roben.
171
172         [WINCE] Implement TCSpinLock.
173         https://bugs.webkit.org/show_bug.cgi?id=41792
174
175         Implement the SpinLock with InterlockedExchange from the Windows API.
176
177         * wtf/TCSpinLock.h:
178         (TCMalloc_SpinLock::Lock):
179         (TCMalloc_SpinLock::Unlock):
180         (TCMalloc_SpinLock::IsHeld):
181         (TCMalloc_SpinLock::Init):
182         (TCMalloc_SlowLock):
183
184 2010-07-22  Csaba Osztrogonác  <ossy@webkit.org>
185
186         Unreviewed rolling out r63947 and r63948, because they broke Qt Windows build.
187
188         * jit/JITStubs.cpp:
189         * jit/JITStubs.h:
190
191 2010-07-22  Gavin Barraclough  <barraclough@apple.com>
192
193         Eeeep! r63947 hosed all non-x86 builds!
194
195         * jit/JITStubs.h:
196
197 2010-07-22  Gavin Barraclough  <barraclough@apple.com>
198
199         Reviewed by Oliver Hunt.
200
201         Bug 42818 - [Qt] REGRESSION(63348): jsc is broken
202         Speculative fix, need fastcall conventions on Qt/Win.
203
204         * jit/JITStubs.cpp:
205         * jit/JITStubs.h:
206
207 2010-07-22  Oliver Hunt  <oliver@apple.com>
208
209         Reviewed by Gavin Barraclough.
210
211         Do more constant folding
212         https://bugs.webkit.org/show_bug.cgi?id=42867
213
214         Constant fold a few more operations.  SunSpider says this is
215         a win but I suspect that's just code motion at play.
216
217         * parser/ASTBuilder.h:
218         (JSC::ASTBuilder::makeModNode):
219         (JSC::ASTBuilder::makeURightShiftNode):
220         (JSC::ASTBuilder::makeBitOrNode):
221         (JSC::ASTBuilder::makeBitAndNode):
222         (JSC::ASTBuilder::makeBitXOrNode):
223         (JSC::ASTBuilder::makeBinaryNode):
224
225 2010-07-22  Kent Hansen  <kent.hansen@nokia.com>
226
227         Reviewed by Kent Tamura.
228
229         Error properties of the Global Object are missing the DontEnum attribute
230         https://bugs.webkit.org/show_bug.cgi?id=28771
231
232         Add the attributes to become spec compliant.
233
234         * runtime/JSGlobalObject.cpp:
235         (JSC::JSGlobalObject::reset):
236
237 2010-07-20  Steve Falkenburg  <sfalken@apple.com>
238
239         Reviewed by Adam Roben.
240
241         WebKit on Windows should build optionally with an unversioned ICU DLL
242         https://bugs.webkit.org/show_bug.cgi?id=42722
243         <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU
244         
245         Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh.
246         Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API
247         should be namespaced with the current ICU version number. Proper value is determined
248         by checking for the presence of libicuuc.lib, the unversioned copy of ICU.
249         
250         To get the proper value for U_DISABLE_RENAMING into all source files, we force
251         the include of ICUVersion.h (our generated header) via the compiler options.
252         
253         Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib)
254         we copy the ICU lib to an intermediate location under obj with a common name. This
255         allows us to link properly with either without adding a new build configuration.
256
257         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
258         Copy ICU libs into a common location with a common name.
259         Add additional library search path to pick up icu lib.
260         Change ICU library filename specified to linker.
261         Add forced include of ICUVersion.h.
262         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h
263         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h.
264         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
265         Copy ICU libs into a common location with a common name.
266         Add additional library search path to pick up icu lib.
267         Change ICU library filename specified to linker.
268         Add forced include of ICUVersion.h.
269         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
270         Copy ICU libs into a common location with a common name.
271         Add additional library search path to pick up icu lib.
272         Change ICU library filename specified to linker.
273         Add forced include of ICUVersion.h.
274
275 2010-07-20  Steve Falkenburg  <sfalken@apple.com>
276
277         Re-save vsprops files after no-op edits in Visual Studio
278         to fix manual edit issues.
279
280 2010-07-20  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
281
282         Reviewed by Steve Block.
283
284         Need to be able to configure Geolocation policy regarding user permissions
285         https://bugs.webkit.org/show_bug.cgi?id=42068
286
287         If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
288         by default 
289
290         * wtf/Platform.h:
291         
292 2010-07-20  Sheriff Bot  <webkit.review.bot@gmail.com>
293
294         Unreviewed, rolling out r63742.
295         http://trac.webkit.org/changeset/63742
296         https://bugs.webkit.org/show_bug.cgi?id=42641
297
298         Broke Leopard Intel build. (Requested by bbandix on #webkit).
299
300         * wtf/Platform.h:
301
302 2010-07-20  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
303
304         Reviewed by Steve Block.
305
306         Need to be able to configure Geolocation policy regarding user permissions
307         https://bugs.webkit.org/show_bug.cgi?id=42068
308
309         If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
310         by default 
311
312         * wtf/Platform.h:
313         
314 2010-07-19  Dirk Schulze  <krit@webkit.org>
315
316         Reviewed by Nikolas Zimmermann.
317
318         SVG CleanUp of SVGPathData parsing
319         https://bugs.webkit.org/show_bug.cgi?id=41410
320
321         Added piOverTwo to MathExtras.
322
323         * wtf/MathExtras.h:
324
325 2010-07-19  Mike Moretti  <mike.moretti@nokia.com>
326
327         Reviewed by Laszlo Gombos.
328
329         [Symbian] Build fix after r63404.
330
331         Implement isValid() function for the Symbian executable allocator.
332
333         * jit/ExecutableAllocatorSymbian.cpp:
334         (JSC::ExecutableAllocator::isValid):
335
336 2010-07-19  Chris Marrin  <cmarrin@apple.com>
337
338         Reviewed by Darin Adler.
339
340         https://bugs.webkit.org/show_bug.cgi?id=42118
341         Disable WebGL on Leopard for now. 
342
343         LayoutTests fail on some graphics hardware on Leopard because one of the features we use,
344         GL_ARB_framebuffer_object, is not universally available in Leopard like it is in
345         SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a
346         software OpenGL driver on machines without this support.
347
348         * Configurations/FeatureDefines.xcconfig:
349
350 2010-07-16  Darin Adler  <darin@apple.com>
351
352         Reviewed by Sam Weinig.
353
354         Use OwnPtr for CodeBlock objects
355         https://bugs.webkit.org/show_bug.cgi?id=42490
356
357         * runtime/Executable.cpp:
358         (JSC::EvalExecutable::EvalExecutable): Moved this here and made it non-inline.
359         Eliminated the code that used to initialize the raw pointer since it's now
360         an OwnPtr.
361         (JSC::EvalExecutable::~EvalExecutable): Removed the explicit delete here.
362         (JSC::ProgramExecutable::ProgramExecutable): Ditto.
363         (JSC::ProgramExecutable::~ProgramExecutable): Ditto.
364         (JSC::FunctionExecutable::FunctionExecutable): Ditto.
365         (JSC::FunctionExecutable::~FunctionExecutable): Ditto.
366         (JSC::EvalExecutable::compileInternal): Added use of adoptPtr and get.
367         (JSC::ProgramExecutable::compileInternal): Ditto.
368         (JSC::FunctionExecutable::compileForCallInternal): Ditto.
369         (JSC::FunctionExecutable::compileForConstructInternal): Ditto.
370         (JSC::FunctionExecutable::recompile): Use clear instead of delete followed
371         by assignment of 0.
372
373         * runtime/Executable.h: Moved constructors to the cpp file and changed
374         raw pointers to OwnPtr.
375
376 2010-07-19  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
377
378         Reviewed by Kenneth Rohde Christiansen.
379
380         [EFL] Fix build on 64-bit systems. According to
381         JavaScriptCore/wtf/Platform.h, x86_64 uses fixed allocator, which
382         needs jit/ExecutableAllocatorFixedVMPool.cpp to be included in build
383         system.
384         https://bugs.webkit.org/show_bug.cgi?id=42559
385
386         * CMakeListsEfl.txt: add missing file for x86_64.
387
388 2010-07-16  Leandro Pereira  <leandro@profusion.mobi>
389
390         [EFL] Unreviewed build system cleanup.
391
392         Move ExecutableAllocator{FixedVMPool,Posix,Symbian,Win}.cpp from
393         root CMakeLists.txt to the platform CMakeLists.txt.
394
395         * CMakeLists.txt:
396         * CMakeListsEfl.txt: Add ExecutableAllocatorPosix.cpp.
397
398 2010-07-16  Oliver Hunt  <oliver@apple.com>
399
400         Reviewed by Geoffrey Garen.
401
402         ES5 allows use of reserved words as IdentifierName
403         https://bugs.webkit.org/show_bug.cgi?id=42471
404
405         Modify the lexer to allow us to avoid identifying reserved
406         words in those contexts where they are valid identifiers, and
407         we know it's safe.  Additionally tag the reserved word tokens
408         so we can easily identify them in those cases where we can't
409         guarantee that we've skipped reserved word identification.
410
411         * parser/JSParser.cpp:
412         (JSC::JSParser::next):
413         (JSC::JSParser::parseProperty):
414         (JSC::JSParser::parseMemberExpression):
415         * parser/JSParser.h:
416         (JSC::):
417         * parser/Lexer.cpp:
418         (JSC::Lexer::lex):
419         * parser/Lexer.h:
420         (JSC::Lexer::):
421
422 2010-07-16  Anders Carlsson  <andersca@apple.com>
423
424         Reviewed by Sam Weinig.
425
426         clang++ build fixes for JavaScriptCore and WebCore
427         https://bugs.webkit.org/show_bug.cgi?id=42478
428
429         * runtime/RegExpKey.h:
430         (JSC::operator==):
431         Move the RegExpKey equals operator into the JSC namespace so it can be found by ADL.
432
433 2010-07-16  Anders Carlsson  <andersca@apple.com>
434
435         Reviewed by David Levin.
436
437         Really add WARN_UNUSED_RESULT to leakRef
438         https://bugs.webkit.org/show_bug.cgi?id=42464
439
440         * wtf/PassRefPtr.h:
441         (WTF::PassRefPtr::):
442         (WTF::NonNullPassRefPtr::):
443         Put the WARN_UNUSED_RESULT attribute at the right place.
444
445         * wtf/RetainPtr.h:
446         (WTF::RetainPtr::releaseRef):
447         Remove WARN_UNUSED_RESULT here for now, it leads to two warnings that need
448         to be fixed first.
449
450 2010-07-15  Victor Wang  <victorw@chromium.org>
451
452         Reviewed by David Levin.
453
454         [Chromium] Disable c4291 for chromium windows multi dll build.
455
456         https://bugs.webkit.org/show_bug.cgi?id=42177
457
458         * JavaScriptCore.gyp/JavaScriptCore.gyp:
459
460 2010-07-15  Geoffrey Garen  <ggaren@apple.com>
461
462         Reviewed by Maciej Stachowiak.
463
464         Crash entering mail.yahoo.com
465         https://bugs.webkit.org/show_bug.cgi?id=42394
466     
467         * bytecompiler/BytecodeGenerator.cpp:
468         (JSC::BytecodeGenerator::argumentNumberFor): Added a NULL check. If the
469         identifier we're resolving is not a local variable, registerFor returns
470         NULL.
471
472         * bytecompiler/NodesCodegen.cpp:
473         (JSC::FunctionBodyNode::emitBytecode): Unrelated to the crash, but I
474         noticed this while working on it: No need to NULL-check returnNode,
475         since an early return has already done so.
476
477 2010-07-15  Martin Robinson  <mrobinson@igalia.com>
478
479         Reviewed by Oliver Hunt.
480
481         [GTK] Simplify the distribution step
482         https://bugs.webkit.org/show_bug.cgi?id=42414
483
484         * GNUmakefile.am: Add extra dist files directly to EXTRA_DIST instead
485         of adding them by proxy via javascriptcore_dist. Sort the EXTRA_DIST list.
486         Refer to create_hash_table and create_regexp_tables directly, as is the
487         behavior with other code generation scripts.
488
489 2010-07-15  Oliver Hunt  <oliver@apple.com>
490
491         Reviewed by Geoff Garen.
492
493         Fix dumping of op_put_by_id.
494
495         * bytecode/CodeBlock.cpp:
496         (JSC::CodeBlock::printPutByIdOp):
497
498 2010-07-15  Zoltan Herczeg  <zherczeg@webkit.org>
499
500         Reviewed by Darin Adler.
501
502         Refactoring some parts of the lexer
503         https://bugs.webkit.org/show_bug.cgi?id=41845
504
505         This patch is a precursor of refactoring the identifier
506         parsing, which currently slows down the lexer, and not
507         ready for landing. This patch contains those sources,
508         which does not slow down the lexer (mainly style changes).
509
510         SunSpider: no change (529.4ms to 528.7ms)
511         --parse-only: no change (31.0ms to 31.2ms)
512
513         * parser/Lexer.cpp:
514         (JSC::isIdentStart): using typesOfASCIICharacters to determine
515              whether the current character is in identifier start
516         (JSC::isIdentPart): using typesOfASCIICharacters to determine
517              whether the current character is in identifier part
518         (JSC::Lexer::parseString): style fix
519         (JSC::Lexer::lex): removing the else after the main which
520              which reduces code duplication
521
522 2010-07-15  Mark Rowe  <mrowe@apple.com>
523
524         Update the sorting in the Xcode project files.
525
526         * JavaScriptCore.xcodeproj/project.pbxproj:
527
528 2010-07-14  Oliver Hunt  <oliver@apple.com>
529
530         Reviewed by Gavin Barraclough.
531
532         Make sure that mixed interpreter/jit builds don't try to use the jit if the allocator fails
533         https://bugs.webkit.org/show_bug.cgi?id=42310
534
535         Add some null checks to deal with the Fixed VM allocator failing
536         to get the requested executable region, delay the creation of the
537         JITStubs in JSGlobalData until after we know whether we're using
538         the JIT.
539
540         * jit/ExecutableAllocator.h:
541         (JSC::ExecutableAllocator::ExecutableAllocator):
542         (JSC::ExecutableAllocator::poolForSize):
543         * jit/ExecutableAllocatorFixedVMPool.cpp:
544         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
545         (JSC::FixedVMPoolAllocator::alloc):
546         (JSC::FixedVMPoolAllocator::free):
547         (JSC::FixedVMPoolAllocator::isValid):
548         (JSC::ExecutableAllocator::isValid):
549         (JSC::ExecutablePool::systemAlloc):
550         (JSC::ExecutablePool::systemRelease):
551         * jit/ExecutableAllocatorPosix.cpp:
552         (JSC::ExecutableAllocator::isValid):
553         * jit/ExecutableAllocatorWin.cpp:
554         (JSC::ExecutableAllocator::isValid):
555         * jit/JIT.cpp:
556         (JSC::JIT::linkCall):
557         (JSC::JIT::linkConstruct):
558         * jit/JIT.h:
559         (JSC::JIT::compileCTIMachineTrampolines):
560         (JSC::JIT::compileCTINativeCall):
561         * jit/JITArithmetic.cpp:
562         (JSC::JIT::emit_op_mod):
563         * jit/JITArithmetic32_64.cpp:
564         (JSC::JIT::emit_op_mod):
565         * jit/JITCall.cpp:
566         (JSC::JIT::compileOpCallVarargs):
567         (JSC::JIT::compileOpCall):
568         (JSC::JIT::compileOpCallSlowCase):
569         * jit/JITCall32_64.cpp:
570         (JSC::JIT::compileOpCallVarargs):
571         (JSC::JIT::compileOpCall):
572         (JSC::JIT::compileOpCallSlowCase):
573         * jit/JITOpcodes.cpp:
574         (JSC::JIT::privateCompileCTINativeCall):
575         * jit/JITStubs.cpp:
576         (JSC::JITThunks::JITThunks):
577         (JSC::JITThunks::tryCacheGetByID):
578         (JSC::JITThunks::hostFunctionStub):
579         * jit/ThunkGenerators.cpp:
580         (JSC::charCodeAtThunkGenerator):
581         (JSC::charAtThunkGenerator):
582         (JSC::fromCharCodeThunkGenerator):
583         (JSC::sqrtThunkGenerator):
584         (JSC::powThunkGenerator):
585         * runtime/Executable.h:
586         (JSC::NativeExecutable::create):
587         * runtime/JSGlobalData.cpp:
588         (JSC::JSGlobalData::JSGlobalData):
589         (JSC::JSGlobalData::getHostFunction):
590         * runtime/JSGlobalData.h:
591         (JSC::JSGlobalData::getCTIStub):
592         * yarr/RegexJIT.cpp:
593         (JSC::Yarr::jitCompileRegex):
594
595 2010-07-14  Gavin Barraclough  <barraclough@apple.com>
596
597         Speculative Qt/Windows build fix.
598
599         * jit/JITStubs.h:
600
601 2010-07-14  Gavin Barraclough  <barraclough@apple.com>
602
603         Reviewed by Oliver Hunt.
604
605         https://bugs.webkit.org/show_bug.cgi?id=42280
606         JIT_STUB_ARGUMENT_VA_LIST is only slowing us down! Remove it!
607
608         * jit/JIT.h:
609         * jit/JITInlineMethods.h:
610         (JSC::JIT::restoreArgumentReferenceForTrampoline):
611         * jit/JITStubs.cpp:
612         * jit/JITStubs.h:
613         * wtf/Platform.h:
614
615 2010-07-14  Oliver Hunt  <oliver@apple.com>
616
617         RS=Geoff Garen.
618
619         Guard the CF path of interpreter vs. jit selection with PLATFORM(CF)
620
621         This allows the code to work on windows as well.  Also unifies the
622         environment variable with the preference name.
623
624         * runtime/JSGlobalData.cpp:
625         (JSC::JSGlobalData::JSGlobalData):
626
627 2010-07-14  Oliver Hunt  <oliver@apple.com>
628
629         Reviewed by Don Melton.
630
631         Crash when trying to enable JIT and Interpreter in a single build.
632
633         CFPreferences code added at the last minute failed to account for
634         the preference not being present and then attempted to CFRelease
635         a null value.
636
637         * runtime/JSGlobalData.cpp:
638         (JSC::JSGlobalData::JSGlobalData):
639
640 2010-07-14  Zoltan Herczeg  <zherczeg@webkit.org>
641
642         Reviewed by Darin Adler.
643
644         Change indentations in the lexer
645         https://bugs.webkit.org/show_bug.cgi?id=41845
646
647         This patch fixes an old, indentation error comes from kjs,
648         as webkit has a different style rule for switches, and change
649         the indentation of the main switch, which is a temporary
650         style error. This change makes easier to see the behavioural
651         changes in the follow-up patch.
652
653         No behavioural changes.
654
655         * parser/Lexer.cpp:
656         (JSC::singleEscape):
657         (JSC::Lexer::lex):
658
659 2010-07-13  Sheriff Bot  <webkit.review.bot@gmail.com>
660
661         Unreviewed, rolling out r63262.
662         http://trac.webkit.org/changeset/63262
663         https://bugs.webkit.org/show_bug.cgi?id=42229
664
665         broke Windows compile (Requested by bweinstein on #webkit).
666
667         * API/tests/testapi.c:
668         (assertEqualsAsCharactersPtr):
669         (main):
670         * testapi.pro: Removed.
671
672 2010-07-13  Oliver Hunt  <oliver@apple.com>
673
674         Reviewed by Gavin Barraclough.
675
676         ES5 requires BOMs to be treated as whitespace
677         https://bugs.webkit.org/show_bug.cgi?id=42218
678
679         Add BOM character to the Lexer's definition of whitespace,
680         and remove the logic that dealt with stripping BOMs and
681         caching the cleaned string.
682
683         * parser/Lexer.h:
684         (JSC::Lexer::isWhiteSpace):
685         * parser/SourceProvider.h:
686         (JSC::UStringSourceProvider::create):
687         (JSC::UStringSourceProvider::UStringSourceProvider):
688         * wtf/text/StringImpl.h:
689
690 2010-07-13  Andreas Kling  <andreas.kling@nokia.com>
691
692         Reviewed by Darin Adler.
693
694         Avoid slow-path for put() in Array.splice()
695         https://bugs.webkit.org/show_bug.cgi?id=41920
696
697         Defer creation of the returned array until its final size is known
698         to avoid growing it while adding elements.
699
700         * runtime/JSArray.cpp:
701         (JSC::JSArray::JSArray): Add two modes of creation, CreateInitialized (old)
702         and CreateCompact (which should only be used when constructing arrays whose
703         size and contents are known at the time of creation.)
704         (JSC::JSArray::setLength): Skip first consistency check if in CreateCompact
705         initialization mode. (Only applies to non-empty arrays.)
706         (JSC::JSArray::checkConsistency): Build fix (JSValue::type() is gone)
707         * runtime/JSArray.h:
708         (JSC::JSArray::uncheckedSetIndex): Added for fast initialization of compact
709         arrays. Does no bounds or other sanity checking.
710         * runtime/ArrayPrototype.cpp:
711         (JSC::arrayProtoFuncSplice): Optimized creation of the returned JSArray.
712         * runtime/ArrayConstructor.cpp:
713         (JSC::constructArrayWithSizeQuirk): Pass CreateInitialized to ctor.
714         * runtime/JSGlobalObject.h:
715         (JSC::constructEmptyArray): Pass CreateInitialized to ctor.
716         * runtime/RegExpConstructor.cpp:
717         (JSC::RegExpMatchesArray::RegExpMatchesArray): Pass CreateInitialized to ctor.
718
719 2010-07-13  Gavin Barraclough  <barraclough@apple.com>
720
721         Reviewed by Oliver Hunt.
722
723         Bug 42207 - Clean up interface to compile executables, always check for exceptions
724
725         Presently interface to compile executable is inconsistent between eval/program and
726         function code, and is error prone in allowing a caller to byte compile without JIT
727         compiling an executable (we rely on all executables with codeblocks having JIT code).
728         Unify on an interface where all compilation is performed by a single compile (with
729         ForCall|ForConstruct variants) method, and make all clients check for errors.
730
731         * interpreter/Interpreter.cpp:
732         (JSC::Interpreter::unwindCallFrame):
733         (JSC::Interpreter::execute):
734         (JSC::Interpreter::executeCall):
735         (JSC::Interpreter::executeConstruct):
736         (JSC::Interpreter::prepareForRepeatCall):
737         (JSC::Interpreter::privateExecute):
738         * jit/JITStubs.cpp:
739         (JSC::DEFINE_STUB_FUNCTION):
740         * parser/Parser.h:
741         (JSC::Parser::isFunctionBodyNode):
742         (JSC::Parser::parse):
743         * runtime/ArrayPrototype.cpp:
744         (JSC::isNumericCompareFunction):
745         * runtime/ExceptionHelpers.cpp:
746         (JSC::createStackOverflowError):
747         * runtime/ExceptionHelpers.h:
748         * runtime/Executable.cpp:
749         (JSC::EvalExecutable::compileInternal):
750         (JSC::ProgramExecutable::checkSyntax):
751         (JSC::ProgramExecutable::compileInternal):
752         (JSC::FunctionExecutable::compileForCallInternal):
753         (JSC::FunctionExecutable::compileForConstructInternal):
754         (JSC::FunctionExecutable::reparseExceptionInfo):
755         (JSC::EvalExecutable::reparseExceptionInfo):
756         (JSC::FunctionExecutable::fromGlobalCode):
757         * runtime/Executable.h:
758         (JSC::EvalExecutable::compile):
759         (JSC::EvalExecutable::generatedBytecode):
760         (JSC::EvalExecutable::generatedJITCode):
761         (JSC::ProgramExecutable::compile):
762         (JSC::ProgramExecutable::generatedBytecode):
763         (JSC::ProgramExecutable::generatedJITCode):
764         (JSC::FunctionExecutable::generatedBytecode):
765         (JSC::FunctionExecutable::compileForCall):
766         (JSC::FunctionExecutable::compileForConstruct):
767         (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
768         * runtime/FunctionConstructor.cpp:
769         (JSC::constructFunction):
770         * runtime/JSActivation.cpp:
771         (JSC::JSActivation::argumentsGetter):
772         * runtime/JSGlobalData.h:
773         (JSC::JSGlobalData::canUseJIT):
774
775 2010-07-13  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
776
777         Reviewed by Oliver Hunt.
778
779         testapi.c depends on the Core Foundation.
780         https://bugs.webkit.org/show_bug.cgi?id=40058
781
782         Separate CoreFoundation specific tests in JSC's testapi.c. Enabling it
783         to compile in Qt environments.
784
785         All tests should work except for the JSStringCreateWithCharacters() function,
786         because its tests depend on Core Foundation specific functions.
787
788         * API/tests/testapi.c:
789         (testJSStringRefCF): moved CoreFoundation specific tests to this function.
790         (main): The moves plus some minor tweaks.
791         * testapi.pro: Added.
792
793 2010-07-13  Gavin Barraclough  <barraclough@apple.com>
794
795         Reviewed by Oliver Hunt.
796
797         Bug 42182 - Change how numeric compare functions are detected
798
799         There are three problems with the current mechanism:
800           * It requires that a function executable be bytecode compiled without
801             being JIT generated (in order to copy the bytecode from the numeric
802             compare function).  This is a problem since we have an invariant when
803             running with the JIT that functions are never bytecode compiled without
804             also being JIT generated (after checking the codeblock we assume the
805             function has JIT code).  To help maintain this invariant 
806           * This implementation will prevent us from experimenting with alternate
807             compilation paths which do not compile via bytecode.
808           * It doesn't work.  Functions passing more than two arguments will match
809             if they are comparing their last two arguments, not the first two.
810             Generally the mapping back from bytecode to semantics may be more
811             complex then initially expected.
812
813         * bytecompiler/BytecodeGenerator.cpp:
814         (JSC::BytecodeGenerator::generate):
815         (JSC::BytecodeGenerator::setIsNumericCompareFunction):
816         (JSC::BytecodeGenerator::argumentNumberFor):
817         * bytecompiler/BytecodeGenerator.h:
818         * bytecompiler/NodesCodegen.cpp:
819         (JSC::BlockNode::singleStatement):
820         (JSC::FunctionBodyNode::emitBytecode):
821         * parser/Nodes.h:
822         (JSC::ExpressionNode::isSubtract):
823         (JSC::BinaryOpNode::lhs):
824         (JSC::BinaryOpNode::rhs):
825         (JSC::SubNode::isSubtract):
826         (JSC::ReturnNode::value):
827         * runtime/JSGlobalData.cpp:
828         (JSC::JSGlobalData::JSGlobalData):
829         * runtime/JSGlobalData.h:
830
831 2010-07-12  Oliver Hunt  <oliver@apple.com>
832
833         Reviewed by Gavin Barraclough.
834
835         REGRESSION: Crash at JSC::JIT::privateCompile(JSC::MacroAssemblerCodePtr*)
836         https://bugs.webkit.org/show_bug.cgi?id=41763
837
838         There are two parts to this patch, the first is to fix the actual
839         problem.  When calling copyStringWithoutBOMs on a string we know
840         to contain BOMs we return a value indicating that there are no
841         BOMs.
842
843         The second part of this fix is simply to harden the path that
844         led to a crash when parsing failed.
845
846         * jit/JITOpcodes.cpp:
847         (JSC::JIT::privateCompileCTIMachineTrampolines):
848         * jit/JITOpcodes32_64.cpp:
849         (JSC::JIT::privateCompileCTIMachineTrampolines):
850         * jit/JITStubs.cpp:
851         (JSC::DEFINE_STUB_FUNCTION):
852            Harden compilation stubs against parser failure.
853         * parser/Lexer.cpp:
854         (JSC::Lexer::sourceCode):
855            Add assertions to ensure that subranges into a source provider
856            are always actually braces.  Hopefully this should catch similar
857            failures in future.  These assertions fire on existing tests
858            without this fix.
859         * runtime/Executable.h:
860         (JSC::FunctionExecutable::tryJitCodeForCall):
861         (JSC::FunctionExecutable::tryJitCodeForConstruct):
862         * wtf/text/StringImpl.h:
863         (WebCore::StringImpl::copyStringWithoutBOMs):
864            Make copyStringWithBOMs do the right thing.
865
866 2010-07-13  Gabor Loki  <loki@webkit.org>
867
868         Reviewed by Gavin Barraclough.
869
870         Fix the constant encoding in data transfer instructions on ARM
871         https://bugs.webkit.org/show_bug.cgi?id=42166
872
873         The getImm function is designed to produce modified immediate constant
874         for data processing instructions. It should not be used to encode
875         any constant for data transfer. In the current situation there is no
876         way to use any immediate constant for data transfer. So, the moveImm
877         function is the desired method to pass the offset value to the data
878         transfer instructions.
879
880         Reported by Jacob Bramley.
881
882         * assembler/ARMAssembler.cpp:
883         (JSC::ARMAssembler::dataTransfer32):
884         * assembler/MacroAssemblerARM.h:
885         (JSC::MacroAssemblerARM::call32):
886
887 2010-07-09  Darin Adler  <darin@apple.com>
888
889         Reviewed by Geoffrey Garen.
890
891         String to number coercion is not spec compliant
892         https://bugs.webkit.org/show_bug.cgi?id=31349
893
894         ToNumber should ignore NBSP (\u00a0)
895         https://bugs.webkit.org/show_bug.cgi?id=25490
896
897         * runtime/JSGlobalObjectFunctions.cpp:
898         (JSC::parseIntOverflow): Added a version that works on UChar.
899         * runtime/JSGlobalObjectFunctions.h: Ditto.
900
901         * runtime/UString.cpp:
902         (JSC::isInfinity): Added helper functions.
903         (JSC::UString::toDouble): Use isStrWhiteSpace instead of
904         isSASCIISpace to define what we should skip. Got rid of the
905         code that used CString and UTF8String, instead processing the
906         UChar of the string directly, except for when we call strtod.
907         For strtod, use our own home-grown conversion function that
908         does not try to do any UTF-16 processing. Tidied up the logic
909         a bit as well.
910
911 2010-07-12  Martin Robinson  <mrobinson@igalia.com>
912
913         Reviewed by Xan Lopez.
914
915         [GTK] make dist is broken because of missing headers and other miscellaneous reasons
916         https://bugs.webkit.org/show_bug.cgi?id=42107
917
918         * GNUmakefile.am: Add missing header to the sources list.
919
920 2010-07-12  Adam Roben  <aroben@apple.com>
921
922         Stop generating stripped symbols for Release builds
923
924         It turns out we can strip the symbols after-the-fact using PDBCopy.
925
926         Fixes <http://webkit.org/b/42085>.
927
928         Reviewed by Steve Falkenburg.
929
930         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
931         Removed the pre-link event, which just created the public\sym
932         directory.
933
934 2010-07-12  Anders Carlsson  <andersca@apple.com>
935
936         Reviewed by Dan Bernstein.
937
938         Add WARN_UNUSED_RETURN to the smart pointer "leak" member functions
939         https://bugs.webkit.org/show_bug.cgi?id=42086
940
941         * wtf/OwnPtr.h:
942         * wtf/PassOwnPtr.h:
943         * wtf/PassRefPtr.h:
944         (WTF::PassRefPtr::releaseRef):
945         (WTF::NonNullPassRefPtr::leakRef):
946         (WTF::NonNullPassRefPtr::releaseRef):
947         * wtf/RetainPtr.h:
948         (WTF::RetainPtr::releaseRef):
949
950 2010-07-10  Oliver Hunt  <oliver@apple.com>
951
952         Reviewed by Maciej Stachowiak.
953
954         HAVE_COMPUTED_GOTO is dependent on the interpreter being enabled
955         https://bugs.webkit.org/show_bug.cgi?id=42039
956
957         Separate the existence of computed goto support in the compiler
958         from whether or not we are using the interpreter.  All the current
959         HAVE(COMPUTED_GOTO) guards are for the interpreter, but I'd like
960         the option of using it elsewhere.  The interpreter now uses
961         ENABLE(COMPUTED_GOTO_INTERPRETER) 
962
963         * bytecode/Instruction.h:
964         (JSC::Instruction::Instruction):
965         * bytecode/Opcode.h:
966         * interpreter/Interpreter.cpp:
967         (JSC::Interpreter::Interpreter):
968         (JSC::Interpreter::isOpcode):
969         (JSC::Interpreter::privateExecute):
970         * interpreter/Interpreter.h:
971         (JSC::Interpreter::getOpcode):
972         (JSC::Interpreter::getOpcodeID):
973         * wtf/Platform.h:
974
975 2010-07-10  Oliver Hunt  <oliver@apple.com>
976
977         Reviewed by Gavin Barraclough.
978
979         Remove switches from inner expression loops in the parser
980         https://bugs.webkit.org/show_bug.cgi?id=42035
981
982         Use bitmasks and flags on the token types to identify unary and
983         binary operators, rather than switching on the token type to
984         identify them.
985
986         * parser/JSParser.cpp:
987         (JSC::isUnaryOp):
988         (JSC::JSParser::isBinaryOperator):
989         * parser/JSParser.h:
990         (JSC::):
991
992 2010-07-09  Leon Clarke  <leonclarke@google.com>
993
994         Reviewed by Adam Barth.
995
996         add support for link prefetching
997         https://bugs.webkit.org/show_bug.cgi?id=3652
998
999         * Configurations/FeatureDefines.xcconfig:
1000
1001 2010-07-09  Oliver Hunt  <oliver@apple.com>
1002
1003         Reviewed by Darin Adler.
1004
1005         Tidy up lexer token ids
1006         https://bugs.webkit.org/show_bug.cgi?id=42014
1007
1008         Stop using character literals to identify single character tokens
1009         and instead use symbolic names for all tokens.
1010
1011         * parser/ASTBuilder.h:
1012         (JSC::ASTBuilder::makeBinaryNode):
1013         * parser/JSParser.cpp:
1014         (JSC::JSParser::consume):
1015         (JSC::JSParser::match):
1016         (JSC::JSParser::autoSemiColon):
1017         (JSC::JSParser::JSParser):
1018         (JSC::JSParser::parseProgram):
1019         (JSC::JSParser::allowAutomaticSemicolon):
1020         (JSC::JSParser::parseDoWhileStatement):
1021         (JSC::JSParser::parseWhileStatement):
1022         (JSC::JSParser::parseVarDeclarationList):
1023         (JSC::JSParser::parseConstDeclarationList):
1024         (JSC::JSParser::parseForStatement):
1025         (JSC::JSParser::parseReturnStatement):
1026         (JSC::JSParser::parseWithStatement):
1027         (JSC::JSParser::parseSwitchStatement):
1028         (JSC::JSParser::parseSwitchClauses):
1029         (JSC::JSParser::parseSwitchDefaultClause):
1030         (JSC::JSParser::parseTryStatement):
1031         (JSC::JSParser::parseDebuggerStatement):
1032         (JSC::JSParser::parseStatement):
1033         (JSC::JSParser::parseFormalParameters):
1034         (JSC::JSParser::parseFunctionInfo):
1035         (JSC::JSParser::parseExpressionOrLabelStatement):
1036         (JSC::JSParser::parseIfStatement):
1037         (JSC::JSParser::parseExpression):
1038         (JSC::JSParser::parseAssignmentExpression):
1039         (JSC::JSParser::parseConditionalExpression):
1040         (JSC::isUnaryOp):
1041         (JSC::JSParser::isBinaryOperator):
1042         (JSC::JSParser::parseBinaryExpression):
1043         (JSC::JSParser::parseProperty):
1044         (JSC::JSParser::parseObjectLiteral):
1045         (JSC::JSParser::parseStrictObjectLiteral):
1046         (JSC::JSParser::parseArrayLiteral):
1047         (JSC::JSParser::parsePrimaryExpression):
1048         (JSC::JSParser::parseArguments):
1049         (JSC::JSParser::parseMemberExpression):
1050         (JSC::JSParser::parseUnaryExpression):
1051         * parser/JSParser.h:
1052         (JSC::):
1053         * parser/Lexer.cpp:
1054         (JSC::):
1055         (JSC::Lexer::lex):
1056         * parser/Lexer.h:
1057
1058 2010-07-09  Gavin Barraclough  <barraclough@apple.com>
1059
1060         Reviewed by Oliver Hunt.
1061
1062         Bug 42015 - Enable JSValue32_64 on ARMv7
1063
1064         * Configurations/JavaScriptCore.xcconfig:
1065         * jit/JIT.h:
1066         * jit/JITStubs.cpp:
1067         * wtf/Platform.h:
1068
1069 2010-07-09  Kenneth Russell  <kbr@google.com>
1070
1071         Reviewed by Dimitri Glazkov.
1072
1073         Assertion failure in String::utf8() for certain invalid UTF16 inputs
1074         https://bugs.webkit.org/show_bug.cgi?id=41983
1075
1076         * wtf/text/WTFString.cpp:
1077         (WebCore::String::utf8):
1078          - Fixed assertion when sourceExhausted is returned from convertUTF16ToUTF8.
1079
1080 2010-07-09  Oliver Hunt  <oliver@apple.com>
1081
1082         Reviewed by Geoffrey Garen.
1083
1084         Remove a couple of excess writes from the lexer
1085         https://bugs.webkit.org/show_bug.cgi?id=41981
1086
1087         Remove a couple of fields from JSTokenInfo, and rename the remaining ones
1088         to something more accurate
1089
1090         * parser/JSParser.cpp:
1091         (JSC::JSParser::next):
1092         (JSC::JSParser::tokenStart):
1093         (JSC::JSParser::tokenLine):
1094         (JSC::JSParser::tokenEnd):
1095         * parser/JSParser.h:
1096         (JSC::JSTokenInfo::JSTokenInfo):
1097         * parser/Lexer.cpp:
1098         (JSC::Lexer::lex):
1099
1100 2010-07-08  Oliver Hunt  <oliver@apple.com>
1101
1102         Reviewed by Sam Weinig.
1103
1104         Property declarations in an object literal should not consider the prototype chain when being added to the new object
1105         https://bugs.webkit.org/show_bug.cgi?id=41929
1106
1107         To fix this all we need to do is ensure that all new properties are
1108         added with putDirect rather than a fully generic call to put.  This
1109         is safe as an object literal is by definition going to produce a
1110         completely normal object.
1111
1112         Rather than duplicating all the put_by_id logic we add an additional
1113         flag to op_put_by_id to indicate it should be using putDirect.  In
1114         the interpreter this adds a runtime branch, but in the jit this is
1115         essentially free as the branch is taken at compile time.  This does
1116         actually improve object literal creation time even in the interpreter
1117         as we no longer need to walk the prototype chain to verify that the
1118         cached put is safe.
1119
1120         We still emit normal put_by_id code when emitting __proto__ as we want
1121         to get the correct handling for changing the prototype.
1122
1123         Sunspider claims this is a 0.7% speedup which is conceivably real due
1124         to the performance improvement in object literals, but I suspect its
1125         really just the result of code motion.
1126
1127         * bytecode/Opcode.h:
1128         * bytecompiler/BytecodeGenerator.cpp:
1129         (JSC::BytecodeGenerator::emitPutById):
1130         (JSC::BytecodeGenerator::emitDirectPutById):
1131         * bytecompiler/BytecodeGenerator.h:
1132         * bytecompiler/NodesCodegen.cpp:
1133         (JSC::PropertyListNode::emitBytecode):
1134         * interpreter/Interpreter.cpp:
1135         (JSC::Interpreter::privateExecute):
1136         * jit/JIT.h:
1137         (JSC::JIT::compilePutByIdTransition):
1138         * jit/JITPropertyAccess.cpp:
1139         (JSC::JIT::emit_op_put_by_id):
1140         (JSC::JIT::emitSlow_op_put_by_id):
1141         (JSC::JIT::privateCompilePutByIdTransition):
1142         (JSC::JIT::patchPutByIdReplace):
1143         * jit/JITPropertyAccess32_64.cpp:
1144         (JSC::JIT::emitSlow_op_put_by_id):
1145         (JSC::JIT::privateCompilePutByIdTransition):
1146         (JSC::JIT::patchPutByIdReplace):
1147         * jit/JITStubs.cpp:
1148         (JSC::JITThunks::tryCachePutByID):
1149         (JSC::DEFINE_STUB_FUNCTION):
1150         * jit/JITStubs.h:
1151         (JSC::):
1152         * runtime/JSGlobalData.cpp:
1153         (JSC::JSGlobalData::JSGlobalData):
1154         * runtime/JSObject.h:
1155         (JSC::JSObject::putDirect):
1156         (JSC::JSValue::putDirect):
1157         * runtime/JSValue.h:
1158
1159 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
1160
1161         Reviewed by Sam Weinig.
1162
1163         String.prototype methods should CheckObjectCoercible (test this is not null or undefined).
1164
1165         * runtime/StringPrototype.cpp:
1166         (JSC::stringProtoFuncCharAt):
1167         (JSC::stringProtoFuncCharCodeAt):
1168         (JSC::stringProtoFuncConcat):
1169         (JSC::stringProtoFuncIndexOf):
1170         (JSC::stringProtoFuncLastIndexOf):
1171         (JSC::stringProtoFuncMatch):
1172         (JSC::stringProtoFuncSearch):
1173         (JSC::stringProtoFuncSlice):
1174         (JSC::stringProtoFuncSplit):
1175         (JSC::stringProtoFuncSubstr):
1176         (JSC::stringProtoFuncSubstring):
1177         (JSC::stringProtoFuncToLowerCase):
1178         (JSC::stringProtoFuncToUpperCase):
1179         (JSC::stringProtoFuncLocaleCompare):
1180         (JSC::trimString):
1181
1182 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
1183
1184         Reviewed by Sam Weinig.
1185
1186         Date.prototype.toJSON takes one argument, report this correctly.
1187
1188         * runtime/DatePrototype.cpp:
1189
1190 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
1191
1192         Reviewed by Sam Weinig.
1193
1194         RegExp's prototype should be an object of type RegExp.
1195
1196         * runtime/RegExpPrototype.cpp:
1197         (JSC::RegExpPrototype::RegExpPrototype):
1198         * runtime/RegExpPrototype.h:
1199
1200 2010-07-08  Oliver Hunt  <oliver@apple.com>
1201
1202         Reviewed by Gavin Barraclough.
1203
1204         JavaScript parser violates ECMA automatic semicolon insertion rule
1205         https://bugs.webkit.org/show_bug.cgi?id=41844
1206
1207         Remove (very) old and bogus logic that automatically inserted a semicolon
1208         at the end of a script's source.
1209
1210         * parser/Lexer.cpp:
1211         (JSC::Lexer::lex):
1212
1213 2010-07-08  Oliver Hunt  <oliver@apple.com>
1214
1215         Reviewed by Anders Carlson.
1216
1217         Tidy up the lexer
1218
1219         Remove some of the old yacc/lex-isms still present in the lexer
1220
1221         * parser/JSParser.h:
1222         (JSC::):
1223         * parser/Lexer.cpp:
1224         (JSC::Lexer::parseString):
1225         (JSC::Lexer::lex):
1226         * parser/Lexer.h:
1227
1228 2010-07-08  Oliver Hunt  <oliver@apple.com>
1229
1230         Reviewed by Gavin Barraclough.
1231
1232         Make object-literal parsing conformant with the spec.
1233         https://bugs.webkit.org/show_bug.cgi?id=41892
1234
1235         Bring our parsing of object literals into conformance with the ES5 spec.
1236         Basically disallow conflicting accessor vs. normal property definitions
1237         The bulk of this patch is just fiddling to maintain performance.
1238
1239         * parser/ASTBuilder.h:
1240         (JSC::ASTBuilder::createGetterOrSetterProperty):
1241         (JSC::ASTBuilder::createProperty):
1242         (JSC::ASTBuilder::getName):
1243         (JSC::ASTBuilder::getType):
1244         * parser/JSParser.cpp:
1245         (JSC::jsParse):
1246         (JSC::JSParser::JSParser):
1247         (JSC::JSParser::parseProperty):
1248         (JSC::JSParser::parseObjectLiteral):
1249         (JSC::JSParser::parseStrictObjectLiteral):
1250         * parser/JSParser.h:
1251         * parser/Lexer.cpp:
1252         (JSC::Lexer::clear):
1253         * parser/Lexer.h:
1254         (JSC::Lexer::currentOffset):
1255         (JSC::Lexer::setOffset):
1256           Add logic to allow us to roll the lexer back in the input stream.
1257         * parser/Nodes.h:
1258         (JSC::PropertyNode::):
1259         (JSC::PropertyNode::type):
1260         * parser/Parser.cpp:
1261         (JSC::Parser::parse):
1262         * parser/SourceProvider.h:
1263         (JSC::SourceProvider::SourceProvider):
1264         (JSC::SourceProvider::isValid):
1265         (JSC::SourceProvider::setValid):
1266           SourceProvider now records whether the input text
1267           has already been validated.
1268         * parser/SyntaxChecker.h:
1269         (JSC::SyntaxChecker::SyntaxChecker):
1270         (JSC::SyntaxChecker::Property::Property):
1271         (JSC::SyntaxChecker::Property::operator!):
1272         (JSC::SyntaxChecker::createProperty):
1273         (JSC::SyntaxChecker::createPropertyList):
1274         (JSC::SyntaxChecker::createGetterOrSetterProperty):
1275           The SyntaxChecker mode now needs to maintain a bit more information
1276           to ensure that we can validate object literals correctly.
1277
1278 2010-07-08  Darin Adler  <darin@apple.com>
1279
1280         * runtime/JSGlobalData.cpp:
1281         (JSC::JSGlobalData::sharedInstance): Fix typo.
1282
1283 2010-07-08  Darin Adler  <darin@apple.com>
1284
1285         Reviewed by Oliver Hunt.
1286
1287         Fix assertion seen on the Leopard buildbot.
1288         The single shared instance of JSGlobalData was not being
1289         adopted after creation.
1290
1291         * runtime/JSGlobalData.cpp:
1292         (JSC::JSGlobalData::sharedInstance): Do adoptRef and then leakRef.
1293
1294 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
1295
1296         Reviewed by Sam Weinig.
1297
1298         BOMs are whitespace.
1299
1300         * runtime/JSGlobalObjectFunctions.cpp:
1301         (JSC::isStrWhiteSpace):
1302
1303 2010-07-08  Martin Robinson  <mrobinson@igalia.com>
1304
1305         Unreviewed.
1306
1307         Try fix the GTK+ build by touching this file.
1308
1309         * jit/ExecutableAllocatorFixedVMPool.cpp:
1310
1311 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
1312
1313         GTK build fix take two.
1314
1315         * GNUmakefile.am:
1316
1317 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
1318
1319         GTK build fix.
1320
1321         * GNUmakefile.am:
1322
1323 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
1324
1325         Reviewed by Sam Weinig.
1326
1327         https://bugs.webkit.org/show_bug.cgi?id=41641
1328
1329         Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
1330         other than x86-64 (this may be useful on 32-bit platforms, too).
1331
1332         Simplify ifdefs by dividing into thwo broad allocation strategies
1333         (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
1334
1335         Rename constant used in the code to have names descriptive of their purpose,
1336         rather than their specific value on a given platform.
1337
1338         * jit/ExecutableAllocator.cpp:
1339         (JSC::ExecutableAllocator::reprotectRegion):
1340         (JSC::ExecutableAllocator::cacheFlush):
1341         * jit/ExecutableAllocatorFixedVMPool.cpp:
1342         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
1343         (JSC::FixedVMPoolAllocator::free):
1344         (JSC::ExecutablePool::systemAlloc):
1345         * jit/ExecutableAllocatorPosix.cpp:
1346         * jit/ExecutableAllocatorSymbian.cpp:
1347         * jit/ExecutableAllocatorWin.cpp:
1348         * wtf/Platform.h:
1349
1350 2010-07-08  Xan Lopez  <xlopez@igalia.com>
1351
1352         Reviewed by Gustavo Noronha.
1353
1354         Silence a few noisy build rules.
1355
1356         * GNUmakefile.am:
1357
1358 2010-07-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1359
1360         Unreviewed, rolling out r62765.
1361         http://trac.webkit.org/changeset/62765
1362         https://bugs.webkit.org/show_bug.cgi?id=41840
1363
1364         All jscore and layout tests crash on Qt bot (Requested by Ossy
1365         on #webkit).
1366
1367         * wtf/FastMalloc.cpp:
1368         (WTF::TCMalloc_PageHeap::initializeScavenger):
1369         (WTF::TCMalloc_PageHeap::signalScavenger):
1370         (WTF::TCMalloc_PageHeap::scavengerThread):
1371
1372 2010-07-08  Andreas Kling  <andreas.kling@nokia.com>
1373
1374         Reviewed by Oliver Hunt.
1375
1376         Interpreter: Crash in op_load_varargs on 64-bit
1377         https://bugs.webkit.org/show_bug.cgi?id=41795
1378
1379         Added missing cast of argCount to int32_t in op_load_varargs.
1380
1381         * interpreter/Interpreter.cpp:
1382         (JSC::Interpreter::privateExecute):
1383
1384 2010-07-08  Patrick Gansterer  <paroga@paroga.com>
1385
1386         Reviewed by Geoffrey Garen.
1387
1388         Make FastMalloc more portable.
1389         https://bugs.webkit.org/show_bug.cgi?id=41790
1390
1391         Use WTF::Mutex instead of pthread_mutex_t and
1392         replace pthread_cond_t with WTF::ThreadCondition.
1393
1394         * wtf/FastMalloc.cpp:
1395         (WTF::TCMalloc_PageHeap::initializeScavenger):
1396         (WTF::TCMalloc_PageHeap::signalScavenger):
1397         (WTF::TCMalloc_PageHeap::scavengerThread):
1398
1399 2010-07-08  Patrick Gansterer  <paroga@paroga.com>
1400
1401         Reviewed by Darin Adler.
1402
1403         Remove needless #include <fcntl.h> from TCSystemAlloc.cpp.
1404         https://bugs.webkit.org/show_bug.cgi?id=41777
1405
1406         * wtf/TCSystemAlloc.cpp:
1407
1408 2010-07-07  Darin Adler  <darin@apple.com>
1409
1410         Fixed build in configurations like PowerPC.
1411
1412         * runtime/RegExpConstructor.cpp: Added include of PassOwnPtr.h.
1413         * runtime/RegExpObject.cpp: Ditto.
1414         * wtf/SizeLimits.cpp: Changed compile time assertion to work
1415         even on platforms where two bool members do not end up taking
1416         the same size as one int member!
1417
1418 2010-07-07  Oliver Hunt  <oliver@apple.com>
1419
1420         Reviewed by Geoffrey Garen.
1421
1422         Lazy mode of parser allows invalid syntax in object literals.
1423         https://bugs.webkit.org/show_bug.cgi?id=41809
1424
1425         Make the parser itself validate getter and setter syntax rather
1426         than offloading it to the AST builder.
1427
1428         * parser/ASTBuilder.h:
1429         (JSC::ASTBuilder::createGetterOrSetterProperty):
1430         * parser/JSParser.cpp:
1431         (JSC::JSParser::parseProperty):
1432
1433 2010-07-07  Dumitru Daniliuc  <dumi@chromium.org>
1434
1435         Reviewed by Adam Roben.
1436
1437         Revert r62689.
1438         https://bugs.webkit.org/show_bug.cgi?id=41804
1439
1440         * runtime/Collector.cpp:
1441         (JSC::Heap::freeBlocks):
1442
1443 2010-07-07  Adam Barth  <abarth@webkit.org>
1444
1445         Reviewed by Sam Weinig.
1446
1447         Add reverseFind to Vector and deploy in HTML5 parser
1448         https://bugs.webkit.org/show_bug.cgi?id=41778
1449
1450         This method seems generally useful.  I'm slightly surprised we don't
1451         have it already.
1452
1453         * wtf/Vector.h:
1454         (WTF::::reverseFind):
1455
1456 2010-07-07  Darin Adler  <darin@apple.com>
1457
1458         Reviewed by Adam Barth.
1459
1460         Turn on adoptRef assertion for RefCounted
1461         https://bugs.webkit.org/show_bug.cgi?id=41547
1462
1463         * wtf/CrossThreadRefCounted.h: Fixed include style. Includes of other
1464         WTF headers should use "" includes; consistent in most WTF headers.
1465         Added a call to relaxAdoptionRequirement.
1466
1467         * wtf/RefCounted.h: Fixed include style. Removed LOOSE_REF_COUNTED.
1468         Added relaxAdoptionRequirement.
1469
1470 2010-07-07  Anders Carlsson  <andersca@apple.com>
1471
1472         Try to fix the Windows build.
1473
1474         * runtime/Collector.cpp:
1475         (JSC::Heap::freeBlocks):
1476
1477 2010-07-07  Darin Adler  <darin@apple.com>
1478
1479         Reviewed by Adam Barth.
1480
1481         More OwnPtr work
1482         https://bugs.webkit.org/show_bug.cgi?id=41727
1483
1484         * API/JSCallbackObject.h:
1485         (JSC::JSCallbackObjectData::setPrivateProperty): Use adoptPtr.
1486         * API/JSCallbackObjectFunctions.h:
1487         (JSC::JSCallbackObject::JSCallbackObject): Ditto.
1488         * bytecode/CodeBlock.cpp:
1489         (JSC::CodeBlock::CodeBlock): Ditto.
1490         * bytecode/CodeBlock.h:
1491         (JSC::CodeBlock::createRareDataIfNecessary): Ditto.
1492         * parser/Nodes.cpp:
1493         (JSC::ScopeNode::ScopeNode): Ditto.
1494         * parser/ParserArena.cpp:
1495         (JSC::ParserArena::ParserArena): Ditto.
1496         * runtime/Arguments.h:
1497         (JSC::Arguments::Arguments): Ditto.
1498         * runtime/Executable.cpp:
1499         (JSC::EvalExecutable::compile): Ditto.
1500         (JSC::ProgramExecutable::compile): Ditto.
1501         (JSC::FunctionExecutable::compileForCall): Ditto.
1502         (JSC::FunctionExecutable::compileForConstruct): Ditto.
1503         (JSC::FunctionExecutable::reparseExceptionInfo): Ditto.
1504         (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
1505         * runtime/JSArray.cpp:
1506         (JSC::JSArray::sort): Ditto.
1507         * runtime/RegExpConstructor.cpp:
1508         (JSC::RegExpConstructor::RegExpConstructor): Ditto.
1509         * runtime/RegExpObject.cpp:
1510         (JSC::RegExpObject::RegExpObject): Ditto.
1511         * runtime/SmallStrings.cpp:
1512         (JSC::SmallStrings::createSingleCharacterString): Ditto.
1513         (JSC::SmallStrings::singleCharacterStringRep): Ditto.
1514
1515         * wtf/unicode/icu/CollatorICU.cpp:
1516         (WTF::Collator::userDefault): Use adoptPtr.
1517         * yarr/RegexInterpreter.cpp:
1518         (JSC::Yarr::ByteCompiler::ByteCompiler): Ditto.
1519         (JSC::Yarr::ByteCompiler::compile): Ditto.
1520         (JSC::Yarr::ByteCompiler::regexBegin): Ditto.
1521         (JSC::Yarr::byteCompileRegex): Ditto.
1522         * yarr/RegexInterpreter.h:
1523         (JSC::Yarr::BytecodePattern::BytecodePattern): Ditto.
1524
1525 2010-07-07  Darin Adler  <darin@apple.com>
1526
1527         Reviewed by Adam Barth.
1528
1529         Make clear set the pointer to 0 before deletion
1530         https://bugs.webkit.org/show_bug.cgi?id=41727
1531
1532         * wtf/OwnArrayPtr.h: Changed code so we always set the pointer to its new
1533         value before deleting the old one, including in the set function and the
1534         clear function. This required changing safeDelete.
1535         * wtf/OwnPtr.h: Ditto. Also removed some extra null checks.
1536         * wtf/PassOwnPtr.h: Ditto.
1537
1538         * wtf/PassRefPtr.h: Changed code so we always set the pointer to its new
1539         value before deref'ing the old one in the clear function. Also added a
1540         leakRef function for NonNullPassRefPtr.
1541         * wtf/RefPtr.h: Ditto.
1542
1543         * wtf/gobject/GOwnPtr.h: More of the same.
1544         * wtf/gobject/GRefPtr.h: Ditto.
1545
1546 2010-07-07  Zoltan Herczeg  <zherczeg@webkit.org>
1547
1548         Reviewed by Oliver Hunt.
1549
1550         Refactored string parsing inside the lexer
1551         https://bugs.webkit.org/show_bug.cgi?id=41606
1552
1553         Does not use goto. Although the last sunspider
1554         parse-only tests yields 1.044x speedup, I think the
1555         patch can have a slight improvement at most.
1556
1557         * parser/Lexer.cpp:
1558         (JSC::singleEscape):
1559         (JSC::Lexer::parseString):
1560         (JSC::Lexer::lex):
1561         * parser/Lexer.h:
1562
1563 2010-07-06  Oliver Hunt  <oliver@apple.com>
1564
1565         Reviewed by Maciej Stachowiak.
1566
1567         Make it possible to have both the JIT and Interpreter available in a single build
1568         https://bugs.webkit.org/show_bug.cgi?id=41722
1569
1570         Separate the concept of !ENABLE(JIT) and ENABLE(INTERPRETER) and make it possible
1571         to have both JIT and INTERPRETER enabled at the same time.  This doesn't add
1572         support for mix mode execution, but it does allow a single build to contain all
1573         the code needed to use either the interpreter or the jit.
1574
1575         If both ENABLE(INTERPRETER) and ENABLE(JIT) are true then setting the environment
1576         variable JSC_FORCE_INTERPRETER will force JSC to use the interpreter.
1577
1578         This patch basically consists of replacing !ENABLE(JIT) with ENABLE(INTERPRETER),
1579         or converting #if ENABLE(JIT) ... #else ... into #if ENABLE(JIT) ... #endif
1580         #if ENABLE(INTERPRETER), etc.  There are also a few functions that need to be
1581         renamed to resolve return type ambiguity.
1582
1583         * bytecode/CodeBlock.cpp:
1584         (JSC::CodeBlock::~CodeBlock):
1585         (JSC::CodeBlock::shrinkToFit):
1586         * bytecode/CodeBlock.h:
1587         * interpreter/CallFrame.h:
1588         (JSC::ExecState::returnVPC):
1589         * interpreter/Interpreter.cpp:
1590         (JSC::Interpreter::unwindCallFrame):
1591         (JSC::Interpreter::throwException):
1592         (JSC::Interpreter::execute):
1593         (JSC::Interpreter::executeCall):
1594         (JSC::Interpreter::executeConstruct):
1595         (JSC::Interpreter::prepareForRepeatCall):
1596         (JSC::Interpreter::privateExecute):
1597         (JSC::Interpreter::retrieveLastCaller):
1598         * interpreter/Interpreter.h:
1599         * runtime/ArrayPrototype.cpp:
1600         (JSC::isNumericCompareFunction):
1601         * runtime/Executable.cpp:
1602         (JSC::EvalExecutable::generateJITCode):
1603         (JSC::ProgramExecutable::generateJITCode):
1604         (JSC::FunctionExecutable::generateJITCodeForCall):
1605         (JSC::FunctionExecutable::generateJITCodeForConstruct):
1606         (JSC::FunctionExecutable::reparseExceptionInfo):
1607         (JSC::EvalExecutable::reparseExceptionInfo):
1608         * runtime/JSFunction.cpp:
1609         * runtime/JSGlobalData.cpp:
1610         (JSC::JSGlobalData::JSGlobalData):
1611         * runtime/JSGlobalData.h:
1612         (JSC::JSGlobalData::canUseJIT):
1613         * wtf/Platform.h:
1614
1615 2010-07-06  Darin Adler  <darin@apple.com>
1616
1617         Reviewed by Adam Barth.
1618
1619         Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr
1620         https://bugs.webkit.org/show_bug.cgi?id=41320
1621
1622         * bytecode/CodeBlock.cpp:
1623         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): Use assignment
1624         instead of set since the result of reparseExceptionInfo is now a
1625         PassOwnPtr.
1626
1627         * bytecode/CodeBlock.h: Change extractExceptionInfo to return a
1628         PassOwnPtr instead of a raw pointer.
1629
1630         * runtime/Executable.cpp:
1631         (JSC::FunctionExecutable::reparseExceptionInfo): Return a PassOwnPtr.
1632         (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
1633         (JSC::ProgramExecutable::reparseExceptionInfo): Added. This was
1634         in the header before, but it's better to not have it there to reduce
1635         header dependencies. Return a PassOwnPtr.
1636
1637         * runtime/Executable.h: Made reparseExceptionInfo return a PassOwnPtr,
1638         and put it in the private sections of classes other than the base class.
1639
1640         * wtf/MessageQueue.h:
1641         (WTF::MessageQueue::append): Use leakPtr instead of release.
1642         (WTF::MessageQueue::appendAndCheckEmpty): Ditto.
1643         (WTF::MessageQueue::prepend): Ditto.
1644
1645         * wtf/OwnPtr.h: Tweaked formatting. Changed the release function to return
1646         a PassOwnPtr rather than a raw pointer. Added a leakPtr function that
1647         returns a raw pointer. Put the constructor that takes a raw pointer and
1648         the set function into a section guarded by LOOSE_OWN_PTR. Adapted to the
1649         new adoptPtr function from PassOwnPtr.h.
1650
1651         * wtf/PassOwnPtr.h: Tweaked formatting. Renamed the release function
1652         to leakPtr. Added an adoptPtr function that creates a new PassOwnPtr.
1653         Put the constructor and assignment operators that take a raw pointer
1654         into a section guarded by LOOSE_PASS_OWN_PTR.
1655
1656 2010-07-06  Sam Weinig  <sam@webkit.org>
1657
1658         Reviewed by Darin Adler
1659
1660         Update comment in StringExtras.h to be more accurate.
1661
1662         * wtf/StringExtras.h:
1663
1664 2010-07-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1665
1666         Unreviewed, rolling out r62511.
1667         http://trac.webkit.org/changeset/62511
1668         https://bugs.webkit.org/show_bug.cgi?id=41686
1669
1670         Breaks Linux/64bit compilation (Requested by xan_ on #webkit).
1671
1672         * jit/ExecutableAllocator.cpp:
1673         * jit/ExecutableAllocatorFixedVMPool.cpp:
1674         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
1675         (JSC::FixedVMPoolAllocator::free):
1676         (JSC::ExecutablePool::systemAlloc):
1677         * jit/ExecutableAllocatorPosix.cpp:
1678         (JSC::ExecutableAllocator::reprotectRegion):
1679         (JSC::ExecutableAllocator::cacheFlush):
1680         * jit/ExecutableAllocatorSymbian.cpp:
1681         * jit/ExecutableAllocatorWin.cpp:
1682         * wtf/Platform.h:
1683
1684 2010-07-05  Gavin Barraclough  <barraclough@apple.com>
1685
1686         Reviewed by Sam Weinig.
1687
1688         https://bugs.webkit.org/show_bug.cgi?id=41641
1689
1690         Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
1691         other than x86-64 (this may be useful on 32-bit platforms, too).
1692
1693         Simplify ifdefs by dividing into thwo broad allocation strategies
1694         (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
1695
1696         Rename constant used in the code to have names descriptive of their purpose,
1697         rather than their specific value on a given platform.
1698
1699         * jit/ExecutableAllocator.cpp:
1700         (JSC::ExecutableAllocator::reprotectRegion):
1701         (JSC::ExecutableAllocator::cacheFlush):
1702         * jit/ExecutableAllocatorFixedVMPool.cpp:
1703         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
1704         (JSC::FixedVMPoolAllocator::free):
1705         (JSC::ExecutablePool::systemAlloc):
1706         * jit/ExecutableAllocatorPosix.cpp:
1707         * jit/ExecutableAllocatorSymbian.cpp:
1708         * jit/ExecutableAllocatorWin.cpp:
1709         * wtf/Platform.h:
1710
1711 2010-07-05  Steve Block  <steveblock@google.com>
1712
1713         Reviewed by Darin Adler.
1714
1715         ThreadingPthreads.cpp should use JNIUtility.h on Android, not outdated jni_utility.h
1716         https://bugs.webkit.org/show_bug.cgi?id=41594
1717
1718         * wtf/ThreadingPthreads.cpp:
1719
1720 2010-07-04  Mark Rowe  <mrowe@apple.com>
1721
1722         Build fix after r62456.
1723
1724         * interpreter/Interpreter.cpp:
1725         (JSC::Interpreter::privateExecute): Be slightly more consistent in using uint32_t to prevent
1726         warnings about comparisons between signed and unsigned types, and attempts to call an overload
1727         of std::min that doesn't exist.
1728
1729 2010-07-02  Sam Weinig  <sam@webkit.org>
1730
1731         Reviewed by Darin Adler.
1732
1733         Patch for https://bugs.webkit.org/show_bug.cgi?id=41553
1734         Make StringExtras.h versions of snprintf and vsnprintf match the unix versions.
1735
1736         - MSVC does not ensure the buffers are null terminated as the unix versions do.
1737
1738         * runtime/JSGlobalObjectFunctions.cpp: Cleanup includes.
1739         * runtime/UString.cpp: Clean up includes.
1740         (JSC::UString::from): Don't pass sizeof(buf) - 1, that is wrong.
1741         * wtf/StringExtras.h:
1742         (snprintf): Ensure null termination of buffer.
1743         (vsnprintf): Ditto.
1744
1745 2010-07-03  Yong Li  <yoli@rim.com>
1746
1747         Reviewed by Darin Adler.
1748
1749         Make Arguments::MaxArguments clamping work for numbers >= 0x80000000 in
1750         the interpreter as well as the JIT.
1751
1752         https://bugs.webkit.org/show_bug.cgi?id=41351
1753         rdar://problem/8142141
1754
1755         * interpreter/Interpreter.cpp:
1756         (JSC::Interpreter::privateExecute): Fix signed integer overflow problem
1757         in op_load_varargs handling. 0xFFFFFFFF was read as -1.
1758
1759 2010-06-26  Jeremy Orlow  <jorlow@chromium.org>
1760
1761         Reviewed by Dumitru Daniliuc.
1762
1763         Support for keys and in-memory storage for IndexedDB
1764         https://bugs.webkit.org/show_bug.cgi?id=41252
1765
1766         Set the role to Private.
1767
1768         * JavaScriptCore.xcodeproj/project.pbxproj:
1769
1770 2010-07-02  Oliver Hunt  <oliver@apple.com>
1771
1772         Reviewed by Geoffrey Garen.
1773
1774         Move BOM handling out of the lexer and parser
1775         https://bugs.webkit.org/show_bug.cgi?id=41539
1776
1777         Doing the BOM stripping in the lexer meant that we could
1778         end up having to strip the BOMs from a source multiple times.
1779         To deal with this we now require all strings provided by
1780         a SourceProvider to already have had the BOMs stripped.
1781         This also simplifies some of the lexer logic.
1782
1783         * parser/Lexer.cpp:
1784         (JSC::Lexer::setCode):
1785         (JSC::Lexer::sourceCode):
1786         * parser/SourceProvider.h:
1787         (JSC::SourceProvider::SourceProvider):
1788         (JSC::UStringSourceProvider::create):
1789         (JSC::UStringSourceProvider::getRange):
1790         (JSC::UStringSourceProvider::UStringSourceProvider):
1791         * wtf/text/StringImpl.h:
1792         (WebCore::StringImpl::copyStringWithoutBOMs):
1793
1794 2010-07-03  Patrick Gansterer  <paroga@paroga.com>
1795
1796         Reviewed by Kent Tamura.
1797
1798         [WINCE] Implement Unicode::isAlphanumeric and Unicode::isArabicChar.
1799         https://bugs.webkit.org/show_bug.cgi?id=41411
1800
1801         * wtf/unicode/wince/UnicodeWince.cpp:
1802         (WTF::Unicode::isAlphanumeric):
1803         * wtf/unicode/wince/UnicodeWince.h:
1804         (WTF::Unicode::isArabicChar):
1805
1806 2010-07-03  Kwang Yul Seo  <skyul@company100.net>
1807
1808         Reviewed by Kent Tamura.
1809
1810         [BREWMP] Change the CRASH() macro to print "WebKit CRASH" log.
1811         https://bugs.webkit.org/show_bug.cgi?id=41524
1812
1813         Print "WebKit CRASH" before crashing.
1814
1815         * wtf/Assertions.h:
1816
1817 2010-07-02  Gavin Barraclough  <barraclough@apple.com>
1818
1819         Reviewed by Oliver Hunt.
1820
1821         Bug 41565 - Repatching in ARMv7Assembler::repatchLoadPtrToLEA is broken
1822
1823         This method tried to repatch a LDR (T2) into an ADD (T3) - but it only
1824         repatches the first instruction word.  The layout of the fields in the
1825         second word is different, and also needs repatching.
1826
1827         * assembler/ARMv7Assembler.h:
1828         (JSC::ARMv7Assembler::repatchLoadPtrToLEA):
1829
1830 2010-07-02  Oliver Hunt  <oliver@apple.com>
1831
1832         Reviewed by Gavin Barraclough.
1833
1834         Clamp the number of arguments supported by function.apply
1835         https://bugs.webkit.org/show_bug.cgi?id=41351
1836         <rdar://problem/8142141>
1837
1838         Add clamping logic to function.apply similar to that
1839         enforced by firefox.  We have a smaller clamp than
1840         firefox as our calling convention means that stack
1841         usage is proportional to argument count -- the firefox
1842         limit is larger than you could actually call.
1843
1844         * interpreter/Interpreter.cpp:
1845         (JSC::Interpreter::privateExecute):
1846         * jit/JITStubs.cpp:
1847         (JSC::DEFINE_STUB_FUNCTION):
1848         * runtime/Arguments.h:
1849         (JSC::Arguments::):
1850
1851 2010-07-02  Chao-ying Fu  <fu@mips.com>
1852
1853         Reviewed by Oliver Hunt.
1854
1855         Re-enable JIT_OPTIMIZE_NATIVE_CALL on MIPS
1856         https://bugs.webkit.org/show_bug.cgi?id=40179
1857
1858         Add the MIPS part to re-enable JIT_OPTIMIZE_NATIVE_CALL.
1859
1860         * jit/JITOpcodes.cpp:
1861         (JSC::JIT::privateCompileCTINativeCall):
1862         * wtf/Platform.h:
1863
1864 2010-07-02  Gavin Barraclough  <barraclough@apple.com>
1865
1866         Reviewed by Oliver Hunt.
1867
1868         Bug 41552 - Clean up ARMv7 vfp code generation
1869         Emit separate opcode individually, remove magic numbers.
1870
1871         Also remove invalid assert from JSImmediate (number cells are not CELL_MASK aligned).
1872
1873         * assembler/ARMv7Assembler.h:
1874         (JSC::ARMv7Assembler::):
1875         (JSC::ARMv7Assembler::vadd_F64):
1876         (JSC::ARMv7Assembler::vcmp_F64):
1877         (JSC::ARMv7Assembler::vcvt_F64_S32):
1878         (JSC::ARMv7Assembler::vcvtr_S32_F64):
1879         (JSC::ARMv7Assembler::vdiv_F64):
1880         (JSC::ARMv7Assembler::vldr):
1881         (JSC::ARMv7Assembler::vmov_F64_0):
1882         (JSC::ARMv7Assembler::vmov):
1883         (JSC::ARMv7Assembler::vmrs):
1884         (JSC::ARMv7Assembler::vmul_F64):
1885         (JSC::ARMv7Assembler::vstr):
1886         (JSC::ARMv7Assembler::vsub_F64):
1887         (JSC::ARMv7Assembler::VFPOperand::VFPOperand):
1888         (JSC::ARMv7Assembler::VFPOperand::bits1):
1889         (JSC::ARMv7Assembler::VFPOperand::bits4):
1890         (JSC::ARMv7Assembler::vcvtOp):
1891         (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpOp):
1892         (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpMemOp):
1893         * assembler/MacroAssemblerARMv7.h:
1894         (JSC::MacroAssemblerARMv7::branchDouble):
1895         * runtime/JSImmediate.h:
1896         (JSC::JSValue::isCell):
1897
1898 2010-07-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1899
1900         Unreviewed, rolling out r62410.
1901         http://trac.webkit.org/changeset/62410
1902         https://bugs.webkit.org/show_bug.cgi?id=41549
1903
1904         accursed last minute changes (Requested by olliej on #webkit).
1905
1906         * parser/Lexer.cpp:
1907         (JSC::Lexer::setCode):
1908         (JSC::Lexer::copyCodeWithoutBOMs):
1909         (JSC::Lexer::sourceCode):
1910         * parser/SourceProvider.h:
1911         (JSC::):
1912         (JSC::SourceProvider::SourceProvider):
1913         (JSC::SourceProvider::hasBOMs):
1914         (JSC::UStringSourceProvider::create):
1915         (JSC::UStringSourceProvider::getRange):
1916         (JSC::UStringSourceProvider::UStringSourceProvider):
1917         * wtf/text/StringImpl.h:
1918
1919 2010-07-02  Sam Weinig  <sam@webkit.org>
1920
1921         Reviewed by Geoffrey Garen.
1922
1923         Patch for https://bugs.webkit.org/show_bug.cgi?id=41548
1924         Use snprintf instead of sprintf everywhere in JavaScriptCore
1925
1926         * runtime/JSGlobalObjectFunctions.cpp:
1927         (JSC::encode):
1928         (JSC::globalFuncEscape):
1929         * runtime/UString.cpp:
1930         (JSC::UString::from):
1931
1932 2010-07-02  Oliver Hunt  <oliver@apple.com>
1933
1934         Reviewed by Geoffrey Garen.
1935
1936         Move BOM handling out of the lexer and parser
1937         https://bugs.webkit.org/show_bug.cgi?id=41539
1938
1939         Doing the BOM stripping in the lexer meant that we could
1940         end up having to strip the BOMs from a source multiple times.
1941         To deal with this we now require all strings provided by
1942         a SourceProvider to already have had the BOMs stripped.
1943         This also simplifies some of the lexer logic.
1944
1945         * parser/Lexer.cpp:
1946         (JSC::Lexer::setCode):
1947         (JSC::Lexer::sourceCode):
1948         * parser/SourceProvider.h:
1949         (JSC::SourceProvider::SourceProvider):
1950         (JSC::UStringSourceProvider::create):
1951         (JSC::UStringSourceProvider::getRange):
1952         (JSC::UStringSourceProvider::UStringSourceProvider):
1953         * wtf/text/StringImpl.h:
1954         (WebCore::StringImpl::copyStringWithoutBOMs):
1955
1956 2010-07-02  Renata Hodovan  <reni@inf.u-szeged.hu>
1957
1958         Reviewed by Oliver Hunt.
1959         
1960         [ Updated after rollout. ]
1961
1962         Merged RegExp constructor and RegExp::create methods.
1963         Both functions are called with three parameters and check whether 
1964         flags (the third param) is given or not.
1965         Avoid extra hash lookups in RegExpCache::create by passing a pre-computed
1966         iterator parameter.
1967         https://bugs.webkit.org/show_bug.cgi?id=41055
1968
1969         * runtime/RegExp.cpp:
1970         (JSC::RegExp::RegExp):
1971         * runtime/RegExp.h:
1972         * runtime/RegExpCache.cpp:
1973         (JSC::RegExpCache::lookupOrCreate):
1974         (JSC::RegExpCache::create):
1975         * runtime/RegExpCache.h:
1976
1977 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
1978
1979         Unreviewed. Build fix for GTK+.
1980
1981         Build Lexer.lut.h with the rest of the .lut.h files. Later these should
1982         all probably be moved to DerivedSources.
1983
1984         * GNUmakefile.am:
1985
1986 2010-06-23  Martin Robinson  <mrobinson@igalia.com>
1987
1988         Reviewed by Gustavo Noronha Silva.
1989
1990         [GTK] Separate DerivedSources per-project
1991         https://bugs.webkit.org/show_bug.cgi?id=41109
1992
1993         Generate JavaScriptCore derived sources in <builddir>/DerivedSources/JavaScriptCore.
1994
1995         * GNUmakefile.am:
1996
1997 2010-07-02  Peter Varga  <pvarga@inf.u-szeged.hu>
1998
1999         Reviewed by Oliver Hunt.
2000
2001         The alternativeFrameLocation value is wrong in the emitDisjunction function in
2002         case of PatternTerm::TypeParentheticalAssertion. This value needs to be
2003         computed from term.frameLocation instead of term.inputPosition. This mistake caused glibc
2004         memory corruption in some cases.
2005         Layout test added for checking of TypeParentheticalAssertion case.
2006         https://bugs.webkit.org/show_bug.cgi?id=41458
2007
2008         * yarr/RegexInterpreter.cpp:
2009         (JSC::Yarr::ByteCompiler::emitDisjunction):
2010
2011 2010-07-01  Oliver Hunt  <oliver@apple.com>
2012
2013         Reviewed by Maciej Stachowiak.
2014
2015         Add a FixedArray template to encapsulate fixed length arrays
2016         https://bugs.webkit.org/show_bug.cgi?id=41506
2017
2018         This new type is used in place of fixed length C arrays so
2019         that debug builds can guard against attempts to go beyond
2020         the end of the array.
2021
2022         * JavaScriptCore.xcodeproj/project.pbxproj:
2023         * bytecode/Opcode.cpp:
2024         (JSC::OpcodeStats::~OpcodeStats):
2025         * pcre/pcre_compile.cpp:
2026         (calculateCompiledPatternLength):
2027         * runtime/Collector.cpp:
2028         (JSC::Heap::allocateBlock):
2029         (JSC::Heap::allocate):
2030         * runtime/Collector.h:
2031         (JSC::CollectorBitmap::clearAll):
2032         * runtime/CollectorHeapIterator.h:
2033         (JSC::CollectorHeapIterator::operator*):
2034         * runtime/DateInstanceCache.h:
2035         * runtime/JSString.cpp:
2036         (JSC::JSString::replaceCharacter):
2037         * runtime/JSString.h:
2038         (JSC::RopeBuilder::JSStringFinalizerStruct::):
2039         * runtime/NumericStrings.h:
2040         * runtime/RegExpCache.h:
2041         * runtime/SmallStrings.h:
2042         (JSC::SmallStrings::singleCharacterStrings):
2043         * wtf/AVLTree.h:
2044         * wtf/FixedArray.h: Added.
2045         (WTF::FixedArray::operator[]):
2046         (WTF::FixedArray::data):
2047
2048 2010-07-01  Zoltan Herczeg  <zherczeg@webkit.org>
2049
2050         Reviewed by Oliver Hunt.
2051
2052         Improve the main lexer switch by mapping input characters to their type
2053         https://bugs.webkit.org/show_bug.cgi?id=41459
2054
2055         Sunsipder: no change (from 532.9ms to 531.5ms)
2056         SunSpider --parse-only: 1.025x as fast (from 33.1ms to 32.3ms)
2057
2058         * parser/Lexer.cpp:
2059         (JSC::):
2060         (JSC::Lexer::lex):
2061
2062 2010-07-01  Sam Weinig  <sam@webkit.org>
2063
2064         Rubber-stamped by Ander Carlsson.
2065
2066         Define HAVE_HOSTED_CORE_ANIMATION on Snow Leopard.
2067
2068         * wtf/Platform.h:
2069
2070 2010-07-01  Gavin Barraclough  <barraclough@apple.com>
2071
2072         Reviewed by Oliver Hunt.
2073
2074         Bug 41490 - Add missing operations to MacroAssemblerARMv7
2075         Also, make single, double, quad register numbers in ARMv7Assembler distinct & strongly typed.
2076
2077         * assembler/ARMv7Assembler.h:
2078         (JSC::ARMRegisters::):
2079         (JSC::ARMRegisters::asSingle):
2080         (JSC::ARMRegisters::asDouble):
2081         (JSC::VFPImmediate::VFPImmediate):
2082         (JSC::VFPImmediate::isValid):
2083         (JSC::VFPImmediate::value):
2084         (JSC::ARMv7Assembler::singleRegisterMask):
2085         (JSC::ARMv7Assembler::doubleRegisterMask):
2086         (JSC::ARMv7Assembler::):
2087         (JSC::ARMv7Assembler::add_S):
2088         (JSC::ARMv7Assembler::neg):
2089         (JSC::ARMv7Assembler::orr_S):
2090         (JSC::ARMv7Assembler::sub):
2091         (JSC::ARMv7Assembler::sub_S):
2092         (JSC::ARMv7Assembler::vadd_F64):
2093         (JSC::ARMv7Assembler::vcmp_F64):
2094         (JSC::ARMv7Assembler::vcvt_F64_S32):
2095         (JSC::ARMv7Assembler::vcvtr_S32_F64):
2096         (JSC::ARMv7Assembler::vdiv_F64):
2097         (JSC::ARMv7Assembler::vldr):
2098         (JSC::ARMv7Assembler::vmov_F64_0):
2099         (JSC::ARMv7Assembler::vmov):
2100         (JSC::ARMv7Assembler::vmul_F64):
2101         (JSC::ARMv7Assembler::vstr):
2102         (JSC::ARMv7Assembler::vsub_F64):
2103         (JSC::ARMv7Assembler::vcvt):
2104         (JSC::ARMv7Assembler::vmem):
2105         * assembler/AbstractMacroAssembler.h:
2106         * assembler/MacroAssemblerARM.h:
2107         * assembler/MacroAssemblerARMv7.h:
2108         (JSC::MacroAssemblerARMv7::fpTempRegisterAsSingle):
2109         (JSC::MacroAssemblerARMv7::neg32):
2110         (JSC::MacroAssemblerARMv7::loadDouble):
2111         (JSC::MacroAssemblerARMv7::divDouble):
2112         (JSC::MacroAssemblerARMv7::convertInt32ToDouble):
2113         (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):
2114         (JSC::MacroAssemblerARMv7::zeroDouble):
2115         (JSC::MacroAssemblerARMv7::branchOr32):
2116         (JSC::MacroAssemblerARMv7::set32):
2117         (JSC::MacroAssemblerARMv7::set8):
2118         * assembler/MacroAssemblerMIPS.h:
2119         * assembler/MacroAssemblerX86Common.h:
2120
2121 2010-07-01  Oliver Hunt  <oliver@apple.com>
2122
2123         Reviewed by Geoff Garen.
2124
2125         Improve reentrancy logic in polymorphic cache stubs
2126         <https://bugs.webkit.org/show_bug.cgi?id=41482>
2127         <rdar://problem/8094380>
2128
2129         Make the polymorphic cache stubs handle reentrancy
2130         better.
2131
2132         * jit/JITStubs.cpp:
2133         (JSC::DEFINE_STUB_FUNCTION):
2134         (JSC::getPolymorphicAccessStructureListSlot):
2135
2136 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
2137
2138         Revert accidental commit.
2139
2140         * runtime/Collector.cpp:
2141         (JSC::Heap::allocateBlock):
2142
2143 2010-06-30  Darin Adler  <darin@apple.com>
2144
2145         Reviewed by Adam Barth.
2146
2147         Add assertion, off by default, for when you forget to do adoptRef
2148         https://bugs.webkit.org/show_bug.cgi?id=41422
2149
2150         * wtf/PassRefPtr.h: Tweaked formatting. Added a new adopted
2151         function, called on the pointer by adoptRef, with an empty inline
2152         default version, meant to be overloaded. Unified the inlining
2153         with a macro named REF_DEREF_INLINE to make it clearer what's
2154         going on in the refIfNotNull/derefIfNotNull functions. Renamed
2155         releaseRef to leakRef, but left the old name in for compatibility
2156         for now.
2157
2158         * wtf/RefCounted.h: Added code to require adoption and assert if
2159         you don't call adoptRef. For now, it is turned off because of the
2160         LOOSE_REF_COUNTED define in this header. Later we can turn it on
2161         once we get everything working without asserting.
2162
2163 2010-06-29  Michael Saboff  <msaboff@apple.com>
2164
2165         Reviewed by Darin Adler.
2166
2167         Bug 41238 - RegExp performance slow on Dromaeo benchmark
2168
2169         Other javascript engines appear to cache prior results of regular 
2170         expression operations.
2171
2172         Suggest adding some sort of caching mechanism to regular expression 
2173         processing.
2174
2175         Added a single entry cache of match() results to RegExp class.
2176
2177         Also added performance improvements to UString == operator.
2178         First check the impls for equality.  Then get the length of
2179         each of the non-null impls.  Next check the sizes for equality.
2180         Then check the data for the case of different impls that point 
2181         to the same data (most likely due to substrings from the beginning of
2182         another string).  Lastly we check the underlying data for equality.
2183
2184         * runtime/RegExp.cpp:
2185         (JSC::RegExp::RegExp):
2186         (JSC::RegExp::match):
2187         * runtime/RegExp.h:
2188         * runtime/UString.h:
2189         (JSC::operator==):
2190
2191 2010-06-29  Nathan Lawrence  <nlawrence@apple.com>
2192
2193         Reviewed by Geoffrey Garen.
2194
2195         WTF::HashSet iterators are quasi-mutable.  Changing the value through
2196         dereferencing an iterator will not change the behavior of methods like
2197         contains or find, but will change the behavior of iterating.
2198
2199         * wtf/HashSet.h:
2200         (WTF::::begin):
2201         (WTF::::end):
2202         (WTF::::find):
2203         (WTF::::remove):
2204         * wtf/HashTable.h:
2205
2206 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
2207
2208         Reviewed by Xan Lopez.
2209
2210         [GTK] Clean up the source lists in the GNUMakefile.am files
2211         https://bugs.webkit.org/show_bug.cgi?id=41229
2212
2213         Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
2214         the source lists.
2215
2216         * GNUmakefile.am:
2217
2218 2010-06-29  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2219
2220         Reviewed by Kenneth Rohde Christiansen.
2221
2222         [Qt] Fix QtScript build after QScriptValuePrivate ctor changes
2223         https://bugs.webkit.org/show_bug.cgi?id=41307
2224
2225         * qt/api/qscriptvalue_p.h:
2226         (QScriptValuePrivate::prototype):
2227         * qt/benchmarks/qscriptengine/qscriptengine.pro:
2228
2229 2010-06-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2230
2231         Reviewed by Kenneth Rohde Christiansen.
2232
2233         [Qt] QScriptEngine API should contain a newArray function
2234         https://bugs.webkit.org/show_bug.cgi?id=39115
2235
2236         * qt/api/qscriptengine.cpp:
2237         (QScriptEngine::newArray):
2238         * qt/api/qscriptengine.h:
2239         * qt/api/qscriptengine_p.cpp:
2240         (QScriptEnginePrivate::newArray):
2241         * qt/api/qscriptengine_p.h:
2242         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
2243         (tst_QScriptEngine::newArray):
2244
2245 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2246
2247         Reviewed by Gustavo Noronha.
2248
2249         Install jsc as jsc-X where X is the major API version to allow
2250         parallel installation of both GTK+ 2.x and 3.x versions.
2251
2252         * GNUmakefile.am:
2253
2254 2010-06-28  John Gregg  <johnnyg@google.com>
2255
2256         Reviewed by Kent Tamura.
2257
2258         add ENABLE_DIRECTORY_UPLOAD build support
2259         https://bugs.webkit.org/show_bug.cgi?id=41100
2260
2261         * Configurations/FeatureDefines.xcconfig:
2262
2263 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2264
2265         Revert to build jsc, since the tests expect this.
2266
2267         * GNUmakefile.am:
2268
2269 2010-06-28  Zoltan Herczeg  <zherczeg@webkit.org>
2270
2271         Reviewed by Oliver Hunt.
2272
2273         Only one character lookahead should be enough for the lexer
2274         https://bugs.webkit.org/show_bug.cgi?id=41213
2275
2276         The lexer had 4 character lookahead before, which required
2277         a complex shifting mechanism. This can be improved by using
2278         only one character lookahead for most decisions, and a
2279         peek() function as a fallback when it is absolutely necessary.
2280
2281         * parser/Lexer.cpp:
2282         (JSC::Lexer::currentCharacter):
2283         (JSC::Lexer::currentOffset):
2284         (JSC::Lexer::setCode):
2285         (JSC::Lexer::shift):
2286         (JSC::Lexer::peek):
2287         (JSC::Lexer::getUnicodeCharacter):
2288         (JSC::Lexer::shiftLineTerminator):
2289         (JSC::Lexer::lastTokenWasRestrKeyword):
2290         (JSC::Lexer::lex):
2291         (JSC::Lexer::scanRegExp):
2292         (JSC::Lexer::skipRegExp):
2293         * parser/Lexer.h:
2294
2295 2010-06-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
2296
2297         Unreviewed build fix.
2298
2299         [EFL] Build fix for latest version of Ecore library.
2300         Ecore recently changed return type of callbacks from int to Eina_Bool.
2301
2302         * wtf/efl/MainThreadEfl.cpp:
2303         (WTF::timeoutFired): Return Eina_Bool instead of int.
2304
2305 2010-06-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2306
2307         Reviewed by Kenneth Rohde Christiansen.
2308
2309         [Qt] QScriptValue should have API for accessing object properties
2310         https://bugs.webkit.org/show_bug.cgi?id=40903
2311
2312         Make possible to access properties inside QScriptValues. While this
2313         still doesn't support the ResolveLocal parameter, it is already useful
2314         for testing the API.
2315
2316         The tests from upstream QtScript weren't imported since most of them
2317         depend on the setProperty() function as well. A simple test was created.
2318
2319         * qt/api/qscriptvalue.cpp:
2320         (QScriptValue::property):
2321         * qt/api/qscriptvalue.h:
2322         (QScriptValue::):
2323         * qt/api/qscriptvalue_p.h:
2324         (QScriptValuePrivate::property):
2325         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
2326         (tst_QScriptValue::propertySimple):
2327         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
2328
2329 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2330
2331         Reviewed by Gustavo Noronha.
2332
2333         [GTK] Add support for GTK+3
2334         https://bugs.webkit.org/show_bug.cgi?id=41253
2335
2336         Suffix jsc with the API version of the library, so that
2337         libwebkitgtk 1.x and 3.x can install jsc.
2338
2339         * GNUmakefile.am:
2340
2341 2010-06-27  Kwang Yul Seo  <skyul@company100.net>
2342
2343         Reviewed by Kent Tamura.
2344
2345         [BREWMP] Turn ENABLE(SINGLE_THREADED) on.
2346         https://bugs.webkit.org/show_bug.cgi?id=41135
2347
2348         Brew MP does not support preemptive multi-threading.
2349         Disable threading for Brew MP.
2350
2351         * wtf/Platform.h:
2352
2353 2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
2354
2355         Reviewed by Dimitri Glazkov.
2356
2357         Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
2358         https://bugs.webkit.org/show_bug.cgi?id=38924
2359
2360         * Configurations/FeatureDefines.xcconfig:
2361
2362 2010-06-25  Nathan Lawrence  <nlawrence@apple.com>
2363
2364         Reviewed by Geoffrey Garen.
2365
2366         We assume in testapi.c that the value aHeapRef refers to will not be
2367         moved.  When we have movable objects, this will not be the case.
2368
2369         * API/tests/testapi.c:
2370         (main):
2371
2372 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
2373
2374         Unreviewed, rolling out r61924.
2375         http://trac.webkit.org/changeset/61924
2376         https://bugs.webkit.org/show_bug.cgi?id=41240
2377
2378         It was rolled out, but cq+ wasn't removed (Requested by Ossy_
2379         on #webkit).
2380
2381         * runtime/RegExp.cpp:
2382         (JSC::RegExp::RegExp):
2383         (JSC::RegExp::create):
2384         * runtime/RegExp.h:
2385         * runtime/RegExpCache.cpp:
2386         (JSC::RegExpCache::lookupOrCreate):
2387         (JSC::RegExpCache::create):
2388         * runtime/RegExpCache.h:
2389
2390 2010-06-25  Renata Hodovan  <reni@inf.u-szeged.hu>
2391
2392         Reviewed by Geoffrey Garen.
2393
2394         Merge RegExp constructor and RegExp::create methods into one.
2395         Both of function are called with tree parameters and check whether 
2396         flags (the third param) is given or not.
2397         Simplify hash lookups in RegExpCache::create with giving them an extra 
2398         iterator parameter.
2399         https://bugs.webkit.org/show_bug.cgi?id=41055
2400
2401         * runtime/RegExp.cpp:
2402         (JSC::RegExp::RegExp):
2403         * runtime/RegExp.h:
2404         * runtime/RegExpCache.cpp:
2405         (JSC::RegExpCache::lookupOrCreate):
2406         (JSC::RegExpCache::create):
2407         * runtime/RegExpCache.h:
2408
2409 2010-06-25  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
2410
2411         Reviewed by Simon Hausmann.
2412
2413         Introduce QtScript benchmarks.
2414
2415         The QtScript performance should be tested regularly. The patch introduces
2416         micro benchmarks for existing API.
2417
2418         [Qt] Performance of the QtScript API is not tested.
2419         https://bugs.webkit.org/show_bug.cgi?id=40911
2420
2421         * qt/benchmarks/benchmarks.pri: Copied from JavaScriptCore/qt/tests/tests.pri.
2422         * qt/benchmarks/benchmarks.pro: Added.
2423         * qt/benchmarks/qscriptengine/qscriptengine.pro: Added.
2424         * qt/benchmarks/qscriptengine/tst_qscriptengine.cpp: Added.
2425         (tst_QScriptEngine::checkSyntax_data):
2426         (tst_QScriptEngine::checkSyntax):
2427         (tst_QScriptEngine::constructor):
2428         (tst_QScriptEngine::evaluateString_data):
2429         (tst_QScriptEngine::evaluateString):
2430         (tst_QScriptEngine::evaluateProgram_data):
2431         (tst_QScriptEngine::evaluateProgram):
2432         (tst_QScriptEngine::newObject):
2433         (tst_QScriptEngine::nullValue):
2434         (tst_QScriptEngine::undefinedValue):
2435         (tst_QScriptEngine::globalObject):
2436         (tst_QScriptEngine::toStringHandle):
2437         * qt/benchmarks/qscriptvalue/qscriptvalue.pro: Added.
2438         * qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp: Added.
2439         (tst_QScriptValue::tst_QScriptValue):
2440         (tst_QScriptValue::~tst_QScriptValue):
2441         (tst_QScriptValue::values_data):
2442         (tst_QScriptValue::ctorBool):
2443         (tst_QScriptValue::ctorReal):
2444         (tst_QScriptValue::ctorNumber):
2445         (tst_QScriptValue::ctorQString):
2446         (tst_QScriptValue::ctorCString):
2447         (tst_QScriptValue::ctorSpecial):
2448         (tst_QScriptValue::ctorQScriptValue):
2449         (tst_QScriptValue::isValid_data):
2450         (tst_QScriptValue::isValid):
2451         (tst_QScriptValue::isBool_data):
2452         (tst_QScriptValue::isBool):
2453         (tst_QScriptValue::isNumber_data):
2454         (tst_QScriptValue::isNumber):
2455         (tst_QScriptValue::isFunction_data):
2456         (tst_QScriptValue::isFunction):
2457         (tst_QScriptValue::isNull_data):
2458         (tst_QScriptValue::isNull):
2459         (tst_QScriptValue::isString_data):
2460         (tst_QScriptValue::isString):
2461         (tst_QScriptValue::isUndefined_data):
2462         (tst_QScriptValue::isUndefined):
2463         (tst_QScriptValue::isObject_data):
2464         (tst_QScriptValue::isObject):
2465         (tst_QScriptValue::isError_data):
2466         (tst_QScriptValue::isError):
2467         (tst_QScriptValue::toString_data):
2468         (tst_QScriptValue::toString):
2469         (tst_QScriptValue::toNumber_data):
2470         (tst_QScriptValue::toNumber):
2471         (tst_QScriptValue::toBool_data):
2472         (tst_QScriptValue::toBool):
2473         (tst_QScriptValue::toInteger_data):
2474         (tst_QScriptValue::toInteger):
2475         (tst_QScriptValue::toInt32_data):
2476         (tst_QScriptValue::toInt32):
2477         (tst_QScriptValue::toUInt32_data):
2478         (tst_QScriptValue::toUInt32):
2479         (tst_QScriptValue::toUInt16_data):
2480         (tst_QScriptValue::toUInt16):
2481         (tst_QScriptValue::toObject_data):
2482         (tst_QScriptValue::toObject):
2483         (tst_QScriptValue::equals_data):
2484         (tst_QScriptValue::equals):
2485         (tst_QScriptValue::strictlyEquals_data):
2486         (tst_QScriptValue::strictlyEquals):
2487         (tst_QScriptValue::instanceOf_data):
2488         (tst_QScriptValue::instanceOf):
2489
2490 2010-06-25  Oliver Hunt  <oliver@apple.com>
2491
2492         Reviewed by Geoffrey Garen.
2493
2494         Remove old js parser
2495         https://bugs.webkit.org/show_bug.cgi?id=41222
2496
2497         Remove the old yacc parser, this also solves the tiger problem.  Which
2498         was a conflict between yacc generated token values and those in the
2499         custom parser
2500
2501         * Android.mk:
2502         * CMakeLists.txt:
2503         * DerivedSources.make:
2504         * DerivedSources.pro:
2505         * GNUmakefile.am:
2506         * JavaScriptCore.pro:
2507         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2508         * JavaScriptCore.xcodeproj/project.pbxproj:
2509         * parser/Grammar.y: Removed.
2510         * parser/JSParser.cpp:
2511         * parser/JSParser.h:
2512         * parser/Lexer.cpp:
2513         * parser/NodeConstructors.h:
2514         (JSC::Node::Node):
2515         * parser/Parser.cpp:
2516         (JSC::Parser::parse):
2517         * wtf/Platform.h:
2518
2519 2010-06-25  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
2520
2521         Reviewed by Simon Hausmann.
2522
2523         New QtScript API; setPrototype() and prototype().
2524
2525         This patch implements QScriptValue's prototype accessors.
2526
2527         [Qt] QScriptValue should have accessors to a prototype.
2528         https://bugs.webkit.org/show_bug.cgi?id=39356
2529
2530         * qt/api/qscriptvalue.cpp:
2531         (QScriptValue::prototype):
2532         (QScriptValue::setPrototype):
2533         * qt/api/qscriptvalue.h:
2534         * qt/api/qscriptvalue_p.h:
2535         (QScriptValuePrivate::prototype):
2536         (QScriptValuePrivate::setPrototype):
2537         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
2538         (tst_QScriptValue::getSetPrototype):
2539         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
2540
2541 2010-06-25  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
2542
2543         Reviewed by Kenneth Rohde Christiansen.
2544
2545         [CMake] Add option to enable JIT.
2546         JIT is disabled by default, but now it's possible to enable it through
2547         an option to CMake: -DENABLE_JIT will enable it.
2548         https://bugs.webkit.org/show_bug.cgi?id=40936
2549
2550         * CMakeLists.txt: Add missing files and re-sort.
2551
2552 2010-06-25  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
2553
2554         Reviewed by Gustavo Noronha Silva.
2555
2556         [CMake] Remove unused variable in EFL build system. It was previously
2557         being used to set the flags of each port but it was superseded by
2558         other flags.
2559         https://bugs.webkit.org/show_bug.cgi?id=40931
2560
2561         * jsc/CMakeLists.txt:
2562
2563 2010-06-25  Nathan Lawrence  <nlawrence@apple.com>
2564
2565         Reviewed by Geoffrey Garen.
2566
2567         Aligning AssemblerBuffer to 128 bytes gives a 0.4% speedup on
2568         sunspider.
2569
2570         * assembler/AssemblerBuffer.h:
2571         (JSC::AssemblerBuffer::AssemblerBuffer):
2572
2573 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
2574
2575         Unreviewed, rolling out r61842.
2576         http://trac.webkit.org/changeset/61842
2577         https://bugs.webkit.org/show_bug.cgi?id=41208
2578
2579         It broke Windows build (Requested by Ossy_ on #webkit).
2580
2581         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
2582         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2583         * wtf/OwnPtrCommon.h:
2584         * wtf/brew/OwnPtrBrew.h: Removed.
2585         * wtf/win/OwnPtrWin.h: Removed.
2586
2587 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
2588
2589         Unreviewed, rolling out r61833.
2590         http://trac.webkit.org/changeset/61833
2591         https://bugs.webkit.org/show_bug.cgi?id=41205
2592
2593         It broke Leopard and GTK (Requested by Ossy_ on #webkit).
2594
2595         * runtime/RegExp.cpp:
2596         (JSC::RegExp::RegExp):
2597         (JSC::RegExp::create):
2598         * runtime/RegExp.h:
2599         * runtime/RegExpCache.cpp:
2600         (JSC::RegExpCache::lookupOrCreate):
2601         (JSC::RegExpCache::create):
2602         * runtime/RegExpCache.h:
2603
2604 2010-06-25  Kwang Yul Seo  <skyul@company100.net>
2605
2606         Reviewed by Adam Barth.
2607
2608         Change OwnPtrCommon to include platform-specific headers
2609         https://bugs.webkit.org/show_bug.cgi?id=40279
2610
2611         Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
2612         Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
2613
2614         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
2615         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2616         * wtf/OwnPtrCommon.h:
2617         * wtf/brew/OwnPtrBrew.h: Added.
2618         * wtf/win/OwnPtrWin.h: Added.
2619
2620 2010-06-25  Patrick Gansterer  <paroga@paroga.com>
2621
2622         Reviewed by Darin Adler.
2623
2624         Add the possibility for a head and footer section to create_jit_stubs.
2625         https://bugs.webkit.org/show_bug.cgi?id=36050
2626
2627         * create_jit_stubs:
2628
2629 2010-06-24  Renata Hodovan  <reni@inf.u-szeged.hu>
2630
2631         Reviewed by Geoffrey Garen.
2632
2633         Merge RegExp constructor and RegExp::create methods into one.
2634         Both of function are called with tree parameters and check whether 
2635         flags (the third param) is given or not.
2636         Simplify hash lookups in RegExpCache::create with giving them an extra 
2637         iterator parameter.
2638         https://bugs.webkit.org/show_bug.cgi?id=41055
2639
2640         * runtime/RegExp.cpp:
2641         (JSC::RegExp::RegExp):
2642         * runtime/RegExp.h:
2643         * runtime/RegExpCache.cpp:
2644         (JSC::RegExpCache::lookupOrCreate):
2645         (JSC::RegExpCache::create):
2646         * runtime/RegExpCache.h:
2647
2648 2010-06-24  Oliver Hunt  <oliver@apple.com>
2649
2650         Reviewed by Maciej Stachowiak.
2651
2652         Incorrect use of '+ 4' and 0 instead of tag and payload offsets in JSValue32_64
2653         https://bugs.webkit.org/show_bug.cgi?id=41193
2654
2655         I noticed a use of '+ 4' in some of the 32_64 code paths and realised there
2656         were a few places where endianness was being hardcoded.  This patch fixes
2657         the errors i could find through code inspection.
2658
2659         * jit/JITOpcodes32_64.cpp:
2660         (JSC::JIT::emit_op_resolve_global):
2661         * jit/JITPropertyAccess32_64.cpp:
2662         (JSC::JIT::emit_op_get_by_val):
2663         (JSC::JIT::emit_op_put_by_val):
2664         (JSC::JIT::compileGetDirectOffset):
2665         (JSC::JIT::privateCompilePutByIdTransition):
2666         (JSC::JIT::patchGetByIdSelf):
2667         (JSC::JIT::patchPutByIdReplace):
2668
2669 2010-06-24  Oliver Hunt  <oliver@apple.com>
2670
2671         Build fix
2672
2673         Temporarily get the tiger bot working again by disabling the
2674         new JS parser.  GCC on tiger is miscompiling the parser and
2675         I don't have access to a tiger machine right now.
2676
2677         * wtf/Platform.h:
2678
2679  2010-06-21  Nathan Lawrence  <nlawrence@apple.com>
2680
2681          Reviewed by Geoff Garen.
2682
2683          https://bugs.webkit.org/show_bug.cgi?id=40128
2684          Fixed broken debug functionality.
2685
2686          * interpreter/Interpreter.cpp:
2687          (JSC::Interpreter::dumpRegisters):
2688              Fixed to work with updated call frame.
2689          * runtime/JSImmediate.h:
2690          (JSC::JSValue::isCell):
2691              Added assert for aligned cell.
2692          * runtime/JSValue.cpp:
2693          (JSC::JSValue::description):
2694              Fixed to work with current JSValue implementation.
2695          * runtime/JSZombie.cpp:
2696          (JSC::JSZombie::leakedZombieStructure):
2697              JSombies compile again.
2698
2699 2010-06-24  Leandro Pereira  <leandro@profusion.mobi>
2700
2701         Unreviewed build fix.
2702
2703         * CMakeLists.txt: Add JSParser.cpp.
2704
2705 2010-06-24  Oliver Hunt  <oliver@apple.com>
2706
2707         Reviewed by Maciej Stachowiak.
2708
2709         Single character string replacement may replace too many characters
2710         https://bugs.webkit.org/show_bug.cgi?id=41138
2711         <rdar://problem/8097496>
2712
2713         Simple fix to stop the rope path of single character replacement
2714         once the first replacement occurs.
2715
2716         * runtime/JSString.cpp:
2717         (JSC::JSString::replaceCharacter):
2718
2719 2010-06-24  Gabor Loki  <loki@webkit.org>
2720
2721         Reviewed by Gavin Barraclough.
2722
2723         Fix the length of instruction stream controlled by constant pool
2724         https://bugs.webkit.org/show_bug.cgi?id=40293
2725
2726         The initial/maximum length of instruction stream (m_maxDistance) should
2727         be set when the first constant arrives to the constant pool. Otherwise
2728         the constant pool could be placed into an uninterrupted sequence.
2729
2730         * assembler/AssemblerBufferWithConstantPool.h:
2731         (JSC::):
2732
2733 2010-06-24  Oliver Hunt  <oliver@apple.com>
2734
2735         Reviewed by Gavin Barraclough.
2736
2737         We assume bytecodeOffset will always return a value > 1,
2738         so we adjust the failure case to return 1 instead of 0.
2739
2740         * bytecode/CodeBlock.h:
2741         (JSC::CodeBlock::bytecodeOffset):
2742
2743 2010-06-23  Oliver Hunt  <oliver@apple.com>
2744
2745         Reviewed by Gavin Barraclough.
2746
2747         Custom-written JavaScript parser
2748         https://bugs.webkit.org/show_bug.cgi?id=34019
2749
2750         Implement a recursive descent parser similar to that used by V8 and
2751         SpiderMonkey.  Greater than 2x improvement in SunSpider parsing tests.
2752
2753         The parser consists of a JSParser class that uses a TreeBuilder to actually
2754         build the AST.  There are currently two builders -- the ASTBuilder and
2755         SyntaxChecker which separate the job of building an AST for code generation
2756         and simply checking syntactic correctness.
2757
2758         There's still some less than ideal code remaining in the parser to allow
2759         us to retain the existing lexing code with minimal changes.  We'll tidy
2760         this up at a later date.
2761
2762         * GNUmakefile.am:
2763         * JavaScriptCore.gypi:
2764         * JavaScriptCore.pro:
2765         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2766         * JavaScriptCore.xcodeproj/project.pbxproj:
2767         * parser/ASTBuilder.h: Added.
2768         (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo):
2769         (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo):
2770         (JSC::ASTBuilder::ASTBuilder):
2771         (JSC::ASTBuilder::createSourceElements):
2772         (JSC::ASTBuilder::varDeclarations):
2773         (JSC::ASTBuilder::funcDeclarations):
2774         (JSC::ASTBuilder::features):
2775         (JSC::ASTBuilder::numConstants):
2776         (JSC::ASTBuilder::appendToComma):
2777         (JSC::ASTBuilder::createCommaExpr):
2778         (JSC::ASTBuilder::createLogicalNot):
2779         (JSC::ASTBuilder::createUnaryPlus):
2780         (JSC::ASTBuilder::createVoid):
2781         (JSC::ASTBuilder::thisExpr):
2782         (JSC::ASTBuilder::createResolve):
2783         (JSC::ASTBuilder::createObjectLiteral):
2784         (JSC::ASTBuilder::createArray):
2785         (JSC::ASTBuilder::createNumberExpr):
2786         (JSC::ASTBuilder::createString):
2787         (JSC::ASTBuilder::createBoolean):
2788         (JSC::ASTBuilder::createNull):
2789         (JSC::ASTBuilder::createBracketAccess):
2790         (JSC::ASTBuilder::createDotAccess):
2791         (JSC::ASTBuilder::createRegex):
2792         (JSC::ASTBuilder::createNewExpr):
2793         (JSC::ASTBuilder::createConditionalExpr):
2794         (JSC::ASTBuilder::createAssignResolve):
2795         (JSC::ASTBuilder::createFunctionExpr):
2796         (JSC::ASTBuilder::createFunctionBody):
2797         (JSC::ASTBuilder::createGetterOrSetterProperty):
2798         (JSC::ASTBuilder::createArguments):
2799         (JSC::ASTBuilder::createArgumentsList):
2800         (JSC::ASTBuilder::createProperty):
2801         (JSC::ASTBuilder::createPropertyList):
2802         (JSC::ASTBuilder::createElementList):
2803         (JSC::ASTBuilder::createFormalParameterList):
2804         (JSC::ASTBuilder::createClause):
2805         (JSC::ASTBuilder::createClauseList):
2806         (JSC::ASTBuilder::setUsesArguments):
2807         (JSC::ASTBuilder::createFuncDeclStatement):
2808         (JSC::ASTBuilder::createBlockStatement):
2809         (JSC::ASTBuilder::createExprStatement):
2810         (JSC::ASTBuilder::createIfStatement):
2811         (JSC::ASTBuilder::createForLoop):
2812         (JSC::ASTBuilder::createForInLoop):
2813         (JSC::ASTBuilder::createEmptyStatement):
2814         (JSC::ASTBuilder::createVarStatement):
2815         (JSC::ASTBuilder::createReturnStatement):
2816         (JSC::ASTBuilder::createBreakStatement):
2817         (JSC::ASTBuilder::createContinueStatement):
2818         (JSC::ASTBuilder::createTryStatement):
2819         (JSC::ASTBuilder::createSwitchStatement):
2820         (JSC::ASTBuilder::createWhileStatement):
2821         (JSC::ASTBuilder::createDoWhileStatement):
2822         (JSC::ASTBuilder::createLabelStatement):
2823         (JSC::ASTBuilder::createWithStatement):
2824         (JSC::ASTBuilder::createThrowStatement):
2825         (JSC::ASTBuilder::createDebugger):
2826         (JSC::ASTBuilder::createConstStatement):
2827         (JSC::ASTBuilder::appendConstDecl):
2828         (JSC::ASTBuilder::appendStatement):
2829         (JSC::ASTBuilder::addVar):
2830         (JSC::ASTBuilder::combineCommaNodes):
2831         (JSC::ASTBuilder::evalCount):
2832         (JSC::ASTBuilder::appendBinaryExpressionInfo):
2833         (JSC::ASTBuilder::operatorStackPop):
2834         (JSC::ASTBuilder::operatorStackHasHigherPrecedence):
2835         (JSC::ASTBuilder::getFromOperandStack):
2836         (JSC::ASTBuilder::shrinkOperandStackBy):
2837         (JSC::ASTBuilder::appendBinaryOperation):
2838         (JSC::ASTBuilder::operatorStackAppend):
2839         (JSC::ASTBuilder::popOperandStack):
2840         (JSC::ASTBuilder::appendUnaryToken):
2841         (JSC::ASTBuilder::unaryTokenStackLastType):
2842         (JSC::ASTBuilder::unaryTokenStackLastStart):
2843         (JSC::ASTBuilder::unaryTokenStackRemoveLast):
2844         (JSC::ASTBuilder::assignmentStackAppend):
2845         (JSC::ASTBuilder::createAssignment):
2846         (JSC::ASTBuilder::Scope::Scope):
2847         (JSC::ASTBuilder::setExceptionLocation):
2848         (JSC::ASTBuilder::incConstants):
2849         (JSC::ASTBuilder::usesThis):
2850         (JSC::ASTBuilder::usesCatch):
2851         (JSC::ASTBuilder::usesClosures):
2852         (JSC::ASTBuilder::usesArguments):
2853         (JSC::ASTBuilder::usesAssignment):
2854         (JSC::ASTBuilder::usesWith):
2855         (JSC::ASTBuilder::usesEval):
2856         (JSC::ASTBuilder::createNumber):
2857         (JSC::ASTBuilder::makeTypeOfNode):
2858         (JSC::ASTBuilder::makeDeleteNode):
2859         (JSC::ASTBuilder::makeNegateNode):
2860         (JSC::ASTBuilder::makeBitwiseNotNode):
2861         (JSC::ASTBuilder::makeMultNode):
2862         (JSC::ASTBuilder::makeDivNode):
2863         (JSC::ASTBuilder::makeAddNode):
2864         (JSC::ASTBuilder::makeSubNode):
2865         (JSC::ASTBuilder::makeLeftShiftNode):
2866         (JSC::ASTBuilder::makeRightShiftNode):
2867         (JSC::ASTBuilder::makeFunctionCallNode):
2868         (JSC::ASTBuilder::makeBinaryNode):
2869         (JSC::ASTBuilder::makeAssignNode):
2870         (JSC::ASTBuilder::makePrefixNode):
2871         (JSC::ASTBuilder::makePostfixNode):
2872         * parser/JSParser.cpp: Added.
2873         (JSC::JSParser::AllowInOverride::AllowInOverride):
2874         (JSC::JSParser::AllowInOverride::~AllowInOverride):
2875         (JSC::JSParser::token):
2876         (JSC::JSParser::next):
2877         (JSC::JSParser::consume):
2878         (JSC::JSParser::match):
2879         (JSC::JSParser::tokenStart):
2880         (JSC::JSParser::tokenLine):
2881         (JSC::JSParser::tokenEnd):
2882         (JSC::JSParser::):
2883         (JSC::JSParser::autoSemiColon):
2884         (JSC::JSParser::canRecurse):
2885         (JSC::JSParser::lastTokenEnd):
2886         (JSC::jsParse):
2887         (JSC::JSParser::JSParser):
2888         (JSC::JSParser::parseProgram):
2889         (JSC::JSParser::allowAutomaticSemicolon):
2890         (JSC::JSParser::parseSourceElements):
2891         (JSC::JSParser::parseVarDeclaration):
2892         (JSC::JSParser::parseConstDeclaration):
2893         (JSC::JSParser::parseDoWhileStatement):
2894         (JSC::JSParser::parseWhileStatement):
2895         (JSC::JSParser::parseVarDeclarationList):
2896         (JSC::JSParser::parseConstDeclarationList):
2897         (JSC::JSParser::parseForStatement):
2898         (JSC::JSParser::parseBreakStatement):
2899         (JSC::JSParser::parseContinueStatement):
2900         (JSC::JSParser::parseReturnStatement):
2901         (JSC::JSParser::parseThrowStatement):
2902         (JSC::JSParser::parseWithStatement):
2903         (JSC::JSParser::parseSwitchStatement):
2904         (JSC::JSParser::parseSwitchClauses):
2905         (JSC::JSParser::parseSwitchDefaultClause):
2906         (JSC::JSParser::parseTryStatement):
2907         (JSC::JSParser::parseDebuggerStatement):
2908         (JSC::JSParser::parseBlockStatement):
2909         (JSC::JSParser::parseStatement):
2910         (JSC::JSParser::parseFormalParameters):
2911         (JSC::JSParser::parseFunctionBody):
2912         (JSC::JSParser::parseFunctionInfo):
2913         (JSC::JSParser::parseFunctionDeclaration):
2914         (JSC::JSParser::parseExpressionOrLabelStatement):
2915         (JSC::JSParser::parseExpressionStatement):
2916         (JSC::JSParser::parseIfStatement):
2917         (JSC::JSParser::parseExpression):
2918         (JSC::JSParser::parseAssignmentExpression):
2919         (JSC::JSParser::parseConditionalExpression):
2920         (JSC::isUnaryOp):
2921         (JSC::JSParser::isBinaryOperator):
2922         (JSC::JSParser::parseBinaryExpression):
2923         (JSC::JSParser::parseProperty):
2924         (JSC::JSParser::parseObjectLiteral):
2925         (JSC::JSParser::parseArrayLiteral):
2926         (JSC::JSParser::parsePrimaryExpression):
2927         (JSC::JSParser::parseArguments):
2928         (JSC::JSParser::parseMemberExpression):
2929         (JSC::JSParser::parseUnaryExpression):
2930         * parser/JSParser.h: Added.
2931         (JSC::):
2932         (JSC::JSTokenInfo::JSTokenInfo):
2933         * parser/Lexer.cpp:
2934         (JSC::Lexer::lex):
2935         * parser/Lexer.h:
2936         (JSC::Lexer::setLastLineNumber):
2937         (JSC::Lexer::lastLineNumber):
2938         * parser/NodeConstructors.h:
2939         (JSC::Node::Node):
2940         * parser/Parser.cpp:
2941         (JSC::Parser::parse):
2942         * parser/SyntaxChecker.h: Added.
2943         (JSC::SyntaxChecker::SyntaxChecker):
2944         (JSC::SyntaxChecker::createSourceElements):
2945         (JSC::SyntaxChecker::makeFunctionCallNode):
2946         (JSC::SyntaxChecker::appendToComma):
2947         (JSC::SyntaxChecker::createCommaExpr):
2948         (JSC::SyntaxChecker::makeAssignNode):
2949         (JSC::SyntaxChecker::makePrefixNode):
2950         (JSC::SyntaxChecker::makePostfixNode):
2951         (JSC::SyntaxChecker::makeTypeOfNode):
2952         (JSC::SyntaxChecker::makeDeleteNode):
2953         (JSC::SyntaxChecker::makeNegateNode):
2954         (JSC::SyntaxChecker::makeBitwiseNotNode):
2955         (JSC::SyntaxChecker::createLogicalNot):
2956         (JSC::SyntaxChecker::createUnaryPlus):
2957         (JSC::SyntaxChecker::createVoid):
2958         (JSC::SyntaxChecker::thisExpr):
2959         (JSC::SyntaxChecker::createResolve):
2960         (JSC::SyntaxChecker::createObjectLiteral):
2961         (JSC::SyntaxChecker::createArray):
2962         (JSC::SyntaxChecker::createNumberExpr):
2963         (JSC::SyntaxChecker::createString):
2964         (JSC::SyntaxChecker::createBoolean):
2965         (JSC::SyntaxChecker::createNull):
2966         (JSC::SyntaxChecker::createBracketAccess):
2967         (JSC::SyntaxChecker::createDotAccess):
2968         (JSC::SyntaxChecker::createRegex):
2969         (JSC::SyntaxChecker::createNewExpr):
2970         (JSC::SyntaxChecker::createConditionalExpr):
2971         (JSC::SyntaxChecker::createAssignResolve):
2972         (JSC::SyntaxChecker::createFunctionExpr):
2973         (JSC::SyntaxChecker::createFunctionBody):
2974         (JSC::SyntaxChecker::createArguments):
2975         (JSC::SyntaxChecker::createArgumentsList):
2976         (JSC::SyntaxChecker::createProperty):
2977         (JSC::SyntaxChecker::createPropertyList):
2978         (JSC::SyntaxChecker::createElementList):
2979         (JSC::SyntaxChecker::createFormalParameterList):
2980         (JSC::SyntaxChecker::createClause):
2981         (JSC::SyntaxChecker::createClauseList):
2982         (JSC::SyntaxChecker::setUsesArguments):
2983         (JSC::SyntaxChecker::createFuncDeclStatement):
2984         (JSC::SyntaxChecker::createBlockStatement):
2985         (JSC::SyntaxChecker::createExprStatement):
2986         (JSC::SyntaxChecker::createIfStatement):
2987         (JSC::SyntaxChecker::createForLoop):
2988         (JSC::SyntaxChecker::createForInLoop):
2989         (JSC::SyntaxChecker::createEmptyStatement):
2990         (JSC::SyntaxChecker::createVarStatement):
2991         (JSC::SyntaxChecker::createReturnStatement):
2992         (JSC::SyntaxChecker::createBreakStatement):
2993         (JSC::SyntaxChecker::createContinueStatement):
2994         (JSC::SyntaxChecker::createTryStatement):
2995         (JSC::SyntaxChecker::createSwitchStatement):
2996         (JSC::SyntaxChecker::createWhileStatement):
2997         (JSC::SyntaxChecker::createWithStatement):
2998         (JSC::SyntaxChecker::createDoWhileStatement):
2999         (JSC::SyntaxChecker::createLabelStatement):
3000         (JSC::SyntaxChecker::createThrowStatement):
3001         (JSC::SyntaxChecker::createDebugger):
3002         (JSC::SyntaxChecker::createConstStatement):
3003         (JSC::SyntaxChecker::appendConstDecl):
3004         (JSC::SyntaxChecker::createGetterOrSetterProperty):
3005         (JSC::SyntaxChecker::appendStatement):
3006         (JSC::SyntaxChecker::addVar):
3007         (JSC::SyntaxChecker::combineCommaNodes):
3008         (JSC::SyntaxChecker::evalCount):
3009         (JSC::SyntaxChecker::appendBinaryExpressionInfo):
3010         (JSC::SyntaxChecker::operatorStackPop):
3011         * runtime/JSGlobalData.h:
3012         * wtf/Platform.h:
3013         * wtf/ThreadSpecific.h:
3014         (WTF::T):
3015
3016 2010-06-23  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
3017
3018         Reviewed by Simon Hausmann.
3019
3020         Optimization of the QScriptValuePrivate.
3021
3022         Patch change only internals of the QScriptValuePrivate.
3023         Most of the QScriptValuePrivate's attributes were moved
3024         into an union.
3025
3026         [Qt] Optimization of the QScriptVAluePrivate.
3027         https://bugs.webkit.org/show_bug.cgi?id=40415
3028
3029         * qt/api/qscriptengine_p.cpp:
3030         (QScriptEnginePrivate::globalObject):
3031         * qt/api/qscriptvalue_p.h:
3032         (QScriptValuePrivate::):
3033         (QScriptValuePrivate::~QScriptValuePrivate):
3034         (QScriptValuePrivate::QScriptValuePrivate):
3035         (QScriptValuePrivate::toString):
3036         (QScriptValuePrivate::toNumber):
3037         (QScriptValuePrivate::toBool):
3038         (QScriptValuePrivate::toObject):
3039         (QScriptValuePrivate::equals):
3040         (QScriptValuePrivate::strictlyEquals):
3041         (QScriptValuePrivate::assignEngine):
3042         (QScriptValuePrivate::operator JSValueRef):
3043         (QScriptValuePrivate::operator JSObjectRef):
3044         (QScriptValuePrivate::refinedJSValue):
3045
3046 2010-06-23  Kwang Yul Seo  <skyul@company100.net>
3047
3048         Reviewed by Oliver Hunt.
3049
3050         [GTK] Implement ThreadSpecific with glib
3051         https://bugs.webkit.org/show_bug.cgi?id=39829
3052
3053         Implement ThreadSpecific with glib's GStaticPrivate.
3054         This patch makes it possible to build GTK port without pthread.
3055
3056         * wtf/ThreadSpecific.h:
3057         (WTF::::ThreadSpecific):
3058         (WTF::::~ThreadSpecific):
3059         (WTF::::get):
3060         (WTF::::set):
3061         (WTF::::destroy):
3062
3063 2010-06-23  Leandro Pereira  <leandro@profusion.mobi>
3064
3065         Unreviewed build fix.
3066
3067         * CMakeLists.txt: Add runtime/RegExpCache.cpp.
3068
3069 2010-06-22  Renata Hodovan  <hodovan@inf.u-szeged.hu>
3070
3071         Reviewed by Geoffrey Garen.
3072
3073         Adding regular expression caching to JavaScriptCore
3074         https://bugs.webkit.org/show_bug.cgi?id=38142
3075
3076         The cache is based on Round Robin eviction policy, and
3077         can cache at most 256 character long regular expressions,
3078         and at most 256 of them. These values can be changed at compile time.
3079
3080         * GNUmakefile.am:
3081         * JavaScriptCore.gypi:
3082         * JavaScriptCore.pro:
3083         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3084         * JavaScriptCore.xcodeproj/project.pbxproj:
3085         * bytecompiler/NodesCodegen.cpp:
3086         (JSC::RegExpNode::emitBytecode):
3087         * runtime/JSGlobalData.cpp:
3088         (JSC::JSGlobalData::JSGlobalData):
3089         (JSC::JSGlobalData::~JSGlobalData):
3090         * runtime/JSGlobalData.h:
3091         (JSC::JSGlobalData::regExpCache):
3092         * runtime/RegExpCache.cpp: Added.
3093         (JSC::RegExpCache::lookupOrCreate):
3094         (JSC::RegExpCache::create):
3095         (JSC::RegExpCache::RegExpCache):
3096         * runtime/RegExpCache.h: Added.
3097         * runtime/RegExpConstructor.cpp:
3098         (JSC::constructRegExp):
3099         * runtime/RegExpKey.h: Added.
3100         (JSC::RegExpKey::RegExpKey):
3101         (JSC::RegExpKey::getFlagsValue):
3102         (WTF::operator==):
3103         (WTF::):
3104         * runtime/RegExpPrototype.cpp:
3105         (JSC::regExpProtoFuncCompile):
3106         * runtime/StringPrototype.cpp:
3107         (JSC::stringProtoFuncMatch):
3108         (JSC::stringProtoFuncSearch):
3109
3110 2010-06-22  Gabor Loki  <loki@webkit.org>
3111
3112         Reviewed by Geoffrey Garen.
3113
3114         Add native call support for ARM and Thumb-2 JIT.
3115         https://bugs.webkit.org/show_bug.cgi?id=40231
3116
3117         * jit/JITOpcodes.cpp:
3118         (JSC::JIT::privateCompileCTINativeCall):
3119         * jit/JITOpcodes32_64.cpp:
3120         (JSC::JIT::privateCompileCTINativeCall):
3121         * wtf/Platform.h:
3122
3123 2010-06-21  Oliver Hunt  <oliver@apple.com>
3124
3125         Reviewed by Geoffrey Garen.
3126
3127         Make JSC more resilient in the face of parse failures
3128         https://bugs.webkit.org/show_bug.cgi?id=40951
3129
3130         A number of recent bugs have occurred due to issues like miscounting
3131         BOMs, etc which lead to interesting crashes later on.  Adding this
3132         logic hardens JSC in the face of these errors, and has no impact on
3133         performance (32bit jit actually gets 0.7% faster but I put that down
3134         to cache effects).
3135
3136         * bytecode/CodeBlock.cpp:
3137         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
3138         (JSC::CodeBlock::lineNumberForBytecodeOffset):
3139         (JSC::CodeBlock::expressionRangeForBytecodeOffset):
3140         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
3141         * bytecode/CodeBlock.h:
3142         (JSC::CodeBlock::bytecodeOffset):
3143         * interpreter/Interpreter.cpp:
3144         (JSC::Interpreter::execute):
3145         (JSC::Interpreter::executeCall):
3146         (JSC::Interpreter::executeConstruct):
3147         (JSC::Interpreter::prepareForRepeatCall):
3148         (JSC::Interpreter::privateExecute):
3149         * jit/JITOpcodes.cpp:
3150         (JSC::JIT::privateCompileCTIMachineTrampolines):
3151         * jit/JITOpcodes32_64.cpp:
3152         (JSC::JIT::privateCompileCTIMachineTrampolines):
3153         * jit/JITStubs.cpp:
3154         (JSC::DEFINE_STUB_FUNCTION):
3155         * runtime/ArrayPrototype.cpp:
3156         (JSC::isNumericCompareFunction):
3157         * runtime/Executable.cpp:
3158         (JSC::FunctionExecutable::compileForCall):
3159         (JSC::FunctionExecutable::compileForConstruct):
3160         (JSC::FunctionExecutable::generateJITCodeForCall):
3161         (JSC::FunctionExecutable::generateJITCodeForConstruct):
3162         (JSC::FunctionExecutable::reparseExceptionInfo):
3163         (JSC::EvalExecutable::reparseExceptionInfo):
3164         * runtime/Executable.h:
3165         (JSC::FunctionExecutable::bytecodeForCall):
3166         (JSC::FunctionExecutable::bytecodeForConstruct):
3167         * runtime/JSGlobalData.cpp:
3168         (JSC::JSGlobalData::numericCompareFunction):
3169
3170 2010-06-21  John Sullivan  <sullivan@apple.com>
3171
3172         Reviewed by Adam Roben.
3173
3174         RetainPtr can't be used in HashMaps or HashSets
3175         <https://bugs.webkit.org/show_bug.cgi?id=40938>
3176         
3177         Added hashing knowledge similar to that in COMPtr.h.
3178
3179         * wtf/RetainPtr.h:
3180         (WTF::RetainPtr::RetainPtr):
3181         New function, copied from COMPtr.h but for the type change.
3182         (WTF::RetainPtr::isHashTableDeletedValue):
3183         Ditto.
3184         (WTF::RetainPtr::hashTableDeletedValue):
3185         Ditto.
3186         Added template code for HashTraits and PtrHash copied from COMPtr.h but for the type change.
3187         The only difference is that constructDeletedValue() matches the RefPtr implementation (in HashTraits.h)
3188         rather than the COMPtr implementation.
3189
3190 2010-06-19  Oliver Hunt  <oliver@apple.com>
3191
3192         Reviewed by Geoffrey Garen.
3193
3194         Need to ensure that we grow the RegisterFile when creating a callframe for host code
3195         https://bugs.webkit.org/show_bug.cgi?id=40858
3196         <rdar://problem/8108986>
3197
3198         In the past the use of the callframe in hostcode was much more
3199         limited.  Now that we expect the callframe to always be valid
3200         we need to grow the RegisterFile so that this is actually the
3201         case.  In this particular case the problem was failing to grow
3202         the registerfile could lead to a callframe that extended beyond
3203         RegisterFiler::end(), so vm re-entry would clobber the callframe
3204         other scenarios could also lead to badness.
3205
3206         I was unable to construct a simple testcase to trigger badness,
3207         and any such testcase would be so dependent on exact vm stack
3208         layout that it would be unlikely to work as a testcase following
3209         any callframe or register allocation changes anyway.
3210
3211         Thankfully the new assertion I added should help to catch these
3212         failures in future, and triggers on a couple of tests currently.
3213
3214         * interpreter/CallFrame.cpp:
3215         (JSC::CallFrame::registerFile):
3216         * interpreter/CallFrame.h:
3217         (JSC::ExecState::init):
3218         * interpreter/Interpreter.cpp:
3219         (JSC::Interpreter::privateExecute):
3220         * jit/JITStubs.cpp:
3221         (JSC::DEFINE_STUB_FUNCTION):
3222
3223 2010-06-21  Satish Sampath  <satish@chromium.org>
3224
3225         Reviewed by Steve Block.
3226
3227         Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
3228         https://bugs.webkit.org/show_bug.cgi?id=40878
3229
3230         * Configurations/FeatureDefines.xcconfig:
3231
3232 2010-06-21  Kwang Yul Seo  <skyul@company100.net>
3233
3234         Reviewed by Kent Tamura.
3235
3236         [BREWMP] Use global new/delete operator overloading with USE_SYSTEM_MALLOC=1
3237         https://bugs.webkit.org/show_bug.cgi?id=40653
3238
3239         Currently, other ports do not use global new/delete operator overloading
3240         when USE_SYSTEM_MALLOC=1. Brew MP uses system malloc, but it needs to enable
3241         "global fastMalloc new" because the default new/delete causes crash on device.
3242         We need to replace them with Brew MP's MALLOC/FREE.
3243
3244         * wtf/FastMalloc.h:
3245
3246 2010-06-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3247
3248         Reviewed by Simon Hausmann.
3249
3250         [Qt] Work around a build problem with libjscore on Symbian.
3251         https://bugs.webkit.org/show_bug.cgi?id=40840
3252
3253         Sbsv2 sometimes have problems with debug/release configuration
3254         determination causing QtWebKit in release to try linking with the debug
3255         JavaScriptCore static library. This patch limit the jscore/jscored
3256         r58306 fix necessary for mac builds only to the mac platform to prevent the
3257         different name problem.
3258
3259         The real fix would be to fix qmake or the toolchain, this patch might
3260         help meanwhile.
3261
3262         * JavaScriptCore.pri:
3263
3264 2010-06-21  Patrick Gansterer  <paroga@paroga.com>
3265
3266         Reviewed by Kent Tamura.
3267
3268         Buildfix after r61338.
3269         https://bugs.webkit.org/show_bug.cgi?id=40888
3270
3271         roundUpAllocationSize is needed in RegisterFile.h.
3272
3273         * jit/ExecutableAllocator.h:
3274
3275 2010-06-19  Kwang Yul Seo  <skyul@company100.net>
3276
3277         Reviewed by Darin Adler.
3278
3279         Include <string.h> in StringExtras.h
3280         https://bugs.webkit.org/show_bug.cgi?id=40808
3281
3282         Without string.h, RVCT 2.2 can't compile StringExtras.h.
3283         It can't find strlen and strncmp.
3284
3285         * wtf/StringExtras.h:
3286
3287 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
3288
3289         Reviewed by Kenneth Rohde Christiansen.
3290
3291         Don't use __attribute__((may_alias)) with the Intel compiler,
3292         as it doesn't understand it.
3293
3294         * wtf/Vector.h:
3295
3296 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
3297
3298         Reviewed by Kenneth Rohde Christiansen.
3299
3300         Fix compilation with the Intel C++ compiler (11.1.072).
3301
3302         Like RVCT, label pointers must be void*, not const void*.
3303
3304         * bytecode/Opcode.h:
3305
3306 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
3307
3308         Reviewed by Kenneth Rohde Christiansen.
3309
3310         Add the WTF_COMPILER_INTEL for when the Intel compiler is used
3311         for building. Usually, the Intel compiler masquerades as
3312         another compiler in the system and gets away with it, but some
3313         times specific fixes are required (such as when using language
3314         extensions).
3315
3316         * wtf/Platform.h:
3317
3318 2010-06-18  Oliver Hunt  <oliver@apple.com>
3319
3320         Reviewed by Geoffrey Garen.
3321
3322         Incorrect handling of multiple BOMs scattered through a file.
3323         https://bugs.webkit.org/show_bug.cgi?id=40865
3324
3325         When determining the offset of open and close braces in a source
3326         with BOMs we were finishing our count early as we failed to account
3327         for BOMs prior to the open/close brace positions effecting those
3328         positions.
3329
3330         * parser/Lexer.cpp:
3331         (JSC::Lexer::sourceCode):
3332
3333 2010-06-17  Oliver Hunt  <oliver@apple.com>
3334
3335         Reviewed by Sam Weinig.
3336
3337         Don't throw away exception information for functions that use exceptions
3338         https://bugs.webkit.org/show_bug.cgi?id=40786
3339
3340         Simple patch to stop JSC from throwing away the exception information
3341         of a function that uses "exceptiony" features like try and throw.  This
3342         is a speed up for catching expressions but it's difficult to quantify as
3343         the old cost of reparsing is amortised over all exceptions caught in the
3344         effected function.
3345
3346         * bytecode/CodeBlock.cpp:
3347         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
3348         * bytecompiler/BytecodeGenerator.cpp:
3349         (JSC::BytecodeGenerator::generate):
3350         (JSC::BytecodeGenerator::emitCatch):
3351         * bytecompiler/BytecodeGenerator.h:
3352         (JSC::BytecodeGenerator::emitThrow):
3353
3354 2010-06-18  Anders Carlsson  <andersca@apple.com>
3355
3356         Reviewed by Sam Weinig.
3357
3358         Add PlatformStrategies and PluginStrategy classes.
3359         https://bugs.webkit.org/show_bug.cgi?id=40850
3360
3361         * wtf/Platform.h:
3362
3363 2010-06-18  Leandro Pereira  <leandro@profusion.mobi>
3364
3365         [EFL] Unreviewed build fix.
3366
3367         * wtf/CMakeLists.txt: Add MD5.cpp.
3368
3369 2010-06-17  Shu Chang  <chang.shu@nokia.com>
3370
3371         Reviewed by Kenneth Rohde Christiansen.
3372
3373         [Qt] Fix the link error on symbian with ENABLE_JIT=0.
3374         1. Add "#if ENABLE(JIT)" in the header file;
3375         2. Put feature enable/disable logic to a common.pri so
3376         that both JavaScriptCore.pri and WebCore.pri can share.
3377
3378         https://bugs.webkit.org/show_bug.cgi?id=40780
3379
3380         * JavaScriptCore.pri:
3381         * jit/ExecutableAllocator.h:
3382
3383 2010-06-17  Darin Adler  <darin@apple.com>
3384
3385         Reviewed by Sam Weinig.
3386
3387         Use adoptRef and create functions in more code paths
3388         https://bugs.webkit.org/show_bug.cgi?id=40760
3389
3390         * API/JSClassRef.h: Removed unneeded include of RefCounted.h.
3391         * API/JSWeakObjectMapRefPrivate.cpp: Ditto.
3392
3393         * bytecode/CodeBlock.h:
3394         (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the
3395         SharedSymbolTable::create function instead of calling new directly.
3396
3397         * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable
3398         class and made the constructor private.
3399
3400 2010-06-17  Mark Brand  <mabrand@mabrand.nl>
3401
3402         Reviewed by Simon Hausmann.
3403
3404         [Qt] use "win32-g++*" scope to match all MinGW makespecs
3405
3406         The scope "win32-g++" comes from the name of the makespec. However, it
3407         is frequently used to check for MinGW. This works fine as long as
3408         win32-g++ is the only makespec for MinGW. Now we need the wildcard
3409         to cover "win32-g++-cross" as well.
3410
3411         * JavaScriptCore.pro:
3412
3413 2010-06-16  Darin Adler  <darin@apple.com>
3414
3415         Reviewed by David Levin.
3416
3417         Deploy adoptRef in more places, including all HTML and MathML elements
3418         https://bugs.webkit.org/show_bug.cgi?id=39941
3419
3420         * wtf/ThreadSafeShared.h: Made the constructor protected and removed the
3421         unneeded support for initial reference counts other than 1.
3422
3423 2010-06-16  Peter Varga  <pvarga@inf.u-szeged.hu>
3424
3425         Reviewed by Geoffrey Garen.
3426
3427         Store matchBegin directly in the array of output instead of the stack.
3428         https://bugs.webkit.org/show_bug.cgi?id=38988
3429
3430         * yarr/RegexJIT.cpp:
3431         (JSC::Yarr::RegexGenerator::generateDisjunction):
3432         (JSC::Yarr::RegexGenerator::generate):
3433
3434 2010-06-15  Anders Carlsson  <andersca@apple.com>
3435
3436         Reviewed by Sam Weinig.
3437
3438         Make JavaScriptCore build with clang++.
3439
3440         * jit/JITInlineMethods.h:
3441         (JSC::JIT::emitPutVirtualRegister):
3442         Explicitly cast to an int.
3443
3444         * yarr/RegexCompiler.cpp:
3445         (JSC::Yarr::compileRegex):
3446         Return 0 instead of false.
3447
3448 2010-06-15  Adam Roben  <aroben@apple.com>
3449
3450         Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
3451
3452         Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
3453
3454         Reviewed by Sam Weinig.
3455
3456         * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of
3457         JavaScriptCore's DerivedSources directory to
3458         AppleInternal/Sources/JavaScriptCore.
3459
3460 2010-06-15  Gabor Loki  <loki@webkit.org>
3461
3462         Rubber-stamped by Eric Seidel.
3463
3464         Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM
3465         https://bugs.webkit.org/show_bug.cgi?id=40423
3466
3467         Using OBJECT_OFFSETOF macro instead of objectof to bypass access to
3468         non-static data member warning.
3469
3470         * jit/JITPropertyAccess32_64.cpp:
3471         (JSC::JIT::privateCompilePutByIdTransition):
3472
3473 2010-06-11  Eric Seidel  <eric@webkit.org>
3474
3475         Reviewed by Adam Barth.
3476
3477         Rename the rest of the *Tokenizer classes to *DocumentParser
3478         https://bugs.webkit.org/show_bug.cgi?id=40507
3479
3480         * wtf/Platform.h:
3481          - fixed a comment to match new names.
3482
3483 2010-06-11  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
3484
3485         Reviewed by Simon Hausmann.
3486
3487         [Qt] Explicit conversions from QtScript types to JSC opaque types were removed.
3488         https://bugs.webkit.org/show_bug.cgi?id=40412
3489
3490         Conversion between a JSC C types and a QtScript private types, takes
3491         main part of the source code. In most cases a mapping between the types
3492         is one to one. New cast operators were added to simplify the code.
3493
3494         The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef.
3495         The QScriptEnginePrivate could be casted to the JSGlobalContext.
3496         The QScriptProgramPrivate could be casted to the JSStringRef.
3497
3498         * qt/api/qscriptengine_p.cpp:
3499         (QScriptEnginePrivate::evaluate):
3500         (QScriptEnginePrivate::newObject):
3501         (QScriptEnginePrivate::globalObject):
3502         * qt/api/qscriptengine_p.h:
3503         (QScriptEnginePrivate::operator JSGlobalContextRef):
3504         * qt/api/qscriptprogram_p.h:
3505         (QScriptProgramPrivate::operator JSStringRef):
3506         * qt/api/qscriptsyntaxcheckresult.cpp:
3507         (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate):
3508         (QScriptSyntaxCheckResultPrivate::errorMessage):
3509         (QScriptSyntaxCheckResultPrivate::errorLineNumber):
3510         * qt/api/qscriptvalue_p.h:
3511         (QScriptValuePrivate::~QScriptValuePrivate):
3512         (QScriptValuePrivate::QScriptValuePrivate):
3513         (QScriptValuePrivate::isBool):
3514         (QScriptValuePrivate::isNumber):
3515         (QScriptValuePrivate::isNull):
3516         (QScriptValuePrivate::isString):
3517         (QScriptValuePrivate::isUndefined):
3518         (QScriptValuePrivate::isFunction):
3519         (QScriptValuePrivate::toString):
3520         (QScriptValuePrivate::toNumber):
3521         (QScriptValuePrivate::toBool):
3522         (QScriptValuePrivate::toObject):
3523         (QScriptValuePrivate::equals):
3524         (QScriptValuePrivate::strictlyEquals):
3525         (QScriptValuePrivate::instanceOf):
3526         (QScriptValuePrivate::call):
3527         (QScriptValuePrivate::operator JSValueRef):
3528         (QScriptValuePrivate::operator JSObjectRef):
3529         (QScriptValuePrivate::setValue):
3530         (QScriptValuePrivate::inherits):
3531         (QScriptValuePrivate::refinedJSValue):
3532
3533 2010-05-31  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3534
3535         Reviewed by Simon Hausmann.
3536
3537         [Qt] Implement the simple text code path.
3538         https://bugs.webkit.org/show_bug.cgi?id=40077
3539
3540         Remove the FONT_FAST_PATH macro and use the Qt's
3541         fast text implementation instead of the one of WebKit.
3542
3543         The Qt::TextBypassShaping flag is used to tell Qt to
3544         only use the glyph advances.
3545
3546         Qt 4.7 is needed to get this flag thus the complex path is always
3547         used if QtWebKit is compiled against an earlier version.
3548
3549         Contrary to the WebKit's implementation, the complex code path
3550         is taken if the text is RightToLeft, justified or is formatted
3551         with non-zero letter or word spacing.
3552
3553         * wtf/Platform.h:
3554
3555 2010-06-11  Luiz Agostini  <luiz.agostini@openbossa.org>
3556
3557         Reviewed by Kenneth Rohde Christiansen.
3558
3559         add codePointCompare to JavaScriptCore.exp
3560         https://bugs.webkit.org/show_bug.cgi?id=40426
3561
3562         * JavaScriptCore.exp:
3563
3564 2010-06-10  Oliver Hunt  <oliver@apple.com>
3565
3566         Reviewed by Maciej Stachowiak.
3567
3568         Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode
3569         https://bugs.webkit.org/show_bug.cgi?id=40367
3570
3571         If we're in the slow case of right shift we must write the type tag as
3572         the only reason we hit this code path is because we know we're working
3573         with a double.  eg. we are guaranteed that the tag cannot be reused.
3574
3575         * jit/JITArithmetic32_64.cpp:
3576         (JSC::JIT::emitRightShiftSlowCase):
3577
3578 2010-06-10  Kwang Yul Seo  <skyul@company100.net>
3579
3580         Reviewed by Eric Seidel.
3581
3582         Remove weakRandomNumber