1 2010-07-12 Anders Carlsson <andersca@apple.com>
3 Reviewed by Dan Bernstein.
5 Add WARN_UNUSED_RETURN to the smart pointer "leak" member functions
6 https://bugs.webkit.org/show_bug.cgi?id=42086
11 (WTF::PassRefPtr::releaseRef):
12 (WTF::NonNullPassRefPtr::leakRef):
13 (WTF::NonNullPassRefPtr::releaseRef):
15 (WTF::RetainPtr::releaseRef):
17 2010-07-10 Oliver Hunt <oliver@apple.com>
19 Reviewed by Maciej Stachowiak.
21 HAVE_COMPUTED_GOTO is dependent on the interpreter being enabled
22 https://bugs.webkit.org/show_bug.cgi?id=42039
24 Separate the existence of computed goto support in the compiler
25 from whether or not we are using the interpreter. All the current
26 HAVE(COMPUTED_GOTO) guards are for the interpreter, but I'd like
27 the option of using it elsewhere. The interpreter now uses
28 ENABLE(COMPUTED_GOTO_INTERPRETER)
30 * bytecode/Instruction.h:
31 (JSC::Instruction::Instruction):
33 * interpreter/Interpreter.cpp:
34 (JSC::Interpreter::Interpreter):
35 (JSC::Interpreter::isOpcode):
36 (JSC::Interpreter::privateExecute):
37 * interpreter/Interpreter.h:
38 (JSC::Interpreter::getOpcode):
39 (JSC::Interpreter::getOpcodeID):
42 2010-07-10 Oliver Hunt <oliver@apple.com>
44 Reviewed by Gavin Barraclough.
46 Remove switches from inner expression loops in the parser
47 https://bugs.webkit.org/show_bug.cgi?id=42035
49 Use bitmasks and flags on the token types to identify unary and
50 binary operators, rather than switching on the token type to
53 * parser/JSParser.cpp:
55 (JSC::JSParser::isBinaryOperator):
59 2010-07-09 Leon Clarke <leonclarke@google.com>
61 Reviewed by Adam Barth.
63 add support for link prefetching
64 https://bugs.webkit.org/show_bug.cgi?id=3652
66 * Configurations/FeatureDefines.xcconfig:
68 2010-07-09 Oliver Hunt <oliver@apple.com>
70 Reviewed by Darin Adler.
72 Tidy up lexer token ids
73 https://bugs.webkit.org/show_bug.cgi?id=42014
75 Stop using character literals to identify single character tokens
76 and instead use symbolic names for all tokens.
78 * parser/ASTBuilder.h:
79 (JSC::ASTBuilder::makeBinaryNode):
80 * parser/JSParser.cpp:
81 (JSC::JSParser::consume):
82 (JSC::JSParser::match):
83 (JSC::JSParser::autoSemiColon):
84 (JSC::JSParser::JSParser):
85 (JSC::JSParser::parseProgram):
86 (JSC::JSParser::allowAutomaticSemicolon):
87 (JSC::JSParser::parseDoWhileStatement):
88 (JSC::JSParser::parseWhileStatement):
89 (JSC::JSParser::parseVarDeclarationList):
90 (JSC::JSParser::parseConstDeclarationList):
91 (JSC::JSParser::parseForStatement):
92 (JSC::JSParser::parseReturnStatement):
93 (JSC::JSParser::parseWithStatement):
94 (JSC::JSParser::parseSwitchStatement):
95 (JSC::JSParser::parseSwitchClauses):
96 (JSC::JSParser::parseSwitchDefaultClause):
97 (JSC::JSParser::parseTryStatement):
98 (JSC::JSParser::parseDebuggerStatement):
99 (JSC::JSParser::parseStatement):
100 (JSC::JSParser::parseFormalParameters):
101 (JSC::JSParser::parseFunctionInfo):
102 (JSC::JSParser::parseExpressionOrLabelStatement):
103 (JSC::JSParser::parseIfStatement):
104 (JSC::JSParser::parseExpression):
105 (JSC::JSParser::parseAssignmentExpression):
106 (JSC::JSParser::parseConditionalExpression):
108 (JSC::JSParser::isBinaryOperator):
109 (JSC::JSParser::parseBinaryExpression):
110 (JSC::JSParser::parseProperty):
111 (JSC::JSParser::parseObjectLiteral):
112 (JSC::JSParser::parseStrictObjectLiteral):
113 (JSC::JSParser::parseArrayLiteral):
114 (JSC::JSParser::parsePrimaryExpression):
115 (JSC::JSParser::parseArguments):
116 (JSC::JSParser::parseMemberExpression):
117 (JSC::JSParser::parseUnaryExpression):
125 2010-07-09 Gavin Barraclough <barraclough@apple.com>
127 Reviewed by Oliver Hunt.
129 Bug 42015 - Enable JSValue32_64 on ARMv7
131 * Configurations/JavaScriptCore.xcconfig:
136 2010-07-09 Kenneth Russell <kbr@google.com>
138 Reviewed by Dimitri Glazkov.
140 Assertion failure in String::utf8() for certain invalid UTF16 inputs
141 https://bugs.webkit.org/show_bug.cgi?id=41983
143 * wtf/text/WTFString.cpp:
144 (WebCore::String::utf8):
145 - Fixed assertion when sourceExhausted is returned from convertUTF16ToUTF8.
147 2010-07-09 Oliver Hunt <oliver@apple.com>
149 Reviewed by Geoffrey Garen.
151 Remove a couple of excess writes from the lexer
152 https://bugs.webkit.org/show_bug.cgi?id=41981
154 Remove a couple of fields from JSTokenInfo, and rename the remaining ones
155 to something more accurate
157 * parser/JSParser.cpp:
158 (JSC::JSParser::next):
159 (JSC::JSParser::tokenStart):
160 (JSC::JSParser::tokenLine):
161 (JSC::JSParser::tokenEnd):
163 (JSC::JSTokenInfo::JSTokenInfo):
167 2010-07-08 Oliver Hunt <oliver@apple.com>
169 Reviewed by Sam Weinig.
171 Property declarations in an object literal should not consider the prototype chain when being added to the new object
172 https://bugs.webkit.org/show_bug.cgi?id=41929
174 To fix this all we need to do is ensure that all new properties are
175 added with putDirect rather than a fully generic call to put. This
176 is safe as an object literal is by definition going to produce a
177 completely normal object.
179 Rather than duplicating all the put_by_id logic we add an additional
180 flag to op_put_by_id to indicate it should be using putDirect. In
181 the interpreter this adds a runtime branch, but in the jit this is
182 essentially free as the branch is taken at compile time. This does
183 actually improve object literal creation time even in the interpreter
184 as we no longer need to walk the prototype chain to verify that the
187 We still emit normal put_by_id code when emitting __proto__ as we want
188 to get the correct handling for changing the prototype.
190 Sunspider claims this is a 0.7% speedup which is conceivably real due
191 to the performance improvement in object literals, but I suspect its
192 really just the result of code motion.
195 * bytecompiler/BytecodeGenerator.cpp:
196 (JSC::BytecodeGenerator::emitPutById):
197 (JSC::BytecodeGenerator::emitDirectPutById):
198 * bytecompiler/BytecodeGenerator.h:
199 * bytecompiler/NodesCodegen.cpp:
200 (JSC::PropertyListNode::emitBytecode):
201 * interpreter/Interpreter.cpp:
202 (JSC::Interpreter::privateExecute):
204 (JSC::JIT::compilePutByIdTransition):
205 * jit/JITPropertyAccess.cpp:
206 (JSC::JIT::emit_op_put_by_id):
207 (JSC::JIT::emitSlow_op_put_by_id):
208 (JSC::JIT::privateCompilePutByIdTransition):
209 (JSC::JIT::patchPutByIdReplace):
210 * jit/JITPropertyAccess32_64.cpp:
211 (JSC::JIT::emitSlow_op_put_by_id):
212 (JSC::JIT::privateCompilePutByIdTransition):
213 (JSC::JIT::patchPutByIdReplace):
215 (JSC::JITThunks::tryCachePutByID):
216 (JSC::DEFINE_STUB_FUNCTION):
219 * runtime/JSGlobalData.cpp:
220 (JSC::JSGlobalData::JSGlobalData):
221 * runtime/JSObject.h:
222 (JSC::JSObject::putDirect):
223 (JSC::JSValue::putDirect):
226 2010-07-08 Gavin Barraclough <barraclough@apple.com>
228 Reviewed by Sam Weinig.
230 String.prototype methods should CheckObjectCoercible (test this is not null or undefined).
232 * runtime/StringPrototype.cpp:
233 (JSC::stringProtoFuncCharAt):
234 (JSC::stringProtoFuncCharCodeAt):
235 (JSC::stringProtoFuncConcat):
236 (JSC::stringProtoFuncIndexOf):
237 (JSC::stringProtoFuncLastIndexOf):
238 (JSC::stringProtoFuncMatch):
239 (JSC::stringProtoFuncSearch):
240 (JSC::stringProtoFuncSlice):
241 (JSC::stringProtoFuncSplit):
242 (JSC::stringProtoFuncSubstr):
243 (JSC::stringProtoFuncSubstring):
244 (JSC::stringProtoFuncToLowerCase):
245 (JSC::stringProtoFuncToUpperCase):
246 (JSC::stringProtoFuncLocaleCompare):
249 2010-07-08 Gavin Barraclough <barraclough@apple.com>
251 Reviewed by Sam Weinig.
253 Date.prototype.toJSON takes one argument, report this correctly.
255 * runtime/DatePrototype.cpp:
257 2010-07-08 Gavin Barraclough <barraclough@apple.com>
259 Reviewed by Sam Weinig.
261 RegExp's prototype should be an object of type RegExp.
263 * runtime/RegExpPrototype.cpp:
264 (JSC::RegExpPrototype::RegExpPrototype):
265 * runtime/RegExpPrototype.h:
267 2010-07-08 Oliver Hunt <oliver@apple.com>
269 Reviewed by Gavin Barraclough.
271 JavaScript parser violates ECMA automatic semicolon insertion rule
272 https://bugs.webkit.org/show_bug.cgi?id=41844
274 Remove (very) old and bogus logic that automatically inserted a semicolon
275 at the end of a script's source.
280 2010-07-08 Oliver Hunt <oliver@apple.com>
282 Reviewed by Anders Carlson.
286 Remove some of the old yacc/lex-isms still present in the lexer
291 (JSC::Lexer::parseString):
295 2010-07-08 Oliver Hunt <oliver@apple.com>
297 Reviewed by Gavin Barraclough.
299 Make object-literal parsing conformant with the spec.
300 https://bugs.webkit.org/show_bug.cgi?id=41892
302 Bring our parsing of object literals into conformance with the ES5 spec.
303 Basically disallow conflicting accessor vs. normal property definitions
304 The bulk of this patch is just fiddling to maintain performance.
306 * parser/ASTBuilder.h:
307 (JSC::ASTBuilder::createGetterOrSetterProperty):
308 (JSC::ASTBuilder::createProperty):
309 (JSC::ASTBuilder::getName):
310 (JSC::ASTBuilder::getType):
311 * parser/JSParser.cpp:
313 (JSC::JSParser::JSParser):
314 (JSC::JSParser::parseProperty):
315 (JSC::JSParser::parseObjectLiteral):
316 (JSC::JSParser::parseStrictObjectLiteral):
321 (JSC::Lexer::currentOffset):
322 (JSC::Lexer::setOffset):
323 Add logic to allow us to roll the lexer back in the input stream.
325 (JSC::PropertyNode::):
326 (JSC::PropertyNode::type):
328 (JSC::Parser::parse):
329 * parser/SourceProvider.h:
330 (JSC::SourceProvider::SourceProvider):
331 (JSC::SourceProvider::isValid):
332 (JSC::SourceProvider::setValid):
333 SourceProvider now records whether the input text
334 has already been validated.
335 * parser/SyntaxChecker.h:
336 (JSC::SyntaxChecker::SyntaxChecker):
337 (JSC::SyntaxChecker::Property::Property):
338 (JSC::SyntaxChecker::Property::operator!):
339 (JSC::SyntaxChecker::createProperty):
340 (JSC::SyntaxChecker::createPropertyList):
341 (JSC::SyntaxChecker::createGetterOrSetterProperty):
342 The SyntaxChecker mode now needs to maintain a bit more information
343 to ensure that we can validate object literals correctly.
345 2010-07-08 Darin Adler <darin@apple.com>
347 * runtime/JSGlobalData.cpp:
348 (JSC::JSGlobalData::sharedInstance): Fix typo.
350 2010-07-08 Darin Adler <darin@apple.com>
352 Reviewed by Oliver Hunt.
354 Fix assertion seen on the Leopard buildbot.
355 The single shared instance of JSGlobalData was not being
356 adopted after creation.
358 * runtime/JSGlobalData.cpp:
359 (JSC::JSGlobalData::sharedInstance): Do adoptRef and then leakRef.
361 2010-07-08 Gavin Barraclough <barraclough@apple.com>
363 Reviewed by Sam Weinig.
367 * runtime/JSGlobalObjectFunctions.cpp:
368 (JSC::isStrWhiteSpace):
370 2010-07-08 Martin Robinson <mrobinson@igalia.com>
374 Try fix the GTK+ build by touching this file.
376 * jit/ExecutableAllocatorFixedVMPool.cpp:
378 2010-07-08 Gavin Barraclough <barraclough@apple.com>
380 GTK build fix take two.
384 2010-07-08 Gavin Barraclough <barraclough@apple.com>
390 2010-07-08 Gavin Barraclough <barraclough@apple.com>
392 Reviewed by Sam Weinig.
394 https://bugs.webkit.org/show_bug.cgi?id=41641
396 Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
397 other than x86-64 (this may be useful on 32-bit platforms, too).
399 Simplify ifdefs by dividing into thwo broad allocation strategies
400 (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
402 Rename constant used in the code to have names descriptive of their purpose,
403 rather than their specific value on a given platform.
405 * jit/ExecutableAllocator.cpp:
406 (JSC::ExecutableAllocator::reprotectRegion):
407 (JSC::ExecutableAllocator::cacheFlush):
408 * jit/ExecutableAllocatorFixedVMPool.cpp:
409 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
410 (JSC::FixedVMPoolAllocator::free):
411 (JSC::ExecutablePool::systemAlloc):
412 * jit/ExecutableAllocatorPosix.cpp:
413 * jit/ExecutableAllocatorSymbian.cpp:
414 * jit/ExecutableAllocatorWin.cpp:
417 2010-07-08 Xan Lopez <xlopez@igalia.com>
419 Reviewed by Gustavo Noronha.
421 Silence a few noisy build rules.
425 2010-07-08 Sheriff Bot <webkit.review.bot@gmail.com>
427 Unreviewed, rolling out r62765.
428 http://trac.webkit.org/changeset/62765
429 https://bugs.webkit.org/show_bug.cgi?id=41840
431 All jscore and layout tests crash on Qt bot (Requested by Ossy
434 * wtf/FastMalloc.cpp:
435 (WTF::TCMalloc_PageHeap::initializeScavenger):
436 (WTF::TCMalloc_PageHeap::signalScavenger):
437 (WTF::TCMalloc_PageHeap::scavengerThread):
439 2010-07-08 Andreas Kling <andreas.kling@nokia.com>
441 Reviewed by Oliver Hunt.
443 Interpreter: Crash in op_load_varargs on 64-bit
444 https://bugs.webkit.org/show_bug.cgi?id=41795
446 Added missing cast of argCount to int32_t in op_load_varargs.
448 * interpreter/Interpreter.cpp:
449 (JSC::Interpreter::privateExecute):
451 2010-07-08 Patrick Gansterer <paroga@paroga.com>
453 Reviewed by Geoffrey Garen.
455 Make FastMalloc more portable.
456 https://bugs.webkit.org/show_bug.cgi?id=41790
458 Use WTF::Mutex instead of pthread_mutex_t and
459 replace pthread_cond_t with WTF::ThreadCondition.
461 * wtf/FastMalloc.cpp:
462 (WTF::TCMalloc_PageHeap::initializeScavenger):
463 (WTF::TCMalloc_PageHeap::signalScavenger):
464 (WTF::TCMalloc_PageHeap::scavengerThread):
466 2010-07-08 Patrick Gansterer <paroga@paroga.com>
468 Reviewed by Darin Adler.
470 Remove needless #include <fcntl.h> from TCSystemAlloc.cpp.
471 https://bugs.webkit.org/show_bug.cgi?id=41777
473 * wtf/TCSystemAlloc.cpp:
475 2010-07-07 Darin Adler <darin@apple.com>
477 Fixed build in configurations like PowerPC.
479 * runtime/RegExpConstructor.cpp: Added include of PassOwnPtr.h.
480 * runtime/RegExpObject.cpp: Ditto.
481 * wtf/SizeLimits.cpp: Changed compile time assertion to work
482 even on platforms where two bool members do not end up taking
483 the same size as one int member!
485 2010-07-07 Oliver Hunt <oliver@apple.com>
487 Reviewed by Geoffrey Garen.
489 Lazy mode of parser allows invalid syntax in object literals.
490 https://bugs.webkit.org/show_bug.cgi?id=41809
492 Make the parser itself validate getter and setter syntax rather
493 than offloading it to the AST builder.
495 * parser/ASTBuilder.h:
496 (JSC::ASTBuilder::createGetterOrSetterProperty):
497 * parser/JSParser.cpp:
498 (JSC::JSParser::parseProperty):
500 2010-07-07 Dumitru Daniliuc <dumi@chromium.org>
502 Reviewed by Adam Roben.
505 https://bugs.webkit.org/show_bug.cgi?id=41804
507 * runtime/Collector.cpp:
508 (JSC::Heap::freeBlocks):
510 2010-07-07 Adam Barth <abarth@webkit.org>
512 Reviewed by Sam Weinig.
514 Add reverseFind to Vector and deploy in HTML5 parser
515 https://bugs.webkit.org/show_bug.cgi?id=41778
517 This method seems generally useful. I'm slightly surprised we don't
521 (WTF::::reverseFind):
523 2010-07-07 Darin Adler <darin@apple.com>
525 Reviewed by Adam Barth.
527 Turn on adoptRef assertion for RefCounted
528 https://bugs.webkit.org/show_bug.cgi?id=41547
530 * wtf/CrossThreadRefCounted.h: Fixed include style. Includes of other
531 WTF headers should use "" includes; consistent in most WTF headers.
532 Added a call to relaxAdoptionRequirement.
534 * wtf/RefCounted.h: Fixed include style. Removed LOOSE_REF_COUNTED.
535 Added relaxAdoptionRequirement.
537 2010-07-07 Anders Carlsson <andersca@apple.com>
539 Try to fix the Windows build.
541 * runtime/Collector.cpp:
542 (JSC::Heap::freeBlocks):
544 2010-07-07 Darin Adler <darin@apple.com>
546 Reviewed by Adam Barth.
549 https://bugs.webkit.org/show_bug.cgi?id=41727
551 * API/JSCallbackObject.h:
552 (JSC::JSCallbackObjectData::setPrivateProperty): Use adoptPtr.
553 * API/JSCallbackObjectFunctions.h:
554 (JSC::JSCallbackObject::JSCallbackObject): Ditto.
555 * bytecode/CodeBlock.cpp:
556 (JSC::CodeBlock::CodeBlock): Ditto.
557 * bytecode/CodeBlock.h:
558 (JSC::CodeBlock::createRareDataIfNecessary): Ditto.
560 (JSC::ScopeNode::ScopeNode): Ditto.
561 * parser/ParserArena.cpp:
562 (JSC::ParserArena::ParserArena): Ditto.
563 * runtime/Arguments.h:
564 (JSC::Arguments::Arguments): Ditto.
565 * runtime/Executable.cpp:
566 (JSC::EvalExecutable::compile): Ditto.
567 (JSC::ProgramExecutable::compile): Ditto.
568 (JSC::FunctionExecutable::compileForCall): Ditto.
569 (JSC::FunctionExecutable::compileForConstruct): Ditto.
570 (JSC::FunctionExecutable::reparseExceptionInfo): Ditto.
571 (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
572 * runtime/JSArray.cpp:
573 (JSC::JSArray::sort): Ditto.
574 * runtime/RegExpConstructor.cpp:
575 (JSC::RegExpConstructor::RegExpConstructor): Ditto.
576 * runtime/RegExpObject.cpp:
577 (JSC::RegExpObject::RegExpObject): Ditto.
578 * runtime/SmallStrings.cpp:
579 (JSC::SmallStrings::createSingleCharacterString): Ditto.
580 (JSC::SmallStrings::singleCharacterStringRep): Ditto.
582 * wtf/unicode/icu/CollatorICU.cpp:
583 (WTF::Collator::userDefault): Use adoptPtr.
584 * yarr/RegexInterpreter.cpp:
585 (JSC::Yarr::ByteCompiler::ByteCompiler): Ditto.
586 (JSC::Yarr::ByteCompiler::compile): Ditto.
587 (JSC::Yarr::ByteCompiler::regexBegin): Ditto.
588 (JSC::Yarr::byteCompileRegex): Ditto.
589 * yarr/RegexInterpreter.h:
590 (JSC::Yarr::BytecodePattern::BytecodePattern): Ditto.
592 2010-07-07 Darin Adler <darin@apple.com>
594 Reviewed by Adam Barth.
596 Make clear set the pointer to 0 before deletion
597 https://bugs.webkit.org/show_bug.cgi?id=41727
599 * wtf/OwnArrayPtr.h: Changed code so we always set the pointer to its new
600 value before deleting the old one, including in the set function and the
601 clear function. This required changing safeDelete.
602 * wtf/OwnPtr.h: Ditto. Also removed some extra null checks.
603 * wtf/PassOwnPtr.h: Ditto.
605 * wtf/PassRefPtr.h: Changed code so we always set the pointer to its new
606 value before deref'ing the old one in the clear function. Also added a
607 leakRef function for NonNullPassRefPtr.
608 * wtf/RefPtr.h: Ditto.
610 * wtf/gobject/GOwnPtr.h: More of the same.
611 * wtf/gobject/GRefPtr.h: Ditto.
613 2010-07-07 Zoltan Herczeg <zherczeg@webkit.org>
615 Reviewed by Oliver Hunt.
617 Refactored string parsing inside the lexer
618 https://bugs.webkit.org/show_bug.cgi?id=41606
620 Does not use goto. Although the last sunspider
621 parse-only tests yields 1.044x speedup, I think the
622 patch can have a slight improvement at most.
626 (JSC::Lexer::parseString):
630 2010-07-06 Oliver Hunt <oliver@apple.com>
632 Reviewed by Maciej Stachowiak.
634 Make it possible to have both the JIT and Interpreter available in a single build
635 https://bugs.webkit.org/show_bug.cgi?id=41722
637 Separate the concept of !ENABLE(JIT) and ENABLE(INTERPRETER) and make it possible
638 to have both JIT and INTERPRETER enabled at the same time. This doesn't add
639 support for mix mode execution, but it does allow a single build to contain all
640 the code needed to use either the interpreter or the jit.
642 If both ENABLE(INTERPRETER) and ENABLE(JIT) are true then setting the environment
643 variable JSC_FORCE_INTERPRETER will force JSC to use the interpreter.
645 This patch basically consists of replacing !ENABLE(JIT) with ENABLE(INTERPRETER),
646 or converting #if ENABLE(JIT) ... #else ... into #if ENABLE(JIT) ... #endif
647 #if ENABLE(INTERPRETER), etc. There are also a few functions that need to be
648 renamed to resolve return type ambiguity.
650 * bytecode/CodeBlock.cpp:
651 (JSC::CodeBlock::~CodeBlock):
652 (JSC::CodeBlock::shrinkToFit):
653 * bytecode/CodeBlock.h:
654 * interpreter/CallFrame.h:
655 (JSC::ExecState::returnVPC):
656 * interpreter/Interpreter.cpp:
657 (JSC::Interpreter::unwindCallFrame):
658 (JSC::Interpreter::throwException):
659 (JSC::Interpreter::execute):
660 (JSC::Interpreter::executeCall):
661 (JSC::Interpreter::executeConstruct):
662 (JSC::Interpreter::prepareForRepeatCall):
663 (JSC::Interpreter::privateExecute):
664 (JSC::Interpreter::retrieveLastCaller):
665 * interpreter/Interpreter.h:
666 * runtime/ArrayPrototype.cpp:
667 (JSC::isNumericCompareFunction):
668 * runtime/Executable.cpp:
669 (JSC::EvalExecutable::generateJITCode):
670 (JSC::ProgramExecutable::generateJITCode):
671 (JSC::FunctionExecutable::generateJITCodeForCall):
672 (JSC::FunctionExecutable::generateJITCodeForConstruct):
673 (JSC::FunctionExecutable::reparseExceptionInfo):
674 (JSC::EvalExecutable::reparseExceptionInfo):
675 * runtime/JSFunction.cpp:
676 * runtime/JSGlobalData.cpp:
677 (JSC::JSGlobalData::JSGlobalData):
678 * runtime/JSGlobalData.h:
679 (JSC::JSGlobalData::canUseJIT):
682 2010-07-06 Darin Adler <darin@apple.com>
684 Reviewed by Adam Barth.
686 Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr
687 https://bugs.webkit.org/show_bug.cgi?id=41320
689 * bytecode/CodeBlock.cpp:
690 (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): Use assignment
691 instead of set since the result of reparseExceptionInfo is now a
694 * bytecode/CodeBlock.h: Change extractExceptionInfo to return a
695 PassOwnPtr instead of a raw pointer.
697 * runtime/Executable.cpp:
698 (JSC::FunctionExecutable::reparseExceptionInfo): Return a PassOwnPtr.
699 (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
700 (JSC::ProgramExecutable::reparseExceptionInfo): Added. This was
701 in the header before, but it's better to not have it there to reduce
702 header dependencies. Return a PassOwnPtr.
704 * runtime/Executable.h: Made reparseExceptionInfo return a PassOwnPtr,
705 and put it in the private sections of classes other than the base class.
707 * wtf/MessageQueue.h:
708 (WTF::MessageQueue::append): Use leakPtr instead of release.
709 (WTF::MessageQueue::appendAndCheckEmpty): Ditto.
710 (WTF::MessageQueue::prepend): Ditto.
712 * wtf/OwnPtr.h: Tweaked formatting. Changed the release function to return
713 a PassOwnPtr rather than a raw pointer. Added a leakPtr function that
714 returns a raw pointer. Put the constructor that takes a raw pointer and
715 the set function into a section guarded by LOOSE_OWN_PTR. Adapted to the
716 new adoptPtr function from PassOwnPtr.h.
718 * wtf/PassOwnPtr.h: Tweaked formatting. Renamed the release function
719 to leakPtr. Added an adoptPtr function that creates a new PassOwnPtr.
720 Put the constructor and assignment operators that take a raw pointer
721 into a section guarded by LOOSE_PASS_OWN_PTR.
723 2010-07-06 Sam Weinig <sam@webkit.org>
725 Reviewed by Darin Adler
727 Update comment in StringExtras.h to be more accurate.
729 * wtf/StringExtras.h:
731 2010-07-06 Sheriff Bot <webkit.review.bot@gmail.com>
733 Unreviewed, rolling out r62511.
734 http://trac.webkit.org/changeset/62511
735 https://bugs.webkit.org/show_bug.cgi?id=41686
737 Breaks Linux/64bit compilation (Requested by xan_ on #webkit).
739 * jit/ExecutableAllocator.cpp:
740 * jit/ExecutableAllocatorFixedVMPool.cpp:
741 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
742 (JSC::FixedVMPoolAllocator::free):
743 (JSC::ExecutablePool::systemAlloc):
744 * jit/ExecutableAllocatorPosix.cpp:
745 (JSC::ExecutableAllocator::reprotectRegion):
746 (JSC::ExecutableAllocator::cacheFlush):
747 * jit/ExecutableAllocatorSymbian.cpp:
748 * jit/ExecutableAllocatorWin.cpp:
751 2010-07-05 Gavin Barraclough <barraclough@apple.com>
753 Reviewed by Sam Weinig.
755 https://bugs.webkit.org/show_bug.cgi?id=41641
757 Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
758 other than x86-64 (this may be useful on 32-bit platforms, too).
760 Simplify ifdefs by dividing into thwo broad allocation strategies
761 (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
763 Rename constant used in the code to have names descriptive of their purpose,
764 rather than their specific value on a given platform.
766 * jit/ExecutableAllocator.cpp:
767 (JSC::ExecutableAllocator::reprotectRegion):
768 (JSC::ExecutableAllocator::cacheFlush):
769 * jit/ExecutableAllocatorFixedVMPool.cpp:
770 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
771 (JSC::FixedVMPoolAllocator::free):
772 (JSC::ExecutablePool::systemAlloc):
773 * jit/ExecutableAllocatorPosix.cpp:
774 * jit/ExecutableAllocatorSymbian.cpp:
775 * jit/ExecutableAllocatorWin.cpp:
778 2010-07-05 Steve Block <steveblock@google.com>
780 Reviewed by Darin Adler.
782 ThreadingPthreads.cpp should use JNIUtility.h on Android, not outdated jni_utility.h
783 https://bugs.webkit.org/show_bug.cgi?id=41594
785 * wtf/ThreadingPthreads.cpp:
787 2010-07-04 Mark Rowe <mrowe@apple.com>
789 Build fix after r62456.
791 * interpreter/Interpreter.cpp:
792 (JSC::Interpreter::privateExecute): Be slightly more consistent in using uint32_t to prevent
793 warnings about comparisons between signed and unsigned types, and attempts to call an overload
794 of std::min that doesn't exist.
796 2010-07-02 Sam Weinig <sam@webkit.org>
798 Reviewed by Darin Adler.
800 Patch for https://bugs.webkit.org/show_bug.cgi?id=41553
801 Make StringExtras.h versions of snprintf and vsnprintf match the unix versions.
803 - MSVC does not ensure the buffers are null terminated as the unix versions do.
805 * runtime/JSGlobalObjectFunctions.cpp: Cleanup includes.
806 * runtime/UString.cpp: Clean up includes.
807 (JSC::UString::from): Don't pass sizeof(buf) - 1, that is wrong.
808 * wtf/StringExtras.h:
809 (snprintf): Ensure null termination of buffer.
812 2010-07-03 Yong Li <yoli@rim.com>
814 Reviewed by Darin Adler.
816 Make Arguments::MaxArguments clamping work for numbers >= 0x80000000 in
817 the interpreter as well as the JIT.
819 https://bugs.webkit.org/show_bug.cgi?id=41351
820 rdar://problem/8142141
822 * interpreter/Interpreter.cpp:
823 (JSC::Interpreter::privateExecute): Fix signed integer overflow problem
824 in op_load_varargs handling. 0xFFFFFFFF was read as -1.
826 2010-06-26 Jeremy Orlow <jorlow@chromium.org>
828 Reviewed by Dumitru Daniliuc.
830 Support for keys and in-memory storage for IndexedDB
831 https://bugs.webkit.org/show_bug.cgi?id=41252
833 Set the role to Private.
835 * JavaScriptCore.xcodeproj/project.pbxproj:
837 2010-07-02 Oliver Hunt <oliver@apple.com>
839 Reviewed by Geoffrey Garen.
841 Move BOM handling out of the lexer and parser
842 https://bugs.webkit.org/show_bug.cgi?id=41539
844 Doing the BOM stripping in the lexer meant that we could
845 end up having to strip the BOMs from a source multiple times.
846 To deal with this we now require all strings provided by
847 a SourceProvider to already have had the BOMs stripped.
848 This also simplifies some of the lexer logic.
851 (JSC::Lexer::setCode):
852 (JSC::Lexer::sourceCode):
853 * parser/SourceProvider.h:
854 (JSC::SourceProvider::SourceProvider):
855 (JSC::UStringSourceProvider::create):
856 (JSC::UStringSourceProvider::getRange):
857 (JSC::UStringSourceProvider::UStringSourceProvider):
858 * wtf/text/StringImpl.h:
859 (WebCore::StringImpl::copyStringWithoutBOMs):
861 2010-07-03 Patrick Gansterer <paroga@paroga.com>
863 Reviewed by Kent Tamura.
865 [WINCE] Implement Unicode::isAlphanumeric and Unicode::isArabicChar.
866 https://bugs.webkit.org/show_bug.cgi?id=41411
868 * wtf/unicode/wince/UnicodeWince.cpp:
869 (WTF::Unicode::isAlphanumeric):
870 * wtf/unicode/wince/UnicodeWince.h:
871 (WTF::Unicode::isArabicChar):
873 2010-07-03 Kwang Yul Seo <skyul@company100.net>
875 Reviewed by Kent Tamura.
877 [BREWMP] Change the CRASH() macro to print "WebKit CRASH" log.
878 https://bugs.webkit.org/show_bug.cgi?id=41524
880 Print "WebKit CRASH" before crashing.
884 2010-07-02 Gavin Barraclough <barraclough@apple.com>
886 Reviewed by Oliver Hunt.
888 Bug 41565 - Repatching in ARMv7Assembler::repatchLoadPtrToLEA is broken
890 This method tried to repatch a LDR (T2) into an ADD (T3) - but it only
891 repatches the first instruction word. The layout of the fields in the
892 second word is different, and also needs repatching.
894 * assembler/ARMv7Assembler.h:
895 (JSC::ARMv7Assembler::repatchLoadPtrToLEA):
897 2010-07-02 Oliver Hunt <oliver@apple.com>
899 Reviewed by Gavin Barraclough.
901 Clamp the number of arguments supported by function.apply
902 https://bugs.webkit.org/show_bug.cgi?id=41351
903 <rdar://problem/8142141>
905 Add clamping logic to function.apply similar to that
906 enforced by firefox. We have a smaller clamp than
907 firefox as our calling convention means that stack
908 usage is proportional to argument count -- the firefox
909 limit is larger than you could actually call.
911 * interpreter/Interpreter.cpp:
912 (JSC::Interpreter::privateExecute):
914 (JSC::DEFINE_STUB_FUNCTION):
915 * runtime/Arguments.h:
918 2010-07-02 Chao-ying Fu <fu@mips.com>
920 Reviewed by Oliver Hunt.
922 Re-enable JIT_OPTIMIZE_NATIVE_CALL on MIPS
923 https://bugs.webkit.org/show_bug.cgi?id=40179
925 Add the MIPS part to re-enable JIT_OPTIMIZE_NATIVE_CALL.
927 * jit/JITOpcodes.cpp:
928 (JSC::JIT::privateCompileCTINativeCall):
931 2010-07-02 Gavin Barraclough <barraclough@apple.com>
933 Reviewed by Oliver Hunt.
935 Bug 41552 - Clean up ARMv7 vfp code generation
936 Emit separate opcode individually, remove magic numbers.
938 Also remove invalid assert from JSImmediate (number cells are not CELL_MASK aligned).
940 * assembler/ARMv7Assembler.h:
941 (JSC::ARMv7Assembler::):
942 (JSC::ARMv7Assembler::vadd_F64):
943 (JSC::ARMv7Assembler::vcmp_F64):
944 (JSC::ARMv7Assembler::vcvt_F64_S32):
945 (JSC::ARMv7Assembler::vcvtr_S32_F64):
946 (JSC::ARMv7Assembler::vdiv_F64):
947 (JSC::ARMv7Assembler::vldr):
948 (JSC::ARMv7Assembler::vmov_F64_0):
949 (JSC::ARMv7Assembler::vmov):
950 (JSC::ARMv7Assembler::vmrs):
951 (JSC::ARMv7Assembler::vmul_F64):
952 (JSC::ARMv7Assembler::vstr):
953 (JSC::ARMv7Assembler::vsub_F64):
954 (JSC::ARMv7Assembler::VFPOperand::VFPOperand):
955 (JSC::ARMv7Assembler::VFPOperand::bits1):
956 (JSC::ARMv7Assembler::VFPOperand::bits4):
957 (JSC::ARMv7Assembler::vcvtOp):
958 (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpOp):
959 (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpMemOp):
960 * assembler/MacroAssemblerARMv7.h:
961 (JSC::MacroAssemblerARMv7::branchDouble):
962 * runtime/JSImmediate.h:
963 (JSC::JSValue::isCell):
965 2010-07-02 Sheriff Bot <webkit.review.bot@gmail.com>
967 Unreviewed, rolling out r62410.
968 http://trac.webkit.org/changeset/62410
969 https://bugs.webkit.org/show_bug.cgi?id=41549
971 accursed last minute changes (Requested by olliej on #webkit).
974 (JSC::Lexer::setCode):
975 (JSC::Lexer::copyCodeWithoutBOMs):
976 (JSC::Lexer::sourceCode):
977 * parser/SourceProvider.h:
979 (JSC::SourceProvider::SourceProvider):
980 (JSC::SourceProvider::hasBOMs):
981 (JSC::UStringSourceProvider::create):
982 (JSC::UStringSourceProvider::getRange):
983 (JSC::UStringSourceProvider::UStringSourceProvider):
984 * wtf/text/StringImpl.h:
986 2010-07-02 Sam Weinig <sam@webkit.org>
988 Reviewed by Geoffrey Garen.
990 Patch for https://bugs.webkit.org/show_bug.cgi?id=41548
991 Use snprintf instead of sprintf everywhere in JavaScriptCore
993 * runtime/JSGlobalObjectFunctions.cpp:
995 (JSC::globalFuncEscape):
996 * runtime/UString.cpp:
997 (JSC::UString::from):
999 2010-07-02 Oliver Hunt <oliver@apple.com>
1001 Reviewed by Geoffrey Garen.
1003 Move BOM handling out of the lexer and parser
1004 https://bugs.webkit.org/show_bug.cgi?id=41539
1006 Doing the BOM stripping in the lexer meant that we could
1007 end up having to strip the BOMs from a source multiple times.
1008 To deal with this we now require all strings provided by
1009 a SourceProvider to already have had the BOMs stripped.
1010 This also simplifies some of the lexer logic.
1013 (JSC::Lexer::setCode):
1014 (JSC::Lexer::sourceCode):
1015 * parser/SourceProvider.h:
1016 (JSC::SourceProvider::SourceProvider):
1017 (JSC::UStringSourceProvider::create):
1018 (JSC::UStringSourceProvider::getRange):
1019 (JSC::UStringSourceProvider::UStringSourceProvider):
1020 * wtf/text/StringImpl.h:
1021 (WebCore::StringImpl::copyStringWithoutBOMs):
1023 2010-07-02 Renata Hodovan <reni@inf.u-szeged.hu>
1025 Reviewed by Oliver Hunt.
1027 [ Updated after rollout. ]
1029 Merged RegExp constructor and RegExp::create methods.
1030 Both functions are called with three parameters and check whether
1031 flags (the third param) is given or not.
1032 Avoid extra hash lookups in RegExpCache::create by passing a pre-computed
1034 https://bugs.webkit.org/show_bug.cgi?id=41055
1036 * runtime/RegExp.cpp:
1037 (JSC::RegExp::RegExp):
1039 * runtime/RegExpCache.cpp:
1040 (JSC::RegExpCache::lookupOrCreate):
1041 (JSC::RegExpCache::create):
1042 * runtime/RegExpCache.h:
1044 2010-07-02 Martin Robinson <mrobinson@igalia.com>
1046 Unreviewed. Build fix for GTK+.
1048 Build Lexer.lut.h with the rest of the .lut.h files. Later these should
1049 all probably be moved to DerivedSources.
1053 2010-06-23 Martin Robinson <mrobinson@igalia.com>
1055 Reviewed by Gustavo Noronha Silva.
1057 [GTK] Separate DerivedSources per-project
1058 https://bugs.webkit.org/show_bug.cgi?id=41109
1060 Generate JavaScriptCore derived sources in <builddir>/DerivedSources/JavaScriptCore.
1064 2010-07-02 Peter Varga <pvarga@inf.u-szeged.hu>
1066 Reviewed by Oliver Hunt.
1068 The alternativeFrameLocation value is wrong in the emitDisjunction function in
1069 case of PatternTerm::TypeParentheticalAssertion. This value needs to be
1070 computed from term.frameLocation instead of term.inputPosition. This mistake caused glibc
1071 memory corruption in some cases.
1072 Layout test added for checking of TypeParentheticalAssertion case.
1073 https://bugs.webkit.org/show_bug.cgi?id=41458
1075 * yarr/RegexInterpreter.cpp:
1076 (JSC::Yarr::ByteCompiler::emitDisjunction):
1078 2010-07-01 Oliver Hunt <oliver@apple.com>
1080 Reviewed by Maciej Stachowiak.
1082 Add a FixedArray template to encapsulate fixed length arrays
1083 https://bugs.webkit.org/show_bug.cgi?id=41506
1085 This new type is used in place of fixed length C arrays so
1086 that debug builds can guard against attempts to go beyond
1087 the end of the array.
1089 * JavaScriptCore.xcodeproj/project.pbxproj:
1090 * bytecode/Opcode.cpp:
1091 (JSC::OpcodeStats::~OpcodeStats):
1092 * pcre/pcre_compile.cpp:
1093 (calculateCompiledPatternLength):
1094 * runtime/Collector.cpp:
1095 (JSC::Heap::allocateBlock):
1096 (JSC::Heap::allocate):
1097 * runtime/Collector.h:
1098 (JSC::CollectorBitmap::clearAll):
1099 * runtime/CollectorHeapIterator.h:
1100 (JSC::CollectorHeapIterator::operator*):
1101 * runtime/DateInstanceCache.h:
1102 * runtime/JSString.cpp:
1103 (JSC::JSString::replaceCharacter):
1104 * runtime/JSString.h:
1105 (JSC::RopeBuilder::JSStringFinalizerStruct::):
1106 * runtime/NumericStrings.h:
1107 * runtime/RegExpCache.h:
1108 * runtime/SmallStrings.h:
1109 (JSC::SmallStrings::singleCharacterStrings):
1111 * wtf/FixedArray.h: Added.
1112 (WTF::FixedArray::operator[]):
1113 (WTF::FixedArray::data):
1115 2010-07-01 Zoltan Herczeg <zherczeg@webkit.org>
1117 Reviewed by Oliver Hunt.
1119 Improve the main lexer switch by mapping input characters to their type
1120 https://bugs.webkit.org/show_bug.cgi?id=41459
1122 Sunsipder: no change (from 532.9ms to 531.5ms)
1123 SunSpider --parse-only: 1.025x as fast (from 33.1ms to 32.3ms)
1129 2010-07-01 Sam Weinig <sam@webkit.org>
1131 Rubber-stamped by Ander Carlsson.
1133 Define HAVE_HOSTED_CORE_ANIMATION on Snow Leopard.
1137 2010-07-01 Gavin Barraclough <barraclough@apple.com>
1139 Reviewed by Oliver Hunt.
1141 Bug 41490 - Add missing operations to MacroAssemblerARMv7
1142 Also, make single, double, quad register numbers in ARMv7Assembler distinct & strongly typed.
1144 * assembler/ARMv7Assembler.h:
1145 (JSC::ARMRegisters::):
1146 (JSC::ARMRegisters::asSingle):
1147 (JSC::ARMRegisters::asDouble):
1148 (JSC::VFPImmediate::VFPImmediate):
1149 (JSC::VFPImmediate::isValid):
1150 (JSC::VFPImmediate::value):
1151 (JSC::ARMv7Assembler::singleRegisterMask):
1152 (JSC::ARMv7Assembler::doubleRegisterMask):
1153 (JSC::ARMv7Assembler::):
1154 (JSC::ARMv7Assembler::add_S):
1155 (JSC::ARMv7Assembler::neg):
1156 (JSC::ARMv7Assembler::orr_S):
1157 (JSC::ARMv7Assembler::sub):
1158 (JSC::ARMv7Assembler::sub_S):
1159 (JSC::ARMv7Assembler::vadd_F64):
1160 (JSC::ARMv7Assembler::vcmp_F64):
1161 (JSC::ARMv7Assembler::vcvt_F64_S32):
1162 (JSC::ARMv7Assembler::vcvtr_S32_F64):
1163 (JSC::ARMv7Assembler::vdiv_F64):
1164 (JSC::ARMv7Assembler::vldr):
1165 (JSC::ARMv7Assembler::vmov_F64_0):
1166 (JSC::ARMv7Assembler::vmov):
1167 (JSC::ARMv7Assembler::vmul_F64):
1168 (JSC::ARMv7Assembler::vstr):
1169 (JSC::ARMv7Assembler::vsub_F64):
1170 (JSC::ARMv7Assembler::vcvt):
1171 (JSC::ARMv7Assembler::vmem):
1172 * assembler/AbstractMacroAssembler.h:
1173 * assembler/MacroAssemblerARM.h:
1174 * assembler/MacroAssemblerARMv7.h:
1175 (JSC::MacroAssemblerARMv7::fpTempRegisterAsSingle):
1176 (JSC::MacroAssemblerARMv7::neg32):
1177 (JSC::MacroAssemblerARMv7::loadDouble):
1178 (JSC::MacroAssemblerARMv7::divDouble):
1179 (JSC::MacroAssemblerARMv7::convertInt32ToDouble):
1180 (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):
1181 (JSC::MacroAssemblerARMv7::zeroDouble):
1182 (JSC::MacroAssemblerARMv7::branchOr32):
1183 (JSC::MacroAssemblerARMv7::set32):
1184 (JSC::MacroAssemblerARMv7::set8):
1185 * assembler/MacroAssemblerMIPS.h:
1186 * assembler/MacroAssemblerX86Common.h:
1188 2010-07-01 Oliver Hunt <oliver@apple.com>
1190 Reviewed by Geoff Garen.
1192 Improve reentrancy logic in polymorphic cache stubs
1193 <https://bugs.webkit.org/show_bug.cgi?id=41482>
1194 <rdar://problem/8094380>
1196 Make the polymorphic cache stubs handle reentrancy
1200 (JSC::DEFINE_STUB_FUNCTION):
1201 (JSC::getPolymorphicAccessStructureListSlot):
1203 2010-07-01 Antti Koivisto <koivisto@iki.fi>
1205 Revert accidental commit.
1207 * runtime/Collector.cpp:
1208 (JSC::Heap::allocateBlock):
1210 2010-06-30 Darin Adler <darin@apple.com>
1212 Reviewed by Adam Barth.
1214 Add assertion, off by default, for when you forget to do adoptRef
1215 https://bugs.webkit.org/show_bug.cgi?id=41422
1217 * wtf/PassRefPtr.h: Tweaked formatting. Added a new adopted
1218 function, called on the pointer by adoptRef, with an empty inline
1219 default version, meant to be overloaded. Unified the inlining
1220 with a macro named REF_DEREF_INLINE to make it clearer what's
1221 going on in the refIfNotNull/derefIfNotNull functions. Renamed
1222 releaseRef to leakRef, but left the old name in for compatibility
1225 * wtf/RefCounted.h: Added code to require adoption and assert if
1226 you don't call adoptRef. For now, it is turned off because of the
1227 LOOSE_REF_COUNTED define in this header. Later we can turn it on
1228 once we get everything working without asserting.
1230 2010-06-29 Michael Saboff <msaboff@apple.com>
1232 Reviewed by Darin Adler.
1234 Bug 41238 - RegExp performance slow on Dromaeo benchmark
1236 Other javascript engines appear to cache prior results of regular
1237 expression operations.
1239 Suggest adding some sort of caching mechanism to regular expression
1242 Added a single entry cache of match() results to RegExp class.
1244 Also added performance improvements to UString == operator.
1245 First check the impls for equality. Then get the length of
1246 each of the non-null impls. Next check the sizes for equality.
1247 Then check the data for the case of different impls that point
1248 to the same data (most likely due to substrings from the beginning of
1249 another string). Lastly we check the underlying data for equality.
1251 * runtime/RegExp.cpp:
1252 (JSC::RegExp::RegExp):
1253 (JSC::RegExp::match):
1255 * runtime/UString.h:
1258 2010-06-29 Nathan Lawrence <nlawrence@apple.com>
1260 Reviewed by Geoffrey Garen.
1262 WTF::HashSet iterators are quasi-mutable. Changing the value through
1263 dereferencing an iterator will not change the behavior of methods like
1264 contains or find, but will change the behavior of iterating.
1273 2010-06-29 Martin Robinson <mrobinson@igalia.com>
1275 Reviewed by Xan Lopez.
1277 [GTK] Clean up the source lists in the GNUMakefile.am files
1278 https://bugs.webkit.org/show_bug.cgi?id=41229
1280 Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
1285 2010-06-29 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
1287 Reviewed by Kenneth Rohde Christiansen.
1289 [Qt] Fix QtScript build after QScriptValuePrivate ctor changes
1290 https://bugs.webkit.org/show_bug.cgi?id=41307
1292 * qt/api/qscriptvalue_p.h:
1293 (QScriptValuePrivate::prototype):
1294 * qt/benchmarks/qscriptengine/qscriptengine.pro:
1296 2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
1298 Reviewed by Kenneth Rohde Christiansen.
1300 [Qt] QScriptEngine API should contain a newArray function
1301 https://bugs.webkit.org/show_bug.cgi?id=39115
1303 * qt/api/qscriptengine.cpp:
1304 (QScriptEngine::newArray):
1305 * qt/api/qscriptengine.h:
1306 * qt/api/qscriptengine_p.cpp:
1307 (QScriptEnginePrivate::newArray):
1308 * qt/api/qscriptengine_p.h:
1309 * qt/tests/qscriptengine/tst_qscriptengine.cpp:
1310 (tst_QScriptEngine::newArray):
1312 2010-06-28 Xan Lopez <xlopez@igalia.com>
1314 Reviewed by Gustavo Noronha.
1316 Install jsc as jsc-X where X is the major API version to allow
1317 parallel installation of both GTK+ 2.x and 3.x versions.
1321 2010-06-28 John Gregg <johnnyg@google.com>
1323 Reviewed by Kent Tamura.
1325 add ENABLE_DIRECTORY_UPLOAD build support
1326 https://bugs.webkit.org/show_bug.cgi?id=41100
1328 * Configurations/FeatureDefines.xcconfig:
1330 2010-06-28 Xan Lopez <xlopez@igalia.com>
1332 Revert to build jsc, since the tests expect this.
1336 2010-06-28 Zoltan Herczeg <zherczeg@webkit.org>
1338 Reviewed by Oliver Hunt.
1340 Only one character lookahead should be enough for the lexer
1341 https://bugs.webkit.org/show_bug.cgi?id=41213
1343 The lexer had 4 character lookahead before, which required
1344 a complex shifting mechanism. This can be improved by using
1345 only one character lookahead for most decisions, and a
1346 peek() function as a fallback when it is absolutely necessary.
1349 (JSC::Lexer::currentCharacter):
1350 (JSC::Lexer::currentOffset):
1351 (JSC::Lexer::setCode):
1352 (JSC::Lexer::shift):
1354 (JSC::Lexer::getUnicodeCharacter):
1355 (JSC::Lexer::shiftLineTerminator):
1356 (JSC::Lexer::lastTokenWasRestrKeyword):
1358 (JSC::Lexer::scanRegExp):
1359 (JSC::Lexer::skipRegExp):
1362 2010-06-28 Lucas De Marchi <lucas.demarchi@profusion.mobi>
1364 Unreviewed build fix.
1366 [EFL] Build fix for latest version of Ecore library.
1367 Ecore recently changed return type of callbacks from int to Eina_Bool.
1369 * wtf/efl/MainThreadEfl.cpp:
1370 (WTF::timeoutFired): Return Eina_Bool instead of int.
1372 2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
1374 Reviewed by Kenneth Rohde Christiansen.
1376 [Qt] QScriptValue should have API for accessing object properties
1377 https://bugs.webkit.org/show_bug.cgi?id=40903
1379 Make possible to access properties inside QScriptValues. While this
1380 still doesn't support the ResolveLocal parameter, it is already useful
1381 for testing the API.
1383 The tests from upstream QtScript weren't imported since most of them
1384 depend on the setProperty() function as well. A simple test was created.
1386 * qt/api/qscriptvalue.cpp:
1387 (QScriptValue::property):
1388 * qt/api/qscriptvalue.h:
1390 * qt/api/qscriptvalue_p.h:
1391 (QScriptValuePrivate::property):
1392 * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
1393 (tst_QScriptValue::propertySimple):
1394 * qt/tests/qscriptvalue/tst_qscriptvalue.h:
1396 2010-06-28 Xan Lopez <xlopez@igalia.com>
1398 Reviewed by Gustavo Noronha.
1400 [GTK] Add support for GTK+3
1401 https://bugs.webkit.org/show_bug.cgi?id=41253
1403 Suffix jsc with the API version of the library, so that
1404 libwebkitgtk 1.x and 3.x can install jsc.
1408 2010-06-27 Kwang Yul Seo <skyul@company100.net>
1410 Reviewed by Kent Tamura.
1412 [BREWMP] Turn ENABLE(SINGLE_THREADED) on.
1413 https://bugs.webkit.org/show_bug.cgi?id=41135
1415 Brew MP does not support preemptive multi-threading.
1416 Disable threading for Brew MP.
1420 2010-06-26 Tony Gentilcore <tonyg@chromium.org>
1422 Reviewed by Dimitri Glazkov.
1424 Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
1425 https://bugs.webkit.org/show_bug.cgi?id=38924
1427 * Configurations/FeatureDefines.xcconfig:
1429 2010-06-25 Nathan Lawrence <nlawrence@apple.com>
1431 Reviewed by Geoffrey Garen.
1433 We assume in testapi.c that the value aHeapRef refers to will not be
1434 moved. When we have movable objects, this will not be the case.
1436 * API/tests/testapi.c:
1439 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
1441 Unreviewed, rolling out r61924.
1442 http://trac.webkit.org/changeset/61924
1443 https://bugs.webkit.org/show_bug.cgi?id=41240
1445 It was rolled out, but cq+ wasn't removed (Requested by Ossy_
1448 * runtime/RegExp.cpp:
1449 (JSC::RegExp::RegExp):
1450 (JSC::RegExp::create):
1452 * runtime/RegExpCache.cpp:
1453 (JSC::RegExpCache::lookupOrCreate):
1454 (JSC::RegExpCache::create):
1455 * runtime/RegExpCache.h:
1457 2010-06-25 Renata Hodovan <reni@inf.u-szeged.hu>
1459 Reviewed by Geoffrey Garen.
1461 Merge RegExp constructor and RegExp::create methods into one.
1462 Both of function are called with tree parameters and check whether
1463 flags (the third param) is given or not.
1464 Simplify hash lookups in RegExpCache::create with giving them an extra
1466 https://bugs.webkit.org/show_bug.cgi?id=41055
1468 * runtime/RegExp.cpp:
1469 (JSC::RegExp::RegExp):
1471 * runtime/RegExpCache.cpp:
1472 (JSC::RegExpCache::lookupOrCreate):
1473 (JSC::RegExpCache::create):
1474 * runtime/RegExpCache.h:
1476 2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
1478 Reviewed by Simon Hausmann.
1480 Introduce QtScript benchmarks.
1482 The QtScript performance should be tested regularly. The patch introduces
1483 micro benchmarks for existing API.
1485 [Qt] Performance of the QtScript API is not tested.
1486 https://bugs.webkit.org/show_bug.cgi?id=40911
1488 * qt/benchmarks/benchmarks.pri: Copied from JavaScriptCore/qt/tests/tests.pri.
1489 * qt/benchmarks/benchmarks.pro: Added.
1490 * qt/benchmarks/qscriptengine/qscriptengine.pro: Added.
1491 * qt/benchmarks/qscriptengine/tst_qscriptengine.cpp: Added.
1492 (tst_QScriptEngine::checkSyntax_data):
1493 (tst_QScriptEngine::checkSyntax):
1494 (tst_QScriptEngine::constructor):
1495 (tst_QScriptEngine::evaluateString_data):
1496 (tst_QScriptEngine::evaluateString):
1497 (tst_QScriptEngine::evaluateProgram_data):
1498 (tst_QScriptEngine::evaluateProgram):
1499 (tst_QScriptEngine::newObject):
1500 (tst_QScriptEngine::nullValue):
1501 (tst_QScriptEngine::undefinedValue):
1502 (tst_QScriptEngine::globalObject):
1503 (tst_QScriptEngine::toStringHandle):
1504 * qt/benchmarks/qscriptvalue/qscriptvalue.pro: Added.
1505 * qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp: Added.
1506 (tst_QScriptValue::tst_QScriptValue):
1507 (tst_QScriptValue::~tst_QScriptValue):
1508 (tst_QScriptValue::values_data):
1509 (tst_QScriptValue::ctorBool):
1510 (tst_QScriptValue::ctorReal):
1511 (tst_QScriptValue::ctorNumber):
1512 (tst_QScriptValue::ctorQString):
1513 (tst_QScriptValue::ctorCString):
1514 (tst_QScriptValue::ctorSpecial):
1515 (tst_QScriptValue::ctorQScriptValue):
1516 (tst_QScriptValue::isValid_data):
1517 (tst_QScriptValue::isValid):
1518 (tst_QScriptValue::isBool_data):
1519 (tst_QScriptValue::isBool):
1520 (tst_QScriptValue::isNumber_data):
1521 (tst_QScriptValue::isNumber):
1522 (tst_QScriptValue::isFunction_data):
1523 (tst_QScriptValue::isFunction):
1524 (tst_QScriptValue::isNull_data):
1525 (tst_QScriptValue::isNull):
1526 (tst_QScriptValue::isString_data):
1527 (tst_QScriptValue::isString):
1528 (tst_QScriptValue::isUndefined_data):
1529 (tst_QScriptValue::isUndefined):
1530 (tst_QScriptValue::isObject_data):
1531 (tst_QScriptValue::isObject):
1532 (tst_QScriptValue::isError_data):
1533 (tst_QScriptValue::isError):
1534 (tst_QScriptValue::toString_data):
1535 (tst_QScriptValue::toString):
1536 (tst_QScriptValue::toNumber_data):
1537 (tst_QScriptValue::toNumber):
1538 (tst_QScriptValue::toBool_data):
1539 (tst_QScriptValue::toBool):
1540 (tst_QScriptValue::toInteger_data):
1541 (tst_QScriptValue::toInteger):
1542 (tst_QScriptValue::toInt32_data):
1543 (tst_QScriptValue::toInt32):
1544 (tst_QScriptValue::toUInt32_data):
1545 (tst_QScriptValue::toUInt32):
1546 (tst_QScriptValue::toUInt16_data):
1547 (tst_QScriptValue::toUInt16):
1548 (tst_QScriptValue::toObject_data):
1549 (tst_QScriptValue::toObject):
1550 (tst_QScriptValue::equals_data):
1551 (tst_QScriptValue::equals):
1552 (tst_QScriptValue::strictlyEquals_data):
1553 (tst_QScriptValue::strictlyEquals):
1554 (tst_QScriptValue::instanceOf_data):
1555 (tst_QScriptValue::instanceOf):
1557 2010-06-25 Oliver Hunt <oliver@apple.com>
1559 Reviewed by Geoffrey Garen.
1561 Remove old js parser
1562 https://bugs.webkit.org/show_bug.cgi?id=41222
1564 Remove the old yacc parser, this also solves the tiger problem. Which
1565 was a conflict between yacc generated token values and those in the
1570 * DerivedSources.make:
1571 * DerivedSources.pro:
1573 * JavaScriptCore.pro:
1574 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1575 * JavaScriptCore.xcodeproj/project.pbxproj:
1576 * parser/Grammar.y: Removed.
1577 * parser/JSParser.cpp:
1578 * parser/JSParser.h:
1580 * parser/NodeConstructors.h:
1582 * parser/Parser.cpp:
1583 (JSC::Parser::parse):
1586 2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
1588 Reviewed by Simon Hausmann.
1590 New QtScript API; setPrototype() and prototype().
1592 This patch implements QScriptValue's prototype accessors.
1594 [Qt] QScriptValue should have accessors to a prototype.
1595 https://bugs.webkit.org/show_bug.cgi?id=39356
1597 * qt/api/qscriptvalue.cpp:
1598 (QScriptValue::prototype):
1599 (QScriptValue::setPrototype):
1600 * qt/api/qscriptvalue.h:
1601 * qt/api/qscriptvalue_p.h:
1602 (QScriptValuePrivate::prototype):
1603 (QScriptValuePrivate::setPrototype):
1604 * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
1605 (tst_QScriptValue::getSetPrototype):
1606 * qt/tests/qscriptvalue/tst_qscriptvalue.h:
1608 2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi>
1610 Reviewed by Kenneth Rohde Christiansen.
1612 [CMake] Add option to enable JIT.
1613 JIT is disabled by default, but now it's possible to enable it through
1614 an option to CMake: -DENABLE_JIT will enable it.
1615 https://bugs.webkit.org/show_bug.cgi?id=40936
1617 * CMakeLists.txt: Add missing files and re-sort.
1619 2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi>
1621 Reviewed by Gustavo Noronha Silva.
1623 [CMake] Remove unused variable in EFL build system. It was previously
1624 being used to set the flags of each port but it was superseded by
1626 https://bugs.webkit.org/show_bug.cgi?id=40931
1628 * jsc/CMakeLists.txt:
1630 2010-06-25 Nathan Lawrence <nlawrence@apple.com>
1632 Reviewed by Geoffrey Garen.
1634 Aligning AssemblerBuffer to 128 bytes gives a 0.4% speedup on
1637 * assembler/AssemblerBuffer.h:
1638 (JSC::AssemblerBuffer::AssemblerBuffer):
1640 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
1642 Unreviewed, rolling out r61842.
1643 http://trac.webkit.org/changeset/61842
1644 https://bugs.webkit.org/show_bug.cgi?id=41208
1646 It broke Windows build (Requested by Ossy_ on #webkit).
1648 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
1649 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1650 * wtf/OwnPtrCommon.h:
1651 * wtf/brew/OwnPtrBrew.h: Removed.
1652 * wtf/win/OwnPtrWin.h: Removed.
1654 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
1656 Unreviewed, rolling out r61833.
1657 http://trac.webkit.org/changeset/61833
1658 https://bugs.webkit.org/show_bug.cgi?id=41205
1660 It broke Leopard and GTK (Requested by Ossy_ on #webkit).
1662 * runtime/RegExp.cpp:
1663 (JSC::RegExp::RegExp):
1664 (JSC::RegExp::create):
1666 * runtime/RegExpCache.cpp:
1667 (JSC::RegExpCache::lookupOrCreate):
1668 (JSC::RegExpCache::create):
1669 * runtime/RegExpCache.h:
1671 2010-06-25 Kwang Yul Seo <skyul@company100.net>
1673 Reviewed by Adam Barth.
1675 Change OwnPtrCommon to include platform-specific headers
1676 https://bugs.webkit.org/show_bug.cgi?id=40279
1678 Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
1679 Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
1681 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
1682 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1683 * wtf/OwnPtrCommon.h:
1684 * wtf/brew/OwnPtrBrew.h: Added.
1685 * wtf/win/OwnPtrWin.h: Added.
1687 2010-06-25 Patrick Gansterer <paroga@paroga.com>
1689 Reviewed by Darin Adler.
1691 Add the possibility for a head and footer section to create_jit_stubs.
1692 https://bugs.webkit.org/show_bug.cgi?id=36050
1696 2010-06-24 Renata Hodovan <reni@inf.u-szeged.hu>
1698 Reviewed by Geoffrey Garen.
1700 Merge RegExp constructor and RegExp::create methods into one.
1701 Both of function are called with tree parameters and check whether
1702 flags (the third param) is given or not.
1703 Simplify hash lookups in RegExpCache::create with giving them an extra
1705 https://bugs.webkit.org/show_bug.cgi?id=41055
1707 * runtime/RegExp.cpp:
1708 (JSC::RegExp::RegExp):
1710 * runtime/RegExpCache.cpp:
1711 (JSC::RegExpCache::lookupOrCreate):
1712 (JSC::RegExpCache::create):
1713 * runtime/RegExpCache.h:
1715 2010-06-24 Oliver Hunt <oliver@apple.com>
1717 Reviewed by Maciej Stachowiak.
1719 Incorrect use of '+ 4' and 0 instead of tag and payload offsets in JSValue32_64
1720 https://bugs.webkit.org/show_bug.cgi?id=41193
1722 I noticed a use of '+ 4' in some of the 32_64 code paths and realised there
1723 were a few places where endianness was being hardcoded. This patch fixes
1724 the errors i could find through code inspection.
1726 * jit/JITOpcodes32_64.cpp:
1727 (JSC::JIT::emit_op_resolve_global):
1728 * jit/JITPropertyAccess32_64.cpp:
1729 (JSC::JIT::emit_op_get_by_val):
1730 (JSC::JIT::emit_op_put_by_val):
1731 (JSC::JIT::compileGetDirectOffset):
1732 (JSC::JIT::privateCompilePutByIdTransition):
1733 (JSC::JIT::patchGetByIdSelf):
1734 (JSC::JIT::patchPutByIdReplace):
1736 2010-06-24 Oliver Hunt <oliver@apple.com>
1740 Temporarily get the tiger bot working again by disabling the
1741 new JS parser. GCC on tiger is miscompiling the parser and
1742 I don't have access to a tiger machine right now.
1746 2010-06-21 Nathan Lawrence <nlawrence@apple.com>
1748 Reviewed by Geoff Garen.
1750 https://bugs.webkit.org/show_bug.cgi?id=40128
1751 Fixed broken debug functionality.
1753 * interpreter/Interpreter.cpp:
1754 (JSC::Interpreter::dumpRegisters):
1755 Fixed to work with updated call frame.
1756 * runtime/JSImmediate.h:
1757 (JSC::JSValue::isCell):
1758 Added assert for aligned cell.
1759 * runtime/JSValue.cpp:
1760 (JSC::JSValue::description):
1761 Fixed to work with current JSValue implementation.
1762 * runtime/JSZombie.cpp:
1763 (JSC::JSZombie::leakedZombieStructure):
1764 JSombies compile again.
1766 2010-06-24 Leandro Pereira <leandro@profusion.mobi>
1768 Unreviewed build fix.
1770 * CMakeLists.txt: Add JSParser.cpp.
1772 2010-06-24 Oliver Hunt <oliver@apple.com>
1774 Reviewed by Maciej Stachowiak.
1776 Single character string replacement may replace too many characters
1777 https://bugs.webkit.org/show_bug.cgi?id=41138
1778 <rdar://problem/8097496>
1780 Simple fix to stop the rope path of single character replacement
1781 once the first replacement occurs.
1783 * runtime/JSString.cpp:
1784 (JSC::JSString::replaceCharacter):
1786 2010-06-24 Gabor Loki <loki@webkit.org>
1788 Reviewed by Gavin Barraclough.
1790 Fix the length of instruction stream controlled by constant pool
1791 https://bugs.webkit.org/show_bug.cgi?id=40293
1793 The initial/maximum length of instruction stream (m_maxDistance) should
1794 be set when the first constant arrives to the constant pool. Otherwise
1795 the constant pool could be placed into an uninterrupted sequence.
1797 * assembler/AssemblerBufferWithConstantPool.h:
1800 2010-06-24 Oliver Hunt <oliver@apple.com>
1802 Reviewed by Gavin Barraclough.
1804 We assume bytecodeOffset will always return a value > 1,
1805 so we adjust the failure case to return 1 instead of 0.
1807 * bytecode/CodeBlock.h:
1808 (JSC::CodeBlock::bytecodeOffset):
1810 2010-06-23 Oliver Hunt <oliver@apple.com>
1812 Reviewed by Gavin Barraclough.
1814 Custom-written JavaScript parser
1815 https://bugs.webkit.org/show_bug.cgi?id=34019
1817 Implement a recursive descent parser similar to that used by V8 and
1818 SpiderMonkey. Greater than 2x improvement in SunSpider parsing tests.
1820 The parser consists of a JSParser class that uses a TreeBuilder to actually
1821 build the AST. There are currently two builders -- the ASTBuilder and
1822 SyntaxChecker which separate the job of building an AST for code generation
1823 and simply checking syntactic correctness.
1825 There's still some less than ideal code remaining in the parser to allow
1826 us to retain the existing lexing code with minimal changes. We'll tidy
1827 this up at a later date.
1830 * JavaScriptCore.gypi:
1831 * JavaScriptCore.pro:
1832 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1833 * JavaScriptCore.xcodeproj/project.pbxproj:
1834 * parser/ASTBuilder.h: Added.
1835 (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo):
1836 (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo):
1837 (JSC::ASTBuilder::ASTBuilder):
1838 (JSC::ASTBuilder::createSourceElements):
1839 (JSC::ASTBuilder::varDeclarations):
1840 (JSC::ASTBuilder::funcDeclarations):
1841 (JSC::ASTBuilder::features):
1842 (JSC::ASTBuilder::numConstants):
1843 (JSC::ASTBuilder::appendToComma):
1844 (JSC::ASTBuilder::createCommaExpr):
1845 (JSC::ASTBuilder::createLogicalNot):
1846 (JSC::ASTBuilder::createUnaryPlus):
1847 (JSC::ASTBuilder::createVoid):
1848 (JSC::ASTBuilder::thisExpr):
1849 (JSC::ASTBuilder::createResolve):
1850 (JSC::ASTBuilder::createObjectLiteral):
1851 (JSC::ASTBuilder::createArray):
1852 (JSC::ASTBuilder::createNumberExpr):
1853 (JSC::ASTBuilder::createString):
1854 (JSC::ASTBuilder::createBoolean):
1855 (JSC::ASTBuilder::createNull):
1856 (JSC::ASTBuilder::createBracketAccess):
1857 (JSC::ASTBuilder::createDotAccess):
1858 (JSC::ASTBuilder::createRegex):
1859 (JSC::ASTBuilder::createNewExpr):
1860 (JSC::ASTBuilder::createConditionalExpr):
1861 (JSC::ASTBuilder::createAssignResolve):
1862 (JSC::ASTBuilder::createFunctionExpr):
1863 (JSC::ASTBuilder::createFunctionBody):
1864 (JSC::ASTBuilder::createGetterOrSetterProperty):
1865 (JSC::ASTBuilder::createArguments):
1866 (JSC::ASTBuilder::createArgumentsList):
1867 (JSC::ASTBuilder::createProperty):
1868 (JSC::ASTBuilder::createPropertyList):
1869 (JSC::ASTBuilder::createElementList):
1870 (JSC::ASTBuilder::createFormalParameterList):
1871 (JSC::ASTBuilder::createClause):
1872 (JSC::ASTBuilder::createClauseList):
1873 (JSC::ASTBuilder::setUsesArguments):
1874 (JSC::ASTBuilder::createFuncDeclStatement):
1875 (JSC::ASTBuilder::createBlockStatement):
1876 (JSC::ASTBuilder::createExprStatement):
1877 (JSC::ASTBuilder::createIfStatement):
1878 (JSC::ASTBuilder::createForLoop):
1879 (JSC::ASTBuilder::createForInLoop):
1880 (JSC::ASTBuilder::createEmptyStatement):
1881 (JSC::ASTBuilder::createVarStatement):
1882 (JSC::ASTBuilder::createReturnStatement):
1883 (JSC::ASTBuilder::createBreakStatement):
1884 (JSC::ASTBuilder::createContinueStatement):
1885 (JSC::ASTBuilder::createTryStatement):
1886 (JSC::ASTBuilder::createSwitchStatement):
1887 (JSC::ASTBuilder::createWhileStatement):
1888 (JSC::ASTBuilder::createDoWhileStatement):
1889 (JSC::ASTBuilder::createLabelStatement):
1890 (JSC::ASTBuilder::createWithStatement):
1891 (JSC::ASTBuilder::createThrowStatement):
1892 (JSC::ASTBuilder::createDebugger):
1893 (JSC::ASTBuilder::createConstStatement):
1894 (JSC::ASTBuilder::appendConstDecl):
1895 (JSC::ASTBuilder::appendStatement):
1896 (JSC::ASTBuilder::addVar):
1897 (JSC::ASTBuilder::combineCommaNodes):
1898 (JSC::ASTBuilder::evalCount):
1899 (JSC::ASTBuilder::appendBinaryExpressionInfo):
1900 (JSC::ASTBuilder::operatorStackPop):
1901 (JSC::ASTBuilder::operatorStackHasHigherPrecedence):
1902 (JSC::ASTBuilder::getFromOperandStack):
1903 (JSC::ASTBuilder::shrinkOperandStackBy):
1904 (JSC::ASTBuilder::appendBinaryOperation):
1905 (JSC::ASTBuilder::operatorStackAppend):
1906 (JSC::ASTBuilder::popOperandStack):
1907 (JSC::ASTBuilder::appendUnaryToken):
1908 (JSC::ASTBuilder::unaryTokenStackLastType):
1909 (JSC::ASTBuilder::unaryTokenStackLastStart):
1910 (JSC::ASTBuilder::unaryTokenStackRemoveLast):
1911 (JSC::ASTBuilder::assignmentStackAppend):
1912 (JSC::ASTBuilder::createAssignment):
1913 (JSC::ASTBuilder::Scope::Scope):
1914 (JSC::ASTBuilder::setExceptionLocation):
1915 (JSC::ASTBuilder::incConstants):
1916 (JSC::ASTBuilder::usesThis):
1917 (JSC::ASTBuilder::usesCatch):
1918 (JSC::ASTBuilder::usesClosures):
1919 (JSC::ASTBuilder::usesArguments):
1920 (JSC::ASTBuilder::usesAssignment):
1921 (JSC::ASTBuilder::usesWith):
1922 (JSC::ASTBuilder::usesEval):
1923 (JSC::ASTBuilder::createNumber):
1924 (JSC::ASTBuilder::makeTypeOfNode):
1925 (JSC::ASTBuilder::makeDeleteNode):
1926 (JSC::ASTBuilder::makeNegateNode):
1927 (JSC::ASTBuilder::makeBitwiseNotNode):
1928 (JSC::ASTBuilder::makeMultNode):
1929 (JSC::ASTBuilder::makeDivNode):
1930 (JSC::ASTBuilder::makeAddNode):
1931 (JSC::ASTBuilder::makeSubNode):
1932 (JSC::ASTBuilder::makeLeftShiftNode):
1933 (JSC::ASTBuilder::makeRightShiftNode):
1934 (JSC::ASTBuilder::makeFunctionCallNode):
1935 (JSC::ASTBuilder::makeBinaryNode):
1936 (JSC::ASTBuilder::makeAssignNode):
1937 (JSC::ASTBuilder::makePrefixNode):
1938 (JSC::ASTBuilder::makePostfixNode):
1939 * parser/JSParser.cpp: Added.
1940 (JSC::JSParser::AllowInOverride::AllowInOverride):
1941 (JSC::JSParser::AllowInOverride::~AllowInOverride):
1942 (JSC::JSParser::token):
1943 (JSC::JSParser::next):
1944 (JSC::JSParser::consume):
1945 (JSC::JSParser::match):
1946 (JSC::JSParser::tokenStart):
1947 (JSC::JSParser::tokenLine):
1948 (JSC::JSParser::tokenEnd):
1950 (JSC::JSParser::autoSemiColon):
1951 (JSC::JSParser::canRecurse):
1952 (JSC::JSParser::lastTokenEnd):
1954 (JSC::JSParser::JSParser):
1955 (JSC::JSParser::parseProgram):
1956 (JSC::JSParser::allowAutomaticSemicolon):
1957 (JSC::JSParser::parseSourceElements):
1958 (JSC::JSParser::parseVarDeclaration):
1959 (JSC::JSParser::parseConstDeclaration):
1960 (JSC::JSParser::parseDoWhileStatement):
1961 (JSC::JSParser::parseWhileStatement):
1962 (JSC::JSParser::parseVarDeclarationList):
1963 (JSC::JSParser::parseConstDeclarationList):
1964 (JSC::JSParser::parseForStatement):
1965 (JSC::JSParser::parseBreakStatement):
1966 (JSC::JSParser::parseContinueStatement):
1967 (JSC::JSParser::parseReturnStatement):
1968 (JSC::JSParser::parseThrowStatement):
1969 (JSC::JSParser::parseWithStatement):
1970 (JSC::JSParser::parseSwitchStatement):
1971 (JSC::JSParser::parseSwitchClauses):
1972 (JSC::JSParser::parseSwitchDefaultClause):
1973 (JSC::JSParser::parseTryStatement):
1974 (JSC::JSParser::parseDebuggerStatement):
1975 (JSC::JSParser::parseBlockStatement):
1976 (JSC::JSParser::parseStatement):
1977 (JSC::JSParser::parseFormalParameters):
1978 (JSC::JSParser::parseFunctionBody):
1979 (JSC::JSParser::parseFunctionInfo):
1980 (JSC::JSParser::parseFunctionDeclaration):
1981 (JSC::JSParser::parseExpressionOrLabelStatement):
1982 (JSC::JSParser::parseExpressionStatement):
1983 (JSC::JSParser::parseIfStatement):
1984 (JSC::JSParser::parseExpression):
1985 (JSC::JSParser::parseAssignmentExpression):
1986 (JSC::JSParser::parseConditionalExpression):
1988 (JSC::JSParser::isBinaryOperator):
1989 (JSC::JSParser::parseBinaryExpression):
1990 (JSC::JSParser::parseProperty):
1991 (JSC::JSParser::parseObjectLiteral):
1992 (JSC::JSParser::parseArrayLiteral):
1993 (JSC::JSParser::parsePrimaryExpression):
1994 (JSC::JSParser::parseArguments):
1995 (JSC::JSParser::parseMemberExpression):
1996 (JSC::JSParser::parseUnaryExpression):
1997 * parser/JSParser.h: Added.
1999 (JSC::JSTokenInfo::JSTokenInfo):
2003 (JSC::Lexer::setLastLineNumber):
2004 (JSC::Lexer::lastLineNumber):
2005 * parser/NodeConstructors.h:
2007 * parser/Parser.cpp:
2008 (JSC::Parser::parse):
2009 * parser/SyntaxChecker.h: Added.
2010 (JSC::SyntaxChecker::SyntaxChecker):
2011 (JSC::SyntaxChecker::createSourceElements):
2012 (JSC::SyntaxChecker::makeFunctionCallNode):
2013 (JSC::SyntaxChecker::appendToComma):
2014 (JSC::SyntaxChecker::createCommaExpr):
2015 (JSC::SyntaxChecker::makeAssignNode):
2016 (JSC::SyntaxChecker::makePrefixNode):
2017 (JSC::SyntaxChecker::makePostfixNode):
2018 (JSC::SyntaxChecker::makeTypeOfNode):
2019 (JSC::SyntaxChecker::makeDeleteNode):
2020 (JSC::SyntaxChecker::makeNegateNode):
2021 (JSC::SyntaxChecker::makeBitwiseNotNode):
2022 (JSC::SyntaxChecker::createLogicalNot):
2023 (JSC::SyntaxChecker::createUnaryPlus):
2024 (JSC::SyntaxChecker::createVoid):
2025 (JSC::SyntaxChecker::thisExpr):
2026 (JSC::SyntaxChecker::createResolve):
2027 (JSC::SyntaxChecker::createObjectLiteral):
2028 (JSC::SyntaxChecker::createArray):
2029 (JSC::SyntaxChecker::createNumberExpr):
2030 (JSC::SyntaxChecker::createString):
2031 (JSC::SyntaxChecker::createBoolean):
2032 (JSC::SyntaxChecker::createNull):
2033 (JSC::SyntaxChecker::createBracketAccess):
2034 (JSC::SyntaxChecker::createDotAccess):
2035 (JSC::SyntaxChecker::createRegex):
2036 (JSC::SyntaxChecker::createNewExpr):
2037 (JSC::SyntaxChecker::createConditionalExpr):
2038 (JSC::SyntaxChecker::createAssignResolve):
2039 (JSC::SyntaxChecker::createFunctionExpr):
2040 (JSC::SyntaxChecker::createFunctionBody):
2041 (JSC::SyntaxChecker::createArguments):
2042 (JSC::SyntaxChecker::createArgumentsList):
2043 (JSC::SyntaxChecker::createProperty):
2044 (JSC::SyntaxChecker::createPropertyList):
2045 (JSC::SyntaxChecker::createElementList):
2046 (JSC::SyntaxChecker::createFormalParameterList):
2047 (JSC::SyntaxChecker::createClause):
2048 (JSC::SyntaxChecker::createClauseList):
2049 (JSC::SyntaxChecker::setUsesArguments):
2050 (JSC::SyntaxChecker::createFuncDeclStatement):
2051 (JSC::SyntaxChecker::createBlockStatement):
2052 (JSC::SyntaxChecker::createExprStatement):
2053 (JSC::SyntaxChecker::createIfStatement):
2054 (JSC::SyntaxChecker::createForLoop):
2055 (JSC::SyntaxChecker::createForInLoop):
2056 (JSC::SyntaxChecker::createEmptyStatement):
2057 (JSC::SyntaxChecker::createVarStatement):
2058 (JSC::SyntaxChecker::createReturnStatement):
2059 (JSC::SyntaxChecker::createBreakStatement):
2060 (JSC::SyntaxChecker::createContinueStatement):
2061 (JSC::SyntaxChecker::createTryStatement):
2062 (JSC::SyntaxChecker::createSwitchStatement):
2063 (JSC::SyntaxChecker::createWhileStatement):
2064 (JSC::SyntaxChecker::createWithStatement):
2065 (JSC::SyntaxChecker::createDoWhileStatement):
2066 (JSC::SyntaxChecker::createLabelStatement):
2067 (JSC::SyntaxChecker::createThrowStatement):
2068 (JSC::SyntaxChecker::createDebugger):
2069 (JSC::SyntaxChecker::createConstStatement):
2070 (JSC::SyntaxChecker::appendConstDecl):
2071 (JSC::SyntaxChecker::createGetterOrSetterProperty):
2072 (JSC::SyntaxChecker::appendStatement):
2073 (JSC::SyntaxChecker::addVar):
2074 (JSC::SyntaxChecker::combineCommaNodes):
2075 (JSC::SyntaxChecker::evalCount):
2076 (JSC::SyntaxChecker::appendBinaryExpressionInfo):
2077 (JSC::SyntaxChecker::operatorStackPop):
2078 * runtime/JSGlobalData.h:
2080 * wtf/ThreadSpecific.h:
2083 2010-06-23 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
2085 Reviewed by Simon Hausmann.
2087 Optimization of the QScriptValuePrivate.
2089 Patch change only internals of the QScriptValuePrivate.
2090 Most of the QScriptValuePrivate's attributes were moved
2093 [Qt] Optimization of the QScriptVAluePrivate.
2094 https://bugs.webkit.org/show_bug.cgi?id=40415
2096 * qt/api/qscriptengine_p.cpp:
2097 (QScriptEnginePrivate::globalObject):
2098 * qt/api/qscriptvalue_p.h:
2099 (QScriptValuePrivate::):
2100 (QScriptValuePrivate::~QScriptValuePrivate):
2101 (QScriptValuePrivate::QScriptValuePrivate):
2102 (QScriptValuePrivate::toString):
2103 (QScriptValuePrivate::toNumber):
2104 (QScriptValuePrivate::toBool):
2105 (QScriptValuePrivate::toObject):
2106 (QScriptValuePrivate::equals):
2107 (QScriptValuePrivate::strictlyEquals):
2108 (QScriptValuePrivate::assignEngine):
2109 (QScriptValuePrivate::operator JSValueRef):
2110 (QScriptValuePrivate::operator JSObjectRef):
2111 (QScriptValuePrivate::refinedJSValue):
2113 2010-06-23 Kwang Yul Seo <skyul@company100.net>
2115 Reviewed by Oliver Hunt.
2117 [GTK] Implement ThreadSpecific with glib
2118 https://bugs.webkit.org/show_bug.cgi?id=39829
2120 Implement ThreadSpecific with glib's GStaticPrivate.
2121 This patch makes it possible to build GTK port without pthread.
2123 * wtf/ThreadSpecific.h:
2124 (WTF::::ThreadSpecific):
2125 (WTF::::~ThreadSpecific):
2130 2010-06-23 Leandro Pereira <leandro@profusion.mobi>
2132 Unreviewed build fix.
2134 * CMakeLists.txt: Add runtime/RegExpCache.cpp.
2136 2010-06-22 Renata Hodovan <hodovan@inf.u-szeged.hu>
2138 Reviewed by Geoffrey Garen.
2140 Adding regular expression caching to JavaScriptCore
2141 https://bugs.webkit.org/show_bug.cgi?id=38142
2143 The cache is based on Round Robin eviction policy, and
2144 can cache at most 256 character long regular expressions,
2145 and at most 256 of them. These values can be changed at compile time.
2148 * JavaScriptCore.gypi:
2149 * JavaScriptCore.pro:
2150 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2151 * JavaScriptCore.xcodeproj/project.pbxproj:
2152 * bytecompiler/NodesCodegen.cpp:
2153 (JSC::RegExpNode::emitBytecode):
2154 * runtime/JSGlobalData.cpp:
2155 (JSC::JSGlobalData::JSGlobalData):
2156 (JSC::JSGlobalData::~JSGlobalData):
2157 * runtime/JSGlobalData.h:
2158 (JSC::JSGlobalData::regExpCache):
2159 * runtime/RegExpCache.cpp: Added.
2160 (JSC::RegExpCache::lookupOrCreate):
2161 (JSC::RegExpCache::create):
2162 (JSC::RegExpCache::RegExpCache):
2163 * runtime/RegExpCache.h: Added.
2164 * runtime/RegExpConstructor.cpp:
2165 (JSC::constructRegExp):
2166 * runtime/RegExpKey.h: Added.
2167 (JSC::RegExpKey::RegExpKey):
2168 (JSC::RegExpKey::getFlagsValue):
2171 * runtime/RegExpPrototype.cpp:
2172 (JSC::regExpProtoFuncCompile):
2173 * runtime/StringPrototype.cpp:
2174 (JSC::stringProtoFuncMatch):
2175 (JSC::stringProtoFuncSearch):
2177 2010-06-22 Gabor Loki <loki@webkit.org>
2179 Reviewed by Geoffrey Garen.
2181 Add native call support for ARM and Thumb-2 JIT.
2182 https://bugs.webkit.org/show_bug.cgi?id=40231
2184 * jit/JITOpcodes.cpp:
2185 (JSC::JIT::privateCompileCTINativeCall):
2186 * jit/JITOpcodes32_64.cpp:
2187 (JSC::JIT::privateCompileCTINativeCall):
2190 2010-06-21 Oliver Hunt <oliver@apple.com>
2192 Reviewed by Geoffrey Garen.
2194 Make JSC more resilient in the face of parse failures
2195 https://bugs.webkit.org/show_bug.cgi?id=40951
2197 A number of recent bugs have occurred due to issues like miscounting
2198 BOMs, etc which lead to interesting crashes later on. Adding this
2199 logic hardens JSC in the face of these errors, and has no impact on
2200 performance (32bit jit actually gets 0.7% faster but I put that down
2203 * bytecode/CodeBlock.cpp:
2204 (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
2205 (JSC::CodeBlock::lineNumberForBytecodeOffset):
2206 (JSC::CodeBlock::expressionRangeForBytecodeOffset):
2207 (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
2208 * bytecode/CodeBlock.h:
2209 (JSC::CodeBlock::bytecodeOffset):
2210 * interpreter/Interpreter.cpp:
2211 (JSC::Interpreter::execute):
2212 (JSC::Interpreter::executeCall):
2213 (JSC::Interpreter::executeConstruct):
2214 (JSC::Interpreter::prepareForRepeatCall):
2215 (JSC::Interpreter::privateExecute):
2216 * jit/JITOpcodes.cpp:
2217 (JSC::JIT::privateCompileCTIMachineTrampolines):
2218 * jit/JITOpcodes32_64.cpp:
2219 (JSC::JIT::privateCompileCTIMachineTrampolines):
2221 (JSC::DEFINE_STUB_FUNCTION):
2222 * runtime/ArrayPrototype.cpp:
2223 (JSC::isNumericCompareFunction):
2224 * runtime/Executable.cpp:
2225 (JSC::FunctionExecutable::compileForCall):
2226 (JSC::FunctionExecutable::compileForConstruct):
2227 (JSC::FunctionExecutable::generateJITCodeForCall):
2228 (JSC::FunctionExecutable::generateJITCodeForConstruct):
2229 (JSC::FunctionExecutable::reparseExceptionInfo):
2230 (JSC::EvalExecutable::reparseExceptionInfo):
2231 * runtime/Executable.h:
2232 (JSC::FunctionExecutable::bytecodeForCall):
2233 (JSC::FunctionExecutable::bytecodeForConstruct):
2234 * runtime/JSGlobalData.cpp:
2235 (JSC::JSGlobalData::numericCompareFunction):
2237 2010-06-21 John Sullivan <sullivan@apple.com>
2239 Reviewed by Adam Roben.
2241 RetainPtr can't be used in HashMaps or HashSets
2242 <https://bugs.webkit.org/show_bug.cgi?id=40938>
2244 Added hashing knowledge similar to that in COMPtr.h.
2247 (WTF::RetainPtr::RetainPtr):
2248 New function, copied from COMPtr.h but for the type change.
2249 (WTF::RetainPtr::isHashTableDeletedValue):
2251 (WTF::RetainPtr::hashTableDeletedValue):
2253 Added template code for HashTraits and PtrHash copied from COMPtr.h but for the type change.
2254 The only difference is that constructDeletedValue() matches the RefPtr implementation (in HashTraits.h)
2255 rather than the COMPtr implementation.
2257 2010-06-19 Oliver Hunt <oliver@apple.com>
2259 Reviewed by Geoffrey Garen.
2261 Need to ensure that we grow the RegisterFile when creating a callframe for host code
2262 https://bugs.webkit.org/show_bug.cgi?id=40858
2263 <rdar://problem/8108986>
2265 In the past the use of the callframe in hostcode was much more
2266 limited. Now that we expect the callframe to always be valid
2267 we need to grow the RegisterFile so that this is actually the
2268 case. In this particular case the problem was failing to grow
2269 the registerfile could lead to a callframe that extended beyond
2270 RegisterFiler::end(), so vm re-entry would clobber the callframe
2271 other scenarios could also lead to badness.
2273 I was unable to construct a simple testcase to trigger badness,
2274 and any such testcase would be so dependent on exact vm stack
2275 layout that it would be unlikely to work as a testcase following
2276 any callframe or register allocation changes anyway.
2278 Thankfully the new assertion I added should help to catch these
2279 failures in future, and triggers on a couple of tests currently.
2281 * interpreter/CallFrame.cpp:
2282 (JSC::CallFrame::registerFile):
2283 * interpreter/CallFrame.h:
2284 (JSC::ExecState::init):
2285 * interpreter/Interpreter.cpp:
2286 (JSC::Interpreter::privateExecute):
2288 (JSC::DEFINE_STUB_FUNCTION):
2290 2010-06-21 Satish Sampath <satish@chromium.org>
2292 Reviewed by Steve Block.
2294 Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
2295 https://bugs.webkit.org/show_bug.cgi?id=40878
2297 * Configurations/FeatureDefines.xcconfig:
2299 2010-06-21 Kwang Yul Seo <skyul@company100.net>
2301 Reviewed by Kent Tamura.
2303 [BREWMP] Use global new/delete operator overloading with USE_SYSTEM_MALLOC=1
2304 https://bugs.webkit.org/show_bug.cgi?id=40653
2306 Currently, other ports do not use global new/delete operator overloading
2307 when USE_SYSTEM_MALLOC=1. Brew MP uses system malloc, but it needs to enable
2308 "global fastMalloc new" because the default new/delete causes crash on device.
2309 We need to replace them with Brew MP's MALLOC/FREE.
2313 2010-06-18 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
2315 Reviewed by Simon Hausmann.
2317 [Qt] Work around a build problem with libjscore on Symbian.
2318 https://bugs.webkit.org/show_bug.cgi?id=40840
2320 Sbsv2 sometimes have problems with debug/release configuration
2321 determination causing QtWebKit in release to try linking with the debug
2322 JavaScriptCore static library. This patch limit the jscore/jscored
2323 r58306 fix necessary for mac builds only to the mac platform to prevent the
2324 different name problem.
2326 The real fix would be to fix qmake or the toolchain, this patch might
2329 * JavaScriptCore.pri:
2331 2010-06-21 Patrick Gansterer <paroga@paroga.com>
2333 Reviewed by Kent Tamura.
2335 Buildfix after r61338.
2336 https://bugs.webkit.org/show_bug.cgi?id=40888
2338 roundUpAllocationSize is needed in RegisterFile.h.
2340 * jit/ExecutableAllocator.h:
2342 2010-06-19 Kwang Yul Seo <skyul@company100.net>
2344 Reviewed by Darin Adler.
2346 Include <string.h> in StringExtras.h
2347 https://bugs.webkit.org/show_bug.cgi?id=40808
2349 Without string.h, RVCT 2.2 can't compile StringExtras.h.
2350 It can't find strlen and strncmp.
2352 * wtf/StringExtras.h:
2354 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
2356 Reviewed by Kenneth Rohde Christiansen.
2358 Don't use __attribute__((may_alias)) with the Intel compiler,
2359 as it doesn't understand it.
2363 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
2365 Reviewed by Kenneth Rohde Christiansen.
2367 Fix compilation with the Intel C++ compiler (11.1.072).
2369 Like RVCT, label pointers must be void*, not const void*.
2371 * bytecode/Opcode.h:
2373 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
2375 Reviewed by Kenneth Rohde Christiansen.
2377 Add the WTF_COMPILER_INTEL for when the Intel compiler is used
2378 for building. Usually, the Intel compiler masquerades as
2379 another compiler in the system and gets away with it, but some
2380 times specific fixes are required (such as when using language
2385 2010-06-18 Oliver Hunt <oliver@apple.com>
2387 Reviewed by Geoffrey Garen.
2389 Incorrect handling of multiple BOMs scattered through a file.
2390 https://bugs.webkit.org/show_bug.cgi?id=40865
2392 When determining the offset of open and close braces in a source
2393 with BOMs we were finishing our count early as we failed to account
2394 for BOMs prior to the open/close brace positions effecting those
2398 (JSC::Lexer::sourceCode):
2400 2010-06-17 Oliver Hunt <oliver@apple.com>
2402 Reviewed by Sam Weinig.
2404 Don't throw away exception information for functions that use exceptions
2405 https://bugs.webkit.org/show_bug.cgi?id=40786
2407 Simple patch to stop JSC from throwing away the exception information
2408 of a function that uses "exceptiony" features like try and throw. This
2409 is a speed up for catching expressions but it's difficult to quantify as
2410 the old cost of reparsing is amortised over all exceptions caught in the
2413 * bytecode/CodeBlock.cpp:
2414 (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
2415 * bytecompiler/BytecodeGenerator.cpp:
2416 (JSC::BytecodeGenerator::generate):
2417 (JSC::BytecodeGenerator::emitCatch):
2418 * bytecompiler/BytecodeGenerator.h:
2419 (JSC::BytecodeGenerator::emitThrow):
2421 2010-06-18 Anders Carlsson <andersca@apple.com>
2423 Reviewed by Sam Weinig.
2425 Add PlatformStrategies and PluginStrategy classes.
2426 https://bugs.webkit.org/show_bug.cgi?id=40850
2430 2010-06-18 Leandro Pereira <leandro@profusion.mobi>
2432 [EFL] Unreviewed build fix.
2434 * wtf/CMakeLists.txt: Add MD5.cpp.
2436 2010-06-17 Shu Chang <chang.shu@nokia.com>
2438 Reviewed by Kenneth Rohde Christiansen.
2440 [Qt] Fix the link error on symbian with ENABLE_JIT=0.
2441 1. Add "#if ENABLE(JIT)" in the header file;
2442 2. Put feature enable/disable logic to a common.pri so
2443 that both JavaScriptCore.pri and WebCore.pri can share.
2445 https://bugs.webkit.org/show_bug.cgi?id=40780
2447 * JavaScriptCore.pri:
2448 * jit/ExecutableAllocator.h:
2450 2010-06-17 Darin Adler <darin@apple.com>
2452 Reviewed by Sam Weinig.
2454 Use adoptRef and create functions in more code paths
2455 https://bugs.webkit.org/show_bug.cgi?id=40760
2457 * API/JSClassRef.h: Removed unneeded include of RefCounted.h.
2458 * API/JSWeakObjectMapRefPrivate.cpp: Ditto.
2460 * bytecode/CodeBlock.h:
2461 (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the
2462 SharedSymbolTable::create function instead of calling new directly.
2464 * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable
2465 class and made the constructor private.
2467 2010-06-17 Mark Brand <mabrand@mabrand.nl>
2469 Reviewed by Simon Hausmann.
2471 [Qt] use "win32-g++*" scope to match all MinGW makespecs
2473 The scope "win32-g++" comes from the name of the makespec. However, it
2474 is frequently used to check for MinGW. This works fine as long as
2475 win32-g++ is the only makespec for MinGW. Now we need the wildcard
2476 to cover "win32-g++-cross" as well.
2478 * JavaScriptCore.pro:
2480 2010-06-16 Darin Adler <darin@apple.com>
2482 Reviewed by David Levin.
2484 Deploy adoptRef in more places, including all HTML and MathML elements
2485 https://bugs.webkit.org/show_bug.cgi?id=39941
2487 * wtf/ThreadSafeShared.h: Made the constructor protected and removed the
2488 unneeded support for initial reference counts other than 1.
2490 2010-06-16 Peter Varga <pvarga@inf.u-szeged.hu>
2492 Reviewed by Geoffrey Garen.
2494 Store matchBegin directly in the array of output instead of the stack.
2495 https://bugs.webkit.org/show_bug.cgi?id=38988
2497 * yarr/RegexJIT.cpp:
2498 (JSC::Yarr::RegexGenerator::generateDisjunction):
2499 (JSC::Yarr::RegexGenerator::generate):
2501 2010-06-15 Anders Carlsson <andersca@apple.com>
2503 Reviewed by Sam Weinig.
2505 Make JavaScriptCore build with clang++.
2507 * jit/JITInlineMethods.h:
2508 (JSC::JIT::emitPutVirtualRegister):
2509 Explicitly cast to an int.
2511 * yarr/RegexCompiler.cpp:
2512 (JSC::Yarr::compileRegex):
2513 Return 0 instead of false.
2515 2010-06-15 Adam Roben <aroben@apple.com>
2517 Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
2519 Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
2521 Reviewed by Sam Weinig.
2523 * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of
2524 JavaScriptCore's DerivedSources directory to
2525 AppleInternal/Sources/JavaScriptCore.
2527 2010-06-15 Gabor Loki <loki@webkit.org>
2529 Rubber-stamped by Eric Seidel.
2531 Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM
2532 https://bugs.webkit.org/show_bug.cgi?id=40423
2534 Using OBJECT_OFFSETOF macro instead of objectof to bypass access to
2535 non-static data member warning.
2537 * jit/JITPropertyAccess32_64.cpp:
2538 (JSC::JIT::privateCompilePutByIdTransition):
2540 2010-06-11 Eric Seidel <eric@webkit.org>
2542 Reviewed by Adam Barth.
2544 Rename the rest of the *Tokenizer classes to *DocumentParser
2545 https://bugs.webkit.org/show_bug.cgi?id=40507
2548 - fixed a comment to match new names.
2550 2010-06-11 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
2552 Reviewed by Simon Hausmann.
2554 [Qt] Explicit conversions from QtScript types to JSC opaque types were removed.
2555 https://bugs.webkit.org/show_bug.cgi?id=40412
2557 Conversion between a JSC C types and a QtScript private types, takes
2558 main part of the source code. In most cases a mapping between the types
2559 is one to one. New cast operators were added to simplify the code.
2561 The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef.
2562 The QScriptEnginePrivate could be casted to the JSGlobalContext.
2563 The QScriptProgramPrivate could be casted to the JSStringRef.
2565 * qt/api/qscriptengine_p.cpp:
2566 (QScriptEnginePrivate::evaluate):
2567 (QScriptEnginePrivate::newObject):
2568 (QScriptEnginePrivate::globalObject):
2569 * qt/api/qscriptengine_p.h:
2570 (QScriptEnginePrivate::operator JSGlobalContextRef):
2571 * qt/api/qscriptprogram_p.h:
2572 (QScriptProgramPrivate::operator JSStringRef):
2573 * qt/api/qscriptsyntaxcheckresult.cpp:
2574 (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate):
2575 (QScriptSyntaxCheckResultPrivate::errorMessage):
2576 (QScriptSyntaxCheckResultPrivate::errorLineNumber):
2577 * qt/api/qscriptvalue_p.h:
2578 (QScriptValuePrivate::~QScriptValuePrivate):
2579 (QScriptValuePrivate::QScriptValuePrivate):
2580 (QScriptValuePrivate::isBool):
2581 (QScriptValuePrivate::isNumber):
2582 (QScriptValuePrivate::isNull):
2583 (QScriptValuePrivate::isString):
2584 (QScriptValuePrivate::isUndefined):
2585 (QScriptValuePrivate::isFunction):
2586 (QScriptValuePrivate::toString):
2587 (QScriptValuePrivate::toNumber):
2588 (QScriptValuePrivate::toBool):
2589 (QScriptValuePrivate::toObject):
2590 (QScriptValuePrivate::equals):
2591 (QScriptValuePrivate::strictlyEquals):
2592 (QScriptValuePrivate::instanceOf):
2593 (QScriptValuePrivate::call):
2594 (QScriptValuePrivate::operator JSValueRef):
2595 (QScriptValuePrivate::operator JSObjectRef):
2596 (QScriptValuePrivate::setValue):
2597 (QScriptValuePrivate::inherits):
2598 (QScriptValuePrivate::refinedJSValue):
2600 2010-05-31 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
2602 Reviewed by Simon Hausmann.
2604 [Qt] Implement the simple text code path.
2605 https://bugs.webkit.org/show_bug.cgi?id=40077
2607 Remove the FONT_FAST_PATH macro and use the Qt's
2608 fast text implementation instead of the one of WebKit.
2610 The Qt::TextBypassShaping flag is used to tell Qt to
2611 only use the glyph advances.
2613 Qt 4.7 is needed to get this flag thus the complex path is always
2614 used if QtWebKit is compiled against an earlier version.
2616 Contrary to the WebKit's implementation, the complex code path
2617 is taken if the text is RightToLeft, justified or is formatted
2618 with non-zero letter or word spacing.
2622 2010-06-11 Luiz Agostini <luiz.agostini@openbossa.org>
2624 Reviewed by Kenneth Rohde Christiansen.
2626 add codePointCompare to JavaScriptCore.exp
2627 https://bugs.webkit.org/show_bug.cgi?id=40426
2629 * JavaScriptCore.exp:
2631 2010-06-10 Oliver Hunt <oliver@apple.com>
2633 Reviewed by Maciej Stachowiak.
2635 Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode
2636 https://bugs.webkit.org/show_bug.cgi?id=40367
2638 If we're in the slow case of right shift we must write the type tag as
2639 the only reason we hit this code path is because we know we're working
2640 with a double. eg. we are guaranteed that the tag cannot be reused.
2642 * jit/JITArithmetic32_64.cpp:
2643 (JSC::JIT::emitRightShiftSlowCase):
2645 2010-06-10 Kwang Yul Seo <skyul@company100.net>
2647 Reviewed by Eric Seidel.
2649 Remove weakRandomNumber
2650 https://bugs.webkit.org/show_bug.cgi?id=40291
2652 weakRandomNumber is used nowhere. Currently, WeakRandom is used instead.
2654 * wtf/RandomNumber.cpp:
2655 * wtf/RandomNumber.h:
2657 2010-06-09 Alexey Proskuryakov <ap@apple.com>
2659 Reviewed by Brady Eidson.
2661 Export StringImpl::ascii(). It might be not very useful, but it's a public function.
2663 * JavaScriptCore.exp:
2665 2010-06-09 Leandro Pereira <leandro@profusion.mobi>
2667 Reviewed by Adam Treat.
2669 [EFL] Allow building core libraries as shared objects to speed up
2670 linking time on machines with small amounts of memory.
2671 http://webkit.org/b/39899
2673 * CMakeLists.txt: If building with shared core, install the lib.
2674 * jsc/CMakeListsEfl.txt: Needs Glib and Ecore to link dynamically.
2675 * wtf/CMakeLists.txt: If building with shared core, install the lib.
2677 2010-06-09 Gabor Loki <loki@webkit.org>
2679 Reviewed by David Levin.
2681 Remove some unused variable warnings from JITOpcodes
2682 https://bugs.webkit.org/show_bug.cgi?id=40298
2684 * jit/JITOpcodes.cpp:
2685 (JSC::JIT::privateCompileCTINativeCall):
2686 * jit/JITOpcodes32_64.cpp:
2687 (JSC::JIT::privateCompileCTINativeCall):
2689 2010-05-18 Yuzo Fujishima <yuzo@google.com>
2691 Reviewed by Shinichiro Hamaji.
2693 Fix for Bug 34529 - [CSSOM] issues with cssText and selectorText
2694 Add U16_LENGTH that is needed to implement CSS character serialization.
2695 https://bugs.webkit.org/show_bug.cgi?id=34529
2697 * wtf/unicode/qt4/UnicodeQt4.h:
2698 * wtf/unicode/wince/UnicodeWince.h:
2700 2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com>
2702 Unreviewed, rolling out r60830.
2703 http://trac.webkit.org/changeset/60830
2704 https://bugs.webkit.org/show_bug.cgi?id=40305
2706 Broke the Windows build (Requested by abarth on #webkit).
2708 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2709 * wtf/OwnPtrCommon.h:
2710 * wtf/brew/OwnPtrBrew.h: Removed.
2711 * wtf/win/OwnPtrWin.h: Removed.
2713 2010-06-08 MORITA Hajime <morrita@google.com>
2715 Unreviewed. An attempt to fix test break.
2717 * Configurations/FeatureDefines.xcconfig:
2719 2010-06-08 Kwang Yul Seo <skyul@company100.net>
2721 Reviewed by Adam Barth.
2723 Change OwnPtrCommon to include platform-specific headers
2724 https://bugs.webkit.org/show_bug.cgi?id=40279
2726 Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
2727 Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
2729 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2730 * wtf/OwnPtrCommon.h:
2731 * wtf/brew/OwnPtrBrew.h: Added.
2732 * wtf/win/OwnPtrWin.h: Added.
2734 2010-06-07 MORITA Hajime <morrita@google.com>
2736 Reviewed by Kent Tamura.
2738 https://bugs.webkit.org/show_bug.cgi?id=40219
2739 [Mac] ENABLE_METER_TAG should be enabled
2741 Added ENABLE_METER_TAG.
2743 * Configurations/FeatureDefines.xcconfig:
2745 2010-06-07 Kwang Yul Seo <skyul@company100.net>
2747 Reviewed by Eric Seidel.
2749 [BREWMP] Add more types to OwnPtr
2750 https://bugs.webkit.org/show_bug.cgi?id=39667
2752 Add ISSL and ISocket to the list of OwnPtr-ed type.
2754 * wtf/OwnPtrCommon.h:
2755 * wtf/brew/OwnPtrBrew.cpp:
2756 (WTF::deleteOwnedPtr):
2758 2010-06-07 Benjamin Poulain <benjamin.poulain@nokia.com>
2760 Reviewed by Simon Hausmann.
2762 [Qt] Crash when compiling on Snow Leopard and running on Leopard
2763 https://bugs.webkit.org/show_bug.cgi?id=31403
2765 Disable the use of pthread_setname_np and other symbols
2766 when targetting Leopard.
2768 Use the defines TARGETING_XX instead of BUILDING_ON_XX
2769 for features that cannot be used before Snow Leopard.
2773 2010-06-07 Gabor Loki <loki@webkit.org>
2775 Reviewed by NOBODY (JSVALUE32_64 build fix).
2777 * jit/JITOpcodes32_64.cpp:
2778 (JSC::JIT::privateCompileCTINativeCall):
2780 2010-06-06 Gavin Barraclough <barraclough@apple.com>
2782 Reviewed by NOBODY (windows build fix pt 2).
2784 * JavaScriptCore.exp:
2785 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2787 2010-06-06 Gavin Barraclough <barraclough@apple.com>
2789 Reviewed by NOBODY (windows build fix pt 1).
2791 * JavaScriptCore.exp:
2792 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2794 2010-06-06 Gavin Barraclough <barraclough@apple.com>
2796 Reviewed by Sam Weinig.
2798 Bug 40214 - Clean up error construction / throwing in JSC.
2800 The one egregious insanity here is that creating an error requires
2801 a VM-entry-esqe-host call (the string argument is wrapped as a JS
2802 object & pushed on the RegisterFile, then unwrapped back to a
2803 UString). Changing this also means you only require a global
2804 object, not an ExecState, to create an error.
2806 The methods to create error objects are also parameterized
2807 requiring a switch on the type, which can be made cleaner and
2808 faster by moving to a separate method per error type. Code to add
2809 divot information to error had been duplicated, and is coalesced
2810 back into a single function.
2812 Convenience methods added to create & throw type & syntax error
2813 with a default error message, since this is a common case.
2815 Also, errors are currently thrown either using
2816 "throwError(exec, error)" or "exec->setException(error)" - unify
2817 on the former, since this is more commonly used. Add
2818 "throwVMError(exec, error)" equivalents, as a convenience for
2819 cases where the result was being wrapped in "JSValue::encode(...)".
2821 * API/JSCallbackConstructor.cpp:
2822 (JSC::constructJSCallback):
2823 * API/JSCallbackFunction.cpp:
2824 (JSC::JSCallbackFunction::call):
2825 * API/JSCallbackObjectFunctions.h:
2826 (JSC::::getOwnPropertySlot):
2828 (JSC::::deleteProperty):
2830 (JSC::::hasInstance):
2834 (JSC::::staticValueGetter):
2835 (JSC::::staticFunctionGetter):
2836 (JSC::::callbackGetter):
2837 * API/JSObjectRef.cpp:
2838 (JSObjectMakeError):
2839 * JavaScriptCore.exp:
2840 * bytecompiler/BytecodeGenerator.cpp:
2841 (JSC::BytecodeGenerator::emitNewError):
2842 (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
2843 * bytecompiler/BytecodeGenerator.h:
2844 * bytecompiler/NodesCodegen.cpp:
2845 (JSC::ThrowableExpressionData::emitThrowError):
2846 (JSC::RegExpNode::emitBytecode):
2847 (JSC::PostfixErrorNode::emitBytecode):
2848 (JSC::PrefixErrorNode::emitBytecode):
2849 (JSC::AssignErrorNode::emitBytecode):
2850 (JSC::ForInNode::emitBytecode):
2851 (JSC::ContinueNode::emitBytecode):
2852 (JSC::BreakNode::emitBytecode):
2853 (JSC::ReturnNode::emitBytecode):
2854 (JSC::LabelNode::emitBytecode):
2855 * interpreter/CallFrame.h:
2856 * interpreter/Interpreter.cpp:
2857 (JSC::Interpreter::throwException):
2858 (JSC::Interpreter::privateExecute):
2860 (JSC::DEFINE_STUB_FUNCTION):
2864 (functionCheckSyntax):
2866 * runtime/ArrayConstructor.cpp:
2867 (JSC::constructArrayWithSizeQuirk):
2868 * runtime/ArrayPrototype.cpp:
2869 (JSC::arrayProtoFuncToString):
2870 (JSC::arrayProtoFuncToLocaleString):
2871 (JSC::arrayProtoFuncJoin):
2872 (JSC::arrayProtoFuncFilter):
2873 (JSC::arrayProtoFuncMap):
2874 (JSC::arrayProtoFuncEvery):
2875 (JSC::arrayProtoFuncForEach):
2876 (JSC::arrayProtoFuncSome):
2877 (JSC::arrayProtoFuncReduce):
2878 (JSC::arrayProtoFuncReduceRight):
2879 * runtime/BooleanPrototype.cpp:
2880 (JSC::booleanProtoFuncToString):
2881 (JSC::booleanProtoFuncValueOf):
2882 * runtime/DatePrototype.cpp:
2883 (JSC::dateProtoFuncToString):
2884 (JSC::dateProtoFuncToUTCString):
2885 (JSC::dateProtoFuncToISOString):
2886 (JSC::dateProtoFuncToDateString):
2887 (JSC::dateProtoFuncToTimeString):
2888 (JSC::dateProtoFuncToLocaleString):
2889 (JSC::dateProtoFuncToLocaleDateString):
2890 (JSC::dateProtoFuncToLocaleTimeString):
2891 (JSC::dateProtoFuncGetTime):
2892 (JSC::dateProtoFuncGetFullYear):
2893 (JSC::dateProtoFuncGetUTCFullYear):
2894 (JSC::dateProtoFuncToGMTString):
2895 (JSC::dateProtoFuncGetMonth):
2896 (JSC::dateProtoFuncGetUTCMonth):
2897 (JSC::dateProtoFuncGetDate):
2898 (JSC::dateProtoFuncGetUTCDate):
2899 (JSC::dateProtoFuncGetDay):
2900 (JSC::dateProtoFuncGetUTCDay):
2901 (JSC::dateProtoFuncGetHours):
2902 (JSC::dateProtoFuncGetUTCHours):
2903 (JSC::dateProtoFuncGetMinutes):
2904 (JSC::dateProtoFuncGetUTCMinutes):
2905 (JSC::dateProtoFuncGetSeconds):
2906 (JSC::dateProtoFuncGetUTCSeconds):
2907 (JSC::dateProtoFuncGetMilliSeconds):
2908 (JSC::dateProtoFuncGetUTCMilliseconds):
2909 (JSC::dateProtoFuncGetTimezoneOffset):
2910 (JSC::dateProtoFuncSetTime):
2911 (JSC::setNewValueFromTimeArgs):
2912 (JSC::setNewValueFromDateArgs):
2913 (JSC::dateProtoFuncSetMilliSeconds):
2914 (JSC::dateProtoFuncSetUTCMilliseconds):
2915 (JSC::dateProtoFuncSetSeconds):
2916 (JSC::dateProtoFuncSetUTCSeconds):
2917 (JSC::dateProtoFuncSetMinutes):
2918 (JSC::dateProtoFuncSetUTCMinutes):
2919 (JSC::dateProtoFuncSetHours):
2920 (JSC::dateProtoFuncSetUTCHours):
2921 (JSC::dateProtoFuncSetDate):
2922 (JSC::dateProtoFuncSetUTCDate):
2923 (JSC::dateProtoFuncSetMonth):
2924 (JSC::dateProtoFuncSetUTCMonth):
2925 (JSC::dateProtoFuncSetFullYear):
2926 (JSC::dateProtoFuncSetUTCFullYear):
2927 (JSC::dateProtoFuncSetYear):
2928 (JSC::dateProtoFuncGetYear):
2929 (JSC::dateProtoFuncToJSON):
2930 * runtime/Error.cpp:
2932 (JSC::createEvalError):
2933 (JSC::createRangeError):
2934 (JSC::createReferenceError):
2935 (JSC::createSyntaxError):
2936 (JSC::createTypeError):
2937 (JSC::createURIError):
2938 (JSC::addErrorSourceInfo):
2939 (JSC::addErrorDivotInfo):
2940 (JSC::addErrorInfo):
2941 (JSC::hasErrorInfo):
2943 (JSC::throwTypeError):
2944 (JSC::throwSyntaxError):
2946 (JSC::throwVMError):
2947 (JSC::throwVMTypeError):
2948 * runtime/ErrorConstructor.cpp:
2949 (JSC::constructWithErrorConstructor):
2950 (JSC::callErrorConstructor):
2951 * runtime/ErrorConstructor.h:
2952 * runtime/ErrorInstance.cpp:
2953 (JSC::ErrorInstance::ErrorInstance):
2954 (JSC::ErrorInstance::create):
2955 * runtime/ErrorInstance.h:
2956 * runtime/ErrorPrototype.cpp:
2957 (JSC::ErrorPrototype::ErrorPrototype):
2958 * runtime/ExceptionHelpers.cpp:
2959 (JSC::createStackOverflowError):
2960 (JSC::createUndefinedVariableError):
2961 (JSC::createInvalidParamError):
2962 (JSC::createNotAConstructorError):
2963 (JSC::createNotAFunctionError):
2964 (JSC::createNotAnObjectError):
2965 (JSC::throwOutOfMemoryError):
2966 * runtime/ExceptionHelpers.h:
2967 * runtime/Executable.cpp:
2968 (JSC::EvalExecutable::compile):
2969 (JSC::ProgramExecutable::checkSyntax):
2970 (JSC::ProgramExecutable::compile):
2971 * runtime/FunctionConstructor.cpp:
2972 (JSC::constructFunction):
2973 * runtime/FunctionPrototype.cpp:
2974 (JSC::functionProtoFuncToString):
2975 (JSC::functionProtoFuncApply):
2976 (JSC::functionProtoFuncCall):
2977 * runtime/Identifier.cpp:
2978 (JSC::Identifier::from):
2979 * runtime/Identifier.h:
2980 * runtime/JSArray.cpp:
2981 (JSC::JSArray::put):
2982 * runtime/JSFunction.cpp:
2983 (JSC::callHostFunctionAsConstructor):
2984 * runtime/JSGlobalObjectFunctions.cpp:
2987 (JSC::globalFuncEval):
2988 * runtime/JSONObject.cpp:
2989 (JSC::Stringifier::appendStringifiedValue):
2990 (JSC::Walker::walk):
2991 (JSC::JSONProtoFuncParse):
2992 (JSC::JSONProtoFuncStringify):
2993 * runtime/JSObject.cpp:
2994 (JSC::throwSetterError):
2995 (JSC::JSObject::put):
2996 (JSC::JSObject::putWithAttributes):
2997 (JSC::JSObject::defaultValue):
2998 (JSC::JSObject::hasInstance):
2999 (JSC::JSObject::defineOwnProperty):
3000 * runtime/JSObject.h:
3001 * runtime/JSValue.cpp:
3002 (JSC::JSValue::toObjectSlowCase):
3003 (JSC::JSValue::synthesizeObject):
3004 (JSC::JSValue::synthesizePrototype):
3005 * runtime/NativeErrorConstructor.cpp:
3006 (JSC::constructWithNativeErrorConstructor):
3007 (JSC::callNativeErrorConstructor):
3008 * runtime/NativeErrorConstructor.h:
3009 * runtime/NumberPrototype.cpp:
3010 (JSC::numberProtoFuncToString):
3011 (JSC::numberProtoFuncToLocaleString):
3012 (JSC::numberProtoFuncValueOf):
3013 (JSC::numberProtoFuncToFixed):
3014 (JSC::numberProtoFuncToExponential):
3015 (JSC::numberProtoFuncToPrecision):
3016 * runtime/ObjectConstructor.cpp:
3017 (JSC::objectConstructorGetPrototypeOf):
3018 (JSC::objectConstructorGetOwnPropertyDescriptor):
3019 (JSC::objectConstructorGetOwnPropertyNames):
3020 (JSC::objectConstructorKeys):
3021 (JSC::toPropertyDescriptor):
3022 (JSC::objectConstructorDefineProperty):
3023 (JSC::objectConstructorDefineProperties):
3024 (JSC::objectConstructorCreate):
3025 * runtime/ObjectPrototype.cpp:
3026 (JSC::objectProtoFuncDefineGetter):
3027 (JSC::objectProtoFuncDefineSetter):
3028 * runtime/RegExpConstructor.cpp:
3029 (JSC::constructRegExp):
3030 * runtime/RegExpObject.cpp:
3031 (JSC::RegExpObject::match):
3032 * runtime/RegExpPrototype.cpp:
3033 (JSC::regExpProtoFuncTest):
3034 (JSC::regExpProtoFuncExec):
3035 (JSC::regExpProtoFuncCompile):
3036 (JSC::regExpProtoFuncToString):
3037 * runtime/StringPrototype.cpp:
3038 (JSC::stringProtoFuncToString):
3040 2010-06-05 Kwang Yul Seo <skyul@company100.net>
3042 Reviewed by Eric Seidel.
3044 [BREWMP] Add PLATFORM(BREWMP) guard for using std::xxx
3045 https://bugs.webkit.org/show_bug.cgi?id=39710
3047 Build fix for BREW MP.
3051 2010-06-04 Adam Barth <abarth@webkit.org>
3053 Reviewed by Darin Adler.
3055 HTML5 parser should be within 1% of old parser performance
3056 https://bugs.webkit.org/show_bug.cgi?id=40172
3058 Fix cast in this operator= to allow for assignment between vectors with
3059 different inline capacities (as clearly intended by its author).
3064 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
3066 Reviewed by Kenneth Rohde Christiansen.
3068 New QtScript API; QScriptValue::instanceOf.
3070 New function create an easy way to check value's prototype hierarchy.
3072 [Qt] QScriptValue should have an instanceOf method
3073 https://bugs.webkit.org/show_bug.cgi?id=40120
3075 * qt/api/qscriptvalue.cpp:
3076 (QScriptValue::instanceOf):
3077 * qt/api/qscriptvalue.h:
3078 * qt/api/qscriptvalue_p.h:
3079 (QScriptValuePrivate::instanceOf):
3080 * qt/tests/qscriptvalue/tst_qscriptvalue.h:
3081 * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
3082 (tst_QScriptValue::instanceOf_initData):
3083 (tst_QScriptValue::instanceOf_makeData):
3084 (tst_QScriptValue::instanceOf_test):
3086 2010-06-04 Gavin Barraclough <barraclough@apple.com>
3088 Reviewed by NOBODY (interpreter build fix).
3090 * interpreter/Interpreter.cpp:
3091 (JSC::Interpreter::privateExecute):
3093 2010-06-04 Mark Rowe <mrowe@apple.com>
3095 Silence some warnings seen on the build bot.
3097 * JavaScriptCore.JSVALUE32_64only.exp: Add a trailing newline.
3098 * JavaScriptCore.JSVALUE32only.exp: Ditto.
3099 * JavaScriptCore.JSVALUE64only.exp: Ditto.
3100 * JavaScriptCore.xcodeproj/project.pbxproj: Remove the .exp files from all targets so that Xcode doesn't
3101 complain about not knowing how to compile them.
3103 2010-06-04 Gavin Barraclough <barraclough@apple.com>
3105 Reviewed by Oliver Hunt.
3107 Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
3109 Mostly for consistency, but constructor & args arguments are redundant,
3110 and this will help if we wish to be able to JIT calls to more constructors.
3112 * API/JSCallbackConstructor.cpp:
3113 (JSC::constructJSCallback):
3114 * API/JSCallbackObject.h:
3115 * API/JSCallbackObjectFunctions.h:
3117 * interpreter/Interpreter.cpp:
3118 (JSC::Interpreter::executeConstruct):
3119 * interpreter/Interpreter.h:
3121 (JSC::DEFINE_STUB_FUNCTION):
3122 * runtime/ArrayConstructor.cpp:
3123 (JSC::constructWithArrayConstructor):
3124 * runtime/BooleanConstructor.cpp:
3125 (JSC::constructWithBooleanConstructor):
3126 * runtime/ConstructData.cpp:
3128 * runtime/ConstructData.h:
3129 * runtime/DateConstructor.cpp:
3130 (JSC::constructWithDateConstructor):
3131 * runtime/Error.cpp:
3132 (JSC::constructNativeError):
3133 (JSC::Error::create):
3134 * runtime/ErrorConstructor.cpp:
3135 (JSC::constructWithErrorConstructor):
3136 * runtime/FunctionConstructor.cpp:
3137 (JSC::constructWithFunctionConstructor):
3138 * runtime/NativeErrorConstructor.cpp:
3139 (JSC::constructWithNativeErrorConstructor):
3140 * runtime/NativeErrorConstructor.h:
3141 (JSC::NativeErrorConstructor::errorStructure):
3142 * runtime/NumberConstructor.cpp:
3143 (JSC::constructWithNumberConstructor):
3144 * runtime/ObjectConstructor.cpp:
3145 (JSC::constructWithObjectConstructor):
3146 * runtime/RegExpConstructor.cpp:
3147 (JSC::constructWithRegExpConstructor):
3148 * runtime/StringConstructor.cpp:
3149 (JSC::constructWithStringConstructor):
3151 2010-06-04 Tony Gentilcore <tonyg@chromium.org>
3153 Reviewed by Adam Barth.
3155 Add a takeFirst() method to Deque and use it where appropriate.
3156 https://bugs.webkit.org/show_bug.cgi?id=40089
3160 * wtf/MainThread.cpp:
3161 (WTF::dispatchFunctionsFromMainThread):
3162 * wtf/MessageQueue.h:
3163 (WTF::::tryGetMessage):
3165 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
3167 Reviewed by Kenneth Rohde Christiansen.
3169 Remove a QEXPECT_FAIL flag from an autotest.
3171 Test tst_QScriptEngine::globalObject pass after 36600 bug
3172 fix have been applied.
3174 [Qt] Expected fail in the tst_QScriptEngine::globalObject should be removed.
3175 https://bugs.webkit.org/show_bug.cgi?id=40114
3177 * qt/tests/qscriptengine/tst_qscriptengine.cpp:
3178 (tst_QScriptEngine::globalObject):
3180 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
3182 Reviewed by Kenneth Rohde Christiansen.
3184 Fix QScriptValue::equals.
3186 Handling for a few edge cases were added. Now comparison between
3187 NaN, an invalid objects should works as supposed.
3189 [Qt] QScriptValue::equals problems
3190 https://bugs.webkit.org/show_bug.cgi?id=40110
3192 * qt/api/qscriptvalue.cpp:
3193 (QScriptValue::equals):
3194 * qt/api/qscriptvalue_p.h:
3195 (QScriptValuePrivate::equals):
3196 * qt/tests/qscriptvalue/tst_qscriptvalue.h:
3197 * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
3198 (tst_QScriptValue::equals_initData):
3199 (tst_QScriptValue::equals_makeData):
3200 (tst_QScriptValue::equals_test):
3202 2010-06-03 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
3204 Reviewed by Kenneth Rohde Christiansen.
3206 New states in QScriptValuePrivate.
3208 The CSpecial state was divided into CNull and CUndefined. It simplify
3209 the QScriptValue code by avoiding a few "cast" and "if".
3210 Moreover the MSVS compiler didn't like casting between a double and an
3211 enum which is avoided now.
3213 [Qt] The QScriptValuePrivate::CSpecial is too generic.
3214 https://bugs.webkit.org/show_bug.cgi?id=40067
3216 * qt/api/qscriptvalue_p.h:
3217 (QScriptValuePrivate::):
3218 (QScriptValuePrivate::QScriptValuePrivate):
3219 (QScriptValuePrivate::isNull):
3220 (QScriptValuePrivate::isUndefined):
3221 (QScriptValuePrivate::toString):
3222 (QScriptValuePrivate::toNumber):
3223 (QScriptValuePrivate::toBool):
3224 (QScriptValuePrivate::toObject):
3225 (QScriptValuePrivate::assignEngine):
3226 (QScriptValuePrivate::isNumberBased):
3228 2010-06-03 Gavin Barraclough <barraclough@apple.com>
3230 Reviewed by NOBODY (Qt build fix).
3234 2010-06-03 Gavin Barraclough <barraclough@apple.com>
3236 Reviewed by Mark Rowe.
3238 Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms
3239 This was fixed in bug #40094.
3241 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3244 2010-06-03 Gavin Barraclough <barraclough@apple.com>
3246 Reviewed by NOBODY (Interpreter build fix).
3248 * JavaScriptCore.JSVALUE32_64only.exp:
3249 * JavaScriptCore.JSVALUE32only.exp:
3250 * JavaScriptCore.JSVALUE64only.exp:
3251 * interpreter/Interpreter.cpp:
3252 (JSC::Interpreter::privateExecute):
3254 2010-06-03 Gavin Barraclough <barraclough@apple.com>
3256 Reviewed by NOBODY (windows build fix II).
3258 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3260 2010-06-03 Gavin Barraclough <barraclough@apple.com>
3262 Reviewed by NOBODY (windows build fix).
3264 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3266 2010-06-02 Gavin Barraclough <barraclough@apple.com>
3268 Reviewed by Oliver Hunt.
3270 Bug 40094 - The return type of NativeFunction should be EncodedJSValue
3271 On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not.
3273 * API/JSCallbackFunction.cpp:
3274 (JSC::JSCallbackFunction::call):
3275 * API/JSCallbackFunction.h:
3276 * API/JSCallbackObject.h:
3277 * API/JSCallbackObjectFunctions.h:
3279 * JavaScriptCore.exp:
3280 * interpreter/Interpreter.cpp:
3281 (JSC::Interpreter::executeCall):
3283 (JSC::DEFINE_STUB_FUNCTION):
3292 (functionCheckSyntax):
3293 (functionSetSamplingFlags):
3294 (functionClearSamplingFlags):
3297 * runtime/ArrayConstructor.cpp:
3298 (JSC::callArrayConstructor):
3299 (JSC::arrayConstructorIsArray):
3300 * runtime/ArrayPrototype.cpp:
3301 (JSC::arrayProtoFuncToString):
3302 (JSC::arrayProtoFuncToLocaleString):
3303 (JSC::arrayProtoFuncJoin):
3304 (JSC::arrayProtoFuncConcat):
3305 (JSC::arrayProtoFuncPop):
3306 (JSC::arrayProtoFuncPush):
3307 (JSC::arrayProtoFuncReverse):
3308 (JSC::arrayProtoFuncShift):
3309 (JSC::arrayProtoFuncSlice):
3310 (JSC::arrayProtoFuncSort):
3311 (JSC::arrayProtoFuncSplice):
3312 (JSC::arrayProtoFuncUnShift):
3313 (JSC::arrayProtoFuncFilter):
3314 (JSC::arrayProtoFuncMap):
3315 (JSC::arrayProtoFuncEvery):
3316 (JSC::arrayProtoFuncForEach):
3317 (JSC::arrayProtoFuncSome):
3318 (JSC::arrayProtoFuncReduce):
3319 (JSC::arrayProtoFuncReduceRight):
3320 (JSC::arrayProtoFuncIndexOf):
3321 (JSC::arrayProtoFuncLastIndexOf):
3322 * runtime/BooleanConstructor.cpp:
3323 (JSC::callBooleanConstructor):
3324 * runtime/BooleanPrototype.cpp:
3325 (JSC::booleanProtoFuncToString):
3326 (JSC::booleanProtoFuncValueOf):
3327 * runtime/CallData.h:
3328 * runtime/DateConstructor.cpp:
3333 * runtime/DatePrototype.cpp:
3334 (JSC::dateProtoFuncToString):
3335 (JSC::dateProtoFuncToUTCString):
3336 (JSC::dateProtoFuncToISOString):
3337 (JSC::dateProtoFuncToDateString):
3338 (JSC::dateProtoFuncToTimeString):
3339 (JSC::dateProtoFuncToLocaleString):
3340 (JSC::dateProtoFuncToLocaleDateString):
3341 (JSC::dateProtoFuncToLocaleTimeString):
3342 (JSC::dateProtoFuncGetTime):
3343 (JSC::dateProtoFuncGetFullYear):
3344 (JSC::dateProtoFuncGetUTCFullYear):
3345 (JSC::dateProtoFuncToGMTString):
3346 (JSC::dateProtoFuncGetMonth):
3347 (JSC::dateProtoFuncGetUTCMonth):
3348 (JSC::dateProtoFuncGetDate):
3349 (JSC::dateProtoFuncGetUTCDate):
3350 (JSC::dateProtoFuncGetDay):
3351 (JSC::dateProtoFuncGetUTCDay):
3352 (JSC::dateProtoFuncGetHours):
3353 (JSC::dateProtoFuncGetUTCHours):
3354 (JSC::dateProtoFuncGetMinutes):
3355 (JSC::dateProtoFuncGetUTCMinutes):
3356 (JSC::dateProtoFuncGetSeconds):
3357 (JSC::dateProtoFuncGetUTCSeconds):
3358 (JSC::dateProtoFuncGetMilliSeconds):
3359 (JSC::dateProtoFuncGetUTCMilliseconds):
3360 (JSC::dateProtoFuncGetTimezoneOffset):
3361 (JSC::dateProtoFuncSetTime):
3362 (JSC::dateProtoFuncSetMilliSeconds):
3363 (JSC::dateProtoFuncSetUTCMilliseconds):
3364 (JSC::dateProtoFuncSetSeconds):
3365 (JSC::dateProtoFuncSetUTCSeconds):
3366 (JSC::dateProtoFuncSetMinutes):
3367 (JSC::dateProtoFuncSetUTCMinutes):
3368 (JSC::dateProtoFuncSetHours):
3369 (JSC::dateProtoFuncSetUTCHours):
3370 (JSC::dateProtoFuncSetDate):
3371 (JSC::dateProtoFuncSetUTCDate):
3372 (JSC::dateProtoFuncSetMonth):
3373 (JSC::dateProtoFuncSetUTCMonth):
3374 (JSC::dateProtoFuncSetFullYear):
3375 (JSC::dateProtoFuncSetUTCFullYear):
3376 (JSC::dateProtoFuncSetYear):
3377 (JSC::dateProtoFuncGetYear):
3378 (JSC::dateProtoFuncToJSON):
3379 * runtime/ErrorConstructor.cpp:
3380 (JSC::callErrorConstructor):
3381 * runtime/ErrorPrototype.cpp:
3382 (JSC::errorProtoFuncToString):
3383 * runtime/FunctionConstructor.cpp:
3384 (JSC::callFunctionConstructor):
3385 * runtime/FunctionPrototype.cpp:
3386 (JSC::callFunctionPrototype):
3387 (JSC::functionProtoFuncToString):
3388 (JSC::functionProtoFuncApply):
3389 (JSC::functionProtoFuncCall):
3392 (JSC::getConstructData):
3393 * runtime/JSFunction.cpp:
3394 (JSC::callHostFunctionAsConstructor):
3395 * runtime/JSFunction.h:
3396 * runtime/JSGlobalObjectFunctions.cpp:
3397 (JSC::globalFuncEval):
3398 (JSC::globalFuncParseInt):
3399 (JSC::globalFuncParseFloat):
3400 (JSC::globalFuncIsNaN):
3401 (JSC::globalFuncIsFinite):
3402 (JSC::globalFuncDecodeURI):
3403 (JSC::globalFuncDecodeURIComponent):
3404 (JSC::globalFuncEncodeURI):
3405 (JSC::globalFuncEncodeURIComponent):
3406 (JSC::globalFuncEscape):
3407 (JSC::globalFuncUnescape):
3408 (JSC::globalFuncJSCPrint):
3409 * runtime/JSGlobalObjectFunctions.h:
3410 * runtime/JSONObject.cpp:
3411 (JSC::JSONProtoFuncParse):
3412 (JSC::JSONProtoFuncStringify):
3413 * runtime/JSObject.cpp:
3414 (JSC::callDefaultValueFunction):
3415 * runtime/JSValue.h:
3416 * runtime/MathObject.cpp:
3417 (JSC::mathProtoFuncAbs):
3418 (JSC::mathProtoFuncACos):
3419 (JSC::mathProtoFuncASin):
3420 (JSC::mathProtoFuncATan):
3421 (JSC::mathProtoFuncATan2):
3422 (JSC::mathProtoFuncCeil):
3423 (JSC::mathProtoFuncCos):
3424 (JSC::mathProtoFuncExp):
3425 (JSC::mathProtoFuncFloor):
3426 (JSC::mathProtoFuncLog):
3427 (JSC::mathProtoFuncMax):
3428 (JSC::mathProtoFuncMin):
3429 (JSC::mathProtoFuncPow):
3430 (JSC::mathProtoFuncRandom):
3431 (JSC::mathProtoFuncRound):
3432 (JSC::mathProtoFuncSin):
3433 (JSC::mathProtoFuncSqrt):
3434 (JSC::mathProtoFuncTan):
3435 * runtime/NativeErrorConstructor.cpp:
3436 (JSC::callNativeErrorConstructor):
3437 * runtime/NumberConstructor.cpp:
3438 (JSC::callNumberConstructor):
3439 * runtime/NumberPrototype.cpp:
3440 (JSC::numberProtoFuncToString):
3441 (JSC::numberProtoFuncToLocaleString):
3442 (JSC::numberProtoFuncValueOf):
3443 (JSC::numberProtoFuncToFixed):
3444 (JSC::numberProtoFuncToExponential):
3445 (JSC::numberProtoFuncToPrecision):
3446 * runtime/ObjectConstructor.cpp:
3447 (JSC::callObjectConstructor):
3448 (JSC::objectConstructorGetPrototypeOf):
3449 (JSC::objectConstructorGetOwnPropertyDescriptor):
3450 (JSC::objectConstructorGetOwnPropertyNames):
3451 (JSC::objectConstructorKeys):
3452 (JSC::toPropertyDescriptor):
3453 (JSC::objectConstructorDefineProperty):
3454 (JSC::objectConstructorDefineProperties):
3455 (JSC::objectConstructorCreate):
3456 * runtime/ObjectPrototype.cpp:
3457 (JSC::objectProtoFuncValueOf):
3458 (JSC::objectProtoFuncHasOwnProperty):
3459 (JSC::objectProtoFuncIsPrototypeOf):
3460 (JSC::objectProtoFuncDefineGetter):
3461 (JSC::objectProtoFuncDefineSetter):
3462 (JSC::objectProtoFuncLookupGetter):
3463 (JSC::objectProtoFuncLookupSetter):
3464 (JSC::objectProtoFuncPropertyIsEnumerable):
3465 (JSC::objectProtoFuncToLocaleString):
3466 (JSC::objectProtoFuncToString):
3467 * runtime/ObjectPrototype.h:
3468 * runtime/RegExpConstructor.cpp:
3469 (JSC::callRegExpConstructor):
3470 * runtime/RegExpObject.cpp:
3471 (JSC::callRegExpObject):
3472 * runtime/RegExpPrototype.cpp:
3473 (JSC::regExpProtoFuncTest):
3474 (JSC::regExpProtoFuncExec):
3475 (JSC::regExpProtoFuncCompile):
3476 (JSC::regExpProtoFuncToString):
3477 * runtime/StringConstructor.cpp:
3478 (JSC::stringFromCharCode):
3479 (JSC::callStringConstructor):
3480 * runtime/StringPrototype.cpp:
3481 (JSC::stringProtoFuncReplace):
3482 (JSC::stringProtoFuncToString):
3483 (JSC::stringProtoFuncCharAt):
3484 (JSC::stringProtoFuncCharCodeAt):
3485 (JSC::stringProtoFuncConcat):
3486 (JSC::stringProtoFuncIndexOf):
3487 (JSC::stringProtoFuncLastIndexOf):
3488 (JSC::stringProtoFuncMatch):
3489 (JSC::stringProtoFuncSearch):
3490 (JSC::stringProtoFuncSlice):
3491 (JSC::stringProtoFuncSplit):
3492 (JSC::stringProtoFuncSubstr):
3493 (JSC::stringProtoFuncSubstring):
3494 (JSC::stringProtoFuncToLowerCase):
3495 (JSC::stringProtoFuncToUpperCase):
3496 (JSC::stringProtoFuncLocaleCompare):
3497 (JSC::stringProtoFuncBig):
3498 (JSC::stringProtoFuncSmall):
3499 (JSC::stringProtoFuncBlink):
3500 (JSC::stringProtoFuncBold):
3501 (JSC::stringProtoFuncFixed):
3502 (JSC::stringProtoFuncItalics):
3503 (JSC::stringProtoFuncStrike):
3504 (JSC::stringProtoFuncSub):
3505 (JSC::stringProtoFuncSup):
3506 (JSC::stringProtoFuncFontcolor):
3507 (JSC::stringProtoFuncFontsize):
3508 (JSC::stringProtoFuncAnchor):
3509 (JSC::stringProtoFuncLink):
3510 (JSC::stringProtoFuncTrim):
3511 (JSC::stringProtoFuncTrimLeft):
3512 (JSC::stringProtoFuncTrimRight):
3514 2010-06-02 Mark Rowe <mrowe@apple.com>
3516 Reviewed by Gavin Barraclough.
3518 Add value-representation specific sections to the mac export file.
3520 * Configurations/JavaScriptCore.xcconfig:
3521 * DerivedSources.make:
3522 * JavaScriptCore.JSVALUE32_64only.exp: Added.
3523 * JavaScriptCore.JSVALUE32only.exp: Added.
3524 * JavaScriptCore.JSVALUE64only.exp: Added.
3525 * JavaScriptCore.xcodeproj/project.pbxproj:
3527 2010-06-02 Mark Rowe <mrowe@apple.com>
3529 Reviewed by Gavin Barraclough.
3531 <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE.
3533 * pcre/pcre_exec.cpp:
3534 (repeatInformationFromInstructionOffset): Change the type of instructionOffset to int. There's no good
3535 reason for it to be a short, and using int prevents this code from triggering the LLVM GCC bug.
3537 2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
3539 Reviewed by Kenneth Rohde Christiansen.
3541 Fix the QScriptValue::strictlyEquals function.
3543 Handling for a few edge cases was added.
3545 New autotest that covers the QScriptValue::strictlyEquals function.
3547 [Qt] QScriptValue::strictlyEquals is broken
3548 https://bugs.webkit.org/show_bug.cgi?id=36600
3550 * qt/api/qscriptvalue.cpp:
3551 (QScriptValue::strictlyEquals):
3552 * qt/api/qscriptvalue_p.h:
3553 (QScriptValuePrivate::strictlyEquals):
3554 * qt/tests/qscriptvalue/qscriptvalue.pro:
3555 * qt/tests/qscriptvalue/tst_qscriptvalue.h:
3556 * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: Added.
3557 (tst_QScriptValue::strictlyEquals_initData):
3558 (tst_QScriptValue::strictlyEquals_makeData):
3559 (tst_QScriptValue::strictlyEquals_test):
3561 2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
3563 Reviewed by Kenneth Rohde Christiansen.
3565 New function QScriptEngine::newObject.
3567 The function creates a object of class Object and returns it
3570 [Qt] QScriptEngine API should contain a newObject function
3571 https://bugs.webkit.org/show_bug.cgi?id=39114
3573 * qt/api/qscriptengine.cpp:
3574 (QScriptEngine::newObject):
3575 * qt/api/qscriptengine.h:
3576 * qt/api/qscriptengine_p.cpp:
3577 (QScriptEnginePrivate::newObject):
3578 * qt/api/qscriptengine_p.h:
3579 * qt/tests/qscriptengine/tst_qscriptengine.cpp:
3580 (tst_QScriptEngine::newObject):
3582 2010-06-02 Gabor Loki <loki@webkit.org>
3584 Reviewed by Gavin Barraclough.
3585 https://bugs.webkit.org/show_bug.cgi?id=40011
3587 Thumb-2 build fix: The offset parameter of ldrh should be encoded as an
3588 imm12 immediate constant in load16. If it is not fit in the instruction
3589 a temporary register has to be used.
3591 * assembler/MacroAssemblerARMv7.h:
3592 (JSC::MacroAssemblerARMv7::load16):
3594 2010-06-02 Sterling Swigart <sswigart@google.com>
3596 Reviewed by David Levin.
3598 Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
3599 https://bugs.webkit.org/show_bug.cgi?id=39906
3601 * Configurations/FeatureDefines.xcconfig:
3603 2010-06-01 Gavin Barraclough <barraclough@apple.com>
3605 Reviewed by Sam Weinig.
3607 Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together
3609 This is a useful stepping stone towards reversing argument order.
3611 * bytecompiler/BytecodeGenerator.cpp:
3612 (JSC::BytecodeGenerator::BytecodeGenerator):
3613 (JSC::BytecodeGenerator::addParameter):
3614 (JSC::BytecodeGenerator::emitCall):
3615 (JSC::BytecodeGenerator::emitCallEval):
3616 (JSC::BytecodeGenerator::emitConstruct):
3617 * bytecompiler/BytecodeGenerator.h:
3618 (JSC::CallArguments::thisRegister):
3619 (JSC::CallArguments::argumentRegister):
3620 (JSC::CallArguments::callFrame):
3621 (JSC::CallArguments::count):
3622 (JSC::BytecodeGenerator::shouldEmitProfileHooks):
3623 * bytecompiler/NodesCodegen.cpp:
3624 (JSC::NewExprNode::emitBytecode):
3625 (JSC::CallArguments::CallArguments):
3626 (JSC::EvalFunctionCallNode::emitBytecode):
3627 (JSC::FunctionCallValueNode::emitBytecode):
3628 (JSC::FunctionCallResolveNode::emitBytecode):
3629 (JSC::FunctionCallBracketNode::emitBytecode):
3630 (JSC::FunctionCallDotNode::emitBytecode):
3631 (JSC::CallFunctionCallDotNode::emitBytecode):
3632 (JSC::ApplyFunctionCallDotNode::emitBytecode):
3634 2010-06-01 Yong Li <yoli@rim.com>
3636 Reviewed by Darin Adler.
3638 Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex.
3639 https://bugs.webkit.org/show_bug.cgi?id=39893
3641 * wtf/ThreadingPthreads.cpp:
3642 (WTF::Mutex::Mutex):
3644 2010-06-01 Kwang Yul Seo <skyul@company100.net>
3646 Reviewed by Xan Lopez.
3648 [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap
3649 https://bugs.webkit.org/show_bug.cgi?id=39831
3651 Use DEFINE_STATIC_LOCAL for static local variables.
3653 * wtf/gtk/ThreadingGtk.cpp:
3654 (WTF::threadMapMutex):
3656 (WTF::identifierByGthreadHandle):
3658 2010-06-01 Kent Tamura <tkent@chromium.org>
3660 Reviewed by Shinichiro Hamaji.
3662 Fix style errors of dtoa
3663 https://bugs.webkit.org/show_bug.cgi?id=39972
3665 Fix all errors reported by check-webkit-style.
3670 2010-05-30 Darin Adler <darin@apple.com>
3672 Reviewed by Sam Weinig.
3674 * wtf/OwnArrayPtr.h:
3675 (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr.
3676 At some point someone fixed the "asserts when assigning to 0 and the pointer is