1 2011-01-17 Dan Bernstein <mitz@apple.com>
3 Rubber-stamped by Mark Rowe.
5 Update xcodeproj svn:ignore to include xcuserdata.
7 * JavaScriptCore.xcodeproj: Modified property svn:ignore.
9 2011-01-16 Adam Barth <abarth@webkit.org>
11 Rubber-stamped by Eric Seidel.
13 Move WebKit into Source
14 https://bugs.webkit.org/show_bug.cgi?id=52530
16 * JavaScriptCore.gyp/JavaScriptCore.gyp:
18 2011-01-16 Oliver Hunt <oliver@apple.com>
20 Reviewed by Sam Weinig.
22 [jsfunfuzz] Parser doesn't correctly validate for-loop syntax
23 https://bugs.webkit.org/show_bug.cgi?id=52516
25 Ensure that we always check for a semicolon after encountering
26 multiple declarations in the initialiser portion of a for-loop.
28 * parser/JSParser.cpp:
29 (JSC::JSParser::parseForStatement):
31 2011-01-16 Oliver Hunt <oliver@apple.com>
33 Reviewed by Geoffrey Garen.
35 Strict mode restrictions on arguments and eval usage aren't complete
36 https://bugs.webkit.org/show_bug.cgi?id=52528
38 Fix a few bugs in strict mode where we incorrect allow mutation of
39 arguments and eval in the parser.
41 Alas the "optimisation" used by the syntax checker for validating
42 binary and unary expressions was too aggressive: we do actually need
43 a stack for operations and operands although it needn't be as complete
44 as that used for the full AST builder.
46 Also disallow assignment to arguments in all cases as allowing arguments
47 to be assignable is always an error in strict mode, regardless of context.
49 * parser/ASTBuilder.h:
50 (JSC::ASTBuilder::BinaryExprContext::BinaryExprContext):
51 (JSC::ASTBuilder::UnaryExprContext::UnaryExprContext):
52 * parser/JSParser.cpp:
53 (JSC::JSParser::parseAssignmentExpression):
54 (JSC::JSParser::parseBinaryExpression):
55 (JSC::JSParser::parseUnaryExpression):
56 * parser/SyntaxChecker.h:
57 (JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
58 (JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
59 (JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
60 (JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
61 (JSC::SyntaxChecker::appendBinaryExpressionInfo):
62 (JSC::SyntaxChecker::operatorStackPop):
64 2011-01-15 Geoffrey Garen <ggaren@apple.com>
66 Reviewed by Oliver Hunt.
68 Rolled back in r75886.
69 https://bugs.webkit.org/show_bug.cgi?id=52527
71 r75886 broke the GTK Linux bot because Linux was -- quite surprisingly --
72 set up to use the constants for embedded devices.
74 * jit/ExecutableAllocatorFixedVMPool.cpp:
75 (JSC::maybeModifyVMPoolSize): Separated Linux constants from embedded
78 2011-01-15 Sheriff Bot <webkit.review.bot@gmail.com>
80 Unreviewed, rolling out r75886.
81 http://trac.webkit.org/changeset/75886
82 https://bugs.webkit.org/show_bug.cgi?id=52526
84 "Broke GTK+ 64bit" (Requested by xan_ on #webkit).
86 * jit/ExecutableAllocatorFixedVMPool.cpp:
88 2011-01-15 Geoffrey Garen <ggaren@apple.com>
90 Reviewed by Sam Weinig.
92 <rdar://problem/8870429> Shrink the executable pool on embedded devices
94 * jit/ExecutableAllocatorFixedVMPool.cpp: Dropped the pool size from 32MB
97 2011-01-15 Oliver Hunt <oliver@apple.com>
99 Reviewed by Maciej Stachowiak.
101 Incorrect behavior changing attributes of an accessor
102 https://bugs.webkit.org/show_bug.cgi?id=52515
104 defineProperty doesn't correctly handle changing attributes of an accessor
105 property. This is because we don't pass the full descriptor to the
106 putDescriptor helper function, which means we have insufficient information
107 to do the right thing. Once that's passed the correct behavior is relatively
110 * runtime/JSObject.cpp:
111 (JSC::putDescriptor):
112 (JSC::JSObject::defineOwnProperty):
114 2011-01-14 Oliver Hunt <oliver@apple.com>
116 Reviewed by Maciej Stachowiak.
118 [jsfunfuzz] Incorrect handling of consecutive duplicate labels
119 https://bugs.webkit.org/show_bug.cgi?id=52505
121 Compare StringImpl*'s instead of Identifier*'s when looking for duplicate
124 * parser/JSParser.cpp:
125 (JSC::JSParser::parseExpressionOrLabelStatement):
127 2011-01-14 Simon Fraser <simon.fraser@apple.com>
131 Initialize m_operationInProgress after r75855.
136 2011-01-14 Geoffrey Garen <ggaren@apple.com>
138 Reverted accidentally committed code from my last checkin.
141 (JSC::Heap::markRoots):
143 2011-01-14 Geoffrey Garen <ggaren@apple.com>
145 Reviewed by Sam Weinig.
147 Try to fix the GTK bot.
151 (JSC::Heap::markRoots): Kids, remember to initialize your data members.
152 Knowing is half the battle.
154 2011-01-14 Oliver Hunt <oliver@apple.com>
156 Reviewed by Stephanie Lewis.
158 [jsfunfuzz] We should be clearing the lexers temporary character buffers when switching to strict mode
159 https://bugs.webkit.org/show_bug.cgi?id=52501
161 Clear the temporary character buffers used for reading escaped characters and
165 (JSC::Lexer::setOffset):
167 2011-01-14 Geoffrey Garen <ggaren@apple.com>
169 Try to fix non-Dtrace builds: #include Tracing.h instead of TracingDtrace.h.
173 2011-01-13 Geoffrey Garen <ggaren@apple.com>
175 Reviewed by Oliver Hunt.
177 Split out a MarkedSpace strategy object from Heap.
178 https://bugs.webkit.org/show_bug.cgi?id=52421
180 SunSpider reports no change.
185 * JavaScriptCore.gypi:
186 * JavaScriptCore.pro:
187 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
188 * JavaScriptCore.xcodeproj/project.pbxproj: Updated our 7 build systems. Which is cool.
192 (JSC::Heap::destroy):
193 (JSC::Heap::recordExtraCost):
194 (JSC::Heap::allocate):
195 (JSC::Heap::markConservatively):
196 (JSC::Heap::markRoots):
197 (JSC::Heap::objectCount):
198 (JSC::Heap::statistics):
201 (JSC::Heap::collectAllGarbage):
202 (JSC::Heap::primaryHeapBegin):
203 (JSC::Heap::primaryHeapEnd):
205 (JSC::Heap::globalData):
206 (JSC::Heap::markedSpace):
207 (JSC::Heap::isCellMarked):
208 (JSC::Heap::checkMarkCell):
209 (JSC::Heap::markCell): Moved all code pertaining to managing chunks of
210 collector memory out of this class. Heap now just delegates to MarkedSpace.
213 (JSC::JSCell::Heap::heap): Updated for MarkedSpace delegation.
215 * runtime/JSValue.h: Moved the ValueStringPair typedef to help with #includes.
217 * runtime/MarkedSpace.cpp: Copied from runtime/Heap.cpp.
218 (JSC::MarkedSpace::MarkedSpace):
219 (JSC::MarkedSpace::destroy):
220 (JSC::MarkedSpace::allocateBlock):
221 (JSC::MarkedSpace::freeBlock):
222 (JSC::MarkedSpace::allocate):
223 (JSC::MarkedSpace::resizeBlocks):
224 (JSC::MarkedSpace::growBlocks):
225 (JSC::MarkedSpace::shrinkBlocks):
226 (JSC::MarkedSpace::markConservatively):
227 (JSC::MarkedSpace::clearMarkBits):
228 (JSC::MarkedSpace::markedCells):
229 (JSC::MarkedSpace::sweep):
230 (JSC::MarkedSpace::objectCount):
231 (JSC::MarkedSpace::addToStatistics):
232 (JSC::MarkedSpace::statistics):
233 (JSC::MarkedSpace::size):
234 (JSC::MarkedSpace::reset):
235 (JSC::MarkedSpace::primaryHeapBegin):
236 (JSC::MarkedSpace::primaryHeapEnd):
237 * runtime/MarkedSpace.h: Copied from runtime/Heap.h.
238 (JSC::MarkedSpace::globalData):
239 (JSC::MarkedSpace::didShrink):
240 (JSC::MarkedSpace::cellBlock):
241 (JSC::MarkedSpace::cellOffset):
242 (JSC::MarkedSpace::isCellMarked):
243 (JSC::MarkedSpace::checkMarkCell):
244 (JSC::MarkedSpace::markCell): Moved all code pertaining to managing chunks of
245 collector memory into this class.
247 * runtime/MemoryStatistics.cpp:
248 (JSC::heapStatistics):
249 * runtime/MemoryStatistics.h: Updated for MarkedSpace delegation.
251 2011-01-14 Oliver Hunt <oliver@apple.com>
253 Reviewed by Gavin Barraclough.
255 [jsfunfuzz] parser doesn't enforce continue restrictions correctly.
256 https://bugs.webkit.org/show_bug.cgi?id=52493
258 This patch reworks handling of break, continue and label statements
259 to correctly handle all the valid and invalid cases. Previously certain
260 errors would be missed by the parser in strict mode, but the bytecode
261 generator needed to handle those cases for non-strict code so nothing
262 failed, it simply became non-standard behaviour.
264 Now that we treat break and continue errors as early faults in non-strict
265 mode as well that safety net has been removed so the parser bugs result in
266 crashes at codegen time.
268 * parser/JSParser.cpp:
269 (JSC::JSParser::ScopeLabelInfo::ScopeLabelInfo):
270 (JSC::JSParser::next):
271 (JSC::JSParser::nextTokenIsColon):
272 (JSC::JSParser::continueIsValid):
273 Continue is only valid in loops so we can't use breakIsValid()
274 (JSC::JSParser::pushLabel):
275 We now track whether the label is for a loop (and is therefore a
276 valid target for continue.
277 (JSC::JSParser::popLabel):
278 (JSC::JSParser::getLabel):
279 Replace hasLabel with getLabel so that we can validate the target
280 when parsing continue statements.
281 (JSC::JSParser::Scope::continueIsValid):
282 (JSC::JSParser::Scope::pushLabel):
283 (JSC::JSParser::Scope::getLabel):
284 (JSC::JSParser::JSParser):
285 (JSC::JSParser::parseBreakStatement):
286 (JSC::JSParser::parseContinueStatement):
287 (JSC::LabelInfo::LabelInfo):
288 (JSC::JSParser::parseExpressionOrLabelStatement):
289 Consecutive labels now get handled iteratively so that we can determine
290 whether they're valid targets for continue.
292 (JSC::Lexer::nextTokenIsColon):
294 (JSC::Lexer::setOffset):
296 2011-01-14 Patrick Gansterer <paroga@webkit.org>
298 Reviewed by Adam Roben.
300 Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
301 https://bugs.webkit.org/show_bug.cgi?id=45186
303 * wtf/FastMalloc.cpp:
304 (WTF::TCMalloc_PageHeap::scheduleScavenger): Added missing this pointer to CreateTimerQueueTimer().
306 2011-01-14 Patrick Gansterer <paroga@webkit.org>
308 Reviewed by Adam Roben.
310 Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
311 https://bugs.webkit.org/show_bug.cgi?id=45186
313 r75819 accidentally changed the initial state of the scavenge timer.
315 * wtf/FastMalloc.cpp:
316 (WTF::TCMalloc_PageHeap::initializeScavenger): Changed initial state of m_scavengingSuspended to true.
318 2011-01-14 Patrick Gansterer <paroga@webkit.org>
320 Unreviewed Windows Release build fix.
322 * wtf/FastMalloc.cpp:
323 (WTF::TCMalloc_PageHeap::scavengerTimerFired):
325 2011-01-14 Patrick Gansterer <paroga@webkit.org>
327 Unreviewed Windows Release build fix.
329 * wtf/FastMalloc.cpp:
330 (WTF::TCMalloc_PageHeap::scavengerTimerFired):
332 2011-01-14 Patrick Gansterer <paroga@webkit.org>
334 Reviewed by Adam Roben.
336 Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
337 https://bugs.webkit.org/show_bug.cgi?id=45186
339 Use CreateTimerQueueTimer() to start periodicScavenge() and stop it with DeleteTimerQueueTimer().
341 * wtf/FastMalloc.cpp:
342 (WTF::TCMalloc_PageHeap::initializeScavenger):
343 (WTF::TCMalloc_PageHeap::isScavengerSuspended):
344 (WTF::TCMalloc_PageHeap::scheduleScavenger):
345 (WTF::TCMalloc_PageHeap::rescheduleScavenger):
346 (WTF::TCMalloc_PageHeap::suspendScavenger):
347 (WTF::scavengerTimerFired):
348 (WTF::TCMalloc_PageHeap::periodicScavenge):
349 (WTF::TCMalloc_PageHeap::signalScavenger):
351 2011-01-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
353 Reviewed by Kenneth Rohde Christiansen.
355 Align import/export directives
356 https://bugs.webkit.org/show_bug.cgi?id=52208
358 * API/JSBase.h: Align import/export directives with
359 WebKit2/Shared/API/c/WKBase.h
361 2011-01-14 Michael Saboff <msaboff@apple.com>
363 Reviewed by Oliver Hunt.
365 Incorrect backtracking for nested alternatives
366 https://bugs.webkit.org/show_bug.cgi?id=52387
368 In the process of propigating a datalabel it wasn't getting connected
369 to a destination when the destination was an indirect jump. Added
370 code to recognize a direct backtrack destination that was an indirect
371 jump and added mechanism to associate DataLabelPtrs with indirect
374 BacktrackDestination::linkDataLabelToHereIfExists()
377 (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
378 (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addDataLabel):
379 (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
380 (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
381 Changes to link indirect jumps with DataLabelPtr's.
382 (JSC::Yarr::YarrGenerator::BacktrackDestination::clearSubDataLabelPtr):
383 (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
384 Updated to handle immediate linking of indirect jumps to
386 (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction): Changed to
387 reflect updated linkDataLabelToBacktrackIfExists().
389 2011-01-14 Pavel Podivilov <podivilov@chromium.org>
391 Reviewed by Yury Semikhatsky.
393 Web Inspector: provide script column offset to frontend.
394 https://bugs.webkit.org/show_bug.cgi?id=52377
396 * parser/SourceCode.h:
397 (JSC::SourceCode::SourceCode):
398 (JSC::SourceCode::firstColumn):
400 2011-01-13 Darin Adler <darin@apple.com>
402 Reviewed by Geoff Garen.
404 <rdar://problem/5469576> Use __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 if available.
406 * DerivedSources.make: Create a header file, HeaderDetection.h, that tells
407 us whether pthread_machdep.h is available.
408 * wtf/FastMalloc.cpp: If __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 is available, then
409 don't do the pthread_getspecific_function_pointer trick.
410 (WTF::setThreadHeap): Ditto, but set thread-specific data.
411 (WTF::TCMalloc_ThreadCache::GetThreadHeap): Ditto, but get rather than set.
413 2011-01-13 Xan Lopez <xlopez@igalia.com>
415 Reviewed by Gavin Barraclough.
417 JIT requires VM overcommit (particularly on x86-64), Linux does not by default support this without swap?
418 https://bugs.webkit.org/show_bug.cgi?id=42756
420 The FixedVMPool Allocator does not work well on systems where
421 allocating very large amounts of memory upfront is not reasonable,
422 like Linux without overcommit enabled. As a workaround, on Linux,
423 default to the values used in embedded environments (in the MB
424 range), and only jump to the GB range if we detect at runtime that
425 overcommit is enabled. Should fix crashes on Linux/x86_64 with
426 less than 3 or 4GB of RAM.
428 * jit/ExecutableAllocatorFixedVMPool.cpp:
429 (JSC::FixedVMPoolAllocator::free): use new variables for VM pool
430 size and coalesce limit.
431 (JSC::ExecutableAllocator::isValid): swap the variables from
432 embedded to generic values at runtime, on linux, if overcommit is
434 (JSC::ExecutableAllocator::underMemoryPressure): use new variables
435 for VM pool size and coalesce limit.
437 2011-01-12 Xan Lopez <xlopez@igalia.com>
439 Reviewed by Martin Robinson.
441 Add new Yarr.h header to the list file.
443 * GNUmakefile.am: ditto.
445 2011-01-12 Martin Robinson <mrobinson@igalia.com>
447 Missing Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h in WebKitGtk tarball
448 https://bugs.webkit.org/show_bug.cgi?id=52299
450 * GNUmakefile.am: Fix the GTK+ build on ARMv7 by including missing source
451 files in the source list.
453 2011-01-12 Peter Varga <pvarga@webkit.org>
455 Reviewed by Gavin Barraclough.
458 https://bugs.webkit.org/show_bug.cgi?id=51021
460 Move other common constants and functions from YARR's different files
462 Use Yarr.h header instead of including other YARR headers where it
465 * JavaScriptCore.gypi:
466 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
467 * JavaScriptCore.xcodeproj/project.pbxproj:
468 * runtime/RegExp.cpp:
469 * yarr/Yarr.h: Added.
470 * yarr/YarrInterpreter.cpp:
471 * yarr/YarrInterpreter.h:
473 (JSC::Yarr::jitCompile):
474 (JSC::Yarr::execute):
477 * yarr/YarrPattern.cpp:
478 (JSC::Yarr::YarrPattern::compile):
479 (JSC::Yarr::YarrPattern::YarrPattern):
480 * yarr/YarrPattern.h:
482 2011-01-12 Sheriff Bot <webkit.review.bot@gmail.com>
484 Unreviewed, rolling out r75595.
485 http://trac.webkit.org/changeset/75595
486 https://bugs.webkit.org/show_bug.cgi?id=52286
488 It broke fast/regex/pcre-test-1.html (Requested by Ossy on
491 * JavaScriptCore.gypi:
492 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
493 * JavaScriptCore.xcodeproj/project.pbxproj:
494 * runtime/RegExp.cpp:
495 * yarr/Yarr.h: Removed.
496 * yarr/YarrInterpreter.cpp:
497 * yarr/YarrInterpreter.h:
499 (JSC::Yarr::jitCompile):
501 (JSC::Yarr::execute):
503 * yarr/YarrPattern.cpp:
504 (JSC::Yarr::compile):
505 (JSC::Yarr::YarrPattern::YarrPattern):
506 * yarr/YarrPattern.h:
508 2011-01-12 Peter Varga <pvarga@webkit.org>
510 Reviewed by Gavin Barraclough.
513 https://bugs.webkit.org/show_bug.cgi?id=51021
515 Move other common constants and functions from YARR's different files
517 Use Yarr.h header instead of including other YARR headers where it
520 * JavaScriptCore.gypi:
521 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
522 * JavaScriptCore.xcodeproj/project.pbxproj:
523 * runtime/RegExp.cpp:
524 * yarr/Yarr.h: Added.
525 * yarr/YarrInterpreter.cpp:
526 * yarr/YarrInterpreter.h:
528 (JSC::Yarr::jitCompile):
529 (JSC::Yarr::execute):
532 * yarr/YarrPattern.cpp:
533 (JSC::Yarr::YarrPattern::compile):
534 (JSC::Yarr::YarrPattern::YarrPattern):
535 * yarr/YarrPattern.h:
537 2011-01-11 Michael Saboff <msaboff@apple.com>
539 Reviewed by Geoffrey Garen.
541 Missing call to popTempSortVector() for exception case in JSArray::sort.
542 https://bugs.webkit.org/show_bug.cgi?id=50718
544 Fix to patch of 50718 that added pushTempSortVector() and
545 popTempSortVector() to JSArray::sort() to mark elements during sort.
546 Need to add popTempSortVector() for the return case if toString()
549 * runtime/JSArray.cpp:
550 (JSC::JSArray::sort): Added popTempSortVector()
552 2011-01-11 Xan Lopez <xlopez@igalia.com>
554 Reviewed by Darin Adler.
556 Microoptimization in ~JSString
557 https://bugs.webkit.org/show_bug.cgi?id=52222
559 The case where m_fibers is 0 seems to be the most common one
560 (almost 1/2 of the time, followed at some distance by m_fibers = 1
561 in 1/4 of the cases in a typical SunSpider execution). We can save
562 one comparison in this common case by doing a bit of refactoring
563 in the JSString destructor; overall a 0.3% progression, but only
564 the string tests show improvement.
566 * runtime/JSString.h:
567 (JSC::RopeBuilder::~JSString):
569 2011-01-10 Michael Saboff <msaboff@apple.com>
571 Reviewed by Geoffrey Garen.
573 ASSERTION Failure in JSC::binaryChop
574 https://bugs.webkit.org/show_bug.cgi?id=25614
576 Changed JITStubs::cti_register_file_check() to use the current stack's
577 return PC to find the bytecode for handling the exception in the prior
578 frame. Also added the appropriate arrity check routine call to the
579 JIT to bytecode vector (m_callReturnIndexVector) in the CodeBlock.
582 (JSC::JIT::privateCompile): Changed the arrity check call location
583 so that it gets added to the m_calls list so that it's included in
584 CodeBlock::m_callReturnIndexVector.
586 (JSC::DEFINE_STUB_FUNCTION): Use the current call frame's return PC.
588 2011-01-10 Daniel Bates <dbates@rim.com>
590 Reviewed by Martin Robinson.
592 Remove extraneous COMPILER(GCC) condition when checking GCC_VERSION_AT_LEAST()
593 https://bugs.webkit.org/show_bug.cgi?id=52178
595 It is sufficient to test GCC_VERSION_AT_LEAST() instead of both COMPILER(GCC) and
596 GCC_VERSION_AT_LEAST(). Notice GCC_VERSION_AT_LEAST() is defined to be 0 when we
597 are not compiling with GCC.
599 Fixes style issues at the callsites (i.e. replace comma with comma-space in
600 macro function argument list). Also, makes a spelling correction in a comment.
602 * jit/ExecutableAllocator.h:
603 (JSC::ExecutableAllocator::cacheFlush):
606 2011-01-10 Geoffrey Garen <ggaren@apple.com>
608 Build fix: removed some uses of nextNumber that I missed last time.
612 (JSC::Heap::collectAllGarbage):
614 2011-01-10 Daniel Bates <dbates@rim.com>
616 Reviewed by Darin Adler.
618 Use __builtin_expect when compiling using RVCT in GNU mode
619 https://bugs.webkit.org/show_bug.cgi?id=51866
621 We should only use __builtin_expect if we are compiling with GCC or RVCT 3 or higher in GNU mode
622 as pointed out by Siddharth Mathur per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0202h/Cjabddedbde.html>.
624 * wtf/AlwaysInline.h:
625 * wtf/Platform.h: Removed define WTF_COMPILER_RVCT4_OR_GREATER. Instead added macro
626 function RVCT_VERSION_AT_LEAST so that we can test for an arbitrary minimum RVCT
629 2011-01-10 Geoffrey Garen <ggaren@apple.com>
631 Reviewed by Oliver Hunt.
633 Moved Collector.* => Heap.*, since the file contains a class named "Heap".
635 * API/JSCallbackObject.cpp:
639 * JavaScriptCore.gypi:
640 * JavaScriptCore.pro:
641 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
642 * JavaScriptCore.xcodeproj/project.pbxproj:
643 * interpreter/Interpreter.cpp:
644 * interpreter/RegisterFile.h:
646 * runtime/Collector.cpp: Removed.
647 * runtime/Collector.h: Removed.
648 * runtime/CollectorHeapIterator.h:
649 * runtime/GCActivityCallbackCF.cpp:
650 * runtime/Heap.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
651 * runtime/Heap.h: Copied from JavaScriptCore/runtime/Collector.h.
652 * runtime/InitializeThreading.cpp:
654 * runtime/JSGlobalData.cpp:
655 * runtime/JSGlobalData.h:
656 * runtime/JSLock.cpp:
657 * runtime/JSNumberCell.h:
658 * runtime/MachineStackMarker.cpp:
659 * runtime/MemoryStatistics.h:
661 * runtime/UString.cpp:
662 * runtime/WeakGCMap.h:
663 * runtime/WeakGCPtr.h:
665 2011-01-10 Xan Lopez <xlopez@igalia.com>
667 Reviewed by Gavin Barraclough.
669 Remove unused isString() case in JSString::toPrimitiveString()
670 https://bugs.webkit.org/show_bug.cgi?id=52167
672 We never call toPrimitiveString() with strings, so remove the
673 check and add an ASSERT ensuring this never happens. 0.7% overall
674 progression in sunspider, since one of the call sites is very hot.
676 * runtime/JSString.h:
677 (JSC::JSValue::toPrimitiveString):
679 2011-01-10 Peter Varga <pvarga@inf.u-szeged.hu>
681 Reviewed by Gavin Barraclough.
683 Rename the existing YARR files and classes
684 https://bugs.webkit.org/show_bug.cgi?id=51872
686 Replace the "Regex" prefix with "Yarr" in the name of YARR files and classes.
691 * JavaScriptCore.gypi:
692 * JavaScriptCore.pro:
693 * JavaScriptCore.xcodeproj/project.pbxproj:
694 * runtime/RegExp.cpp:
695 (JSC::RegExp::compile):
696 (JSC::RegExp::match):
697 (JSC::RegExp::printTraceData):
698 * yarr/YarrInterpreter.cpp: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.cpp.
699 (JSC::Yarr::Interpreter::appendParenthesesDisjunctionContext):
700 (JSC::Yarr::Interpreter::popParenthesesDisjunctionContext):
701 (JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext):
702 (JSC::Yarr::Interpreter::DisjunctionContext::operator new):
703 (JSC::Yarr::Interpreter::allocDisjunctionContext):
704 (JSC::Yarr::Interpreter::freeDisjunctionContext):
705 (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
706 (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::operator new):
707 (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::restoreOutput):
708 (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
709 (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
710 (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
711 (JSC::Yarr::Interpreter::InputStream::InputStream):
712 (JSC::Yarr::Interpreter::InputStream::next):
713 (JSC::Yarr::Interpreter::InputStream::rewind):
714 (JSC::Yarr::Interpreter::InputStream::read):
715 (JSC::Yarr::Interpreter::InputStream::readPair):
716 (JSC::Yarr::Interpreter::InputStream::readChecked):
717 (JSC::Yarr::Interpreter::InputStream::reread):
718 (JSC::Yarr::Interpreter::InputStream::prev):
719 (JSC::Yarr::Interpreter::InputStream::getPos):
720 (JSC::Yarr::Interpreter::InputStream::setPos):
721 (JSC::Yarr::Interpreter::InputStream::atStart):
722 (JSC::Yarr::Interpreter::InputStream::atEnd):
723 (JSC::Yarr::Interpreter::InputStream::checkInput):
724 (JSC::Yarr::Interpreter::InputStream::uncheckInput):
725 (JSC::Yarr::Interpreter::InputStream::isNotAvailableInput):
726 (JSC::Yarr::Interpreter::testCharacterClass):
727 (JSC::Yarr::Interpreter::checkCharacter):
728 (JSC::Yarr::Interpreter::checkCasedCharacter):
729 (JSC::Yarr::Interpreter::checkCharacterClass):
730 (JSC::Yarr::Interpreter::tryConsumeBackReference):
731 (JSC::Yarr::Interpreter::matchAssertionBOL):
732 (JSC::Yarr::Interpreter::matchAssertionEOL):
733 (JSC::Yarr::Interpreter::matchAssertionWordBoundary):
734 (JSC::Yarr::Interpreter::backtrackPatternCharacter):
735 (JSC::Yarr::Interpreter::backtrackPatternCasedCharacter):
736 (JSC::Yarr::Interpreter::matchCharacterClass):
737 (JSC::Yarr::Interpreter::backtrackCharacterClass):
738 (JSC::Yarr::Interpreter::matchBackReference):
739 (JSC::Yarr::Interpreter::backtrackBackReference):
740 (JSC::Yarr::Interpreter::recordParenthesesMatch):
741 (JSC::Yarr::Interpreter::resetMatches):
742 (JSC::Yarr::Interpreter::parenthesesDoBacktrack):
743 (JSC::Yarr::Interpreter::matchParenthesesOnceBegin):
744 (JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
745 (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin):
746 (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
747 (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
748 (JSC::Yarr::Interpreter::matchParenthesesTerminalEnd):
749 (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
750 (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
751 (JSC::Yarr::Interpreter::matchParentheticalAssertionBegin):
752 (JSC::Yarr::Interpreter::matchParentheticalAssertionEnd):
753 (JSC::Yarr::Interpreter::backtrackParentheticalAssertionBegin):
754 (JSC::Yarr::Interpreter::backtrackParentheticalAssertionEnd):
755 (JSC::Yarr::Interpreter::matchParentheses):
756 (JSC::Yarr::Interpreter::backtrackParentheses):
757 (JSC::Yarr::Interpreter::lookupForBeginChars):
758 (JSC::Yarr::Interpreter::matchDisjunction):
759 (JSC::Yarr::Interpreter::matchNonZeroDisjunction):
760 (JSC::Yarr::Interpreter::interpret):
761 (JSC::Yarr::Interpreter::Interpreter):
762 (JSC::Yarr::ByteCompiler::ParenthesesStackEntry::ParenthesesStackEntry):
763 (JSC::Yarr::ByteCompiler::ByteCompiler):
764 (JSC::Yarr::ByteCompiler::compile):
765 (JSC::Yarr::ByteCompiler::checkInput):
766 (JSC::Yarr::ByteCompiler::assertionBOL):
767 (JSC::Yarr::ByteCompiler::assertionEOL):
768 (JSC::Yarr::ByteCompiler::assertionWordBoundary):
769 (JSC::Yarr::ByteCompiler::atomPatternCharacter):
770 (JSC::Yarr::ByteCompiler::atomCharacterClass):
771 (JSC::Yarr::ByteCompiler::atomBackReference):
772 (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
773 (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
774 (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
775 (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
776 (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
777 (JSC::Yarr::ByteCompiler::popParenthesesStack):
778 (JSC::Yarr::ByteCompiler::dumpDisjunction):
779 (JSC::Yarr::ByteCompiler::closeAlternative):
780 (JSC::Yarr::ByteCompiler::closeBodyAlternative):
781 (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
782 (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
783 (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
784 (JSC::Yarr::ByteCompiler::regexBegin):
785 (JSC::Yarr::ByteCompiler::regexEnd):
786 (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
787 (JSC::Yarr::ByteCompiler::alternativeDisjunction):
788 (JSC::Yarr::ByteCompiler::emitDisjunction):
789 (JSC::Yarr::byteCompile):
790 (JSC::Yarr::interpret):
791 * yarr/YarrInterpreter.h: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.h.
792 (JSC::Yarr::ByteTerm::ByteTerm):
793 (JSC::Yarr::ByteTerm::BOL):
794 (JSC::Yarr::ByteTerm::CheckInput):
795 (JSC::Yarr::ByteTerm::EOL):
796 (JSC::Yarr::ByteTerm::WordBoundary):
797 (JSC::Yarr::ByteTerm::BackReference):
798 (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
799 (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
800 (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
801 (JSC::Yarr::ByteTerm::AlternativeBegin):
802 (JSC::Yarr::ByteTerm::AlternativeDisjunction):
803 (JSC::Yarr::ByteTerm::AlternativeEnd):
804 (JSC::Yarr::ByteTerm::SubpatternBegin):
805 (JSC::Yarr::ByteTerm::SubpatternEnd):
806 (JSC::Yarr::ByteTerm::invert):
807 (JSC::Yarr::ByteTerm::capture):
808 (JSC::Yarr::ByteDisjunction::ByteDisjunction):
809 (JSC::Yarr::BytecodePattern::BytecodePattern):
810 (JSC::Yarr::BytecodePattern::~BytecodePattern):
811 * yarr/YarrJIT.cpp: Renamed from Source/JavaScriptCore/yarr/RegexJIT.cpp.
812 (JSC::Yarr::YarrGenerator::optimizeAlternative):
813 (JSC::Yarr::YarrGenerator::matchCharacterClassRange):
814 (JSC::Yarr::YarrGenerator::matchCharacterClass):
815 (JSC::Yarr::YarrGenerator::jumpIfNoAvailableInput):
816 (JSC::Yarr::YarrGenerator::jumpIfAvailableInput):
817 (JSC::Yarr::YarrGenerator::checkInput):
818 (JSC::Yarr::YarrGenerator::atEndOfInput):
819 (JSC::Yarr::YarrGenerator::notAtEndOfInput):
820 (JSC::Yarr::YarrGenerator::jumpIfCharEquals):
821 (JSC::Yarr::YarrGenerator::jumpIfCharNotEquals):
822 (JSC::Yarr::YarrGenerator::readCharacter):
823 (JSC::Yarr::YarrGenerator::storeToFrame):
824 (JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
825 (JSC::Yarr::YarrGenerator::loadFromFrame):
826 (JSC::Yarr::YarrGenerator::loadFromFrameAndJump):
827 (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
828 (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addJump):
829 (JSC::Yarr::YarrGenerator::AlternativeBacktrackRecord::AlternativeBacktrackRecord):
830 (JSC::Yarr::YarrGenerator::GenerationState::GenerationState):
831 (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
832 (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
833 (JSC::Yarr::YarrGenerator::GenerationState::incrementParenNestingLevel):
834 (JSC::Yarr::YarrGenerator::GenerationState::decrementParenNestingLevel):
835 (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail):
836 (JSC::Yarr::YarrGenerator::GenerationState::emitParenthesesTail):
837 (JSC::Yarr::YarrGenerator::GenerationState::addJumpToNextInteration):
838 (JSC::Yarr::YarrGenerator::GenerationState::addJumpsToNextInteration):
839 (JSC::Yarr::YarrGenerator::GenerationState::addDataLabelToNextIteration):
840 (JSC::Yarr::YarrGenerator::GenerationState::linkToNextIteration):
841 (JSC::Yarr::YarrGenerator::BacktrackDestination::BacktrackDestination):
842 (JSC::Yarr::YarrGenerator::BacktrackDestination::clear):
843 (JSC::Yarr::YarrGenerator::BacktrackDestination::clearDataLabel):
844 (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDestination):
845 (JSC::Yarr::YarrGenerator::BacktrackDestination::isStackOffset):
846 (JSC::Yarr::YarrGenerator::BacktrackDestination::isLabel):
847 (JSC::Yarr::YarrGenerator::BacktrackDestination::isJumpList):
848 (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDataLabel):
849 (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTarget):
850 (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTo):
851 (JSC::Yarr::YarrGenerator::BacktrackDestination::addBacktrackJump):
852 (JSC::Yarr::YarrGenerator::BacktrackDestination::setStackOffset):
853 (JSC::Yarr::YarrGenerator::BacktrackDestination::setLabel):
854 (JSC::Yarr::YarrGenerator::BacktrackDestination::setNextBacktrackLabel):
855 (JSC::Yarr::YarrGenerator::BacktrackDestination::copyBacktrackToLabel):
856 (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackToLabel):
857 (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackJumpList):
858 (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackSourceLabel):
859 (JSC::Yarr::YarrGenerator::BacktrackDestination::setDataLabel):
860 (JSC::Yarr::YarrGenerator::BacktrackDestination::setSubDataLabelPtr):
861 (JSC::Yarr::YarrGenerator::BacktrackDestination::linkToNextBacktrack):
862 (JSC::Yarr::YarrGenerator::BacktrackDestination::getStackOffset):
863 (JSC::Yarr::YarrGenerator::BacktrackDestination::getLabel):
864 (JSC::Yarr::YarrGenerator::BacktrackDestination::getBacktrackJumps):
865 (JSC::Yarr::YarrGenerator::BacktrackDestination::getDataLabel):
866 (JSC::Yarr::YarrGenerator::BacktrackDestination::jumpToBacktrack):
867 (JSC::Yarr::YarrGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
868 (JSC::Yarr::YarrGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
869 (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracks):
870 (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
871 (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState):
872 (JSC::Yarr::YarrGenerator::TermGenerationState::resetAlternative):
873 (JSC::Yarr::YarrGenerator::TermGenerationState::alternativeValid):
874 (JSC::Yarr::YarrGenerator::TermGenerationState::nextAlternative):
875 (JSC::Yarr::YarrGenerator::TermGenerationState::alternative):
876 (JSC::Yarr::YarrGenerator::TermGenerationState::isLastAlternative):
877 (JSC::Yarr::YarrGenerator::TermGenerationState::resetTerm):
878 (JSC::Yarr::YarrGenerator::TermGenerationState::termValid):
879 (JSC::Yarr::YarrGenerator::TermGenerationState::nextTerm):
880 (JSC::Yarr::YarrGenerator::TermGenerationState::term):
881 (JSC::Yarr::YarrGenerator::TermGenerationState::isLastTerm):
882 (JSC::Yarr::YarrGenerator::TermGenerationState::getSubParenNum):
883 (JSC::Yarr::YarrGenerator::TermGenerationState::isMainDisjunction):
884 (JSC::Yarr::YarrGenerator::TermGenerationState::setParenthesesTail):
885 (JSC::Yarr::YarrGenerator::TermGenerationState::getParenthesesTail):
886 (JSC::Yarr::YarrGenerator::TermGenerationState::lookaheadTerm):
887 (JSC::Yarr::YarrGenerator::TermGenerationState::isSinglePatternCharacterLookaheadTerm):
888 (JSC::Yarr::YarrGenerator::TermGenerationState::inputOffset):
889 (JSC::Yarr::YarrGenerator::TermGenerationState::clearBacktrack):
890 (JSC::Yarr::YarrGenerator::TermGenerationState::jumpToBacktrack):
891 (JSC::Yarr::YarrGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
892 (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
893 (JSC::Yarr::YarrGenerator::TermGenerationState::addBacktrackJump):
894 (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackDataLabel):
895 (JSC::Yarr::YarrGenerator::TermGenerationState::setBackTrackStackOffset):
896 (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLabel):
897 (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracks):
898 (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracksTo):
899 (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLink):
900 (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktracks):
901 (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktrackJumps):
902 (JSC::Yarr::YarrGenerator::TermGenerationState::getBacktrackDestination):
903 (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
904 (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail):
905 (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks):
906 (JSC::Yarr::YarrGenerator::ParenthesesTail::setNextIteration):
907 (JSC::Yarr::YarrGenerator::ParenthesesTail::addAfterParenJump):
908 (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
909 (JSC::Yarr::YarrGenerator::generateAssertionBOL):
910 (JSC::Yarr::YarrGenerator::generateAssertionEOL):
911 (JSC::Yarr::YarrGenerator::matchAssertionWordchar):
912 (JSC::Yarr::YarrGenerator::generateAssertionWordBoundary):
913 (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle):
914 (JSC::Yarr::YarrGenerator::generatePatternCharacterPair):
915 (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
916 (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
917 (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy):
918 (JSC::Yarr::YarrGenerator::generateCharacterClassSingle):
919 (JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
920 (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
921 (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
922 (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction):
923 (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
924 (JSC::Yarr::YarrGenerator::generateParenthesesGreedyNoBacktrack):
925 (JSC::Yarr::YarrGenerator::generateParentheticalAssertion):
926 (JSC::Yarr::YarrGenerator::generateTerm):
927 (JSC::Yarr::YarrGenerator::generateDisjunction):
928 (JSC::Yarr::YarrGenerator::generateEnter):
929 (JSC::Yarr::YarrGenerator::generateReturn):
930 (JSC::Yarr::YarrGenerator::YarrGenerator):
931 (JSC::Yarr::YarrGenerator::generate):
932 (JSC::Yarr::YarrGenerator::compile):
933 (JSC::Yarr::jitCompile):
934 * yarr/YarrJIT.h: Renamed from Source/JavaScriptCore/yarr/RegexJIT.h.
935 (JSC::Yarr::YarrCodeBlock::YarrCodeBlock):
936 (JSC::Yarr::YarrCodeBlock::~YarrCodeBlock):
937 (JSC::Yarr::YarrCodeBlock::setFallBack):
938 (JSC::Yarr::YarrCodeBlock::isFallBack):
939 (JSC::Yarr::YarrCodeBlock::set):
940 (JSC::Yarr::YarrCodeBlock::execute):
941 (JSC::Yarr::YarrCodeBlock::getAddr):
942 (JSC::Yarr::execute):
943 * yarr/YarrParser.h: Renamed from Source/JavaScriptCore/yarr/RegexParser.h.
944 (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
945 (JSC::Yarr::Parser::CharacterClassParserDelegate::begin):
946 (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
947 (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
948 (JSC::Yarr::Parser::CharacterClassParserDelegate::end):
949 (JSC::Yarr::Parser::CharacterClassParserDelegate::assertionWordBoundary):
950 (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBackReference):
951 (JSC::Yarr::Parser::Parser):
952 (JSC::Yarr::Parser::parseEscape):
953 (JSC::Yarr::Parser::parseAtomEscape):
954 (JSC::Yarr::Parser::parseCharacterClassEscape):
955 (JSC::Yarr::Parser::parseCharacterClass):
956 (JSC::Yarr::Parser::parseParenthesesBegin):
957 (JSC::Yarr::Parser::parseParenthesesEnd):
958 (JSC::Yarr::Parser::parseQuantifier):
959 (JSC::Yarr::Parser::parseTokens):
960 (JSC::Yarr::Parser::parse):
961 (JSC::Yarr::Parser::saveState):
962 (JSC::Yarr::Parser::restoreState):
963 (JSC::Yarr::Parser::atEndOfPattern):
964 (JSC::Yarr::Parser::peek):
965 (JSC::Yarr::Parser::peekIsDigit):
966 (JSC::Yarr::Parser::peekDigit):
967 (JSC::Yarr::Parser::consume):
968 (JSC::Yarr::Parser::consumeDigit):
969 (JSC::Yarr::Parser::consumeNumber):
970 (JSC::Yarr::Parser::consumeOctal):
971 (JSC::Yarr::Parser::tryConsume):
972 (JSC::Yarr::Parser::tryConsumeHex):
974 * yarr/YarrPattern.cpp: Renamed from Source/JavaScriptCore/yarr/RegexPattern.cpp.
975 (JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor):
976 (JSC::Yarr::CharacterClassConstructor::reset):
977 (JSC::Yarr::CharacterClassConstructor::append):
978 (JSC::Yarr::CharacterClassConstructor::putChar):
979 (JSC::Yarr::CharacterClassConstructor::isUnicodeUpper):
980 (JSC::Yarr::CharacterClassConstructor::isUnicodeLower):
981 (JSC::Yarr::CharacterClassConstructor::putRange):
982 (JSC::Yarr::CharacterClassConstructor::charClass):
983 (JSC::Yarr::CharacterClassConstructor::addSorted):
984 (JSC::Yarr::CharacterClassConstructor::addSortedRange):
985 (JSC::Yarr::BeginCharHelper::BeginCharHelper):
986 (JSC::Yarr::BeginCharHelper::addBeginChar):
987 (JSC::Yarr::BeginCharHelper::merge):
988 (JSC::Yarr::BeginCharHelper::addCharacter):
989 (JSC::Yarr::BeginCharHelper::linkHotTerms):
990 (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
991 (JSC::Yarr::YarrPatternConstructor::~YarrPatternConstructor):
992 (JSC::Yarr::YarrPatternConstructor::reset):
993 (JSC::Yarr::YarrPatternConstructor::assertionBOL):
994 (JSC::Yarr::YarrPatternConstructor::assertionEOL):
995 (JSC::Yarr::YarrPatternConstructor::assertionWordBoundary):
996 (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter):
997 (JSC::Yarr::YarrPatternConstructor::atomBuiltInCharacterClass):
998 (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBegin):
999 (JSC::Yarr::YarrPatternConstructor::atomCharacterClassAtom):
1000 (JSC::Yarr::YarrPatternConstructor::atomCharacterClassRange):
1001 (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBuiltIn):
1002 (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd):
1003 (JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin):
1004 (JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin):
1005 (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
1006 (JSC::Yarr::YarrPatternConstructor::atomBackReference):
1007 (JSC::Yarr::YarrPatternConstructor::copyDisjunction):
1008 (JSC::Yarr::YarrPatternConstructor::copyTerm):
1009 (JSC::Yarr::YarrPatternConstructor::quantifyAtom):
1010 (JSC::Yarr::YarrPatternConstructor::disjunction):
1011 (JSC::Yarr::YarrPatternConstructor::regexBegin):
1012 (JSC::Yarr::YarrPatternConstructor::regexEnd):
1013 (JSC::Yarr::YarrPatternConstructor::regexError):
1014 (JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets):
1015 (JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
1016 (JSC::Yarr::YarrPatternConstructor::setupOffsets):
1017 (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses):
1018 (JSC::Yarr::YarrPatternConstructor::optimizeBOL):
1019 (JSC::Yarr::YarrPatternConstructor::addBeginTerm):
1020 (JSC::Yarr::YarrPatternConstructor::setupDisjunctionBeginTerms):
1021 (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms):
1022 (JSC::Yarr::YarrPatternConstructor::setupBeginChars):
1023 (JSC::Yarr::compile):
1024 (JSC::Yarr::YarrPattern::YarrPattern):
1025 * yarr/YarrPattern.h: Renamed from Source/JavaScriptCore/yarr/RegexPattern.h.
1026 (JSC::Yarr::CharacterRange::CharacterRange):
1027 (JSC::Yarr::CharacterClassTable::create):
1028 (JSC::Yarr::CharacterClassTable::CharacterClassTable):
1029 (JSC::Yarr::CharacterClass::CharacterClass):
1030 (JSC::Yarr::PatternTerm::PatternTerm):
1031 (JSC::Yarr::PatternTerm::ForwardReference):
1032 (JSC::Yarr::PatternTerm::BOL):
1033 (JSC::Yarr::PatternTerm::EOL):
1034 (JSC::Yarr::PatternTerm::WordBoundary):
1035 (JSC::Yarr::PatternTerm::invert):
1036 (JSC::Yarr::PatternTerm::capture):
1037 (JSC::Yarr::PatternTerm::quantify):
1038 (JSC::Yarr::PatternAlternative::PatternAlternative):
1039 (JSC::Yarr::PatternAlternative::lastTerm):
1040 (JSC::Yarr::PatternAlternative::removeLastTerm):
1041 (JSC::Yarr::PatternAlternative::setOnceThrough):
1042 (JSC::Yarr::PatternAlternative::onceThrough):
1043 (JSC::Yarr::PatternDisjunction::PatternDisjunction):
1044 (JSC::Yarr::PatternDisjunction::~PatternDisjunction):
1045 (JSC::Yarr::PatternDisjunction::addNewAlternative):
1046 (JSC::Yarr::TermChain::TermChain):
1047 (JSC::Yarr::BeginChar::BeginChar):
1048 (JSC::Yarr::YarrPattern::~YarrPattern):
1049 (JSC::Yarr::YarrPattern::reset):
1050 (JSC::Yarr::YarrPattern::containsIllegalBackReference):
1051 (JSC::Yarr::YarrPattern::newlineCharacterClass):
1052 (JSC::Yarr::YarrPattern::digitsCharacterClass):
1053 (JSC::Yarr::YarrPattern::spacesCharacterClass):
1054 (JSC::Yarr::YarrPattern::wordcharCharacterClass):
1055 (JSC::Yarr::YarrPattern::nondigitsCharacterClass):
1056 (JSC::Yarr::YarrPattern::nonspacesCharacterClass):
1057 (JSC::Yarr::YarrPattern::nonwordcharCharacterClass):
1059 2011-01-10 Gavin Barraclough <barraclough@apple.com>
1063 * parser/SyntaxChecker.h:
1065 2011-01-10 Dave Tapuska <dtapuska@rim.com>
1067 Reviewed by Gavin Barraclough.
1069 Add CTI ASM versions for RVCT ARM THUMB2 mode.
1071 https://bugs.webkit.org/show_bug.cgi?id=52154
1074 (JSC::ctiTrampoline):
1075 (JSC::ctiVMThrowTrampoline):
1076 (JSC::ctiOpThrowNotCaught):
1078 2011-01-10 Gavin Barraclough <barraclough@apple.com>
1082 * JavaScriptCore.pro:
1084 2011-01-10 Gavin Barraclough <barraclough@apple.com>
1086 Reviewed by Oliver Hunt.
1088 Bug 52079 - Syntax errors should be early errors.
1090 From chapter 16 the spec:
1091 An implementation must report most errors at the time the relevant ECMAScript language construct is
1092 evaluated. An early error is an error that can be detected and reported prior to the evaluation of
1093 any construct in the Program containing the error. An implementation must report early errors in a
1094 Program prior to the first evaluation of that Program. Early errors in eval code are reported at
1095 the time eval is called but prior to evaluation of any construct within the eval code. All errors
1096 that are not early errors are runtime errors.
1098 An implementation must treat any instance of the following kinds of errors as an early error:
1099 * Any syntax error."
1101 * JavaScriptCore.xcodeproj/project.pbxproj:
1103 * bytecode/CodeBlock.cpp:
1104 Removed op_throw_syntax_error.
1105 * bytecode/Opcode.h:
1106 Removed op_throw_syntax_error.
1107 * bytecompiler/BytecodeGenerator.cpp:
1108 (JSC::BytecodeGenerator::generate):
1109 If m_expressionTooDeep then throw a runtime error.
1110 (JSC::BytecodeGenerator::BytecodeGenerator):
1111 Initialize m_expressionTooDeep.
1112 (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
1113 Sets m_expressionTooDeep.
1114 * bytecompiler/BytecodeGenerator.h:
1115 Added m_expressionTooDeep, removed emitThrowSyntaxError.
1116 * bytecompiler/NodesCodegen.cpp:
1117 (JSC::RegExpNode::emitBytecode):
1118 (JSC::ContinueNode::emitBytecode):
1119 (JSC::BreakNode::emitBytecode):
1120 (JSC::ReturnNode::emitBytecode):
1121 (JSC::LabelNode::emitBytecode):
1122 Conditions that threw syntax error are now handled during parsing;
1123 during bytecompilation these are now just ASSERTs.
1124 * interpreter/Interpreter.cpp:
1125 (JSC::Interpreter::privateExecute):
1127 (JSC::JIT::privateCompileMainPass):
1129 * jit/JITOpcodes.cpp:
1130 * jit/JITOpcodes32_64.cpp:
1133 Removed op_throw_syntax_error.
1134 * parser/ASTBuilder.h:
1135 (JSC::ASTBuilder::createRegExp):
1136 Renamed; added syntax check.
1137 * parser/JSParser.cpp:
1138 (JSC::JSParser::breakIsValid):
1139 (JSC::JSParser::hasLabel):
1140 (JSC::JSParser::Scope::Scope):
1141 (JSC::JSParser::Scope::setIsFunction):
1142 (JSC::JSParser::Scope::isFunctionBoundary):
1143 (JSC::JSParser::ScopeRef::hasContainingScope):
1144 (JSC::JSParser::ScopeRef::containingScope):
1145 (JSC::JSParser::AutoPopScopeRef::AutoPopScopeRef):
1146 (JSC::JSParser::AutoPopScopeRef::~AutoPopScopeRef):
1147 (JSC::JSParser::AutoPopScopeRef::setPopped):
1148 (JSC::JSParser::popScopeInternal):
1149 (JSC::JSParser::popScope):
1151 (JSC::JSParser::JSParser):
1152 (JSC::JSParser::parseProgram):
1153 (JSC::JSParser::parseBreakStatement):
1154 (JSC::JSParser::parseContinueStatement):
1155 (JSC::JSParser::parseReturnStatement):
1156 (JSC::JSParser::parseTryStatement):
1157 (JSC::JSParser::parseFunctionInfo):
1158 (JSC::JSParser::parseExpressionOrLabelStatement):
1159 (JSC::JSParser::parsePrimaryExpression):
1160 * parser/JSParser.h:
1162 * parser/Parser.cpp:
1163 (JSC::Parser::parse):
1164 * parser/SyntaxChecker.h:
1165 (JSC::SyntaxChecker::createRegExp):
1166 Renamed; added syntax check.
1167 * runtime/ExceptionHelpers.cpp:
1168 (JSC::createOutOfMemoryError):
1169 (JSC::throwOutOfMemoryError):
1170 * runtime/ExceptionHelpers.h:
1171 Broke out createOutOfMemoryError.
1172 * runtime/Executable.cpp:
1173 (JSC::EvalExecutable::compileInternal):
1174 (JSC::ProgramExecutable::compileInternal):
1175 (JSC::FunctionExecutable::compileForCallInternal):
1176 (JSC::FunctionExecutable::compileForConstructInternal):
1177 Add check for exception after bytecode generation.
1178 * runtime/RegExpConstructor.cpp:
1179 (JSC::constructRegExp):
1180 * runtime/RegExpPrototype.cpp:
1181 (JSC::regExpProtoFuncCompile):
1182 RegExp error prefixes not included in error string.
1183 * yarr/RegexParser.h:
1184 (JSC::Yarr::Parser::parse):
1185 Removed regexBegin/regexEnd/regexError.
1186 * yarr/RegexPattern.cpp:
1187 (JSC::Yarr::RegexPatternConstructor::regexBegin):
1188 Removed regexEnd/regexError.
1189 (JSC::Yarr::compileRegex):
1190 Add call to regexBegin (no longer called from the parser).
1191 * yarr/YarrSyntaxChecker.cpp: Added.
1192 (JSC::Yarr::SyntaxChecker::assertionBOL):
1193 (JSC::Yarr::SyntaxChecker::assertionEOL):
1194 (JSC::Yarr::SyntaxChecker::assertionWordBoundary):
1195 (JSC::Yarr::SyntaxChecker::atomPatternCharacter):
1196 (JSC::Yarr::SyntaxChecker::atomBuiltInCharacterClass):
1197 (JSC::Yarr::SyntaxChecker::atomCharacterClassBegin):
1198 (JSC::Yarr::SyntaxChecker::atomCharacterClassAtom):
1199 (JSC::Yarr::SyntaxChecker::atomCharacterClassRange):
1200 (JSC::Yarr::SyntaxChecker::atomCharacterClassBuiltIn):
1201 (JSC::Yarr::SyntaxChecker::atomCharacterClassEnd):
1202 (JSC::Yarr::SyntaxChecker::atomParenthesesSubpatternBegin):
1203 (JSC::Yarr::SyntaxChecker::atomParentheticalAssertionBegin):
1204 (JSC::Yarr::SyntaxChecker::atomParenthesesEnd):
1205 (JSC::Yarr::SyntaxChecker::atomBackReference):
1206 (JSC::Yarr::SyntaxChecker::quantifyAtom):
1207 (JSC::Yarr::SyntaxChecker::disjunction):
1208 (JSC::Yarr::checkSyntax):
1209 * yarr/YarrSyntaxChecker.h: Added.
1210 Check RegExp syntax.
1212 2011-01-10 Adam Roben <aroben@apple.com>
1216 It was causing assertion failures. See <http://webkit.org/b/52156>.
1218 * wtf/StackBounds.cpp:
1219 (WTF::StackBounds::initialize):
1221 2011-01-08 Patrick Gansterer <paroga@webkit.org>
1223 Reviewed by Darin Adler.
1225 Unify string table adding in AtomicString
1226 https://bugs.webkit.org/show_bug.cgi?id=51927
1228 Move code for adding a string into a separate function.
1229 This removes multiple occurrence of the same logic.
1231 * wtf/text/AtomicString.cpp:
1232 (WTF::addToStringTable): Added.
1233 (WTF::AtomicString::add): Use addToStringTable().
1234 (WTF::AtomicString::fromUTF8): Ditto.
1236 2011-01-07 Geoffrey Garen <ggaren@apple.com>
1238 Reviewed by Gavin Barraclough.
1240 Split machine stack marking functions into their own class (MachineStackMarker)
1241 https://bugs.webkit.org/show_bug.cgi?id=52088
1244 (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Moved registerThread()
1245 call behind an #ifdef because we shouldn't be registering threads at all
1246 if we don't support usage on multiple threads.
1251 * JavaScriptCore.gypi:
1252 * JavaScriptCore.pro:
1253 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1254 * JavaScriptCore.xcodeproj/project.pbxproj: Updated projects.
1256 * runtime/Collector.cpp:
1258 (JSC::Heap::destroy):
1259 (JSC::Heap::markRoots):
1260 * runtime/Collector.h:
1261 (JSC::Heap::machineStackMarker): Moved code to machineStackMarker.
1263 * runtime/JSGlobalData.h:
1264 (JSC::JSGlobalData::makeUsableFromMultipleThreads): Removed an unnecessary
1265 level of indirection, to make Heap less of a God class.
1267 * runtime/MachineStackMarker.h: Copied from Source/JavaScriptCore/runtime/Collector.h.
1268 * runtime/MachineStackMarker.cpp: Copied from Source/JavaScriptCore/runtime/Collector.cpp.
1269 (JSC::MachineStackMarker::MachineStackMarker):
1270 (JSC::MachineStackMarker::~MachineStackMarker):
1271 (JSC::MachineStackMarker::makeUsableFromMultipleThreads):
1272 (JSC::MachineStackMarker::registerThread):
1273 (JSC::MachineStackMarker::unregisterThread):
1274 (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
1275 (JSC::MachineStackMarker::markCurrentThreadConservatively):
1276 (JSC::MachineStackMarker::markOtherThreadConservatively):
1277 (JSC::MachineStackMarker::markMachineStackConservatively): Moved code from Heap.
1279 2011-01-07 Gavin Barraclough <barraclough@apple.com>
1281 Reviewed by Geoff Garen.
1283 Bug 26276 - Need a mechanism to determine stack extent on WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE platforms
1285 Fix for win32. The base of the stack is stored in the "deallocation stack" field of the
1286 Thread Information Block - see: http://en.wikipedia.org/wiki/Win32_Thread_Information_Block
1287 for more information!
1289 * wtf/StackBounds.cpp:
1290 (WTF::StackBounds::initialize):
1292 2011-01-07 Adam Roben <aroben@apple.com>
1294 Update react-to-vsprops-changes.py after r74855
1296 * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
1298 2011-01-07 Carlos Garcia Campos <cgarcia@igalia.com>
1300 Reviewed by Martin Robinson.
1302 [GTK] Port scrollbar painting to GtkStyleContext
1303 https://bugs.webkit.org/show_bug.cgi?id=52051
1305 * wtf/gobject/GTypedefs.h: Add GtkStyleContext forward
1308 2011-01-07 Daniel Bates <dbates@rim.com>
1310 Reviewed by Martin Robinson.
1312 Enable PCRE computed gotos when compiling with RCVT 4.0 or greater in GNU mode
1313 https://bugs.webkit.org/show_bug.cgi?id=52034
1315 Derived from a patch by Eli Fidler.
1317 RVCT 4 or greater in GNU mode supports the computed goto GNU language extension
1318 as per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0348c/ch03s07s12.html>.
1320 * pcre/pcre_exec.cpp: Modified to check for feature, HAVE(COMPUTED_GOTO), instead
1321 of hardcoding the GCC compiler.
1322 * wtf/Platform.h: Define WTF_COMPILER_RVCT4_OR_GREATER if __ARMCC_VERSION >= 400000.
1324 2011-01-06 Gavin Barraclough <barraclough@apple.com>
1326 Reviewed by Geoff Garen.
1328 Bug 52035 - Unregistering DOMWrapperWorlds is unsafe
1330 The method DOMWrapperWorld::unregisterWorld() effectively calls the DOMWrapperWorld's
1331 destructor early, in order to release wrappers once we know we no longer intend to use them.
1332 Whilst it is okay to have a method to throw away wrappers (assuming we know we're willing to
1333 lose any state stored on them) it is not okay to deregister the world from the JSGlobalData.
1334 A sequence of events that triggers the bug would look like this:
1336 (1) Create a DOMWrapperWorld.
1337 (2) Register a timer in the world.
1338 (3) Call unregisterWorld() on the world.
1339 (4) Timer goes off, code is executed in the world, creates a Node not attached to a Document.
1340 (5) We attempt to lookup a wrapper map for the world on the JSGlobalData, but because we've
1341 called forgetWorld() none exists.
1342 (6) Attempt to add a wrapper to a NULL map.
1344 Fix the problem by not removing the JSGlobalData's wrapper map until the world really goes away.
1346 * runtime/WeakGCMap.h:
1347 (JSC::WeakGCMap::clear):
1349 2011-01-06 Gavin Barraclough <barraclough@apple.com>
1351 Reviewed by Darin Adler.
1353 Bug 52021 - zeroDouble broken on ARMv7
1355 The bug here is that zeroDouble was working incorrectly,
1356 leading to op_loop_if_true failing - specifically in the
1357 case where the value being checked is 0.0 encoded as a
1358 double (rather than an integer immediate).
1360 Additionally this patch removes a redundant duplicate compare
1361 in some (many) case.
1363 * assembler/ARMv7Assembler.h:
1364 (JSC::ARMv7Assembler::vcmp_F64):
1365 (JSC::ARMv7Assembler::vcmpz_F64):
1366 * assembler/MacroAssemblerARM.h:
1367 (JSC::MacroAssemblerARM::branchDoubleNonZero):
1368 (JSC::MacroAssemblerARM::branchDoubleZeroOrNaN):
1369 * assembler/MacroAssemblerARMv7.h:
1370 (JSC::MacroAssemblerARMv7::branchDouble):
1371 (JSC::MacroAssemblerARMv7::branchDoubleNonZero):
1372 (JSC::MacroAssemblerARMv7::branchDoubleZeroOrNaN):
1373 (JSC::MacroAssemblerARMv7::compare32):
1374 * assembler/MacroAssemblerMIPS.h:
1375 (JSC::MacroAssemblerMIPS::branchDoubleNonZero):
1376 (JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN):
1377 * assembler/MacroAssemblerX86Common.h:
1378 (JSC::MacroAssemblerX86Common::branchDoubleNonZero):
1379 (JSC::MacroAssemblerX86Common::branchDoubleZeroOrNaN):
1380 * jit/JITOpcodes32_64.cpp:
1381 (JSC::JIT::emit_op_jfalse):
1382 (JSC::JIT::emit_op_jtrue):
1384 2011-01-06 Michael Saboff <msaboff@apple.com>
1386 Reviewed by Gavin Barraclough.
1388 Added debug code to compare the results of JIT regexp with
1389 interpreted regexp and displays discrepencies. This debug code is
1390 controlled by the ENABLE_YARR_JIT_DEBUG macro in wtf/Platform.h and
1391 is only valid if ENABLE_YARR_JIT is enabled.
1393 Fixed a discovered problem in RegExp::printTraceData, changing
1394 m_pattern to the getter pattern().
1395 Also deleted an extraneous semicolon.
1397 Enhancement: Add Regexp Debug Compare between JIT and Interpreter
1398 https://bugs.webkit.org/show_bug.cgi?id=51834
1400 * runtime/RegExp.cpp:
1401 (JSC::RegExp::compile):
1402 (JSC::RegExp::match):
1403 (JSC::RegExp::printTraceData):
1406 2011-01-06 Patrick Gansterer <paroga@webkit.org>
1408 Reviewed by Eric Seidel.
1410 [WINCE] Remove JSC::g_stackBase
1411 https://bugs.webkit.org/show_bug.cgi?id=51779
1413 * wtf/StackBounds.cpp:
1415 2011-01-06 Joone Hur <joone.hur@collabora.co.uk>
1417 Reviewed by Eric Seidel.
1419 WML Parser should treat line/column number in a consistent way
1420 https://bugs.webkit.org/show_bug.cgi?id=51601
1422 Add the equality operators to TextPosition class.
1424 * wtf/text/TextPosition.h:
1425 (WTF::TextPosition::operator==): Added.
1426 (WTF::TextPosition::operator!=): Added.
1427 (WTF::TextPosition::belowRangePosition): Use belowBase() instead of base().
1428 (WTF::ZeroBasedNumber::operator==): Added.
1429 (WTF::ZeroBasedNumber::operator!=): Added.
1430 (WTF::OneBasedNumber::operator==): Added.
1431 (WTF::OneBasedNumber::operator!=): Added.
1433 2011-01-06 Patrick Gansterer <paroga@webkit.org>
1435 Reviewed by Gavin Barraclough.
1437 [WINCE] Determine stack extent
1438 https://bugs.webkit.org/show_bug.cgi?id=26276
1440 Scan the stack for writeable pages and use the limits.
1442 * wtf/StackBounds.cpp:
1443 (WTF::detectGrowingDownward):
1444 (WTF::isPageWritable):
1445 (WTF::getLowerStackBound):
1446 (WTF::getUpperStackBound):
1447 (WTF::StackBounds::initialize):
1449 2011-01-05 Steve Falkenburg <sfalken@apple.com>
1453 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Revert change to additional library search path needed to find ICU.
1455 2011-01-05 Steve Falkenburg <sfalken@apple.com>
1457 Reviewed by Darin Adler.
1459 Debug and Release builds on Windows clobber each other
1460 https://bugs.webkit.org/show_bug.cgi?id=49185
1462 Changes the structure of WebKitBuild build products directory so we
1463 completely separate each build configuration into independent directories.
1465 Although we previously had per-configuration directories for obj, this change adds
1466 per-configuration directories for bin, lib, obj, and include. Each configuration's
1467 build products are stored within a directory inside of WebKitBuild.
1469 Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir),
1470 defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName).
1472 For PGO, $(ConfigurationBuildDir) points to the same directory (Release_PGO) to allow
1473 for proper operation of the instrumentation/optimization scripts.
1475 * JavaScriptCore.vcproj/JavaScriptCore.make:
1476 * JavaScriptCore.vcproj/JavaScriptCore.sln:
1477 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1478 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
1479 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
1480 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
1481 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops:
1482 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePGOOptimize.vsprops: Added.
1483 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
1484 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
1485 * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
1486 * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
1487 * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
1488 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1489 * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
1490 * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd:
1491 * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
1492 * JavaScriptCore.vcproj/jsc/jsc.vcproj:
1493 * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
1494 * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
1495 * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd:
1496 * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
1497 * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd:
1498 * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd:
1500 2011-01-05 Brent Fulgham <bfulgham@webkit.org>
1502 Unreviewed build fix.
1504 * wtf/Encoder.h: Add <stdint.h> include for systems that
1505 do not natively know about uint8_t, etc.
1507 2011-01-05 Patrick Gansterer <paroga@webkit.org>
1509 Reviewed by Andreas Kling.
1511 [CMake] Fix the usage of SOURCE_GROUP
1512 https://bugs.webkit.org/show_bug.cgi?id=51739
1516 2011-01-05 Andras Becsi <abecsi@webkit.org>
1518 Reviewed by Csaba Osztrogonác.
1520 [Qt][V8] Fix the build after recent changes.
1522 * pcre/pcre.pri: Correct the path after Source was introduced.
1524 2011-01-04 Steve Falkenburg <sfalken@apple.com>
1526 Build fix. Update path to FindSafari after source code reorganization.
1528 * JavaScriptCore.vcproj/JavaScriptCore.sln:
1530 2011-01-04 Daniel Bates <dbates@rim.com>
1532 Fix the Android build after changeset 74975 <http://trac.webkit.org/changeset/74975>
1533 (https://bugs.webkit.org/show_bug.cgi?id=51855).
1535 * wtf/ThreadingPthreads.cpp: Add include of PassOwnPtr.h.
1536 (WTF::runThreadWithRegistration): Use -> instead of . to dereference pointer.
1538 2011-01-04 Martin Robinson <mrobinson@igalia.com>
1540 Try to fix the EFL build.
1542 * wtf/CMakeLists.txt: Remove PlatformRefPtr from the CMake source list.
1544 2011-01-04 James Robinson <jamesr@chromium.org>
1546 Reviewed by Darin Adler.
1548 StackBounds initialization in WTFThreadData should be guarded by #if USE(JSC)
1549 https://bugs.webkit.org/show_bug.cgi?id=51881
1551 The StackBounds class is only used by JavaScriptCore.
1553 * wtf/WTFThreadData.cpp:
1554 (WTF::WTFThreadData::WTFThreadData):
1555 * wtf/WTFThreadData.h:
1556 (WTF::WTFThreadData::resetCurrentIdentifierTable):
1558 2011-01-03 Martin Robinson <mrobinson@igalia.com>
1560 Reviewed by Darin Adler.
1562 Remove the last non-GObject usage of PlatformRefPtr and move the code to GRefPtr
1563 https://bugs.webkit.org/show_bug.cgi?id=51846
1565 * GNUmakefile.am: Remove PlatformRefPtr.h from the sources list.
1566 * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
1567 * jit/ExecutableAllocator.h: Change references to PlatformRefPtr to RefPtr.
1568 (JSC::ExecutableAllocator::cacheFlush): Ditto.
1569 * wtf/PlatformRefPtr.h: Removed.
1570 * wtf/RandomNumber.cpp: Change references to PlatformRefPtr to RefPtr.
1571 (WTF::randomNumber): Ditto.
1572 * wtf/brew/RefPtrBrew.h: Ditto.
1573 (WTF::refIfNotNull): Added.
1574 (WTF::derefIfNotNull): Added.
1575 * wtf/brew/ShellBrew.h: Change references to PlatformRefPtr to RefPtr.
1576 (WTF::createRefPtrInstance): Modified to return a RefPtr.
1577 * wtf/gobject/GRefPtr.cpp:
1578 (WTF::refGPtr): Moved from PlatformRefPtr here.
1579 (WTF::derefGPtr): Ditto.
1580 * wtf/gobject/GRefPtr.h: Ditto.
1581 (WTF::GRefPtr::GRefPtr): Ditto.
1582 (WTF::GRefPtr::~GRefPtr): Ditto.
1583 (WTF::GRefPtr::clear): Ditto.
1584 (WTF::GRefPtr::isHashTableDeletedValue): Ditto.
1585 (WTF::GRefPtr::get): Ditto.
1586 (WTF::GRefPtr::operator*): Ditto.
1587 (WTF::GRefPtr::operator->): Ditto.
1588 (WTF::GRefPtr::operator!): Ditto.
1589 (WTF::GRefPtr::operator UnspecifiedBoolType): Ditto.
1590 (WTF::GRefPtr::hashTableDeletedValue): Ditto.
1591 (WTF::::operator): Ditto.
1592 (WTF::::swap): Ditto.
1594 (WTF::operator==): Ditto.
1595 (WTF::operator!=): Ditto.
1596 (WTF::static_pointer_cast): Ditto.
1597 (WTF::const_pointer_cast): Ditto.
1598 (WTF::getPtr): Ditto.
1599 (WTF::adoptGRef): Ditto.
1600 (WTF::refGPtr): Ditto.
1601 (WTF::derefGPtr): Ditto.
1603 2011-01-04 Daniel Bates <dbates@rim.com>
1605 Reviewed by Adam Roben.
1607 LEAK: Deallocate instance of ThreadFunctionInvocation if thread creation fails
1608 https://bugs.webkit.org/show_bug.cgi?id=51860
1610 * wtf/ThreadingWin.cpp:
1611 (WTF::createThreadInternal):
1613 2011-01-04 Laszlo Gombos <laszlo.1.gombos@nokia.com>
1615 Reviewed by Ariya Hidayat.
1617 [Qt][Symbian] Make sure that WebKit headers are included before platform headers on Symbian
1618 https://bugs.webkit.org/show_bug.cgi?id=31273
1620 On Symbian PREPEND_INCLUDEPATH is the best way to make sure that WebKit headers
1621 are included before platform headers. On all other platforms continue to use
1622 INCLUDEPATH (as before). This is a continuation of r65877.
1624 No new tests as there is no new functionality.
1626 * JavaScriptCore.pri:
1628 2011-01-04 Darin Adler <darin@apple.com>
1630 Try to fix Windows build.
1632 * wtf/ThreadingWin.cpp: Added include of PassOwnPtr.h. Fixed paragraphing
1633 of conditional includes.
1634 (WTF::wtfThreadEntryPoint): Use -> instead of . to dereference pointer.
1635 (WTF::createThreadInternal): Tweaked #if to not need separate macro.
1637 2011-01-04 Daniel Bates <dbates@rim.com>
1639 Reviewed by Adam Roben.
1641 Extract ThreadFunctionInvocation into separate file and share between Apple Windows and Android
1642 https://bugs.webkit.org/show_bug.cgi?id=51855
1644 Both the Apple Windows and Android ports implement a similar adapter structure,
1645 called ThreadFunctionInvocation and ThreadData respectively, as part of
1646 their thread creation process. Instead, we should share such an adapter
1647 structure and remove duplicate code.
1649 * JavaScriptCore.gypi: Added header wtf/ThreadFunctionInvocation.h.
1650 * wtf/ThreadFunctionInvocation.h: Added.
1651 (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation):
1652 * wtf/ThreadingPthreads.cpp: Removed Android-specific structure ThreadData; Instead, use ThreadFunctionInvocation.
1653 (WTF::runThreadWithRegistration):
1654 (WTF::createThreadInternal):
1655 * wtf/ThreadingWin.cpp: Moved structure ThreadFunctionInvocation to its own file so that
1656 it can be shared with the Android implementation of createThreadInternal().
1657 (WTF::wtfThreadEntryPoint): Use OwnPtr to hold passed instance of ThreadFunctionInvocation.
1659 2011-01-04 Daniel Bates <dbates@rim.com>
1661 Reviewed by Darin Adler.
1663 Use __builtin_expect when compiling using RVCT in GNU mode
1664 https://bugs.webkit.org/show_bug.cgi?id=51866
1666 Derived from a patch by Dave Tapuska.
1668 * wtf/AlwaysInline.h:
1670 2011-01-03 Darin Adler <darin@apple.com>
1672 Reviewed by Brady Eidson.
1674 * wtf/Forward.h: Added Decoder and Encoder.
1676 2011-01-03 Brady Eidson <beidson@apple.com>
1678 Reviewed by Darin Adler.
1680 Add Encode/Decode machinery Darin and I plan to work with for back/forward stuff in WebKit2.
1682 Starting out with a pure virtual interface to be implemented in WK2, but we might change that later.
1685 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1686 * JavaScriptCore.xcodeproj/project.pbxproj:
1687 * wtf/CMakeLists.txt:
1689 * wtf/Decoder.h: Added.
1690 * wtf/Encoder.h: Added.
1692 2011-01-03 Laszlo Gombos <laszlo.1.gombos@nokia.com>
1694 Unreviewed build fix.
1696 [Qt] Add NullPtr.cpp introduced in r71155 to the Qt build system.
1698 This fix is required for builds where HAVE(NULLPTR) is false
1699 (e.g. some MSVC and Symbian builds).
1703 2011-01-02 Dan Bernstein <mitz@apple.com>
1705 Rubber-stamped by Simon Fraser.
1707 <rdar://problem/8812159> Update copyright strings
1711 2011-01-02 Csaba Osztrogonác <ossy@webkit.org>
1713 Fix GTK+ build after r74855.
1715 Reviewed by Xan Lopez.
1717 * GNUmakefile.am: Fix include pathes.
1719 2011-01-02 Adam Barth <abarth@webkit.org>
1721 One more .. missing in the Qt build.
1725 2011-01-02 Xan Lopez <xlopez@igalia.com>
1729 * GNUmakefile.am: add -I$(srcdir)/Source to the JSC cppflags so
1730 that anyone can include its headers without adding the prefix
1733 2011-01-02 Carl Lobo <carllobo@gmail.com>
1735 Reviewed by Adam Barth.
1737 Fix Windows Build for non-production where VSPropsRedirectionDir is not defined.
1738 https://bugs.webkit.org/show_bug.cgi?id=51797
1740 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1741 * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
1742 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1743 * JavaScriptCore.vcproj/jsc/jsc.vcproj:
1744 * JavaScriptCore.vcproj/testapi/testapi.vcproj:
1746 2011-01-01 Adam Barth <abarth@webkit.org>
1748 Fix relative include paths in an attempt to fix the Qt build.
1750 * JavaScriptCore.pri:
1751 * JavaScriptCore.pro:
1753 2011-01-01 Adam Barth <abarth@webkit.org>
1755 Another speculative build fix for GTK.
1759 2011-01-01 Adam Barth <abarth@webkit.org>
1761 Speculative build fix for GTK. Update the paths in GNUmakefile to
1766 2011-01-01 Adam Barth <abarth@webkit.org>
1768 Update relative paths in JavaScriptCore.gyp to account for the extra
1769 level of directories.
1771 * JavaScriptCore.gyp/JavaScriptCore.gyp:
1773 2010-12-31 Patrick Gansterer <paroga@webkit.org>
1775 Reviewed by Darin Adler.
1777 Add a fast case for ASCII strings in HashAndUTF8CharactersTranslator::equal
1778 https://bugs.webkit.org/show_bug.cgi?id=50517
1780 This change shows about 2% performance win on the xml-parser benchmark.
1782 * wtf/text/AtomicString.cpp:
1783 (WTF::HashAndUTF8CharactersTranslator::equal):
1785 2010-12-30 Patrick Gansterer <paroga@webkit.org>
1787 Reviewed by Ariya Hidayat.
1789 [CMake] Add WTF_HEADERS
1790 https://bugs.webkit.org/show_bug.cgi?id=51741
1792 Add the WTF headers to show them in Visual Studio.
1794 * wtf/CMakeLists.txt:
1795 * wtf/CMakeListsWinCE.txt:
1797 2010-12-30 Konstantin Tokarev <annulen@yandex.ru>
1799 Reviewed by David Kilzer.
1801 [Qt] Don't build wtf/TCSystemAlloc.cpp if --system-malloc option is
1803 https://bugs.webkit.org/show_bug.cgi?id=51672
1805 * wtf/wtf.pri: Replaced USE_SYSTEM_MALLOC with USE_SYSTEM_MALLOC=1
1807 2010-12-30 Patrick Gansterer <paroga@webkit.org>
1809 Reviewed by Darin Adler.
1811 Use OS(WINDOWS) instead of COMPILER(MSVC) in FastMalloc.cpp
1812 https://bugs.webkit.org/show_bug.cgi?id=51743
1814 Most of the ifdefs belong to windows and not to the MSVC compiler.
1816 * wtf/FastMalloc.cpp:
1818 2010-12-29 Gavin Barraclough <barraclough@apple.com>
1820 Reviewed by Sam Weinig.
1822 Bug 51724 - In strict mode string literals should allow \0, but disallow \8 and \9.
1825 (JSC::Lexer::parseString):
1827 2010-12-29 Helder Correia <helder@sencha.com>
1829 Reviewed by Eric Seidel.
1831 <VT> and <FF> are not valid JSON whitespace characters
1832 https://bugs.webkit.org/show_bug.cgi?id=51671
1834 Vertical Tab and Form Feed are not allowed white spaces by the JSON
1835 RFC 4627: http://www.ietf.org/rfc/rfc4627.txt (2. JSON Grammar).
1837 Tests: ietestcenter/Javascript/15.12.1.1-0-2.html
1838 ietestcenter/Javascript/15.12.1.1-0-3.html
1840 * runtime/LiteralParser.cpp:
1841 (JSC::isJSONWhiteSpace):
1842 (JSC::LiteralParser::Lexer::lex):
1844 2010-12-28 Helder Correia <helder@sencha.com>
1846 Reviewed by Eric Seidel.
1848 JSON.stringify must exist as a function taking 3 parameters
1849 https://bugs.webkit.org/show_bug.cgi?id=51667
1851 The reported function length is 1 instead.
1853 Test: ietestcenter/Javascript/15.12.3-0-2.html
1855 * runtime/JSONObject.cpp:
1857 2010-12-28 Helder Correia <helder@sencha.com>
1859 Reviewed by Sam Weinig.
1861 JSON.parse must exist as a function taking 2 parameters
1862 https://bugs.webkit.org/show_bug.cgi?id=51666
1864 Support for revivers was introduced in bug 26591, but the function
1865 length has since remained unchanged.
1867 Test: ietestcenter/Javascript/15.12.2-0-2.html
1869 * runtime/JSONObject.cpp:
1871 2010-12-27 Jake Helfert <jake@jakeonthenet.com>
1873 Reviewed and reworked by Darin Adler.
1875 Building WebKit with Visual Studio 2010 fails due
1876 to ambiguous assignment operator errors.
1877 https://bugs.webkit.org/show_bug.cgi?id=51116
1879 * wtf/NullPtr.h: Added a HAVE(NULLPTR) definition for use with
1880 Platform.h HAVE macro, and included the Visual Studio 2010 compiler
1881 as one of the ones that has nullptr.
1882 * wtf/NullPtr.cpp: Updated condition to match.
1884 * wtf/PassOwnArrayPtr.h: Don't include the operator=(nullptr_t)
1885 overload if we are compiling in loose mode and the compiler has
1886 nullptr, because assignment of 0 will otherwise encounter
1887 ambiguitity with this overload and the overload for loose mode
1888 that takes a raw pointer. The conditional can be removed when we
1889 get rid of loose mode.
1890 * wtf/PassOwnPtr.h: Ditto.
1892 * wtf/PassRefPtr.h: Don't include the operator=(nullptr_t) overload
1893 if the compiler has nullptr, because assignment of 0 would be
1894 ambiguous with the overload that takes a raw pointer. The conditional
1895 can be removed if we ever decide we no longer need to support
1896 assigning 0, but might need a way to catch that usage on older compilers.
1897 * wtf/RefPtr.h: Ditto.
1898 * wtf/RetainPtr.h: Ditto
1900 * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.cpp,
1901 accidentally omitted when the file was first added.
1903 2010-12-26 Xan Lopez <xlopez@igalia.com>
1905 Reviewed by Eric Seidel.
1907 [GTK] Add standalone target for JSC
1908 https://bugs.webkit.org/show_bug.cgi?id=51607
1910 * GNUmakefile.am: add convenience target to only build jsc and its
1913 2010-12-24 Patrick Gansterer <paroga@webkit.org>
1915 Reviewed by Eric Seidel.
1917 [WINCE] Add CPU(MIPS) detection
1918 https://bugs.webkit.org/show_bug.cgi?id=51342
1920 WinCE usually defines MIPS and _MIPS_.
1924 2010-12-23 Gavin Barraclough <barraclough@apple.com>
1926 Reviewed by Sam Weinig.
1928 Rename RegexCompiler.cpp to RegexPattern.cpp.
1929 Implicitly call compileRegex from RegexPattern's constructor.
1934 * JavaScriptCore.gypi:
1935 * JavaScriptCore.pro:
1936 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1937 * JavaScriptCore.xcodeproj/project.pbxproj:
1938 * runtime/RegExp.cpp:
1939 (JSC::RegExp::compile):
1940 * yarr/RegexCompiler.cpp: Removed.
1941 * yarr/RegexCompiler.h: Removed.
1942 * yarr/RegexInterpreter.cpp:
1943 * yarr/RegexJIT.cpp:
1944 * yarr/RegexPattern.cpp: Copied from JavaScriptCore/yarr/RegexCompiler.cpp.
1945 (JSC::Yarr::compileRegex):
1946 (JSC::Yarr::RegexPattern::RegexPattern):
1947 * yarr/RegexPattern.h:
1949 2010-12-23 Patrick Gansterer <paroga@webkit.org>
1951 Unreviewed build fix for WinCE after r74360.
1953 Move the OS(WINDOWS) section after the OS(WINCE) section
1954 and add missing argument to the getStackMax call.
1956 * wtf/StackBounds.cpp:
1957 (WTF::StackBounds::initialize):
1959 2010-12-22 Laszlo Gombos <laszlo.1.gombos@nokia.com>
1961 Unreviewed build fix.
1963 [Symbian] Make sure OSAllocatorSymbian builds
1965 This patch only addresses the build problem.
1967 https://bugs.webkit.org/show_bug.cgi?id=51128 tracks the full
1968 (re)implementation of the Symbian allocator.
1970 * wtf/OSAllocatorSymbian.cpp:
1971 (WTF::OSAllocator::reserveUncommitted):
1972 (WTF::OSAllocator::reserveAndCommit):
1973 (WTF::OSAllocator::commit):
1975 2010-12-22 Dan Bernstein <mitz@apple.com>
1977 Changed WebKitTools to Tools.
1979 * JavaScriptCore.vcproj/JavaScriptCore.sln:
1981 2010-12-22 Dan Bernstein <mitz@apple.com>
1983 Rubber-stamped by Mark Rowe.
1985 Changed WebKitTools to Tools in script build phases.
1987 * JavaScriptCore.xcodeproj/project.pbxproj:
1989 2010-12-22 Andrei Popescu <andreip@google.com>
1991 Unreviewed build fix.
1993 Fix Chromium Linux shared library build.
1994 [Chromium] r74431 broke the Chromium Linux shared library build
1995 https://bugs.webkit.org/show_bug.cgi?id=51462
1997 * JavaScriptCore.gyp/JavaScriptCore.gyp:
1998 * JavaScriptCore.gypi:
2000 2010-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
2002 Unreviewed, rolling out r74462.
2003 http://trac.webkit.org/changeset/74462
2004 https://bugs.webkit.org/show_bug.cgi?id=51449
2006 broke chromium win (Requested by tonyg-cr on #webkit).
2008 * JavaScriptCore.gypi:
2010 2010-12-21 Tony Gentilcore <tonyg@chromium.org>
2012 Unreviewed build fix.
2014 [chromium] Build fix after r74431
2015 https://bugs.webkit.org/show_bug.cgi?id=51447
2017 * JavaScriptCore.gypi:
2019 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2023 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2025 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2029 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2031 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2033 Speculative build fix.
2035 * jit/ExecutableAllocator.cpp:
2036 (JSC::ExecutableAllocator::underMemoryPressure):
2038 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2040 Reviewed by Oliver Hunt.
2042 Bug 26276 - Need a mechanism to determine stack extent
2044 This patch adds accurate stack size calculation for:
2046 We still need to fix:
2047 WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
2049 * wtf/StackBounds.cpp:
2050 (WTF::StackBounds::initialize):
2052 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2054 Reviewed by Geoff Garen.
2056 <rdar://problem/8765333> CRASH running out of executable memory, loading io9.com
2057 https://bugs.webkit.org/show_bug.cgi?id=51443
2059 The problem here is that each page uses a reasonable amount of memory, (~4Mb),
2060 and that when miultiple pages are open we keep all JIT code for all functions
2063 Add a check to detect high memory pressure situations in the executable allocator
2064 (>50% of available memory allocated), and upon a top level entry into JSC (no code
2065 running on the stack) in this situation throw away all JIT code.
2067 * JavaScriptCore.exp:
2068 * debugger/Debugger.cpp:
2069 (JSC::Debugger::recompileAllJSFunctions): stop passing exec to recompile.
2070 * jit/ExecutableAllocator.h:
2071 * jit/ExecutableAllocatorFixedVMPool.cpp:
2072 (JSC::ExecutablePool::systemAlloc): Count allocations.
2073 (JSC::ExecutablePool::systemRelease): Count deallocations.
2074 (JSC::ExecutablePool::underMemoryPressure): Check memory pressure.
2075 * jit/ExecutableAllocatorPosix.cpp:
2076 (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
2077 * jit/ExecutableAllocatorWin.cpp:
2078 (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
2079 * runtime/Executable.cpp:
2080 (JSC::FunctionExecutable::recompile): Remove ExecState argument to recompile.
2081 * runtime/Executable.h:
2082 * runtime/JSGlobalData.cpp:
2083 (JSC::JSGlobalData::recompileAllJSFunctions): throws away all JIT code.
2084 * runtime/JSGlobalData.h:
2085 * runtime/JSGlobalObject.h:
2086 (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): add check / call to throw away.
2088 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2090 Reviewed by Geoff Garen.
2092 <rdar://problem/8241425> JIT executable memory excessive usage due to regex caching
2093 https://bugs.webkit.org/show_bug.cgi?id=51434
2095 Reduce the amount of memory the RegExpCache can hold on to on iOS.
2096 Currently the RegExpCache can hold 256 RegExp objects. If each falls into a separate
2097 ExecutablePool, with a common size of 16Kb, this means we end up holding onto 4Mb of
2098 memory. Firstly, we can reduce this by simply reducing the size of the cache to 32
2099 entries. Secondly, we can use a separate set of ExecutablePools for JIT code generated
2100 from RegExp objects. This helps in two ways (1) it increases the probability that
2101 RegExps in the cache share the same pool, and (2) it means that a RegExp can't end
2102 up holding on to a large ExecutablePool containing a translation of JS code.
2103 (A RegExp could end up keeping a larger RegExp alive that happened to be sharing the
2104 same pool, but large RegExp patterns are less common).
2106 * runtime/JSGlobalData.h:
2107 * runtime/RegExpCache.h:
2108 * yarr/RegexJIT.cpp:
2109 (JSC::Yarr::RegexGenerator::compile):
2111 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2115 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2117 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2121 * wtf/OSAllocator.h:
2122 (WTF::OSAllocator::decommitAndRelease):
2124 2010-12-21 Gavin Barraclough <barraclough@apple.com>
2126 Ooops, fixed typo in comment.
2128 * wtf/OSAllocator.h:
2130 2010-12-21 Geoffrey Garen <ggaren@apple.com>
2132 Reviewed by Gavin Barraclough & Oliver Hunt.
2134 Added PageAllocationAligned, a cross-platform abstraction for memory allocations with arbitrary alignment requirements
2135 https://bugs.webkit.org/show_bug.cgi?id=51359
2137 I think this patch fixes <rdar://problem/8107952> [5.0.1] WER crash in
2138 Heap::allocateBlock (1902752929), and some other leaks and crashes as well.
2143 * JavaScriptCore.gypi:
2144 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2145 * JavaScriptCore.xcodeproj/project.pbxproj: Updated build files.
2147 * runtime/AlignedMemoryAllocator.h: Removed. Supplanted by
2148 PageAllocationAligned.
2150 * runtime/Collector.cpp:
2151 (JSC::Heap::destroy):
2152 (JSC::Heap::allocateBlock):
2153 (JSC::Heap::freeBlock):
2154 (JSC::Heap::addWeakGCHandle):
2155 * runtime/Collector.h: Switched from AlignedMemoryAllocator to
2156 PageAllocationAligned.
2158 * runtime/GCHandle.cpp:
2159 * runtime/GCHandle.h: Ditto.
2161 * wtf/PageAllocation.h:
2162 (WTF::PageAllocation::PageAllocation): Removed aligned memory allocation
2163 functions. Supplanted by PageAllocationAligned.
2165 * wtf/PageAllocationAligned.cpp: Added.
2166 (WTF::PageAllocationAligned::allocate):
2167 (WTF::PageAllocationAligned::deallocate):
2168 * wtf/PageAllocationAligned.h: Added.
2169 (WTF::PageAllocationAligned::PageAllocationAligned): New cross-platform
2170 class for doing aligned memory allocation. This class properly matches
2171 allocation and deallocation library calls, fixing a long-standing bug
2174 * wtf/Platform.h: Removed some defunction VM platform defines.
2176 * wtf/wtf.pri: Updated build files.
2178 2010-12-21 Oliver Hunt <oliver@apple.com>
2180 Reviewed by Gavin Barraclough.
2182 ASSERTION FAILED: base->index() == m_codeBlock->argumentsRegister() while loading taobao.com
2183 https://bugs.webkit.org/show_bug.cgi?id=49006
2185 This problem was caused by having a parameter named 'arguments'.
2186 The fix is to treat parameters named 'arguments' as shadowing
2187 the actual arguments property, and so logically turn the function
2188 into one that doesn't "use" arguments.
2190 This required a bit of fiddling in the parser to ensure we correctly
2191 propagate the 'feature' of shadowing is set correctly.
2193 * bytecompiler/BytecodeGenerator.cpp:
2194 (JSC::BytecodeGenerator::createArgumentsIfNecessary):
2195 Change assertion to an early return as we may now reference
2196 a property named 'arguments' without being in a function that
2197 has the ArgumentsFeature
2198 * parser/JSParser.cpp:
2199 (JSC::JSParser::Scope::Scope):
2200 (JSC::JSParser::Scope::declareParameter):
2201 (JSC::JSParser::Scope::shadowsArguments):
2202 (JSC::JSParser::parseProgram):
2203 (JSC::JSParser::parseFormalParameters):
2204 (JSC::JSParser::parseFunctionInfo):
2206 (JSC::ScopeNode::usesArguments):
2208 2010-12-21 Daniel Bates <dbates@rim.com>
2210 Reviewed by Eric Seidel and Darin Adler.
2212 Deallocate GregorianDateTime.timeZone (if allocated) when copying so that we don't leak memory.
2213 https://bugs.webkit.org/show_bug.cgi?id=51367
2215 Inspired by a patch by George Staikos.
2218 (JSC::msToGregorianDateTime): Modified to set timeZone to nullptr since timeZone is now
2219 of type OwnPtrArray<char>.
2220 * wtf/DateMath.h: Change timeZone to type OwnArrayPtr<char>; Removed destructor since it is no longer needed.
2221 (JSC::GregorianDateTime::GregorianDateTime): Modified to use OwnPtrArray semantics for timeZone.
2222 (JSC::GregorianDateTime::operator tm): Ditto.
2223 (JSC::GregorianDateTime::copyFrom): Ditto.
2225 2010-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
2227 Unreviewed, rolling out r74402.
2228 http://trac.webkit.org/changeset/74402
2229 https://bugs.webkit.org/show_bug.cgi?id=51402
2231 This patch broke the Windows 7 Release Layout Tests (Requested
2232 by jessieberlin on #webkit).
2234 * wtf/StackBounds.cpp:
2235 (WTF::estimateStackBound):
2236 (WTF::StackBounds::initialize):
2238 2010-12-21 Peter Varga <pvarga@inf.u-szeged.hu>
2240 Reviewed by Csaba Osztrogonác.
2242 Unify the name of parentheses in YARR: rename parenthesis to
2245 * yarr/RegexCompiler.cpp:
2246 (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
2248 2010-12-21 Laszlo Gombos <laszlo.1.gombos@nokia.com>
2250 Reviewed by Andreas Kling.
2252 [Qt] Set BUILDING_QT__ consistently
2253 https://bugs.webkit.org/show_bug.cgi?id=51341
2255 * JavaScriptCore.pri: Remove the definition of BUILDING_QT__ as it
2256 is already defined in WebKit.pri.
2258 2010-12-20 Gavin Barraclough <barraclough@apple.com>
2260 Reviewed by Oliver Hunt.
2262 Bug 26276 - Need a mechanism to determine stack extent
2264 This patch adds accurate stack size calculation for:
2265 DARWIN, WINDOWS, QNX, UNIX
2266 We still need to fix:
2267 SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
2269 * wtf/StackBounds.cpp:
2270 (WTF::StackBounds::initialize):
2272 2010-12-20 Gavin Barraclough <barraclough@apple.com>
2274 PPC build fix; stop using std::swap on PageAllocation/PageReservation,
2275 this was failing on some compilers since the lack of default construction
2276 for the m_executable/m_writable fields meant the value being swapped may
2277 not have been fully initialized.
2279 * wtf/PageAllocation.h:
2280 (WTF::PageAllocation::deallocate):
2282 * wtf/PageReservation.h:
2283 (WTF::PageReservation::deallocate):
2285 2010-12-20 Oliver Hunt <oliver@apple.com>
2287 Reviewed by Geoffrey Garen.
2289 |delete name| in strict mode code should be an early error
2290 https://bugs.webkit.org/show_bug.cgi?id=50431
2292 Disallow the |delete IDENTIFIER| production in strict mode, and removed
2293 a bunch of now unnecessary code.
2295 * parser/JSParser.cpp:
2296 (JSC::JSParser::Scope::collectFreeVariables):
2298 (JSC::JSParser::parseProgram):
2299 (JSC::JSParser::parseUnaryExpression):
2300 * parser/JSParser.h:
2301 * parser/Parser.cpp:
2302 (JSC::Parser::parse):
2304 (JSC::Parser::parse):
2306 2010-12-20 Gavin Barraclough <barraclough@apple.com>
2308 Reviewed by Olver Hunt.
2310 Bug 51358 - Should check stack depth rather than using recursion limits in byte compilation
2312 The current implementation of recursion limit checking is not safe on smaller stacks.
2313 Switch to using a common mechanism, shared with the parser, to check recursion limits.
2315 Make bytecompiler use StackBounds. Empirical testing shows emitStrcat to have the largest
2316 footprint on the stack, at just under 1k on x86-64. Given this, the default recursion
2317 check (requiring 4k of available space to recurse) seems reasonable.
2319 * bytecompiler/BytecodeGenerator.cpp:
2320 (JSC::BytecodeGenerator::BytecodeGenerator):
2321 * bytecompiler/BytecodeGenerator.h:
2322 (JSC::BytecodeGenerator::emitNode):
2323 (JSC::BytecodeGenerator::emitNodeInConditionContext):
2324 * bytecompiler/NodesCodegen.cpp:
2325 (JSC::BinaryOpNode::emitStrcat):
2327 2010-12-20 Tony Gentilcore <tonyg@chromium.org>
2329 Unreviewed build fix.
2331 Include pthread to fix chromium mac build (broken by r74360)
2332 https://bugs.webkit.org/show_bug.cgi?id=51356
2334 * wtf/StackBounds.cpp:
2336 2010-12-20 Xan Lopez <xlopez@igalia.com>
2338 Reviewed by Gustavo Noronha.
2340 * GNUmakefile.am: add missing files.
2342 2010-12-18 Gavin Barraclough <barraclough@apple.com>
2344 Reviewed by Oliver Hunt.
2346 Bug 26276 - Need a mechanism to determine stack extent
2348 This patch adds a class 'StackBounds', to hold information about the machine stack.
2349 The implementation of this class broadly adheres to the current implmentation of
2350 stack limit checking, and as such does not solve the problem of determining stack
2351 extent, but gives us a common place to do so.
2353 Currently two mechanism are provided to determine the stack origin (the point the
2354 stack is growing away from). currentThreadStackBase() in Collector provides a
2355 more accurate determination of the stack origin, so use this to calculate
2356 StackBounds::m_origin; WTFThreadData::approximatedStackStart is less accurate, and
2357 as such can be removed. Cache the StackBounds on WTFThreadData such that they
2358 need only be determined once per thread, and for non-API contexts cache this
2359 information in JSGlobalData, to save a thread-specific access.
2361 For the time being retain the estimate of stack size used by JSC's parser
2362 (128 * sizeof(void*) * 1024), with a view to replacing this with something more
2363 accurate in the near future.
2365 * parser/JSParser.cpp:
2366 (JSC::JSParser::canRecurse):
2367 (JSC::JSParser::JSParser):
2368 Change to use StackBounds.
2369 * runtime/Collector.cpp:
2370 (JSC::Heap::registerThread):
2371 (JSC::Heap::markCurrentThreadConservativelyInternal):
2372 Change to use StackBounds, cached on JSGlobalData.
2373 * runtime/JSGlobalData.cpp:
2374 (JSC::JSGlobalData::JSGlobalData):
2375 * runtime/JSGlobalData.h:
2376 (JSC::JSGlobalData::stack):
2377 Add a cached copy of StackBounds.
2378 * wtf/StackBounds.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
2379 (WTF::estimateStackBound):
2380 (WTF::StackBounds::initialize):
2382 Copy code from Collector.cpp to determine stack origin.
2383 * wtf/StackBounds.h: Added.
2384 (WTF::StackBounds::StackBounds):
2385 No argument constructor; returns a null StackBounds.
2386 (WTF::StackBounds::currentThreadStackBounds):
2387 Returns a StackBounds object representing the stack limits
2388 of the current thread.
2389 (WTF::StackBounds::origin):
2390 Returns to stack origin (the point the stack is growing away
2391 from; the highest extent of the stack on machines where the
2392 stack grows downwards.
2393 (WTF::StackBounds::recursionLimit):
2394 Returns a limit value that is 'a comfortable distance from
2395 the end of the stack'. Our concept of this is currently 1 page
2396 away from the end, however the default value may be tuned in
2397 the future, and clients may override passing a larger delta;
2398 should only be called on StackBounds object representing the
2399 stack of the thread this method is called on (checked by
2401 (WTF::StackBounds::recursionCheck):
2402 Checks whether we are currently 'a comfortable distance from
2403 the end of the stack'. Our concept of this is currently 1 page
2404 away from the end, however the default value may be tuned in
2405 the future, and clients may override passing a larger delta
2406 to apply when checking, if they wish to do so. This method
2407 should only be called on StackBounds object representing the
2408 stack of the thread this method is called on (checked by
2410 (WTF::StackBounds::current):
2411 Approximate current stack position. On machines where the stack
2412 is growing downwards this is the lowest address that might need
2413 conservative collection.
2414 (WTF::StackBounds::isGrowingDownward):
2415 True for all platforms other than WINCE, which has to check.
2416 (WTF::StackBounds::checkConsistency):
2417 This is called in methods that shoulds only be operating on a
2418 valid set of bounds; as such we expect m_origin != m_bounds
2419 (i.e. stack size != zero) - we're really testing that this
2420 object is not null (the constructor initializes both fields
2421 to zero). Also checks that current() is within the stack's
2423 * wtf/WTFThreadData.cpp:
2424 (WTF::WTFThreadData::WTFThreadData):
2425 * wtf/WTFThreadData.h:
2426 (WTF::WTFThreadData::stack):
2427 Add the StackBounds member variable.
2429 2010-12-17 Geoffrey Garen <ggaren@apple.com>
2431 Reviewed by Sam Weinig.
2433 Factored common page set management into a new PageBlock base class
2434 https://bugs.webkit.org/show_bug.cgi?id=51285
2439 * JavaScriptCore.gypi:
2440 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2441 * JavaScriptCore.xcodeproj/project.pbxproj:
2442 * interpreter/RegisterFile.h:
2443 (JSC::RegisterFile::RegisterFile):
2444 * jit/ExecutableAllocator.cpp:
2445 (JSC::ExecutableAllocator::intializePageSize):
2446 * wtf/PageAllocation.cpp: Removed.
2447 * wtf/PageAllocation.h:
2448 (WTF::PageAllocation::deallocate):
2449 (WTF::PageAllocation::PageAllocation):
2450 * wtf/PageReservation.h:
2451 (WTF::PageReservation::commit):
2452 (WTF::PageReservation::decommit):
2453 (WTF::PageReservation::deallocate):
2454 (WTF::PageReservation::PageReservation):
2457 2010-12-17 Michael Saboff <msaboff@apple.com>
2459 Reviewed by Oliver Hunt.
2461 RegExp Jit'ed expression crashes clicking link on yelp.com
2462 https://bugs.webkit.org/show_bug.cgi?id=51284
2464 When transitioning between an non-repeating beginning of line
2465 anchored expression and the remaining refactored repeating
2466 expression, we should not clear any residual datalabel in
2467 state's m_backtrack. It will be resolved and cleared in subsequent
2468 code when linkAlternativeBacktracks() is called for the repeating
2471 * yarr/RegexJIT.cpp:
2472 (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
2473 (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
2475 2010-12-17 Dan Bernstein <mitz@apple.com>
2477 Rubber-stamped by Mark Rowe.
2479 Updated for the renaming of WebKitTools to Tools
2481 * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
2483 2010-12-17 Ariya Hidayat <ariya@sencha.com>
2485 Reviewed by Oliver Hunt.
2487 [JSC] parseAssignmentExpression should use TreeBuilder::CreatesAST
2488 https://bugs.webkit.org/show_bug.cgi?id=51268
2490 * parser/JSParser.cpp:
2491 (JSC::JSParser::parseAssignmentExpression):
2493 2010-12-17 Geoffrey Garen <ggaren@apple.com>
2495 Reviewed by Oliver Hunt.
2497 Removed RChunk from PageAllocation/PageReservation, since it's now unused.
2498 https://bugs.webkit.org/show_bug.cgi?id=51276
2500 * wtf/PageAllocation.h:
2501 (WTF::PageAllocation::PageAllocation):
2502 * wtf/PageReservation.h:
2503 (WTF::PageReservation::PageReservation):
2505 2010-12-17 Oliver Hunt <oliver@apple.com>
2507 Reviewed by Gavin Barraclough.
2509 Incorrect encoding of some constants in ARMv7 JIT
2510 https://bugs.webkit.org/show_bug.cgi?id=51273
2511 <rdar://problem/8650210>
2513 When using immediate encoding 3 we need to write the byte
2514 that holds a duplicated value.
2516 * assembler/ARMv7Assembler.h:
2517 (JSC::ARMThumbImmediate::makeEncodedImm):
2519 2010-12-16 Evan Martin <evan@chromium.org>
2521 Reviewed by Darin Fisher.
2523 [chromium] useless warnings when building on Windows
2524 https://bugs.webkit.org/show_bug.cgi?id=50985
2526 Disable some compiler warnings that aren't indicative of real problems.
2528 * JavaScriptCore.gyp/JavaScriptCore.gyp:
2530 2010-12-16 Pratik Solanki <psolanki@apple.com>
2532 Reviewed by Geoffrey Garen.
2534 https://bugs.webkit.org/show_bug.cgi?id=51166
2535 ExecutableAllocator::cacheFlush should call sys_cache_control
2537 * jit/ExecutableAllocator.h:
2538 (JSC::ExecutableAllocator::cacheFlush): Use the more correct and forward looking API -
2539 sys_cache_control(kCacheFunctionPrepareForExecution,...).
2541 2010-12-16 Ariya Hidayat <ariya@sencha.com>
2543 Reviewed by Andreas Kling.
2545 [JSC] Const correctness in ASTBuilder and SyntaxChecker
2546 https://bugs.webkit.org/show_bug.cgi?id=51141
2548 * parser/ASTBuilder.h:
2549 (JSC::ASTBuilder::getName):
2550 (JSC::ASTBuilder::getType):
2551 (JSC::ASTBuilder::isResolve):
2552 * parser/SyntaxChecker.h:
2553 (JSC::SyntaxChecker::operatorStackPop):
2555 2010-12-15 Kenneth Russell <kbr@google.com>
2557 Reviewed by James Robinson.
2559 Web Audio API: port FFTFrame to MKL
2560 https://bugs.webkit.org/show_bug.cgi?id=50986
2562 Fixed bug in log2 emulation function provided for Windows port of
2568 2010-12-14 Mark Rowe <mrowe@apple.com>
2570 Reviewed by Sam Weinig.
2572 <http://webkit.org/b/51064> Reproducible crash inside WebCore::MediaPlayerPrivateQTKit::createQTMovie when loading <video>
2574 * wtf/text/WTFString.h: Prevent String from being implicitly convertable to bool.
2575 It was previously implicitly convertible to bool on Mac via operator NSString*,
2576 but since that always has a non-zero return value it would give unexpected results.
2578 2010-12-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
2580 Reviewed by Eric Seidel.
2582 [Qt] [Symbian] Do not use pkg-config on Symbian as it is not supported
2583 https://bugs.webkit.org/show_bug.cgi?id=50231
2585 Guard CONFIG+=link_pkgconfig with !symbian.
2589 2010-12-14 Cameron Zwarich <zwarich@apple.com>
2593 Revert accidental change disabling the JIT for most platforms.
2597 2010-12-13 Cameron Zwarich <zwarich@apple.com>
2599 Reviewed by Eric Seidel.
2601 Clang fails to build the JSC interpreter
2602 https://bugs.webkit.org/show_bug.cgi?id=51016
2604 Clang does not allow indirect gotos out of scopes with cleanup. GCC 4.2 allows
2605 them, but it does not correctly generate the cleanup, causing a leak if the
2606 cleanup decrements a reference count.
2608 * interpreter/Interpreter.cpp:
2609 (JSC::Interpreter::privateExecute): Put an Identifier into its own scope.
2611 2010-12-14 Carlos Garcia Campos <cgarcia@igalia.com>
2613 Reviewed by Martin Robinson.
2615 [GTK] Simplify context-menu handling code
2616 https://bugs.webkit.org/show_bug.cgi?id=49658
2618 * wtf/PlatformRefPtr.h: Add leakRef()
2620 2010-12-13 Cameron Zwarich <zwarich@apple.com>
2622 Reviewed by Gavin Barraclough.
2624 JavaScriptCore should not use "asm volatile" outside of a function
2625 https://bugs.webkit.org/show_bug.cgi?id=50991
2627 * jit/JITStubs.cpp: Remove the volatile keyword from asm statements.
2629 2010-12-13 Steve Falkenburg <sfalken@apple.com>
2631 Windows production build fix.
2632 Try copying ICU 4.6 in addition to 4.4 and 4.2.
2634 * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
2636 2010-12-13 Michael Saboff <msaboff@apple.com>
2638 Reviewed by Oliver Hunt.
2640 REGRESSION: mobileme mail viewing is broken
2641 https://bugs.webkit.org/show_bug.cgi?id=50884
2643 Fixed problem where simple parenthesis (those without capture and
2644 with a fixed count) where not propagating backtrack to labels for
2645 nested parentheses. Also added the nesting level for the parentheses
2646 state created in that case as well.
2648 * yarr/RegexJIT.cpp:
2649 (JSC::Yarr::RegexGenerator::BacktrackDestination::copyBacktrackToLabel):
2650 (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
2651 (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
2652 (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
2654 2010-12-13 Peter Varga <pvarga@inf.u-szeged.hu>
2656 Reviewed by Gavin Barraclough.
2658 Reduce the size of the RegexStackSpaceForBackTrackInfoParentheses in YARR
2659 https://bugs.webkit.org/show_bug.cgi?id=49385
2661 Remove the BackTrackInfoParentheses struct prevBegin and prevEnd members.
2663 * yarr/RegexInterpreter.cpp:
2664 (JSC::Yarr::Interpreter::matchParentheses):
2665 (JSC::Yarr::Interpreter::backtrackParentheses):
2666 * yarr/RegexPattern.h:
2668 2010-12-10 Michael Saboff <msaboff@apple.com>
2670 Reviewed by Gavin Barraclough.
2672 REGRESSION Hang inside Yarr::RegexCodeBlock::execute when visiting
2674 https://bugs.webkit.org/show_bug.cgi?id=50816
2676 First nested parentheses of the second or greater alternative
2677 where backtracking to the prior parentheses. Changed the default
2678 handling of initial parentheses for all alternatives to go back
2679 to the immediate outer paren.
2681 * yarr/RegexJIT.cpp:
2682 (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
2683 (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
2684 (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
2685 (JSC::Yarr::RegexGenerator::TermGenerationState::getTermIndex):
2686 (JSC::Yarr::RegexGenerator::TermGenerationState::setParenthesesTail):
2687 (JSC::Yarr::RegexGenerator::TermGenerationState::getParenthesesTail):
2688 (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
2689 (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
2690 (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
2691 (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
2693 2010-12-11 Patrick Gansterer <paroga@webkit.org>
2695 Reviewed by Darin Adler.
2697 Add an overload to makeString for Vector<char>
2698 https://bugs.webkit.org/show_bug.cgi?id=50123
2700 Also cleanup StringTypeAdapter.
2702 * wtf/text/StringConcatenate.h:
2704 2010-12-10 Siddharth Mathur <siddharth.mathur@nokia.com>
2706 Reviewed by Eric Seidel.
2708 [Qt] Build fix for Symbian: don't compile POSIX memory management implementation
2709 https://bugs.webkit.org/show_bug.cgi?id=50707
2713 2010-12-10 Steve Falkenburg <sfalken@apple.com>
2715 Windows production build fix.
2717 Don't stop if react-to-vsprops-changes.py exits with an error,
2718 since this will occur in production builds.
2720 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
2722 2010-12-10 Brian Weinstein <bweinstein@apple.com>
2724 Reviewed by Adam Roben.
2726 Turn on USE(CROSS_PLATFORM_CONTEXT_MENUS) for Windows.
2730 2010-12-10 Martin Robinson <mrobinson@igalia.com>
2732 Unreviewed, rolling out r73703.
2733 http://trac.webkit.org/changeset/73703
2734 https://bugs.webkit.org/show_bug.cgi?id=49658
2736 This patch is causing crashes on the GTK+ bots.
2738 * wtf/PlatformRefPtr.h:
2740 2010-12-10 Patrick Gansterer <paroga@webkit.org>
2742 Reviewed by Eric Seidel.
2744 Cleanup StringWx.cpp
2745 https://bugs.webkit.org/show_bug.cgi?id=50525
2747 Use StringImpl::createUninitialized to avoid memcpy and fix style issues.
2749 * wtf/wx/StringWx.cpp:
2750 (WTF::String::String):
2752 2010-12-10 Carlos Garcia Campos <cgarcia@igalia.com>
2754 Reviewed by Martin Robinson.
2756 [GTK] Simplify context-menu handling code
2757 https://bugs.webkit.org/show_bug.cgi?id=49658
2759 * wtf/PlatformRefPtr.h:
2761 2010-12-09 Michael Saboff <msaboff@apple.com>
2763 Reviewed by Gavin Barraclough.
2765 REGRESSION (r73065?): A regex no longer works
2766 https://bugs.webkit.org/show_bug.cgi?id=50570
2768 Changed the handling of adjacent parentheses backtracks in two ways.
2769 First, only outer most paren backtracks default to back tracking
2770 to the "next character" looping code. Second, added a jump around
2771 backtracks that fall through to the next backtrack where the
2772 second backtrack has some greedy processing before the backtracking
2773 from outside the parentheses code.
2774 Also cleaned up extraneous white spce, removing white space at the
2775 end of or that makes up a whole line.
2777 * yarr/RegexJIT.cpp:
2778 (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
2779 (JSC::Yarr::RegexGenerator::GenerationState::incrementParenNestingLevel):
2780 (JSC::Yarr::RegexGenerator::GenerationState::decrementParenNestingLevel):
2781 (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
2782 (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
2783 (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
2784 (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
2785 (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
2786 (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
2788 2010-12-09 Michael Saboff <msaboff@apple.com>
2790 Reviewed by Geoffrey Garen.
2792 Addressed the "FIXME" issues in array sort for toString() methods that
2793 mutate the array in either size or contents. The change is to mark
2794 the temporary array contents so that they are not garbage collected
2795 and to make sure the array is large enough to hold the contents
2796 of the sorted temporary vector.
2797 https://bugs.webkit.org/show_bug.cgi?id=50718
2799 * runtime/Collector.cpp:
2800 (JSC::Heap::addTempSortVector):
2801 (JSC::Heap::removeTempSortVector):
2802 (JSC::Heap::markTempSortVectors):
2803 (JSC::Heap::markRoots):
2804 * runtime/Collector.h:
2805 * runtime/JSArray.cpp:
2806 (JSC::JSArray::sort):
2807 * runtime/JSValue.h:
2809 2010-12-09 Michael Saboff <msaboff@apple.com>
2811 Reviewed by Darin Adler.
2813 Changed setting of backtrack labels to not overwrite a prior
2814 label. Where losing prior labe which then reverted back to
2815 next character label.
2816 https://bugs.webkit.org/show_bug.cgi?id=50579
2818 * yarr/RegexJIT.cpp:
2819 (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
2821 2010-12-08 Gavin Barraclough <barraclough@apple.com>
2823 Reviewed by Sam Weinig.
2825 Permit Character Class Escape in CharacterRange in Character Class.
2826 https://bugs.webkit.org/show_bug.cgi?id=50483
2827 https://bugs.webkit.org/show_bug.cgi?id=50538
2828 https://bugs.webkit.org/show_bug.cgi?id=50654
2829 https://bugs.webkit.org/show_bug.cgi?id=50646
2831 We recently tightened up our spec conformance in generating syntax
2832 error in these cases, however testing in the wild has shown this
2833 to be problematic. This reverts the previous change in allowing
2834 class escapes (e.g. \d) in ranges in character classes ([]), but
2835 does retain some closer conformance to the spec in only allowing
2836 ranges that would be permitted per the grammar rules in the spec
2837 (e.g. in /[\d-a-z]/ "a-z" cannot be considered as a range).
2839 * yarr/RegexParser.h:
2840 (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
2841 (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
2842 (JSC::Yarr::Parser::parse):
2844 2010-12-08 Geoffrey Garen <ggaren@apple.com>
2846 Reviewed by Sam Weinig.
2848 Try to fix crash-on-launch seen on Windows builder.
2850 * wtf/OSAllocatorWin.cpp:
2851 (WTF::OSAllocator::release): Disabled an ASSERT, because it checks for
2852 a bug that hasn't been fixed yet.
2854 2010-12-08 Geoffrey Garen <ggaren@apple.com>
2856 Try to fix Windows build.
2858 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
2860 2010-12-08 Geoffrey Garen <ggaren@apple.com>
2862 Try to fix Windows build.
2864 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def
2865 file to remove a symbol -- the next build failure will say which symbol
2868 2010-12-08 Geoffrey Garen <ggaren@apple.com>
2870 Try to fix Windows build.
2872 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
2874 2010-12-08 Geoffrey Garen <ggaren@apple.com>
2876 Try to fix GTK Linux build.
2878 * jit/ExecutableAllocator.cpp:
2879 (JSC::ExecutablePool::systemAlloc):
2880 * runtime/AlignedMemoryAllocator.h:
2881 (JSC::::AlignedMemoryAllocator): Updated for Usage enum moving to OSAllocator.
2883 2010-12-07 Geoffrey Garen <ggaren@apple.com>
2885 Reviewed by Sam Weinig.
2887 Migrated OS-specific allocation code from PageReservation and PageAllocation to OSAllocator
2888 https://bugs.webkit.org/show_bug.cgi?id=50653
2890 * JavaScriptCore.exp: Updated for new function signature.
2892 * interpreter/RegisterFile.h:
2893 (JSC::RegisterFile::RegisterFile):
2894 (JSC::RegisterFile::grow):
2895 * jit/ExecutableAllocatorFixedVMPool.cpp:
2896 (JSC::FixedVMPoolAllocator::reuse):
2897 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): Removed checkAllocatedOkay.
2898 OSAllocator is now the central location for verifying that allocation succeeds.
2899 This allowed me to remove some complicating cross-platform cruft.
2901 * runtime/AlignedMemoryAllocator.h:
2902 (JSC::::allocate): Updated for code motion.
2904 * wtf/OSAllocator.h: Added Usage, writable, and executable parameters, to
2905 support VM features required by clients of PageAllocation and PageReservation.
2907 * wtf/OSAllocatorPosix.cpp:
2908 (WTF::OSAllocator::reserve):
2909 (WTF::OSAllocator::reserveAndCommit):
2910 (WTF::OSAllocator::commit): Moved PageAllocation support for randomizing
2911 executable memory here.
2913 * wtf/OSAllocatorSymbian.cpp:
2914 (WTF::OSAllocator::reserve):
2915 (WTF::OSAllocator::reserveAndCommit):
2916 (WTF::OSAllocator::commit): Updated for new function signatures.
2918 * wtf/OSAllocatorWin.cpp:
2920 (WTF::OSAllocator::reserve):
2921 (WTF::OSAllocator::reserveAndCommit):
2922 (WTF::OSAllocator::commit):
2923 (WTF::OSAllocator::release): Updated for new function signatures. Moved
2924 some protection-related and WINCE-related code from PageAllocation here.
2926 * wtf/PageAllocation.cpp: Nixed cross-platform lastError abstraction, since
2927 it was only used by checkAllocatedOkay, which is now gone.
2929 * wtf/PageAllocation.h:
2930 (WTF::PageAllocation::allocate):
2931 (WTF::PageAllocation::allocateAligned):
2932 (WTF::PageAllocation::deallocate):
2933 (WTF::PageAllocation::isPowerOfTwo):
2934 (WTF::PageAllocation::systemAllocateAligned): Removed system* functions,
2935 and replaced calls to them with calls to OSAllocator.
2937 * wtf/PageReservation.h:
2938 (WTF::PageReservation::commit):
2939 (WTF::PageReservation::decommit):
2940 (WTF::PageReservation::reserve):
2941 (WTF::PageReservation::deallocate):
2942 (WTF::PageReservation::PageReservation): Ditto. Added m_writable and
2943 m_executable because these flags are now required when committing memory.
2945 2010-12-08 Chris Rogers <crogers@google.com>
2947 Reviewed by Kenneth Russell.
2949 Add web audio files to mac port Xcode projects
2950 https://bugs.webkit.org/show_bug.cgi?id=50721
2952 * JavaScriptCore.xcodeproj/project.pbxproj:
2954 2010-12-08 Oliver Hunt <oliver@apple.com>
2956 Reviewed by Gavin Barraclough.
2958 Marking the active global object re-enters through markConservatively
2959 https://bugs.webkit.org/show_bug.cgi?id=50711
2961 draining of the MarkStack is not allowed to be re-entrant, we got away
2962 with this simply due to the logic in MarkStack::drain implicitly handling
2963 changes that could be triggered by the re-entry.
2965 Just to be safe this patch removes the re-entry through markConservatively
2966 so we don't accidentally introduce such an issue in future. I've also
2967 added an assertion to catch such errors.
2969 * runtime/Collector.cpp:
2970 (JSC::Heap::markConservatively):
2971 (JSC::Heap::markCurrentThreadConservativelyInternal):
2972 (JSC::Heap::markOtherThreadConservatively):
2973 * runtime/JSArray.h:
2974 (JSC::MarkStack::drain):
2975 * runtime/MarkStack.h:
2976 (JSC::MarkStack::MarkStack):
2978 2010-12-08 Chris Marrin <cmarrin@apple.com>
2980 Reviewed by Simon Fraser.
2982 Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
2983 https://bugs.webkit.org/show_bug.cgi?id=49388
2985 Added a WTF_PLATFORM_CA flag. Set when platform is MAC or IOS or (WINDOWS AND CG)
2986 which was decided was the best way to identify a build with CoreAnimation
2990 2010-12-07 Anders Carlsson <andersca@apple.com>
2992 Build fix follow up build fix.
2994 * pcre/pcre_ucp_searchfuncs.cpp:
2995 (jsc_pcre_ucp_othercase):
2997 2010-12-07 Anders Carlsson <andersca@apple.com>
2999 Reviewed by Darin Adler.
3002 https://bugs.webkit.org/show_bug.cgi?id=50645
3004 Explicitly cast offset to int.
3006 * pcre/pcre_ucp_searchfuncs.cpp:
3007 (jsc_pcre_ucp_othercase):
3009 2010-12-07 Kenneth Russell <kbr@google.com>
3011 Reviewed by David Levin.
3013 Fix compilation of core web audio files on Windows
3014 https://bugs.webkit.org/show_bug.cgi?id=50603
3016 Added log2 definition to MathExtras.h on Windows platform.
3021 2010-12-07 Antti Koivisto <antti@apple.com>
3023 Reviewed by Gavin Barraclough.
3025 https://bugs.webkit.org/show_bug.cgi?id=50412
3026 http://www.wunderground.com/US/CA/Hayward.html causes big memory spike during page loading
3028 Creating a substring caused the original string be flattened if it was in the rope form. This could use
3029 significant amount of memory by reducing buffer sharing between strings.
3031 Add a rope specific substring function that constructs the substring by reusing the rope fibers
3032 instead of flattening the rope.
3034 No change observed in SunSpider.
3036 * runtime/JSString.cpp:
3037 (JSC::JSString::substringFromRope):
3038 * runtime/JSString.h:
3040 * runtime/StringPrototype.cpp:
3041 (JSC::stringProtoFuncSubstr):
3042 (JSC::stringProtoFuncSubstring):
3044 2010-12-06 Geoffrey Garen <ggaren@apple.com>
3046 Reviewed by Gavin Barraclough.
3048 Simplified some ASLR-related code in PageAllocation/Reservation
3049 https://bugs.webkit.org/show_bug.cgi?id=50599
3051 Removed reserveAt, allocateAt, and friends, since they all existed to
3052 serve one feature: ASLR for executable memory on x86_64 on Mac. Moved
3053 ASLR code down into systemAllocate -- now, any time you allocate
3054 executable memory on a supporting platform, the memory's location is
3057 * jit/ExecutableAllocatorFixedVMPool.cpp:
3058 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): No need for the caller
3059 to randomize anything.
3061 * wtf/PageAllocation.h:
3062 (WTF::PageAllocation::systemAllocate): Removed some *At() functions, and
3063 beefed up executable allocation with randomization.
3065 * wtf/PageReservation.h:
3066 (WTF::PageReservation::systemReserve): Removed some *At() functions.
3068 2010-12-06 Geoffrey Garen <ggaren@apple.com>
3070 Reviewed by Maciej Stachowiak.
3072 reserveAndCommit doesn't commit on MADVISE_FREE_REUSE systems
3073 https://bugs.webkit.org/show_bug.cgi?id=50588
3075 * wtf/OSAllocatorPosix.cpp:
3076 (WTF::OSAllocator::reserve):
3077 (WTF::OSAllocator::reserveAndCommit):
3078 (WTF::OSAllocator::commit): Tightened up some comments. Changed
3079 reserveAndCommit to actually commit on MADVISE_FREE_REUSE systems.
3081 2010-12-06 Patrick Gansterer <paroga@webkit.org>
3083 Reviewed by Andreas Kling.
3085 [WINCE] Add build system
3086 https://bugs.webkit.org/show_bug.cgi?id=50522
3088 * CMakeListsWinCE.txt: Added.
3089 * shell/CMakeListsWinCE.txt: Added.
3090 * wtf/CMakeListsWinCE.txt: Added.
3092 2010-12-06 John Tantalo <john.tantalo@gmail.com>
3094 Reviewed by Geoffrey Garen.
3096 jsc does not ignore shebang
3097 https://bugs.webkit.org/show_bug.cgi?id=49576
3100 (fillBufferWithContentsOfFile):
3101 - translate shebang into a valid JavaScript comment so the lexer ignores it
3103 2010-12-05 Adam Roben <aroben@apple.com>
3105 Windows production build fix
3107 Put spaces after trailing backslashes when setting
3108 %WebKitVSPropsRedirectionDir%. According to MSDN
3109 <http://msdn.microsoft.com/en-us/library/2kzfk8c7(v=VS.80).aspx>:
3111 A backslash ( \ ) followed by a newline character is interpreted as
3112 a space in the command; use a backslash at the end of a line to
3113 continue a command onto the next line. NMAKE interprets the
3114 backslash literally if any other character, including a space or
3115 tab, follows the backslash.
3117 * JavaScriptCore.vcproj/JavaScriptCore.make:
3119 2010-12-04 Patrick Gansterer <paroga@webkit.org>
3121 Unreviewed, build fix after r69132.
3123 * shell/CMakeLists.txt: Fix directory name (jsc -> shell).
3125 2010-12-04 Xan Lopez <xlopez@igalia.com>
3127 Reviewed by Martin Robinson.
3129 [GTK] Drop GdkDrawable usage, it's deprecated in GTK+3.x and we can use GdkWindow
3130 https://bugs.webkit.org/show_bug.cgi?id=50451
3132 * wtf/gobject/GTypedefs.h: add GdkWindow defines.
3134 2010-12-03 Gavin Barraclough <barraclough@apple.com>
3136 Rubber stamped by Oliver Hunt.
3138 Bug 50509 - set* methods on MacroAssembler are awfully named.
3140 Methods set32 and setTest32 compare 32-bit operands, and set a 32-bit results based on the comparison.
3141 set8 compares 32-bit operands, and sets an 8-bit result based on the comparison.
3142 setTest8 compares 8-bit operands, and sets a 32-bit result based on the comparison.
3146 set32 -> set32Compare32
3147 setTest32 -> set32Test32
3148 set8 -> set8Compare32
3149 setTest8 -> set32Test8
3151 * assembler/MacroAssembler.h:
3152 (JSC::MacroAssembler::setPtr):
3153 * assembler/MacroAssemblerARM.h:
3154 (JSC::MacroAssemblerARM::set32Compare32):
3155 (JSC::MacroAssemblerARM::set8Compare32):
3156 (JSC::MacroAssemblerARM::set32Test32):
3157 (JSC::MacroAssemblerARM::set32Test8):
3158 * assembler/MacroAssemblerARMv7.h:
3159 (JSC::MacroAssemblerARMv7::set32Compare32):
3160 (JSC::MacroAssemblerARMv7::set8Compare32):
3161 (JSC::MacroAssemblerARMv7::set32Test32):
3162 (JSC::MacroAssemblerARMv7::set32Test8):
3163 * assembler/MacroAssemblerMIPS.h:
3164 (JSC::MacroAssemblerMIPS::set8Compare32):
3165 (JSC::MacroAssemblerMIPS::set32Compare32):
3166 (JSC::MacroAssemblerMIPS::set32Test8):
3167 (JSC::MacroAssemblerMIPS::set32Test32):
3168 * assembler/MacroAssemblerX86Common.h:
3169 (JSC::MacroAssemblerX86Common::set8Compare32):
3170 (JSC::MacroAssemblerX86Common::set32Compare32):
3171 (JSC::MacroAssemblerX86Common::set32Test8):
3172 (JSC::MacroAssemblerX86Common::set32Test32):
3173 * jit/JITOpcodes.cpp:
3174 (JSC::JIT::emit_op_eq):
3175 (JSC::JIT::emit_op_neq):
3176 (JSC::JIT::compileOpStrictEq):
3177 (JSC::JIT::emit_op_eq_null):
3178 (JSC::JIT::emit_op_neq_null):
3179 * jit/JITOpcodes32_64.cpp:
3180 (JSC::JIT::emit_op_eq):
3181 (JSC::JIT::emit_op_neq):
3182 (JSC::JIT::compileOpStrictEq):
3183 (JSC::JIT::emit_op_eq_null):
3184 (JSC::JIT::emit_op_neq_null):
3186 2010-12-03 Oliver Hunt <oliver@apple.com>
3188 Reviewed by Geoff Garen.
3190 Incorrect logic for returning memory at the end of linking.
3191 Reviewed by Geoff Garen.
3193 At the end of linking we return any space at the end of the
3194 allocated executable region that was saved due to branch
3195 compaction. This is currently by done by subtracting the
3196 different from the m_freePtr in the allocation pool. This
3197 can be incorrect if your allocation was made from a new
3198 page that was not selected for subsequent allocations.
3200 This patch corrects this behaviour by verifying that the
3201 memory being returned actually comes from the current
3204 * assembler/LinkBuffer.h:
3205 (JSC::LinkBuffer::linkCode):
3206 * jit/ExecutableAllocator.h:
3207 (JSC::ExecutablePool::tryShrink):
3209 2010-12-03 Michael Saboff <msaboff@apple.com>
3211 Reviewed by Gavin Barraclough
3213 Changes to significantly reduce branches to branches in JIT'ed
3214 parentheses backtrack processing. The changes include the following:
3215 - Taking the backtracking processing out of line and adding it as
3216 code at the end of the JIT'ed routine.
3217 - Allow backtracks to be direct via an indirect branch for an address
3218 pushed onto the stack. If the use of an indirect branch is from a
3219 conditional jump, then we emit a trampoline at the end of the
3221 - Propogate backtracks instead of adding trampolines. Backtracks are
3222 propogated to where they are used. This change also eliminated
3223 trampoline branch code that aren't used.
3224 - Added global expression state to keep track of parentheses tail
3225 code and indirect branches.
3226 Other changes made to support these changes.
3227 - Split invertOrCapture flag on Patterns to two separate flags. Added
3228 getters for these flags. Rippled these changes to both the JIT
3229 and interpreter code.
3230 - Split BacktrackDestination out off TermGenerationState struct.
3231 This is done to hold references to a backtrack for later code
3233 https://bugs.webkit.org/show_bug.cgi?id=50295
3235 * assembler/ARMAssembler.h:
3236 (JSC::ARMAssembler::JmpDst::isSet):
3237 * assembler/ARMv7Assembler.h:
3238 (JSC::ARMv7Assembler::JmpDst::isSet):
3239 * assembler/AbstractMacroAssembler.h:
3240 (JSC::AbstractMacroAssembler::Label::isSet):
3241 (JSC::AbstractMacroAssembler::DataLabelPtr::isUsed):
3242 (JSC::AbstractMacroAssembler::DataLabelPtr::used):
3243 (JSC::AbstractMacroAssembler::JumpList::clear):
3244 * assembler/MIPSAssembler.h:
3245 (JSC::MIPSAssembler::JmpDst::isSet):
3246 * assembler/X86Assembler.h:
3247 (JSC::X86Assembler::JmpDst::isSet):
3248 * yarr/RegexCompiler.cpp:
3249 (JSC::Yarr::RegexPatternConstructor::atomParenthesesSubpatternBegin):
3250 (JSC::Yarr::RegexPatternConstructor::atomParentheticalAssertionBegin):
3251 (JSC::Yarr::RegexPatternConstructor::atomBackReference):
3252 (JSC::Yarr::RegexPatternConstructor::setupAlternativeBeginTerms):
3253 * yarr/RegexInterpreter.cpp:
3254 (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
3255 (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
3256 (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
3257 (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
3258 (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
3259 (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
3260 (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
3261 (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
3262 (JSC::Yarr::ByteCompiler::emitDisjunction):
3263 * yarr/RegexInterpreter.h:
3264 (JSC::Yarr::ByteTerm::ByteTerm):
3265 (JSC::Yarr::ByteTerm::BackReference):
3266 (JSC::Yarr::ByteTerm::invert):
3267 (JSC::Yarr::ByteTerm::capture):
3268 * yarr/RegexJIT.cpp:
3269 (JSC::Yarr::RegexGenerator::IndirectJumpEntry::IndirectJumpEntry):
3270 (JSC::Yarr::RegexGenerator::IndirectJumpEntry::addJump):
3271 (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
3272 (JSC::Yarr::RegexGenerator::GenerationState::addIndirectJumpEntry):
3273 (JSC::Yarr::RegexGenerator::GenerationState::emitIndirectJumpTable):
3274 (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
3275 (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
3276 (JSC::Yarr::RegexGenerator::GenerationState::addJumpToNextInteration):
3277 (JSC::Yarr::RegexGenerator::GenerationState::addJumpsToNextInteration):
3278 (JSC::Yarr::RegexGenerator::GenerationState::addDataLabelToNextIteration):
3279 (JSC::Yarr::RegexGenerator::GenerationState::linkToNextIteration):
3280 (JSC::Yarr::RegexGenerator::BacktrackDestination::BacktrackDestination):
3281 (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
3282 (JSC::Yarr::RegexGenerator::BacktrackDestination::clearDataLabel):
3283 (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDestination):
3284 (JSC::Yarr::RegexGenerator::BacktrackDestination::isStackOffset):
3285 (JSC::Yarr::RegexGenerator::BacktrackDestination::isLabel):
3286 (JSC::Yarr::RegexGenerator::BacktrackDestination::isJumpList):
3287 (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDataLabel):
3288 (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTarget):
3289 (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTo):
3290 (JSC::Yarr::RegexGenerator::BacktrackDestination::addBacktrackJump):
3291 (JSC::Yarr::RegexGenerator::BacktrackDestination::setStackOffset):
3292 (JSC::Yarr::RegexGenerator::BacktrackDestination::setLabel):
3293 (JSC::Yarr::RegexGenerator::BacktrackDestination::setNextBacktrackLabel):
3294 (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
3295 (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackJumpList):
3296 (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackSourceLabel):
3297 (JSC::Yarr::RegexGenerator::BacktrackDestination::setDataLabel):
3298 (JSC::Yarr::RegexGenerator::BacktrackDestination::setSubDataLabelPtr):
3299 (JSC::Yarr::RegexGenerator::BacktrackDestination::linkToNextBacktrack):
3300 (JSC::Yarr::RegexGenerator::BacktrackDestination::getStackOffset):
3301 (JSC::Yarr::RegexGenerator::BacktrackDestination::getLabel):
3302 (JSC::Yarr::RegexGenerator::BacktrackDestination::getBacktrackJumps):
3303 (JSC::Yarr::RegexGenerator::BacktrackDestination::getDataLabel):
3304 (JSC::Yarr::RegexGenerator::BacktrackDestination::jumpToBacktrack):
3305 (JSC::Yarr::RegexGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
3306 (JSC::Yarr::RegexGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
3307 (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracks):
3308 (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
3309 (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
3310 (JSC::Yarr::RegexGenerator::TermGenerationState::resetAlternative):
3311 (JSC::Yarr::RegexGenerator::TermGenerationState::isLastAlternative):
3312 (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
3313 (JSC::Yarr::RegexGenerator::TermGenerationState::jumpToBacktrack):
3314 (JSC::Yarr::RegexGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
3315 (JSC::Yarr::RegexGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
3316 (JSC::Yarr::RegexGenerator::TermGenerationState::addBacktrackJump):
3317 (JSC::Yarr::RegexGenerator::TermGenerationState::setDataLabelPtr):
3318 (JSC::Yarr::RegexGenerator::TermGenerationState::setBackTrackStackOffset):
3319 (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLabel):
3320 (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracks):
3321 (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracksTo):
3322 (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLink):
3323 (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktracks):
3324 (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktrackJumps):
3325 (JSC::Yarr::RegexGenerator::TermGenerationState::getBacktrackDestination):
3326 (JSC::Yarr::RegexGenerator::TermGenerationState::propagateBacktrackingFrom):
3327 (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
3328 (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
3329 (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
3330 (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
3331 (JSC::Yarr::RegexGenerator::generateAssertionBOL):
3332 (JSC::Yarr::RegexGenerator::generateAssertionEOL):
3333 (JSC::Yarr::RegexGenerator::generateAssertionWordBoundary):
3334 (JSC::Yarr::RegexGenerator::generatePatternCharacterSingle):
3335 (JSC::Yarr::RegexGenerator::generatePatternCharacterPair):
3336 (JSC::Yarr::RegexGenerator::generatePatternCharacterFixed):
3337 (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy):
3338 (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy):
3339 (JSC::Yarr::RegexGenerator::generateCharacterClassSingle):
3340 (JSC::Yarr::RegexGenerator::generateCharacterClassFixed):
3341 (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy):
3342 (JSC::Yarr::RegexGenerator::generateCharacterClassNonGreedy):
3343 (JSC::Yarr::RegexGenerator::generateParenthesesDisjunction):
3344 (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
3345 (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
3346 (JSC::Yarr::RegexGenerator::generateParentheticalAssertion):
3347 (JSC::Yarr::RegexGenerator::generateDisjunction):
3348 (JSC::Yarr::RegexGenerator::compile):
3349 * yarr/RegexPattern.h:
3350 (JSC::Yarr::PatternTerm::PatternTerm):
3351 (JSC::Yarr::PatternTerm::invert):
3352 (JSC::Yarr::PatternTerm::capture):
3354 2010-12-03 Chris Rogers <crogers@google.com>
3356 Reviewed by Kenneth Russell.
3358 First steps to adding web audio files to build systems
3359 https://bugs.webkit.org/show_bug.cgi?id=49952
3363 2010-12-03 Patrick Gansterer <paroga@webkit.org>
3365 Reviewed by Andreas Kling.
3367 Move StringWx.cpp into wtf directory
3368 https://bugs.webkit.org/show_bug.cgi?id=50060
3370 * wtf/wx/StringWx.cpp: Renamed from WebCore/platform/text/wx/StringWx.cpp.
3371 (WTF::String::String):
3373 2010-12-03 Patrick Gansterer <paroga@webkit.org>
3375 Reviewed by Andreas Kling.
3377 Move StringBrew.cpp into wtf directory
3378 https://bugs.webkit.org/show_bug.cgi?id=50058
3380 * wtf/brew/StringBrew.cpp: Renamed from WebCore/platform/text/brew/StringBrew.cpp.
3381 (WTF::String::String):
3383 2010-12-03 Patrick Gansterer <paroga@webkit.org>
3385 Reviewed by Andreas Kling.
3387 Move StringHaiku.cpp into wtf directory
3388 https://bugs.webkit.org/show_bug.cgi?id=50057
3390 * wtf/haiku/StringHaiku.cpp: Renamed from WebCore/platform/text/haiku/StringHaiku.cpp.
3391 (WTF::String::String):
3392 (WTF::String::operator BString):
3394 2010-12-02 Geoffrey Garen <ggaren@apple.com>
3396 Try to fix Windows build.
3398 * runtime/GCActivityCallback.cpp:
3399 (JSC::DefaultGCActivityCallback::synchronize): Added a non-CF implementation.
3401 2010-12-02 Geoffrey Garen <ggaren@apple.com>
3403 Reviewed by Gavin Barraclough.
3405 Fixed <rdar://problem/8310571> CrashTracer: 60 crashes in Photo Booth at
3406 com.apple.JavaScriptCore: JSC::Heap::markRoots + 746
3409 (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Call our new
3410 synchronize() function.
3412 * runtime/Collector.cpp:
3413 (JSC::Heap::activityCallback):
3414 * runtime/Collector.h: Added an activityCallback() accessor, for the
3417 * runtime/GCActivityCallback.h:
3418 (JSC::GCActivityCallback::synchronize):
3419 * runtime/GCActivityCallbackCF.cpp:
3420 (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
3421 (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
3422 (JSC::DefaultGCActivityCallback::operator()):
3423 (JSC::DefaultGCActivityCallback::synchronize): Track the run loop we're
3424 scheduled in. If we begin/resume execution within a new run loop, reschedule
3425 on it. This prevents a crash when using a lockless context group on
3426 multiple threads -- the crash would happen if the GC timer scheduled on
3427 thread A, then you continued execution on thread B, then the thread A
3430 2010-12-02 Darin Adler <darin@apple.com>
3432 * wtf/ASCIICType.h: Fix wrong type from last check-in.
3434 2010-12-02 Darin Adler <darin@apple.com>
3436 Try to fix certain builds (Qt Windows).
3438 * wtf/ASCIICType.h: Added an overload for unsigned because in obsolete
3439 versions of ICU, UChar32 can be a typedef for unsigned. Adding this
3440 overload should make us compatible with these old ICUs.