52cb1add2e29ca88c77d8c357d84144331e54f5e
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2010-06-24  Oliver Hunt  <oliver@apple.com>
2
3         Reviewed by Maciej Stachowiak.
4
5         Single character string replacement may replace too many characters
6         https://bugs.webkit.org/show_bug.cgi?id=41138
7         <rdar://problem/8097496>
8
9         Simple fix to stop the rope path of single character replacement
10         once the first replacement occurs.
11
12         * runtime/JSString.cpp:
13         (JSC::JSString::replaceCharacter):
14
15 2010-06-24  Gabor Loki  <loki@webkit.org>
16
17         Reviewed by Gavin Barraclough.
18
19         Fix the length of instruction stream controlled by constant pool
20         https://bugs.webkit.org/show_bug.cgi?id=40293
21
22         The initial/maximum length of instruction stream (m_maxDistance) should
23         be set when the first constant arrives to the constant pool. Otherwise
24         the constant pool could be placed into an uninterrupted sequence.
25
26         * assembler/AssemblerBufferWithConstantPool.h:
27         (JSC::):
28
29 2010-06-24  Oliver Hunt  <oliver@apple.com>
30
31         Reviewed by Gavin Barraclough.
32
33         We assume bytecodeOffset will always return a value > 1,
34         so we adjust the failure case to return 1 instead of 0.
35
36         * bytecode/CodeBlock.h:
37         (JSC::CodeBlock::bytecodeOffset):
38
39 2010-06-23  Oliver Hunt  <oliver@apple.com>
40
41         Reviewed by Gavin Barraclough.
42
43         Custom-written JavaScript parser
44         https://bugs.webkit.org/show_bug.cgi?id=34019
45
46         Implement a recursive descent parser similar to that used by V8 and
47         SpiderMonkey.  Greater than 2x improvement in SunSpider parsing tests.
48
49         The parser consists of a JSParser class that uses a TreeBuilder to actually
50         build the AST.  There are currently two builders -- the ASTBuilder and
51         SyntaxChecker which separate the job of building an AST for code generation
52         and simply checking syntactic correctness.
53
54         There's still some less than ideal code remaining in the parser to allow
55         us to retain the existing lexing code with minimal changes.  We'll tidy
56         this up at a later date.
57
58         * GNUmakefile.am:
59         * JavaScriptCore.gypi:
60         * JavaScriptCore.pro:
61         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
62         * JavaScriptCore.xcodeproj/project.pbxproj:
63         * parser/ASTBuilder.h: Added.
64         (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo):
65         (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo):
66         (JSC::ASTBuilder::ASTBuilder):
67         (JSC::ASTBuilder::createSourceElements):
68         (JSC::ASTBuilder::varDeclarations):
69         (JSC::ASTBuilder::funcDeclarations):
70         (JSC::ASTBuilder::features):
71         (JSC::ASTBuilder::numConstants):
72         (JSC::ASTBuilder::appendToComma):
73         (JSC::ASTBuilder::createCommaExpr):
74         (JSC::ASTBuilder::createLogicalNot):
75         (JSC::ASTBuilder::createUnaryPlus):
76         (JSC::ASTBuilder::createVoid):
77         (JSC::ASTBuilder::thisExpr):
78         (JSC::ASTBuilder::createResolve):
79         (JSC::ASTBuilder::createObjectLiteral):
80         (JSC::ASTBuilder::createArray):
81         (JSC::ASTBuilder::createNumberExpr):
82         (JSC::ASTBuilder::createString):
83         (JSC::ASTBuilder::createBoolean):
84         (JSC::ASTBuilder::createNull):
85         (JSC::ASTBuilder::createBracketAccess):
86         (JSC::ASTBuilder::createDotAccess):
87         (JSC::ASTBuilder::createRegex):
88         (JSC::ASTBuilder::createNewExpr):
89         (JSC::ASTBuilder::createConditionalExpr):
90         (JSC::ASTBuilder::createAssignResolve):
91         (JSC::ASTBuilder::createFunctionExpr):
92         (JSC::ASTBuilder::createFunctionBody):
93         (JSC::ASTBuilder::createGetterOrSetterProperty):
94         (JSC::ASTBuilder::createArguments):
95         (JSC::ASTBuilder::createArgumentsList):
96         (JSC::ASTBuilder::createProperty):
97         (JSC::ASTBuilder::createPropertyList):
98         (JSC::ASTBuilder::createElementList):
99         (JSC::ASTBuilder::createFormalParameterList):
100         (JSC::ASTBuilder::createClause):
101         (JSC::ASTBuilder::createClauseList):
102         (JSC::ASTBuilder::setUsesArguments):
103         (JSC::ASTBuilder::createFuncDeclStatement):
104         (JSC::ASTBuilder::createBlockStatement):
105         (JSC::ASTBuilder::createExprStatement):
106         (JSC::ASTBuilder::createIfStatement):
107         (JSC::ASTBuilder::createForLoop):
108         (JSC::ASTBuilder::createForInLoop):
109         (JSC::ASTBuilder::createEmptyStatement):
110         (JSC::ASTBuilder::createVarStatement):
111         (JSC::ASTBuilder::createReturnStatement):
112         (JSC::ASTBuilder::createBreakStatement):
113         (JSC::ASTBuilder::createContinueStatement):
114         (JSC::ASTBuilder::createTryStatement):
115         (JSC::ASTBuilder::createSwitchStatement):
116         (JSC::ASTBuilder::createWhileStatement):
117         (JSC::ASTBuilder::createDoWhileStatement):
118         (JSC::ASTBuilder::createLabelStatement):
119         (JSC::ASTBuilder::createWithStatement):
120         (JSC::ASTBuilder::createThrowStatement):
121         (JSC::ASTBuilder::createDebugger):
122         (JSC::ASTBuilder::createConstStatement):
123         (JSC::ASTBuilder::appendConstDecl):
124         (JSC::ASTBuilder::appendStatement):
125         (JSC::ASTBuilder::addVar):
126         (JSC::ASTBuilder::combineCommaNodes):
127         (JSC::ASTBuilder::evalCount):
128         (JSC::ASTBuilder::appendBinaryExpressionInfo):
129         (JSC::ASTBuilder::operatorStackPop):
130         (JSC::ASTBuilder::operatorStackHasHigherPrecedence):
131         (JSC::ASTBuilder::getFromOperandStack):
132         (JSC::ASTBuilder::shrinkOperandStackBy):
133         (JSC::ASTBuilder::appendBinaryOperation):
134         (JSC::ASTBuilder::operatorStackAppend):
135         (JSC::ASTBuilder::popOperandStack):
136         (JSC::ASTBuilder::appendUnaryToken):
137         (JSC::ASTBuilder::unaryTokenStackLastType):
138         (JSC::ASTBuilder::unaryTokenStackLastStart):
139         (JSC::ASTBuilder::unaryTokenStackRemoveLast):
140         (JSC::ASTBuilder::assignmentStackAppend):
141         (JSC::ASTBuilder::createAssignment):
142         (JSC::ASTBuilder::Scope::Scope):
143         (JSC::ASTBuilder::setExceptionLocation):
144         (JSC::ASTBuilder::incConstants):
145         (JSC::ASTBuilder::usesThis):
146         (JSC::ASTBuilder::usesCatch):
147         (JSC::ASTBuilder::usesClosures):
148         (JSC::ASTBuilder::usesArguments):
149         (JSC::ASTBuilder::usesAssignment):
150         (JSC::ASTBuilder::usesWith):
151         (JSC::ASTBuilder::usesEval):
152         (JSC::ASTBuilder::createNumber):
153         (JSC::ASTBuilder::makeTypeOfNode):
154         (JSC::ASTBuilder::makeDeleteNode):
155         (JSC::ASTBuilder::makeNegateNode):
156         (JSC::ASTBuilder::makeBitwiseNotNode):
157         (JSC::ASTBuilder::makeMultNode):
158         (JSC::ASTBuilder::makeDivNode):
159         (JSC::ASTBuilder::makeAddNode):
160         (JSC::ASTBuilder::makeSubNode):
161         (JSC::ASTBuilder::makeLeftShiftNode):
162         (JSC::ASTBuilder::makeRightShiftNode):
163         (JSC::ASTBuilder::makeFunctionCallNode):
164         (JSC::ASTBuilder::makeBinaryNode):
165         (JSC::ASTBuilder::makeAssignNode):
166         (JSC::ASTBuilder::makePrefixNode):
167         (JSC::ASTBuilder::makePostfixNode):
168         * parser/JSParser.cpp: Added.
169         (JSC::JSParser::AllowInOverride::AllowInOverride):
170         (JSC::JSParser::AllowInOverride::~AllowInOverride):
171         (JSC::JSParser::token):
172         (JSC::JSParser::next):
173         (JSC::JSParser::consume):
174         (JSC::JSParser::match):
175         (JSC::JSParser::tokenStart):
176         (JSC::JSParser::tokenLine):
177         (JSC::JSParser::tokenEnd):
178         (JSC::JSParser::):
179         (JSC::JSParser::autoSemiColon):
180         (JSC::JSParser::canRecurse):
181         (JSC::JSParser::lastTokenEnd):
182         (JSC::jsParse):
183         (JSC::JSParser::JSParser):
184         (JSC::JSParser::parseProgram):
185         (JSC::JSParser::allowAutomaticSemicolon):
186         (JSC::JSParser::parseSourceElements):
187         (JSC::JSParser::parseVarDeclaration):
188         (JSC::JSParser::parseConstDeclaration):
189         (JSC::JSParser::parseDoWhileStatement):
190         (JSC::JSParser::parseWhileStatement):
191         (JSC::JSParser::parseVarDeclarationList):
192         (JSC::JSParser::parseConstDeclarationList):
193         (JSC::JSParser::parseForStatement):
194         (JSC::JSParser::parseBreakStatement):
195         (JSC::JSParser::parseContinueStatement):
196         (JSC::JSParser::parseReturnStatement):
197         (JSC::JSParser::parseThrowStatement):
198         (JSC::JSParser::parseWithStatement):
199         (JSC::JSParser::parseSwitchStatement):
200         (JSC::JSParser::parseSwitchClauses):
201         (JSC::JSParser::parseSwitchDefaultClause):
202         (JSC::JSParser::parseTryStatement):
203         (JSC::JSParser::parseDebuggerStatement):
204         (JSC::JSParser::parseBlockStatement):
205         (JSC::JSParser::parseStatement):
206         (JSC::JSParser::parseFormalParameters):
207         (JSC::JSParser::parseFunctionBody):
208         (JSC::JSParser::parseFunctionInfo):
209         (JSC::JSParser::parseFunctionDeclaration):
210         (JSC::JSParser::parseExpressionOrLabelStatement):
211         (JSC::JSParser::parseExpressionStatement):
212         (JSC::JSParser::parseIfStatement):
213         (JSC::JSParser::parseExpression):
214         (JSC::JSParser::parseAssignmentExpression):
215         (JSC::JSParser::parseConditionalExpression):
216         (JSC::isUnaryOp):
217         (JSC::JSParser::isBinaryOperator):
218         (JSC::JSParser::parseBinaryExpression):
219         (JSC::JSParser::parseProperty):
220         (JSC::JSParser::parseObjectLiteral):
221         (JSC::JSParser::parseArrayLiteral):
222         (JSC::JSParser::parsePrimaryExpression):
223         (JSC::JSParser::parseArguments):
224         (JSC::JSParser::parseMemberExpression):
225         (JSC::JSParser::parseUnaryExpression):
226         * parser/JSParser.h: Added.
227         (JSC::):
228         (JSC::JSTokenInfo::JSTokenInfo):
229         * parser/Lexer.cpp:
230         (JSC::Lexer::lex):
231         * parser/Lexer.h:
232         (JSC::Lexer::setLastLineNumber):
233         (JSC::Lexer::lastLineNumber):
234         * parser/NodeConstructors.h:
235         (JSC::Node::Node):
236         * parser/Parser.cpp:
237         (JSC::Parser::parse):
238         * parser/SyntaxChecker.h: Added.
239         (JSC::SyntaxChecker::SyntaxChecker):
240         (JSC::SyntaxChecker::createSourceElements):
241         (JSC::SyntaxChecker::makeFunctionCallNode):
242         (JSC::SyntaxChecker::appendToComma):
243         (JSC::SyntaxChecker::createCommaExpr):
244         (JSC::SyntaxChecker::makeAssignNode):
245         (JSC::SyntaxChecker::makePrefixNode):
246         (JSC::SyntaxChecker::makePostfixNode):
247         (JSC::SyntaxChecker::makeTypeOfNode):
248         (JSC::SyntaxChecker::makeDeleteNode):
249         (JSC::SyntaxChecker::makeNegateNode):
250         (JSC::SyntaxChecker::makeBitwiseNotNode):
251         (JSC::SyntaxChecker::createLogicalNot):
252         (JSC::SyntaxChecker::createUnaryPlus):
253         (JSC::SyntaxChecker::createVoid):
254         (JSC::SyntaxChecker::thisExpr):
255         (JSC::SyntaxChecker::createResolve):
256         (JSC::SyntaxChecker::createObjectLiteral):
257         (JSC::SyntaxChecker::createArray):
258         (JSC::SyntaxChecker::createNumberExpr):
259         (JSC::SyntaxChecker::createString):
260         (JSC::SyntaxChecker::createBoolean):
261         (JSC::SyntaxChecker::createNull):
262         (JSC::SyntaxChecker::createBracketAccess):
263         (JSC::SyntaxChecker::createDotAccess):
264         (JSC::SyntaxChecker::createRegex):
265         (JSC::SyntaxChecker::createNewExpr):
266         (JSC::SyntaxChecker::createConditionalExpr):
267         (JSC::SyntaxChecker::createAssignResolve):
268         (JSC::SyntaxChecker::createFunctionExpr):
269         (JSC::SyntaxChecker::createFunctionBody):
270         (JSC::SyntaxChecker::createArguments):
271         (JSC::SyntaxChecker::createArgumentsList):
272         (JSC::SyntaxChecker::createProperty):
273         (JSC::SyntaxChecker::createPropertyList):
274         (JSC::SyntaxChecker::createElementList):
275         (JSC::SyntaxChecker::createFormalParameterList):
276         (JSC::SyntaxChecker::createClause):
277         (JSC::SyntaxChecker::createClauseList):
278         (JSC::SyntaxChecker::setUsesArguments):
279         (JSC::SyntaxChecker::createFuncDeclStatement):
280         (JSC::SyntaxChecker::createBlockStatement):
281         (JSC::SyntaxChecker::createExprStatement):
282         (JSC::SyntaxChecker::createIfStatement):
283         (JSC::SyntaxChecker::createForLoop):
284         (JSC::SyntaxChecker::createForInLoop):
285         (JSC::SyntaxChecker::createEmptyStatement):
286         (JSC::SyntaxChecker::createVarStatement):
287         (JSC::SyntaxChecker::createReturnStatement):
288         (JSC::SyntaxChecker::createBreakStatement):
289         (JSC::SyntaxChecker::createContinueStatement):
290         (JSC::SyntaxChecker::createTryStatement):
291         (JSC::SyntaxChecker::createSwitchStatement):
292         (JSC::SyntaxChecker::createWhileStatement):
293         (JSC::SyntaxChecker::createWithStatement):
294         (JSC::SyntaxChecker::createDoWhileStatement):
295         (JSC::SyntaxChecker::createLabelStatement):
296         (JSC::SyntaxChecker::createThrowStatement):
297         (JSC::SyntaxChecker::createDebugger):
298         (JSC::SyntaxChecker::createConstStatement):
299         (JSC::SyntaxChecker::appendConstDecl):
300         (JSC::SyntaxChecker::createGetterOrSetterProperty):
301         (JSC::SyntaxChecker::appendStatement):
302         (JSC::SyntaxChecker::addVar):
303         (JSC::SyntaxChecker::combineCommaNodes):
304         (JSC::SyntaxChecker::evalCount):
305         (JSC::SyntaxChecker::appendBinaryExpressionInfo):
306         (JSC::SyntaxChecker::operatorStackPop):
307         * runtime/JSGlobalData.h:
308         * wtf/Platform.h:
309         * wtf/ThreadSpecific.h:
310         (WTF::T):
311
312 2010-06-23  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
313
314         Reviewed by Simon Hausmann.
315
316         Optimization of the QScriptValuePrivate.
317
318         Patch change only internals of the QScriptValuePrivate.
319         Most of the QScriptValuePrivate's attributes were moved
320         into an union.
321
322         [Qt] Optimization of the QScriptVAluePrivate.
323         https://bugs.webkit.org/show_bug.cgi?id=40415
324
325         * qt/api/qscriptengine_p.cpp:
326         (QScriptEnginePrivate::globalObject):
327         * qt/api/qscriptvalue_p.h:
328         (QScriptValuePrivate::):
329         (QScriptValuePrivate::~QScriptValuePrivate):
330         (QScriptValuePrivate::QScriptValuePrivate):
331         (QScriptValuePrivate::toString):
332         (QScriptValuePrivate::toNumber):
333         (QScriptValuePrivate::toBool):
334         (QScriptValuePrivate::toObject):
335         (QScriptValuePrivate::equals):
336         (QScriptValuePrivate::strictlyEquals):
337         (QScriptValuePrivate::assignEngine):
338         (QScriptValuePrivate::operator JSValueRef):
339         (QScriptValuePrivate::operator JSObjectRef):
340         (QScriptValuePrivate::refinedJSValue):
341
342 2010-06-23  Kwang Yul Seo  <skyul@company100.net>
343
344         Reviewed by Oliver Hunt.
345
346         [GTK] Implement ThreadSpecific with glib
347         https://bugs.webkit.org/show_bug.cgi?id=39829
348
349         Implement ThreadSpecific with glib's GStaticPrivate.
350         This patch makes it possible to build GTK port without pthread.
351
352         * wtf/ThreadSpecific.h:
353         (WTF::::ThreadSpecific):
354         (WTF::::~ThreadSpecific):
355         (WTF::::get):
356         (WTF::::set):
357         (WTF::::destroy):
358
359 2010-06-23  Leandro Pereira  <leandro@profusion.mobi>
360
361         Unreviewed build fix.
362
363         * CMakeLists.txt: Add runtime/RegExpCache.cpp.
364
365 2010-06-22  Renata Hodovan  <hodovan@inf.u-szeged.hu>
366
367         Reviewed by Geoffrey Garen.
368
369         Adding regular expression caching to JavaScriptCore
370         https://bugs.webkit.org/show_bug.cgi?id=38142
371
372         The cache is based on Round Robin eviction policy, and
373         can cache at most 256 character long regular expressions,
374         and at most 256 of them. These values can be changed at compile time.
375
376         * GNUmakefile.am:
377         * JavaScriptCore.gypi:
378         * JavaScriptCore.pro:
379         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
380         * JavaScriptCore.xcodeproj/project.pbxproj:
381         * bytecompiler/NodesCodegen.cpp:
382         (JSC::RegExpNode::emitBytecode):
383         * runtime/JSGlobalData.cpp:
384         (JSC::JSGlobalData::JSGlobalData):
385         (JSC::JSGlobalData::~JSGlobalData):
386         * runtime/JSGlobalData.h:
387         (JSC::JSGlobalData::regExpCache):
388         * runtime/RegExpCache.cpp: Added.
389         (JSC::RegExpCache::lookupOrCreate):
390         (JSC::RegExpCache::create):
391         (JSC::RegExpCache::RegExpCache):
392         * runtime/RegExpCache.h: Added.
393         * runtime/RegExpConstructor.cpp:
394         (JSC::constructRegExp):
395         * runtime/RegExpKey.h: Added.
396         (JSC::RegExpKey::RegExpKey):
397         (JSC::RegExpKey::getFlagsValue):
398         (WTF::operator==):
399         (WTF::):
400         * runtime/RegExpPrototype.cpp:
401         (JSC::regExpProtoFuncCompile):
402         * runtime/StringPrototype.cpp:
403         (JSC::stringProtoFuncMatch):
404         (JSC::stringProtoFuncSearch):
405
406 2010-06-22  Gabor Loki  <loki@webkit.org>
407
408         Reviewed by Geoffrey Garen.
409
410         Add native call support for ARM and Thumb-2 JIT.
411         https://bugs.webkit.org/show_bug.cgi?id=40231
412
413         * jit/JITOpcodes.cpp:
414         (JSC::JIT::privateCompileCTINativeCall):
415         * jit/JITOpcodes32_64.cpp:
416         (JSC::JIT::privateCompileCTINativeCall):
417         * wtf/Platform.h:
418
419 2010-06-21  Oliver Hunt  <oliver@apple.com>
420
421         Reviewed by Geoffrey Garen.
422
423         Make JSC more resilient in the face of parse failures
424         https://bugs.webkit.org/show_bug.cgi?id=40951
425
426         A number of recent bugs have occurred due to issues like miscounting
427         BOMs, etc which lead to interesting crashes later on.  Adding this
428         logic hardens JSC in the face of these errors, and has no impact on
429         performance (32bit jit actually gets 0.7% faster but I put that down
430         to cache effects).
431
432         * bytecode/CodeBlock.cpp:
433         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
434         (JSC::CodeBlock::lineNumberForBytecodeOffset):
435         (JSC::CodeBlock::expressionRangeForBytecodeOffset):
436         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
437         * bytecode/CodeBlock.h:
438         (JSC::CodeBlock::bytecodeOffset):
439         * interpreter/Interpreter.cpp:
440         (JSC::Interpreter::execute):
441         (JSC::Interpreter::executeCall):
442         (JSC::Interpreter::executeConstruct):
443         (JSC::Interpreter::prepareForRepeatCall):
444         (JSC::Interpreter::privateExecute):
445         * jit/JITOpcodes.cpp:
446         (JSC::JIT::privateCompileCTIMachineTrampolines):
447         * jit/JITOpcodes32_64.cpp:
448         (JSC::JIT::privateCompileCTIMachineTrampolines):
449         * jit/JITStubs.cpp:
450         (JSC::DEFINE_STUB_FUNCTION):
451         * runtime/ArrayPrototype.cpp:
452         (JSC::isNumericCompareFunction):
453         * runtime/Executable.cpp:
454         (JSC::FunctionExecutable::compileForCall):
455         (JSC::FunctionExecutable::compileForConstruct):
456         (JSC::FunctionExecutable::generateJITCodeForCall):
457         (JSC::FunctionExecutable::generateJITCodeForConstruct):
458         (JSC::FunctionExecutable::reparseExceptionInfo):
459         (JSC::EvalExecutable::reparseExceptionInfo):
460         * runtime/Executable.h:
461         (JSC::FunctionExecutable::bytecodeForCall):
462         (JSC::FunctionExecutable::bytecodeForConstruct):
463         * runtime/JSGlobalData.cpp:
464         (JSC::JSGlobalData::numericCompareFunction):
465
466 2010-06-21  John Sullivan  <sullivan@apple.com>
467
468         Reviewed by Adam Roben.
469
470         RetainPtr can't be used in HashMaps or HashSets
471         <https://bugs.webkit.org/show_bug.cgi?id=40938>
472         
473         Added hashing knowledge similar to that in COMPtr.h.
474
475         * wtf/RetainPtr.h:
476         (WTF::RetainPtr::RetainPtr):
477         New function, copied from COMPtr.h but for the type change.
478         (WTF::RetainPtr::isHashTableDeletedValue):
479         Ditto.
480         (WTF::RetainPtr::hashTableDeletedValue):
481         Ditto.
482         Added template code for HashTraits and PtrHash copied from COMPtr.h but for the type change.
483         The only difference is that constructDeletedValue() matches the RefPtr implementation (in HashTraits.h)
484         rather than the COMPtr implementation.
485
486 2010-06-19  Oliver Hunt  <oliver@apple.com>
487
488         Reviewed by Geoffrey Garen.
489
490         Need to ensure that we grow the RegisterFile when creating a callframe for host code
491         https://bugs.webkit.org/show_bug.cgi?id=40858
492         <rdar://problem/8108986>
493
494         In the past the use of the callframe in hostcode was much more
495         limited.  Now that we expect the callframe to always be valid
496         we need to grow the RegisterFile so that this is actually the
497         case.  In this particular case the problem was failing to grow
498         the registerfile could lead to a callframe that extended beyond
499         RegisterFiler::end(), so vm re-entry would clobber the callframe
500         other scenarios could also lead to badness.
501
502         I was unable to construct a simple testcase to trigger badness,
503         and any such testcase would be so dependent on exact vm stack
504         layout that it would be unlikely to work as a testcase following
505         any callframe or register allocation changes anyway.
506
507         Thankfully the new assertion I added should help to catch these
508         failures in future, and triggers on a couple of tests currently.
509
510         * interpreter/CallFrame.cpp:
511         (JSC::CallFrame::registerFile):
512         * interpreter/CallFrame.h:
513         (JSC::ExecState::init):
514         * interpreter/Interpreter.cpp:
515         (JSC::Interpreter::privateExecute):
516         * jit/JITStubs.cpp:
517         (JSC::DEFINE_STUB_FUNCTION):
518
519 2010-06-21  Satish Sampath  <satish@chromium.org>
520
521         Reviewed by Steve Block.
522
523         Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
524         https://bugs.webkit.org/show_bug.cgi?id=40878
525
526         * Configurations/FeatureDefines.xcconfig:
527
528 2010-06-21  Kwang Yul Seo  <skyul@company100.net>
529
530         Reviewed by Kent Tamura.
531
532         [BREWMP] Use global new/delete operator overloading with USE_SYSTEM_MALLOC=1
533         https://bugs.webkit.org/show_bug.cgi?id=40653
534
535         Currently, other ports do not use global new/delete operator overloading
536         when USE_SYSTEM_MALLOC=1. Brew MP uses system malloc, but it needs to enable
537         "global fastMalloc new" because the default new/delete causes crash on device.
538         We need to replace them with Brew MP's MALLOC/FREE.
539
540         * wtf/FastMalloc.h:
541
542 2010-06-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
543
544         Reviewed by Simon Hausmann.
545
546         [Qt] Work around a build problem with libjscore on Symbian.
547         https://bugs.webkit.org/show_bug.cgi?id=40840
548
549         Sbsv2 sometimes have problems with debug/release configuration
550         determination causing QtWebKit in release to try linking with the debug
551         JavaScriptCore static library. This patch limit the jscore/jscored
552         r58306 fix necessary for mac builds only to the mac platform to prevent the
553         different name problem.
554
555         The real fix would be to fix qmake or the toolchain, this patch might
556         help meanwhile.
557
558         * JavaScriptCore.pri:
559
560 2010-06-21  Patrick Gansterer  <paroga@paroga.com>
561
562         Reviewed by Kent Tamura.
563
564         Buildfix after r61338.
565         https://bugs.webkit.org/show_bug.cgi?id=40888
566
567         roundUpAllocationSize is needed in RegisterFile.h.
568
569         * jit/ExecutableAllocator.h:
570
571 2010-06-19  Kwang Yul Seo  <skyul@company100.net>
572
573         Reviewed by Darin Adler.
574
575         Include <string.h> in StringExtras.h
576         https://bugs.webkit.org/show_bug.cgi?id=40808
577
578         Without string.h, RVCT 2.2 can't compile StringExtras.h.
579         It can't find strlen and strncmp.
580
581         * wtf/StringExtras.h:
582
583 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
584
585         Reviewed by Kenneth Rohde Christiansen.
586
587         Don't use __attribute__((may_alias)) with the Intel compiler,
588         as it doesn't understand it.
589
590         * wtf/Vector.h:
591
592 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
593
594         Reviewed by Kenneth Rohde Christiansen.
595
596         Fix compilation with the Intel C++ compiler (11.1.072).
597
598         Like RVCT, label pointers must be void*, not const void*.
599
600         * bytecode/Opcode.h:
601
602 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
603
604         Reviewed by Kenneth Rohde Christiansen.
605
606         Add the WTF_COMPILER_INTEL for when the Intel compiler is used
607         for building. Usually, the Intel compiler masquerades as
608         another compiler in the system and gets away with it, but some
609         times specific fixes are required (such as when using language
610         extensions).
611
612         * wtf/Platform.h:
613
614 2010-06-18  Oliver Hunt  <oliver@apple.com>
615
616         Reviewed by Geoffrey Garen.
617
618         Incorrect handling of multiple BOMs scattered through a file.
619         https://bugs.webkit.org/show_bug.cgi?id=40865
620
621         When determining the offset of open and close braces in a source
622         with BOMs we were finishing our count early as we failed to account
623         for BOMs prior to the open/close brace positions effecting those
624         positions.
625
626         * parser/Lexer.cpp:
627         (JSC::Lexer::sourceCode):
628
629 2010-06-17  Oliver Hunt  <oliver@apple.com>
630
631         Reviewed by Sam Weinig.
632
633         Don't throw away exception information for functions that use exceptions
634         https://bugs.webkit.org/show_bug.cgi?id=40786
635
636         Simple patch to stop JSC from throwing away the exception information
637         of a function that uses "exceptiony" features like try and throw.  This
638         is a speed up for catching expressions but it's difficult to quantify as
639         the old cost of reparsing is amortised over all exceptions caught in the
640         effected function.
641
642         * bytecode/CodeBlock.cpp:
643         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
644         * bytecompiler/BytecodeGenerator.cpp:
645         (JSC::BytecodeGenerator::generate):
646         (JSC::BytecodeGenerator::emitCatch):
647         * bytecompiler/BytecodeGenerator.h:
648         (JSC::BytecodeGenerator::emitThrow):
649
650 2010-06-18  Anders Carlsson  <andersca@apple.com>
651
652         Reviewed by Sam Weinig.
653
654         Add PlatformStrategies and PluginStrategy classes.
655         https://bugs.webkit.org/show_bug.cgi?id=40850
656
657         * wtf/Platform.h:
658
659 2010-06-18  Leandro Pereira  <leandro@profusion.mobi>
660
661         [EFL] Unreviewed build fix.
662
663         * wtf/CMakeLists.txt: Add MD5.cpp.
664
665 2010-06-17  Shu Chang  <chang.shu@nokia.com>
666
667         Reviewed by Kenneth Rohde Christiansen.
668
669         [Qt] Fix the link error on symbian with ENABLE_JIT=0.
670         1. Add "#if ENABLE(JIT)" in the header file;
671         2. Put feature enable/disable logic to a common.pri so
672         that both JavaScriptCore.pri and WebCore.pri can share.
673
674         https://bugs.webkit.org/show_bug.cgi?id=40780
675
676         * JavaScriptCore.pri:
677         * jit/ExecutableAllocator.h:
678
679 2010-06-17  Darin Adler  <darin@apple.com>
680
681         Reviewed by Sam Weinig.
682
683         Use adoptRef and create functions in more code paths
684         https://bugs.webkit.org/show_bug.cgi?id=40760
685
686         * API/JSClassRef.h: Removed unneeded include of RefCounted.h.
687         * API/JSWeakObjectMapRefPrivate.cpp: Ditto.
688
689         * bytecode/CodeBlock.h:
690         (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the
691         SharedSymbolTable::create function instead of calling new directly.
692
693         * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable
694         class and made the constructor private.
695
696 2010-06-17  Mark Brand  <mabrand@mabrand.nl>
697
698         Reviewed by Simon Hausmann.
699
700         [Qt] use "win32-g++*" scope to match all MinGW makespecs
701
702         The scope "win32-g++" comes from the name of the makespec. However, it
703         is frequently used to check for MinGW. This works fine as long as
704         win32-g++ is the only makespec for MinGW. Now we need the wildcard
705         to cover "win32-g++-cross" as well.
706
707         * JavaScriptCore.pro:
708
709 2010-06-16  Darin Adler  <darin@apple.com>
710
711         Reviewed by David Levin.
712
713         Deploy adoptRef in more places, including all HTML and MathML elements
714         https://bugs.webkit.org/show_bug.cgi?id=39941
715
716         * wtf/ThreadSafeShared.h: Made the constructor protected and removed the
717         unneeded support for initial reference counts other than 1.
718
719 2010-06-16  Peter Varga  <pvarga@inf.u-szeged.hu>
720
721         Reviewed by Geoffrey Garen.
722
723         Store matchBegin directly in the array of output instead of the stack.
724         https://bugs.webkit.org/show_bug.cgi?id=38988
725
726         * yarr/RegexJIT.cpp:
727         (JSC::Yarr::RegexGenerator::generateDisjunction):
728         (JSC::Yarr::RegexGenerator::generate):
729
730 2010-06-15  Anders Carlsson  <andersca@apple.com>
731
732         Reviewed by Sam Weinig.
733
734         Make JavaScriptCore build with clang++.
735
736         * jit/JITInlineMethods.h:
737         (JSC::JIT::emitPutVirtualRegister):
738         Explicitly cast to an int.
739
740         * yarr/RegexCompiler.cpp:
741         (JSC::Yarr::compileRegex):
742         Return 0 instead of false.
743
744 2010-06-15  Adam Roben  <aroben@apple.com>
745
746         Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
747
748         Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
749
750         Reviewed by Sam Weinig.
751
752         * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of
753         JavaScriptCore's DerivedSources directory to
754         AppleInternal/Sources/JavaScriptCore.
755
756 2010-06-15  Gabor Loki  <loki@webkit.org>
757
758         Rubber-stamped by Eric Seidel.
759
760         Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM
761         https://bugs.webkit.org/show_bug.cgi?id=40423
762
763         Using OBJECT_OFFSETOF macro instead of objectof to bypass access to
764         non-static data member warning.
765
766         * jit/JITPropertyAccess32_64.cpp:
767         (JSC::JIT::privateCompilePutByIdTransition):
768
769 2010-06-11  Eric Seidel  <eric@webkit.org>
770
771         Reviewed by Adam Barth.
772
773         Rename the rest of the *Tokenizer classes to *DocumentParser
774         https://bugs.webkit.org/show_bug.cgi?id=40507
775
776         * wtf/Platform.h:
777          - fixed a comment to match new names.
778
779 2010-06-11  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
780
781         Reviewed by Simon Hausmann.
782
783         [Qt] Explicit conversions from QtScript types to JSC opaque types were removed.
784         https://bugs.webkit.org/show_bug.cgi?id=40412
785
786         Conversion between a JSC C types and a QtScript private types, takes
787         main part of the source code. In most cases a mapping between the types
788         is one to one. New cast operators were added to simplify the code.
789
790         The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef.
791         The QScriptEnginePrivate could be casted to the JSGlobalContext.
792         The QScriptProgramPrivate could be casted to the JSStringRef.
793
794         * qt/api/qscriptengine_p.cpp:
795         (QScriptEnginePrivate::evaluate):
796         (QScriptEnginePrivate::newObject):
797         (QScriptEnginePrivate::globalObject):
798         * qt/api/qscriptengine_p.h:
799         (QScriptEnginePrivate::operator JSGlobalContextRef):
800         * qt/api/qscriptprogram_p.h:
801         (QScriptProgramPrivate::operator JSStringRef):
802         * qt/api/qscriptsyntaxcheckresult.cpp:
803         (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate):
804         (QScriptSyntaxCheckResultPrivate::errorMessage):
805         (QScriptSyntaxCheckResultPrivate::errorLineNumber):
806         * qt/api/qscriptvalue_p.h:
807         (QScriptValuePrivate::~QScriptValuePrivate):
808         (QScriptValuePrivate::QScriptValuePrivate):
809         (QScriptValuePrivate::isBool):
810         (QScriptValuePrivate::isNumber):
811         (QScriptValuePrivate::isNull):
812         (QScriptValuePrivate::isString):
813         (QScriptValuePrivate::isUndefined):
814         (QScriptValuePrivate::isFunction):
815         (QScriptValuePrivate::toString):
816         (QScriptValuePrivate::toNumber):
817         (QScriptValuePrivate::toBool):
818         (QScriptValuePrivate::toObject):
819         (QScriptValuePrivate::equals):
820         (QScriptValuePrivate::strictlyEquals):
821         (QScriptValuePrivate::instanceOf):
822         (QScriptValuePrivate::call):
823         (QScriptValuePrivate::operator JSValueRef):
824         (QScriptValuePrivate::operator JSObjectRef):
825         (QScriptValuePrivate::setValue):
826         (QScriptValuePrivate::inherits):
827         (QScriptValuePrivate::refinedJSValue):
828
829 2010-05-31  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
830
831         Reviewed by Simon Hausmann.
832
833         [Qt] Implement the simple text code path.
834         https://bugs.webkit.org/show_bug.cgi?id=40077
835
836         Remove the FONT_FAST_PATH macro and use the Qt's
837         fast text implementation instead of the one of WebKit.
838
839         The Qt::TextBypassShaping flag is used to tell Qt to
840         only use the glyph advances.
841
842         Qt 4.7 is needed to get this flag thus the complex path is always
843         used if QtWebKit is compiled against an earlier version.
844
845         Contrary to the WebKit's implementation, the complex code path
846         is taken if the text is RightToLeft, justified or is formatted
847         with non-zero letter or word spacing.
848
849         * wtf/Platform.h:
850
851 2010-06-11  Luiz Agostini  <luiz.agostini@openbossa.org>
852
853         Reviewed by Kenneth Rohde Christiansen.
854
855         add codePointCompare to JavaScriptCore.exp
856         https://bugs.webkit.org/show_bug.cgi?id=40426
857
858         * JavaScriptCore.exp:
859
860 2010-06-10  Oliver Hunt  <oliver@apple.com>
861
862         Reviewed by Maciej Stachowiak.
863
864         Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode
865         https://bugs.webkit.org/show_bug.cgi?id=40367
866
867         If we're in the slow case of right shift we must write the type tag as
868         the only reason we hit this code path is because we know we're working
869         with a double.  eg. we are guaranteed that the tag cannot be reused.
870
871         * jit/JITArithmetic32_64.cpp:
872         (JSC::JIT::emitRightShiftSlowCase):
873
874 2010-06-10  Kwang Yul Seo  <skyul@company100.net>
875
876         Reviewed by Eric Seidel.
877
878         Remove weakRandomNumber
879         https://bugs.webkit.org/show_bug.cgi?id=40291
880
881         weakRandomNumber is used nowhere. Currently, WeakRandom is used instead.
882
883         * wtf/RandomNumber.cpp:
884         * wtf/RandomNumber.h:
885
886 2010-06-09  Alexey Proskuryakov  <ap@apple.com>
887
888         Reviewed by Brady Eidson.
889
890         Export StringImpl::ascii(). It might be not very useful, but it's a public function.
891
892         * JavaScriptCore.exp:
893
894 2010-06-09  Leandro Pereira  <leandro@profusion.mobi>
895
896         Reviewed by Adam Treat.
897
898         [EFL] Allow building core libraries as shared objects to speed up
899         linking time on machines with small amounts of memory.
900         http://webkit.org/b/39899
901
902         * CMakeLists.txt: If building with shared core, install the lib.
903         * jsc/CMakeListsEfl.txt: Needs Glib and Ecore to link dynamically.
904         * wtf/CMakeLists.txt: If building with shared core, install the lib.
905
906 2010-06-09  Gabor Loki  <loki@webkit.org>
907
908         Reviewed by David Levin.
909
910         Remove some unused variable warnings from JITOpcodes
911         https://bugs.webkit.org/show_bug.cgi?id=40298
912
913         * jit/JITOpcodes.cpp:
914         (JSC::JIT::privateCompileCTINativeCall):
915         * jit/JITOpcodes32_64.cpp:
916         (JSC::JIT::privateCompileCTINativeCall):
917
918 2010-05-18  Yuzo Fujishima  <yuzo@google.com>
919
920         Reviewed by Shinichiro Hamaji.
921
922         Fix for Bug 34529 -  [CSSOM] issues with cssText and selectorText
923         Add U16_LENGTH that is needed to implement CSS character serialization.
924         https://bugs.webkit.org/show_bug.cgi?id=34529
925
926         * wtf/unicode/qt4/UnicodeQt4.h:
927         * wtf/unicode/wince/UnicodeWince.h:
928
929 2010-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
930
931         Unreviewed, rolling out r60830.
932         http://trac.webkit.org/changeset/60830
933         https://bugs.webkit.org/show_bug.cgi?id=40305
934
935         Broke the Windows build (Requested by abarth on #webkit).
936
937         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
938         * wtf/OwnPtrCommon.h:
939         * wtf/brew/OwnPtrBrew.h: Removed.
940         * wtf/win/OwnPtrWin.h: Removed.
941
942 2010-06-08  MORITA Hajime  <morrita@google.com>
943
944         Unreviewed. An attempt to fix test break.
945
946         * Configurations/FeatureDefines.xcconfig:
947
948 2010-06-08  Kwang Yul Seo  <skyul@company100.net>
949
950         Reviewed by Adam Barth.
951
952         Change OwnPtrCommon to include platform-specific headers
953         https://bugs.webkit.org/show_bug.cgi?id=40279
954
955         Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
956         Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
957
958         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
959         * wtf/OwnPtrCommon.h:
960         * wtf/brew/OwnPtrBrew.h: Added.
961         * wtf/win/OwnPtrWin.h: Added.
962
963 2010-06-07  MORITA Hajime  <morrita@google.com>
964         
965         Reviewed by Kent Tamura.
966
967         https://bugs.webkit.org/show_bug.cgi?id=40219
968         [Mac] ENABLE_METER_TAG should be enabled
969         
970         Added ENABLE_METER_TAG.
971
972         * Configurations/FeatureDefines.xcconfig:
973
974 2010-06-07  Kwang Yul Seo  <skyul@company100.net>
975
976         Reviewed by Eric Seidel.
977
978         [BREWMP] Add more types to OwnPtr
979         https://bugs.webkit.org/show_bug.cgi?id=39667
980
981         Add ISSL and ISocket to the list of OwnPtr-ed type.
982
983         * wtf/OwnPtrCommon.h:
984         * wtf/brew/OwnPtrBrew.cpp:
985         (WTF::deleteOwnedPtr):
986
987 2010-06-07  Benjamin Poulain  <benjamin.poulain@nokia.com>
988
989         Reviewed by Simon Hausmann.
990
991         [Qt] Crash when compiling on Snow Leopard and running on Leopard
992         https://bugs.webkit.org/show_bug.cgi?id=31403
993
994         Disable the use of pthread_setname_np and other symbols
995         when targetting Leopard.
996
997         Use the defines TARGETING_XX instead of BUILDING_ON_XX 
998         for features that cannot be used before Snow Leopard.
999
1000         * wtf/Platform.h:
1001
1002 2010-06-07  Gabor Loki  <loki@webkit.org>
1003
1004         Reviewed by NOBODY (JSVALUE32_64 build fix).
1005
1006         * jit/JITOpcodes32_64.cpp:
1007         (JSC::JIT::privateCompileCTINativeCall):
1008
1009 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
1010
1011         Reviewed by NOBODY (windows build fix pt 2).
1012
1013         * JavaScriptCore.exp:
1014         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1015
1016 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
1017
1018         Reviewed by NOBODY (windows build fix pt 1).
1019
1020         * JavaScriptCore.exp:
1021         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1022
1023 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
1024
1025         Reviewed by Sam Weinig.
1026
1027         Bug 40214 - Clean up error construction / throwing in JSC.
1028         
1029         The one egregious insanity here is that creating an error requires
1030         a VM-entry-esqe-host call (the string argument is wrapped as a JS
1031         object & pushed on the RegisterFile, then unwrapped back to a
1032         UString).  Changing this also means you only require a global
1033         object, not an ExecState, to create an error.
1034
1035         The methods to create error objects are also parameterized
1036         requiring a switch on the type, which can be made cleaner and
1037         faster by moving to a separate method per error type.  Code to add
1038         divot information to error had been duplicated, and is coalesced
1039         back into a single function.
1040
1041         Convenience methods added to create & throw type & syntax error
1042         with a default error message, since this is a common case.
1043
1044         Also, errors are currently thrown either using
1045         "throwError(exec, error)" or "exec->setException(error)" - unify
1046         on the former, since this is more commonly used.  Add
1047         "throwVMError(exec, error)" equivalents, as a convenience for
1048         cases where the result was being wrapped in "JSValue::encode(...)".
1049
1050         * API/JSCallbackConstructor.cpp:
1051         (JSC::constructJSCallback):
1052         * API/JSCallbackFunction.cpp:
1053         (JSC::JSCallbackFunction::call):
1054         * API/JSCallbackObjectFunctions.h:
1055         (JSC::::getOwnPropertySlot):
1056         (JSC::::put):
1057         (JSC::::deleteProperty):
1058         (JSC::::construct):
1059         (JSC::::hasInstance):
1060         (JSC::::call):
1061         (JSC::::toNumber):
1062         (JSC::::toString):
1063         (JSC::::staticValueGetter):
1064         (JSC::::staticFunctionGetter):
1065         (JSC::::callbackGetter):
1066         * API/JSObjectRef.cpp:
1067         (JSObjectMakeError):
1068         * JavaScriptCore.exp:
1069         * bytecompiler/BytecodeGenerator.cpp:
1070         (JSC::BytecodeGenerator::emitNewError):
1071         (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
1072         * bytecompiler/BytecodeGenerator.h:
1073         * bytecompiler/NodesCodegen.cpp:
1074         (JSC::ThrowableExpressionData::emitThrowError):
1075         (JSC::RegExpNode::emitBytecode):
1076         (JSC::PostfixErrorNode::emitBytecode):
1077         (JSC::PrefixErrorNode::emitBytecode):
1078         (JSC::AssignErrorNode::emitBytecode):
1079         (JSC::ForInNode::emitBytecode):
1080         (JSC::ContinueNode::emitBytecode):
1081         (JSC::BreakNode::emitBytecode):
1082         (JSC::ReturnNode::emitBytecode):
1083         (JSC::LabelNode::emitBytecode):
1084         * interpreter/CallFrame.h:
1085         * interpreter/Interpreter.cpp:
1086         (JSC::Interpreter::throwException):
1087         (JSC::Interpreter::privateExecute):
1088         * jit/JITStubs.cpp:
1089         (JSC::DEFINE_STUB_FUNCTION):
1090         * jsc.cpp:
1091         (functionRun):
1092         (functionLoad):
1093         (functionCheckSyntax):
1094         * parser/Nodes.h:
1095         * runtime/ArrayConstructor.cpp:
1096         (JSC::constructArrayWithSizeQuirk):
1097         * runtime/ArrayPrototype.cpp:
1098         (JSC::arrayProtoFuncToString):
1099         (JSC::arrayProtoFuncToLocaleString):
1100         (JSC::arrayProtoFuncJoin):
1101         (JSC::arrayProtoFuncFilter):
1102         (JSC::arrayProtoFuncMap):
1103         (JSC::arrayProtoFuncEvery):
1104         (JSC::arrayProtoFuncForEach):
1105         (JSC::arrayProtoFuncSome):
1106         (JSC::arrayProtoFuncReduce):
1107         (JSC::arrayProtoFuncReduceRight):
1108         * runtime/BooleanPrototype.cpp:
1109         (JSC::booleanProtoFuncToString):
1110         (JSC::booleanProtoFuncValueOf):
1111         * runtime/DatePrototype.cpp:
1112         (JSC::dateProtoFuncToString):
1113         (JSC::dateProtoFuncToUTCString):
1114         (JSC::dateProtoFuncToISOString):
1115         (JSC::dateProtoFuncToDateString):
1116         (JSC::dateProtoFuncToTimeString):
1117         (JSC::dateProtoFuncToLocaleString):
1118         (JSC::dateProtoFuncToLocaleDateString):
1119         (JSC::dateProtoFuncToLocaleTimeString):
1120         (JSC::dateProtoFuncGetTime):
1121         (JSC::dateProtoFuncGetFullYear):
1122         (JSC::dateProtoFuncGetUTCFullYear):
1123         (JSC::dateProtoFuncToGMTString):
1124         (JSC::dateProtoFuncGetMonth):
1125         (JSC::dateProtoFuncGetUTCMonth):
1126         (JSC::dateProtoFuncGetDate):
1127         (JSC::dateProtoFuncGetUTCDate):
1128         (JSC::dateProtoFuncGetDay):
1129         (JSC::dateProtoFuncGetUTCDay):
1130         (JSC::dateProtoFuncGetHours):
1131         (JSC::dateProtoFuncGetUTCHours):
1132         (JSC::dateProtoFuncGetMinutes):
1133         (JSC::dateProtoFuncGetUTCMinutes):
1134         (JSC::dateProtoFuncGetSeconds):
1135         (JSC::dateProtoFuncGetUTCSeconds):
1136         (JSC::dateProtoFuncGetMilliSeconds):
1137         (JSC::dateProtoFuncGetUTCMilliseconds):
1138         (JSC::dateProtoFuncGetTimezoneOffset):
1139         (JSC::dateProtoFuncSetTime):
1140         (JSC::setNewValueFromTimeArgs):
1141         (JSC::setNewValueFromDateArgs):
1142         (JSC::dateProtoFuncSetMilliSeconds):
1143         (JSC::dateProtoFuncSetUTCMilliseconds):
1144         (JSC::dateProtoFuncSetSeconds):
1145         (JSC::dateProtoFuncSetUTCSeconds):
1146         (JSC::dateProtoFuncSetMinutes):
1147         (JSC::dateProtoFuncSetUTCMinutes):
1148         (JSC::dateProtoFuncSetHours):
1149         (JSC::dateProtoFuncSetUTCHours):
1150         (JSC::dateProtoFuncSetDate):
1151         (JSC::dateProtoFuncSetUTCDate):
1152         (JSC::dateProtoFuncSetMonth):
1153         (JSC::dateProtoFuncSetUTCMonth):
1154         (JSC::dateProtoFuncSetFullYear):
1155         (JSC::dateProtoFuncSetUTCFullYear):
1156         (JSC::dateProtoFuncSetYear):
1157         (JSC::dateProtoFuncGetYear):
1158         (JSC::dateProtoFuncToJSON):
1159         * runtime/Error.cpp:
1160         (JSC::createError):
1161         (JSC::createEvalError):
1162         (JSC::createRangeError):
1163         (JSC::createReferenceError):
1164         (JSC::createSyntaxError):
1165         (JSC::createTypeError):
1166         (JSC::createURIError):
1167         (JSC::addErrorSourceInfo):
1168         (JSC::addErrorDivotInfo):
1169         (JSC::addErrorInfo):
1170         (JSC::hasErrorInfo):
1171         (JSC::throwError):
1172         (JSC::throwTypeError):
1173         (JSC::throwSyntaxError):
1174         * runtime/Error.h:
1175         (JSC::throwVMError):
1176         (JSC::throwVMTypeError):
1177         * runtime/ErrorConstructor.cpp:
1178         (JSC::constructWithErrorConstructor):
1179         (JSC::callErrorConstructor):
1180         * runtime/ErrorConstructor.h:
1181         * runtime/ErrorInstance.cpp:
1182         (JSC::ErrorInstance::ErrorInstance):
1183         (JSC::ErrorInstance::create):
1184         * runtime/ErrorInstance.h:
1185         * runtime/ErrorPrototype.cpp:
1186         (JSC::ErrorPrototype::ErrorPrototype):
1187         * runtime/ExceptionHelpers.cpp:
1188         (JSC::createStackOverflowError):
1189         (JSC::createUndefinedVariableError):
1190         (JSC::createInvalidParamError):
1191         (JSC::createNotAConstructorError):
1192         (JSC::createNotAFunctionError):
1193         (JSC::createNotAnObjectError):
1194         (JSC::throwOutOfMemoryError):
1195         * runtime/ExceptionHelpers.h:
1196         * runtime/Executable.cpp:
1197         (JSC::EvalExecutable::compile):
1198         (JSC::ProgramExecutable::checkSyntax):
1199         (JSC::ProgramExecutable::compile):
1200         * runtime/FunctionConstructor.cpp:
1201         (JSC::constructFunction):
1202         * runtime/FunctionPrototype.cpp:
1203         (JSC::functionProtoFuncToString):
1204         (JSC::functionProtoFuncApply):
1205         (JSC::functionProtoFuncCall):
1206         * runtime/Identifier.cpp:
1207         (JSC::Identifier::from):
1208         * runtime/Identifier.h:
1209         * runtime/JSArray.cpp:
1210         (JSC::JSArray::put):
1211         * runtime/JSFunction.cpp:
1212         (JSC::callHostFunctionAsConstructor):
1213         * runtime/JSGlobalObjectFunctions.cpp:
1214         (JSC::encode):
1215         (JSC::decode):
1216         (JSC::globalFuncEval):
1217         * runtime/JSONObject.cpp:
1218         (JSC::Stringifier::appendStringifiedValue):
1219         (JSC::Walker::walk):
1220         (JSC::JSONProtoFuncParse):
1221         (JSC::JSONProtoFuncStringify):
1222         * runtime/JSObject.cpp:
1223         (JSC::throwSetterError):
1224         (JSC::JSObject::put):
1225         (JSC::JSObject::putWithAttributes):
1226         (JSC::JSObject::defaultValue):
1227         (JSC::JSObject::hasInstance):
1228         (JSC::JSObject::defineOwnProperty):
1229         * runtime/JSObject.h:
1230         * runtime/JSValue.cpp:
1231         (JSC::JSValue::toObjectSlowCase):
1232         (JSC::JSValue::synthesizeObject):
1233         (JSC::JSValue::synthesizePrototype):
1234         * runtime/NativeErrorConstructor.cpp:
1235         (JSC::constructWithNativeErrorConstructor):
1236         (JSC::callNativeErrorConstructor):
1237         * runtime/NativeErrorConstructor.h:
1238         * runtime/NumberPrototype.cpp:
1239         (JSC::numberProtoFuncToString):
1240         (JSC::numberProtoFuncToLocaleString):
1241         (JSC::numberProtoFuncValueOf):
1242         (JSC::numberProtoFuncToFixed):
1243         (JSC::numberProtoFuncToExponential):
1244         (JSC::numberProtoFuncToPrecision):
1245         * runtime/ObjectConstructor.cpp:
1246         (JSC::objectConstructorGetPrototypeOf):
1247         (JSC::objectConstructorGetOwnPropertyDescriptor):
1248         (JSC::objectConstructorGetOwnPropertyNames):
1249         (JSC::objectConstructorKeys):
1250         (JSC::toPropertyDescriptor):
1251         (JSC::objectConstructorDefineProperty):
1252         (JSC::objectConstructorDefineProperties):
1253         (JSC::objectConstructorCreate):
1254         * runtime/ObjectPrototype.cpp:
1255         (JSC::objectProtoFuncDefineGetter):
1256         (JSC::objectProtoFuncDefineSetter):
1257         * runtime/RegExpConstructor.cpp:
1258         (JSC::constructRegExp):
1259         * runtime/RegExpObject.cpp:
1260         (JSC::RegExpObject::match):
1261         * runtime/RegExpPrototype.cpp:
1262         (JSC::regExpProtoFuncTest):
1263         (JSC::regExpProtoFuncExec):
1264         (JSC::regExpProtoFuncCompile):
1265         (JSC::regExpProtoFuncToString):
1266         * runtime/StringPrototype.cpp:
1267         (JSC::stringProtoFuncToString):
1268
1269 2010-06-05  Kwang Yul Seo  <skyul@company100.net>
1270
1271         Reviewed by Eric Seidel.
1272
1273         [BREWMP] Add PLATFORM(BREWMP) guard for using std::xxx
1274         https://bugs.webkit.org/show_bug.cgi?id=39710
1275
1276         Build fix for BREW MP.
1277
1278         * wtf/MathExtras.h:
1279
1280 2010-06-04  Adam Barth  <abarth@webkit.org>
1281
1282         Reviewed by Darin Adler.
1283
1284         HTML5 parser should be within 1% of old parser performance
1285         https://bugs.webkit.org/show_bug.cgi?id=40172
1286
1287         Fix cast in this operator= to allow for assignment between vectors with
1288         different inline capacities (as clearly intended by its author).
1289
1290         * wtf/Vector.h:
1291         (WTF::::operator):
1292
1293 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1294
1295         Reviewed by Kenneth Rohde Christiansen.
1296
1297         New QtScript API; QScriptValue::instanceOf.
1298
1299         New function create an easy way to check value's prototype hierarchy.
1300
1301         [Qt] QScriptValue should have an instanceOf method
1302         https://bugs.webkit.org/show_bug.cgi?id=40120
1303
1304         * qt/api/qscriptvalue.cpp:
1305         (QScriptValue::instanceOf):
1306         * qt/api/qscriptvalue.h:
1307         * qt/api/qscriptvalue_p.h:
1308         (QScriptValuePrivate::instanceOf):
1309         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
1310         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
1311         (tst_QScriptValue::instanceOf_initData):
1312         (tst_QScriptValue::instanceOf_makeData):
1313         (tst_QScriptValue::instanceOf_test):
1314
1315 2010-06-04  Gavin Barraclough  <barraclough@apple.com>
1316
1317         Reviewed by NOBODY (interpreter build fix).
1318
1319         * interpreter/Interpreter.cpp:
1320         (JSC::Interpreter::privateExecute):
1321
1322 2010-06-04  Mark Rowe  <mrowe@apple.com>
1323
1324         Silence some warnings seen on the build bot.
1325
1326         * JavaScriptCore.JSVALUE32_64only.exp: Add a trailing newline.
1327         * JavaScriptCore.JSVALUE32only.exp: Ditto.
1328         * JavaScriptCore.JSVALUE64only.exp: Ditto.
1329         * JavaScriptCore.xcodeproj/project.pbxproj: Remove the .exp files from all targets so that Xcode doesn't
1330         complain about not knowing how to compile them.
1331
1332 2010-06-04  Gavin Barraclough  <barraclough@apple.com>
1333
1334         Reviewed by Oliver Hunt.
1335
1336         Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
1337
1338         Mostly for consistency, but constructor & args arguments are redundant,
1339         and this will help if we wish to be able to JIT calls to more constructors.
1340
1341         * API/JSCallbackConstructor.cpp:
1342         (JSC::constructJSCallback):
1343         * API/JSCallbackObject.h:
1344         * API/JSCallbackObjectFunctions.h:
1345         (JSC::::construct):
1346         * interpreter/Interpreter.cpp:
1347         (JSC::Interpreter::executeConstruct):
1348         * interpreter/Interpreter.h:
1349         * jit/JITStubs.cpp:
1350         (JSC::DEFINE_STUB_FUNCTION):
1351         * runtime/ArrayConstructor.cpp:
1352         (JSC::constructWithArrayConstructor):
1353         * runtime/BooleanConstructor.cpp:
1354         (JSC::constructWithBooleanConstructor):
1355         * runtime/ConstructData.cpp:
1356         (JSC::construct):
1357         * runtime/ConstructData.h:
1358         * runtime/DateConstructor.cpp:
1359         (JSC::constructWithDateConstructor):
1360         * runtime/Error.cpp:
1361         (JSC::constructNativeError):
1362         (JSC::Error::create):
1363         * runtime/ErrorConstructor.cpp:
1364         (JSC::constructWithErrorConstructor):
1365         * runtime/FunctionConstructor.cpp:
1366         (JSC::constructWithFunctionConstructor):
1367         * runtime/NativeErrorConstructor.cpp:
1368         (JSC::constructWithNativeErrorConstructor):
1369         * runtime/NativeErrorConstructor.h:
1370         (JSC::NativeErrorConstructor::errorStructure):
1371         * runtime/NumberConstructor.cpp:
1372         (JSC::constructWithNumberConstructor):
1373         * runtime/ObjectConstructor.cpp:
1374         (JSC::constructWithObjectConstructor):
1375         * runtime/RegExpConstructor.cpp:
1376         (JSC::constructWithRegExpConstructor):
1377         * runtime/StringConstructor.cpp:
1378         (JSC::constructWithStringConstructor):
1379
1380 2010-06-04  Tony Gentilcore  <tonyg@chromium.org>
1381
1382         Reviewed by Adam Barth.
1383
1384         Add a takeFirst() method to Deque and use it where appropriate.
1385         https://bugs.webkit.org/show_bug.cgi?id=40089
1386
1387         * wtf/Deque.h:
1388         (WTF::::takeFirst):
1389         * wtf/MainThread.cpp:
1390         (WTF::dispatchFunctionsFromMainThread):
1391         * wtf/MessageQueue.h:
1392         (WTF::::tryGetMessage):
1393
1394 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1395
1396         Reviewed by Kenneth Rohde Christiansen.
1397
1398         Remove a QEXPECT_FAIL flag from an autotest.
1399
1400         Test tst_QScriptEngine::globalObject pass after 36600 bug
1401         fix have been applied.
1402
1403         [Qt] Expected fail in the tst_QScriptEngine::globalObject should be removed.
1404         https://bugs.webkit.org/show_bug.cgi?id=40114
1405
1406         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
1407         (tst_QScriptEngine::globalObject):
1408
1409 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1410
1411         Reviewed by Kenneth Rohde Christiansen.
1412
1413         Fix QScriptValue::equals.
1414
1415         Handling for a few edge cases were added. Now comparison between
1416         NaN, an invalid objects should works as supposed.
1417
1418         [Qt] QScriptValue::equals problems
1419         https://bugs.webkit.org/show_bug.cgi?id=40110
1420
1421         * qt/api/qscriptvalue.cpp:
1422         (QScriptValue::equals):
1423         * qt/api/qscriptvalue_p.h:
1424         (QScriptValuePrivate::equals):
1425         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
1426         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
1427         (tst_QScriptValue::equals_initData):
1428         (tst_QScriptValue::equals_makeData):
1429         (tst_QScriptValue::equals_test):
1430
1431 2010-06-03  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1432
1433         Reviewed by Kenneth Rohde Christiansen.
1434
1435         New states in QScriptValuePrivate.
1436
1437         The CSpecial state was divided into CNull and CUndefined. It simplify
1438         the QScriptValue code by avoiding a few "cast" and "if".
1439         Moreover the MSVS compiler didn't like casting between a double and an
1440         enum which is avoided now.
1441
1442         [Qt] The QScriptValuePrivate::CSpecial is too generic.
1443         https://bugs.webkit.org/show_bug.cgi?id=40067
1444
1445         * qt/api/qscriptvalue_p.h:
1446         (QScriptValuePrivate::):
1447         (QScriptValuePrivate::QScriptValuePrivate):
1448         (QScriptValuePrivate::isNull):
1449         (QScriptValuePrivate::isUndefined):
1450         (QScriptValuePrivate::toString):
1451         (QScriptValuePrivate::toNumber):
1452         (QScriptValuePrivate::toBool):
1453         (QScriptValuePrivate::toObject):
1454         (QScriptValuePrivate::assignEngine):
1455         (QScriptValuePrivate::isNumberBased):
1456
1457 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
1458
1459         Reviewed by NOBODY (Qt build fix).
1460
1461         * wtf/Platform.h:
1462
1463 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
1464
1465         Reviewed by Mark Rowe.
1466
1467         Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms
1468         This was fixed in bug #40094.
1469
1470         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1471         * wtf/Platform.h:
1472
1473 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
1474
1475         Reviewed by NOBODY (Interpreter build fix).
1476
1477         * JavaScriptCore.JSVALUE32_64only.exp:
1478         * JavaScriptCore.JSVALUE32only.exp:
1479         * JavaScriptCore.JSVALUE64only.exp:
1480         * interpreter/Interpreter.cpp:
1481         (JSC::Interpreter::privateExecute):
1482
1483 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
1484
1485         Reviewed by NOBODY (windows build fix II).
1486
1487         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1488
1489 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
1490
1491         Reviewed by NOBODY (windows build fix).
1492
1493         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1494
1495 2010-06-02  Gavin Barraclough  <barraclough@apple.com>
1496
1497         Reviewed by Oliver Hunt.
1498
1499         Bug 40094 - The return type of NativeFunction should be EncodedJSValue
1500         On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not.
1501
1502         * API/JSCallbackFunction.cpp:
1503         (JSC::JSCallbackFunction::call):
1504         * API/JSCallbackFunction.h:
1505         * API/JSCallbackObject.h:
1506         * API/JSCallbackObjectFunctions.h:
1507         (JSC::::call):
1508         * JavaScriptCore.exp:
1509         * interpreter/Interpreter.cpp:
1510         (JSC::Interpreter::executeCall):
1511         * jit/JITStubs.cpp:
1512         (JSC::DEFINE_STUB_FUNCTION):
1513         * jit/JITStubs.h:
1514         * jsc.cpp:
1515         (functionPrint):
1516         (functionDebug):
1517         (functionGC):
1518         (functionVersion):
1519         (functionRun):
1520         (functionLoad):
1521         (functionCheckSyntax):
1522         (functionSetSamplingFlags):
1523         (functionClearSamplingFlags):
1524         (functionReadline):
1525         (functionQuit):
1526         * runtime/ArrayConstructor.cpp:
1527         (JSC::callArrayConstructor):
1528         (JSC::arrayConstructorIsArray):
1529         * runtime/ArrayPrototype.cpp:
1530         (JSC::arrayProtoFuncToString):
1531         (JSC::arrayProtoFuncToLocaleString):
1532         (JSC::arrayProtoFuncJoin):
1533         (JSC::arrayProtoFuncConcat):
1534         (JSC::arrayProtoFuncPop):
1535         (JSC::arrayProtoFuncPush):
1536         (JSC::arrayProtoFuncReverse):
1537         (JSC::arrayProtoFuncShift):
1538         (JSC::arrayProtoFuncSlice):
1539         (JSC::arrayProtoFuncSort):
1540         (JSC::arrayProtoFuncSplice):
1541         (JSC::arrayProtoFuncUnShift):
1542         (JSC::arrayProtoFuncFilter):
1543         (JSC::arrayProtoFuncMap):
1544         (JSC::arrayProtoFuncEvery):
1545         (JSC::arrayProtoFuncForEach):
1546         (JSC::arrayProtoFuncSome):
1547         (JSC::arrayProtoFuncReduce):
1548         (JSC::arrayProtoFuncReduceRight):
1549         (JSC::arrayProtoFuncIndexOf):
1550         (JSC::arrayProtoFuncLastIndexOf):
1551         * runtime/BooleanConstructor.cpp:
1552         (JSC::callBooleanConstructor):
1553         * runtime/BooleanPrototype.cpp:
1554         (JSC::booleanProtoFuncToString):
1555         (JSC::booleanProtoFuncValueOf):
1556         * runtime/CallData.h:
1557         * runtime/DateConstructor.cpp:
1558         (JSC::callDate):
1559         (JSC::dateParse):
1560         (JSC::dateNow):
1561         (JSC::dateUTC):
1562         * runtime/DatePrototype.cpp:
1563         (JSC::dateProtoFuncToString):
1564         (JSC::dateProtoFuncToUTCString):
1565         (JSC::dateProtoFuncToISOString):
1566         (JSC::dateProtoFuncToDateString):
1567         (JSC::dateProtoFuncToTimeString):
1568         (JSC::dateProtoFuncToLocaleString):
1569         (JSC::dateProtoFuncToLocaleDateString):
1570         (JSC::dateProtoFuncToLocaleTimeString):
1571         (JSC::dateProtoFuncGetTime):
1572         (JSC::dateProtoFuncGetFullYear):
1573         (JSC::dateProtoFuncGetUTCFullYear):
1574         (JSC::dateProtoFuncToGMTString):
1575         (JSC::dateProtoFuncGetMonth):
1576         (JSC::dateProtoFuncGetUTCMonth):
1577         (JSC::dateProtoFuncGetDate):
1578         (JSC::dateProtoFuncGetUTCDate):
1579         (JSC::dateProtoFuncGetDay):
1580         (JSC::dateProtoFuncGetUTCDay):
1581         (JSC::dateProtoFuncGetHours):
1582         (JSC::dateProtoFuncGetUTCHours):
1583         (JSC::dateProtoFuncGetMinutes):
1584         (JSC::dateProtoFuncGetUTCMinutes):
1585         (JSC::dateProtoFuncGetSeconds):
1586         (JSC::dateProtoFuncGetUTCSeconds):
1587         (JSC::dateProtoFuncGetMilliSeconds):
1588         (JSC::dateProtoFuncGetUTCMilliseconds):
1589         (JSC::dateProtoFuncGetTimezoneOffset):
1590         (JSC::dateProtoFuncSetTime):
1591         (JSC::dateProtoFuncSetMilliSeconds):
1592         (JSC::dateProtoFuncSetUTCMilliseconds):
1593         (JSC::dateProtoFuncSetSeconds):
1594         (JSC::dateProtoFuncSetUTCSeconds):
1595         (JSC::dateProtoFuncSetMinutes):
1596         (JSC::dateProtoFuncSetUTCMinutes):
1597         (JSC::dateProtoFuncSetHours):
1598         (JSC::dateProtoFuncSetUTCHours):
1599         (JSC::dateProtoFuncSetDate):
1600         (JSC::dateProtoFuncSetUTCDate):
1601         (JSC::dateProtoFuncSetMonth):
1602         (JSC::dateProtoFuncSetUTCMonth):
1603         (JSC::dateProtoFuncSetFullYear):
1604         (JSC::dateProtoFuncSetUTCFullYear):
1605         (JSC::dateProtoFuncSetYear):
1606         (JSC::dateProtoFuncGetYear):
1607         (JSC::dateProtoFuncToJSON):
1608         * runtime/ErrorConstructor.cpp:
1609         (JSC::callErrorConstructor):
1610         * runtime/ErrorPrototype.cpp:
1611         (JSC::errorProtoFuncToString):
1612         * runtime/FunctionConstructor.cpp:
1613         (JSC::callFunctionConstructor):
1614         * runtime/FunctionPrototype.cpp:
1615         (JSC::callFunctionPrototype):
1616         (JSC::functionProtoFuncToString):
1617         (JSC::functionProtoFuncApply):
1618         (JSC::functionProtoFuncCall):
1619         * runtime/JSCell.h:
1620         (JSC::getCallData):
1621         (JSC::getConstructData):
1622         * runtime/JSFunction.cpp:
1623         (JSC::callHostFunctionAsConstructor):
1624         * runtime/JSFunction.h:
1625         * runtime/JSGlobalObjectFunctions.cpp:
1626         (JSC::globalFuncEval):
1627         (JSC::globalFuncParseInt):
1628         (JSC::globalFuncParseFloat):
1629         (JSC::globalFuncIsNaN):
1630         (JSC::globalFuncIsFinite):
1631         (JSC::globalFuncDecodeURI):
1632         (JSC::globalFuncDecodeURIComponent):
1633         (JSC::globalFuncEncodeURI):
1634         (JSC::globalFuncEncodeURIComponent):
1635         (JSC::globalFuncEscape):
1636         (JSC::globalFuncUnescape):
1637         (JSC::globalFuncJSCPrint):
1638         * runtime/JSGlobalObjectFunctions.h:
1639         * runtime/JSONObject.cpp:
1640         (JSC::JSONProtoFuncParse):
1641         (JSC::JSONProtoFuncStringify):
1642         * runtime/JSObject.cpp:
1643         (JSC::callDefaultValueFunction):
1644         * runtime/JSValue.h:
1645         * runtime/MathObject.cpp:
1646         (JSC::mathProtoFuncAbs):
1647         (JSC::mathProtoFuncACos):
1648         (JSC::mathProtoFuncASin):
1649         (JSC::mathProtoFuncATan):
1650         (JSC::mathProtoFuncATan2):
1651         (JSC::mathProtoFuncCeil):
1652         (JSC::mathProtoFuncCos):
1653         (JSC::mathProtoFuncExp):
1654         (JSC::mathProtoFuncFloor):
1655         (JSC::mathProtoFuncLog):
1656         (JSC::mathProtoFuncMax):
1657         (JSC::mathProtoFuncMin):
1658         (JSC::mathProtoFuncPow):
1659         (JSC::mathProtoFuncRandom):
1660         (JSC::mathProtoFuncRound):
1661         (JSC::mathProtoFuncSin):
1662         (JSC::mathProtoFuncSqrt):
1663         (JSC::mathProtoFuncTan):
1664         * runtime/NativeErrorConstructor.cpp:
1665         (JSC::callNativeErrorConstructor):
1666         * runtime/NumberConstructor.cpp:
1667         (JSC::callNumberConstructor):
1668         * runtime/NumberPrototype.cpp:
1669         (JSC::numberProtoFuncToString):
1670         (JSC::numberProtoFuncToLocaleString):
1671         (JSC::numberProtoFuncValueOf):
1672         (JSC::numberProtoFuncToFixed):
1673         (JSC::numberProtoFuncToExponential):
1674         (JSC::numberProtoFuncToPrecision):
1675         * runtime/ObjectConstructor.cpp:
1676         (JSC::callObjectConstructor):
1677         (JSC::objectConstructorGetPrototypeOf):
1678         (JSC::objectConstructorGetOwnPropertyDescriptor):
1679         (JSC::objectConstructorGetOwnPropertyNames):
1680         (JSC::objectConstructorKeys):
1681         (JSC::toPropertyDescriptor):
1682         (JSC::objectConstructorDefineProperty):
1683         (JSC::objectConstructorDefineProperties):
1684         (JSC::objectConstructorCreate):
1685         * runtime/ObjectPrototype.cpp:
1686         (JSC::objectProtoFuncValueOf):
1687         (JSC::objectProtoFuncHasOwnProperty):
1688         (JSC::objectProtoFuncIsPrototypeOf):
1689         (JSC::objectProtoFuncDefineGetter):
1690         (JSC::objectProtoFuncDefineSetter):
1691         (JSC::objectProtoFuncLookupGetter):
1692         (JSC::objectProtoFuncLookupSetter):
1693         (JSC::objectProtoFuncPropertyIsEnumerable):
1694         (JSC::objectProtoFuncToLocaleString):
1695         (JSC::objectProtoFuncToString):
1696         * runtime/ObjectPrototype.h:
1697         * runtime/RegExpConstructor.cpp:
1698         (JSC::callRegExpConstructor):
1699         * runtime/RegExpObject.cpp:
1700         (JSC::callRegExpObject):
1701         * runtime/RegExpPrototype.cpp:
1702         (JSC::regExpProtoFuncTest):
1703         (JSC::regExpProtoFuncExec):
1704         (JSC::regExpProtoFuncCompile):
1705         (JSC::regExpProtoFuncToString):
1706         * runtime/StringConstructor.cpp:
1707         (JSC::stringFromCharCode):
1708         (JSC::callStringConstructor):
1709         * runtime/StringPrototype.cpp:
1710         (JSC::stringProtoFuncReplace):
1711         (JSC::stringProtoFuncToString):
1712         (JSC::stringProtoFuncCharAt):
1713         (JSC::stringProtoFuncCharCodeAt):
1714         (JSC::stringProtoFuncConcat):
1715         (JSC::stringProtoFuncIndexOf):
1716         (JSC::stringProtoFuncLastIndexOf):
1717         (JSC::stringProtoFuncMatch):
1718         (JSC::stringProtoFuncSearch):
1719         (JSC::stringProtoFuncSlice):
1720         (JSC::stringProtoFuncSplit):
1721         (JSC::stringProtoFuncSubstr):
1722         (JSC::stringProtoFuncSubstring):
1723         (JSC::stringProtoFuncToLowerCase):
1724         (JSC::stringProtoFuncToUpperCase):
1725         (JSC::stringProtoFuncLocaleCompare):
1726         (JSC::stringProtoFuncBig):
1727         (JSC::stringProtoFuncSmall):
1728         (JSC::stringProtoFuncBlink):
1729         (JSC::stringProtoFuncBold):
1730         (JSC::stringProtoFuncFixed):
1731         (JSC::stringProtoFuncItalics):
1732         (JSC::stringProtoFuncStrike):
1733         (JSC::stringProtoFuncSub):
1734         (JSC::stringProtoFuncSup):
1735         (JSC::stringProtoFuncFontcolor):
1736         (JSC::stringProtoFuncFontsize):
1737         (JSC::stringProtoFuncAnchor):
1738         (JSC::stringProtoFuncLink):
1739         (JSC::stringProtoFuncTrim):
1740         (JSC::stringProtoFuncTrimLeft):
1741         (JSC::stringProtoFuncTrimRight):
1742
1743 2010-06-02  Mark Rowe  <mrowe@apple.com>
1744
1745         Reviewed by Gavin Barraclough.
1746
1747         Add value-representation specific sections to the mac export file.
1748
1749         * Configurations/JavaScriptCore.xcconfig:
1750         * DerivedSources.make:
1751         * JavaScriptCore.JSVALUE32_64only.exp: Added.
1752         * JavaScriptCore.JSVALUE32only.exp: Added.
1753         * JavaScriptCore.JSVALUE64only.exp: Added.
1754         * JavaScriptCore.xcodeproj/project.pbxproj:
1755
1756 2010-06-02  Mark Rowe  <mrowe@apple.com>
1757
1758         Reviewed by Gavin Barraclough.
1759
1760         <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE.
1761
1762         * pcre/pcre_exec.cpp:
1763         (repeatInformationFromInstructionOffset): Change the type of instructionOffset to int.  There's no good
1764         reason for it to be a short, and using int prevents this code from triggering the LLVM GCC bug.
1765
1766 2010-06-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1767
1768         Reviewed by Kenneth Rohde Christiansen.
1769
1770         Fix the QScriptValue::strictlyEquals function.
1771
1772         Handling for a few edge cases was added.
1773
1774         New autotest that covers the QScriptValue::strictlyEquals function.
1775
1776         [Qt] QScriptValue::strictlyEquals is broken
1777         https://bugs.webkit.org/show_bug.cgi?id=36600
1778
1779         * qt/api/qscriptvalue.cpp:
1780         (QScriptValue::strictlyEquals):
1781         * qt/api/qscriptvalue_p.h:
1782         (QScriptValuePrivate::strictlyEquals):
1783         * qt/tests/qscriptvalue/qscriptvalue.pro:
1784         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
1785         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: Added.
1786         (tst_QScriptValue::strictlyEquals_initData):
1787         (tst_QScriptValue::strictlyEquals_makeData):
1788         (tst_QScriptValue::strictlyEquals_test):
1789
1790 2010-06-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1791
1792         Reviewed by Kenneth Rohde Christiansen.
1793
1794         New function QScriptEngine::newObject.
1795
1796         The function creates a object of class Object and returns it
1797         as a QScriptValue.
1798
1799         [Qt] QScriptEngine API should contain a newObject function
1800         https://bugs.webkit.org/show_bug.cgi?id=39114
1801
1802         * qt/api/qscriptengine.cpp:
1803         (QScriptEngine::newObject):
1804         * qt/api/qscriptengine.h:
1805         * qt/api/qscriptengine_p.cpp:
1806         (QScriptEnginePrivate::newObject):
1807         * qt/api/qscriptengine_p.h:
1808         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
1809         (tst_QScriptEngine::newObject):
1810
1811 2010-06-02  Gabor Loki  <loki@webkit.org>
1812
1813         Reviewed by Gavin Barraclough.
1814         https://bugs.webkit.org/show_bug.cgi?id=40011
1815
1816         Thumb-2 build fix: The offset parameter of ldrh should be encoded as an
1817         imm12 immediate constant in load16. If it is not fit in the instruction
1818         a temporary register has to be used.
1819
1820         * assembler/MacroAssemblerARMv7.h:
1821         (JSC::MacroAssemblerARMv7::load16):
1822
1823 2010-06-02  Sterling Swigart  <sswigart@google.com>
1824
1825         Reviewed by David Levin.
1826
1827         Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
1828         https://bugs.webkit.org/show_bug.cgi?id=39906
1829
1830         * Configurations/FeatureDefines.xcconfig:
1831
1832 2010-06-01  Gavin Barraclough  <barraclough@apple.com>
1833
1834         Reviewed by Sam Weinig.
1835
1836         Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together
1837
1838         This is a useful stepping stone towards reversing argument order.
1839
1840         * bytecompiler/BytecodeGenerator.cpp:
1841         (JSC::BytecodeGenerator::BytecodeGenerator):
1842         (JSC::BytecodeGenerator::addParameter):
1843         (JSC::BytecodeGenerator::emitCall):
1844         (JSC::BytecodeGenerator::emitCallEval):
1845         (JSC::BytecodeGenerator::emitConstruct):
1846         * bytecompiler/BytecodeGenerator.h:
1847         (JSC::CallArguments::thisRegister):
1848         (JSC::CallArguments::argumentRegister):
1849         (JSC::CallArguments::callFrame):
1850         (JSC::CallArguments::count):
1851         (JSC::BytecodeGenerator::shouldEmitProfileHooks):
1852         * bytecompiler/NodesCodegen.cpp:
1853         (JSC::NewExprNode::emitBytecode):
1854         (JSC::CallArguments::CallArguments):
1855         (JSC::EvalFunctionCallNode::emitBytecode):
1856         (JSC::FunctionCallValueNode::emitBytecode):
1857         (JSC::FunctionCallResolveNode::emitBytecode):
1858         (JSC::FunctionCallBracketNode::emitBytecode):
1859         (JSC::FunctionCallDotNode::emitBytecode):
1860         (JSC::CallFunctionCallDotNode::emitBytecode):
1861         (JSC::ApplyFunctionCallDotNode::emitBytecode):
1862
1863 2010-06-01  Yong Li  <yoli@rim.com>
1864
1865         Reviewed by Darin Adler.
1866
1867         Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex.
1868         https://bugs.webkit.org/show_bug.cgi?id=39893
1869
1870         * wtf/ThreadingPthreads.cpp:
1871         (WTF::Mutex::Mutex):
1872
1873 2010-06-01  Kwang Yul Seo  <skyul@company100.net>
1874
1875         Reviewed by Xan Lopez.
1876
1877         [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap
1878         https://bugs.webkit.org/show_bug.cgi?id=39831
1879
1880         Use DEFINE_STATIC_LOCAL for static local variables.
1881
1882         * wtf/gtk/ThreadingGtk.cpp:
1883         (WTF::threadMapMutex):
1884         (WTF::threadMap):
1885         (WTF::identifierByGthreadHandle):
1886
1887 2010-06-01  Kent Tamura  <tkent@chromium.org>
1888
1889         Reviewed by Shinichiro Hamaji.
1890
1891         Fix style errors of dtoa
1892         https://bugs.webkit.org/show_bug.cgi?id=39972
1893
1894         Fix all errors reported by check-webkit-style.
1895
1896         * wtf/dtoa.cpp:
1897         * wtf/dtoa.h:
1898
1899 2010-05-30  Darin Adler  <darin@apple.com>
1900
1901         Reviewed by Sam Weinig.
1902
1903         * wtf/OwnArrayPtr.h:
1904         (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr.
1905         At some point someone fixed the "asserts when assigning to 0 and the pointer is
1906         already 0" issue in OwnPtr but forgot to do it here.
1907
1908 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
1909
1910         Windows build fix: Updated exported symbols.
1911         
1912         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1913
1914 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
1915
1916         Disabled ENABLE_JIT_OPTIMIZE_NATIVE_CALL on Windows for now, until I
1917         can figure out why it's crashing.
1918
1919         * wtf/Platform.h:
1920
1921 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
1922
1923         Fixed Windows crash seen on buildbot.
1924
1925         * jit/JITOpcodes32_64.cpp:
1926         (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first
1927         argument in ecx.
1928
1929 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1930
1931         Windows build fix: Updated exported symbols.
1932
1933         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1934
1935 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1936
1937         Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL
1938         is disabled.
1939
1940         * runtime/Lookup.cpp:
1941         (JSC::setUpStaticFunctionSlot):
1942         * runtime/Lookup.h:
1943         * wtf/Platform.h:
1944
1945 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1946
1947         Windows build fix: Updated exported symbols.
1948
1949         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1950
1951 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1952
1953         Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
1954
1955         Simplified the host calling convention.
1956         
1957         22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host
1958         function calls.
1959         
1960         No change on SunSpider.
1961         
1962         All JS calls (but not constructs, yet) now go through the normal JS
1963         calling convention via the RegisterFile. As a result, the host calling
1964         convention, which used to be this
1965
1966             JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&)
1967             
1968         is now this
1969
1970             JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*)
1971             
1972         Callee, 'this', and argument access all hapen relative to the ExecState*,
1973         which is a pointer into the RegisterFile.
1974         
1975         This patch comes in two parts.
1976         
1977         PART ONE: Functional code changes.
1978         
1979         * wtf/Platform.h: Disabled optimized calls on platforms I didn't test.
1980         We can re-enable once we verify that host calls on these platforms are
1981         correct.
1982
1983         * debugger/DebuggerCallFrame.cpp:
1984         (JSC::DebuggerCallFrame::functionName):
1985         (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to
1986         ExecState::callee().
1987
1988         (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue().
1989
1990         * interpreter/CallFrame.cpp:
1991         * interpreter/CallFrame.h:
1992         (JSC::ExecState::callee):
1993         (JSC::ExecState::scopeChain):
1994         (JSC::ExecState::init): Changed callee() to be JSObject* instead of
1995         JSFunction* -- now, it might be some other callable host object.
1996
1997         (JSC::ExecState::hostThisRegister):
1998         (JSC::ExecState::hostThisValue):
1999         (JSC::ExecState::argumentCount):
2000         (JSC::ExecState::argumentCountIncludingThis):
2001         (JSC::ExecState::argument):
2002         (JSC::ExecState::setArgumentCountIncludingThis):
2003         (JSC::ExecState::setCallee): Added convenient accessors for arguments
2004         from within a host function. Removed thisValue() because it was too
2005         tempting to use incorrectly, and it only had one or two clients, anyway.
2006
2007         * interpreter/Interpreter.cpp:
2008         (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
2009
2010         (JSC::Interpreter::throwException): Be sure to shrink the register file
2011         before invoking the exception handler, to reduce the chances that the
2012         handler will re-throw in the case of stack overflow. (Re-throwing is now
2013         more likely than it used to be, since standardizing the calling convention
2014         implicitly added stack overflow checks to some places where they used to be missing.)
2015
2016         (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
2017         Updated for CallFrame::init API change.
2018
2019         (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
2020         Updated for CallFrame::init API change. Added support for calling a host
2021         function.
2022
2023         (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
2024         Updated for CallFrame::init API change. 
2025
2026         (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change. 
2027
2028         (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change.
2029         Added some explicit JSValue(JSObject*) initialization, since relaxing
2030         the JSFunction* restriction on callee has made register types more ambiguous.
2031         Removed toThisObject() conversion, since all callees do it themselves now.
2032         Updated host function call for new host function signature. Updated for
2033         change to ExecState::argumentCount() API.
2034
2035         * interpreter/Register.h:
2036         (JSC::Register::):
2037         (JSC::Register::operator=):
2038         (JSC::Register::function): Changed callee() to be JSObject* instead of
2039         JSFunction* -- now, it might be some other callable host object.
2040
2041         * jit/JITOpcodes.cpp:
2042         (JSC::JIT::privateCompileCTINativeCall):
2043         * jit/JITOpcodes32_64.cpp:
2044         (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that
2045         set up the arguments to host functions -- all but one of the arguments
2046         are gone now. This is the actual optimization.
2047
2048         * jit/JITStubs.cpp:
2049         (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API
2050         changes noted above. Removed toThisObject() conversion, since all callees
2051         do it themselves now.
2052         
2053         * runtime/ArgList.h:
2054         (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a
2055         temporary shim for converting from ExecState* to ArgList where it's still
2056         necessary.
2057
2058         * runtime/Arguments.h:
2059         (JSC::Arguments::getArgumentsData):
2060         (JSC::Arguments::Arguments): Updated for ExecState and Register API
2061         changes noted above. 
2062
2063         * runtime/CallData.cpp:
2064         (JSC::call): Changed call always to call Interpreter::executeCall, even
2065         for host functions. This ensures that the normal calling convention is
2066         set up in the RegsiterFile when calling from C++ to host function.
2067
2068         * runtime/CallData.h: Changed host function signature as described above.
2069
2070         * runtime/ConstructData.cpp:
2071         (JSC::construct): Moved JSFunction::construct code here so I could nix
2072         JSFunction::call and JSFunction::call. We want a JSFunction-agnostic
2073         way to call and construct, so that everything works naturally for non-
2074         JSFunction objects. 
2075
2076         * runtime/JSFunction.cpp:
2077         (JSC::callHostFunctionAsConstructor):
2078         * runtime/JSFunction.h: Updated for ExecState and Register API changes
2079         noted above. Nixed JSFunction::call and JSFunction::construct, noted above.
2080  
2081         * runtime/JSGlobalObject.cpp:
2082         (JSC::JSGlobalObject::init): Ditto.
2083
2084         PART TWO: Global search and replace.
2085         
2086         In the areas below, I used global search-and-replace to change
2087             (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
2088             args.size() => exec->argumentCount()
2089             args.at(i) => exec->argument(i)
2090
2091         * API/JSCallbackFunction.cpp:
2092         (JSC::JSCallbackFunction::call):
2093         * API/JSCallbackFunction.h:
2094         * API/JSCallbackObject.h:
2095         * API/JSCallbackObjectFunctions.h:
2096         (JSC::::call):
2097         * JavaScriptCore.exp:
2098         * jsc.cpp:
2099         (functionPrint):
2100         (functionDebug):
2101         (functionGC):
2102         (functionVersion):
2103         (functionRun):
2104         (functionLoad):
2105         (functionCheckSyntax):
2106         (functionSetSamplingFlags):
2107         (functionClearSamplingFlags):
2108         (functionReadline):
2109         (functionQuit):
2110         * runtime/ArrayConstructor.cpp:
2111         (JSC::callArrayConstructor):
2112         (JSC::arrayConstructorIsArray):
2113         * runtime/ArrayPrototype.cpp:
2114         (JSC::arrayProtoFuncToString):
2115         (JSC::arrayProtoFuncToLocaleString):
2116         (JSC::arrayProtoFuncJoin):
2117         (JSC::arrayProtoFuncConcat):
2118         (JSC::arrayProtoFuncPop):
2119         (JSC::arrayProtoFuncPush):
2120         (JSC::arrayProtoFuncReverse):
2121         (JSC::arrayProtoFuncShift):
2122         (JSC::arrayProtoFuncSlice):
2123         (JSC::arrayProtoFuncSort):
2124         (JSC::arrayProtoFuncSplice):
2125         (JSC::arrayProtoFuncUnShift):
2126         (JSC::arrayProtoFuncFilter):
2127         (JSC::arrayProtoFuncMap):
2128         (JSC::arrayProtoFuncEvery):
2129         (JSC::arrayProtoFuncForEach):
2130         (JSC::arrayProtoFuncSome):
2131         (JSC::arrayProtoFuncReduce):
2132         (JSC::arrayProtoFuncReduceRight):
2133         (JSC::arrayProtoFuncIndexOf):
2134         (JSC::arrayProtoFuncLastIndexOf):
2135         * runtime/BooleanConstructor.cpp:
2136         (JSC::callBooleanConstructor):
2137         * runtime/BooleanPrototype.cpp:
2138         (JSC::booleanProtoFuncToString):
2139         (JSC::booleanProtoFuncValueOf):
2140         * runtime/DateConstructor.cpp:
2141         (JSC::callDate):
2142         (JSC::dateParse):
2143         (JSC::dateNow):
2144         (JSC::dateUTC):
2145         * runtime/DatePrototype.cpp:
2146         (JSC::formatLocaleDate):
2147         (JSC::fillStructuresUsingTimeArgs):
2148         (JSC::fillStructuresUsingDateArgs):
2149         (JSC::dateProtoFuncToString):
2150         (JSC::dateProtoFuncToUTCString):
2151         (JSC::dateProtoFuncToISOString):
2152         (JSC::dateProtoFuncToDateString):
2153         (JSC::dateProtoFuncToTimeString):
2154         (JSC::dateProtoFuncToLocaleString):
2155         (JSC::dateProtoFuncToLocaleDateString):
2156         (JSC::dateProtoFuncToLocaleTimeString):
2157         (JSC::dateProtoFuncGetTime):
2158         (JSC::dateProtoFuncGetFullYear):
2159         (JSC::dateProtoFuncGetUTCFullYear):
2160         (JSC::dateProtoFuncToGMTString):
2161         (JSC::dateProtoFuncGetMonth):
2162         (JSC::dateProtoFuncGetUTCMonth):
2163         (JSC::dateProtoFuncGetDate):
2164         (JSC::dateProtoFuncGetUTCDate):
2165         (JSC::dateProtoFuncGetDay):
2166         (JSC::dateProtoFuncGetUTCDay):
2167         (JSC::dateProtoFuncGetHours):
2168         (JSC::dateProtoFuncGetUTCHours):
2169         (JSC::dateProtoFuncGetMinutes):
2170         (JSC::dateProtoFuncGetUTCMinutes):
2171         (JSC::dateProtoFuncGetSeconds):
2172         (JSC::dateProtoFuncGetUTCSeconds):
2173         (JSC::dateProtoFuncGetMilliSeconds):
2174         (JSC::dateProtoFuncGetUTCMilliseconds):
2175         (JSC::dateProtoFuncGetTimezoneOffset):
2176         (JSC::dateProtoFuncSetTime):
2177         (JSC::setNewValueFromTimeArgs):
2178         (JSC::setNewValueFromDateArgs):
2179         (JSC::dateProtoFuncSetMilliSeconds):
2180         (JSC::dateProtoFuncSetUTCMilliseconds):
2181         (JSC::dateProtoFuncSetSeconds):
2182         (JSC::dateProtoFuncSetUTCSeconds):
2183         (JSC::dateProtoFuncSetMinutes):
2184         (JSC::dateProtoFuncSetUTCMinutes):
2185         (JSC::dateProtoFuncSetHours):
2186         (JSC::dateProtoFuncSetUTCHours):
2187         (JSC::dateProtoFuncSetDate):
2188         (JSC::dateProtoFuncSetUTCDate):
2189         (JSC::dateProtoFuncSetMonth):
2190         (JSC::dateProtoFuncSetUTCMonth):
2191         (JSC::dateProtoFuncSetFullYear):
2192         (JSC::dateProtoFuncSetUTCFullYear):
2193         (JSC::dateProtoFuncSetYear):
2194         (JSC::dateProtoFuncGetYear):
2195         (JSC::dateProtoFuncToJSON):
2196         * runtime/ErrorConstructor.cpp:
2197         (JSC::callErrorConstructor):
2198         * runtime/ErrorPrototype.cpp:
2199         (JSC::errorProtoFuncToString):
2200         * runtime/FunctionConstructor.cpp:
2201         (JSC::callFunctionConstructor):
2202         * runtime/FunctionPrototype.cpp:
2203         (JSC::callFunctionPrototype):
2204         (JSC::functionProtoFuncToString):
2205         (JSC::functionProtoFuncApply):
2206         (JSC::functionProtoFuncCall):
2207         * runtime/JSGlobalObjectFunctions.cpp:
2208         (JSC::encode):
2209         (JSC::decode):
2210         (JSC::globalFuncEval):
2211         (JSC::globalFuncParseInt):
2212         (JSC::globalFuncParseFloat):
2213         (JSC::globalFuncIsNaN):
2214         (JSC::globalFuncIsFinite):
2215         (JSC::globalFuncDecodeURI):
2216         (JSC::globalFuncDecodeURIComponent):
2217         (JSC::globalFuncEncodeURI):
2218         (JSC::globalFuncEncodeURIComponent):
2219         (JSC::globalFuncEscape):
2220         (JSC::globalFuncUnescape):
2221         (JSC::globalFuncJSCPrint):
2222         * runtime/JSGlobalObjectFunctions.h:
2223         * runtime/JSONObject.cpp:
2224         (JSC::JSONProtoFuncParse):
2225         (JSC::JSONProtoFuncStringify):
2226         * runtime/JSString.h:
2227         * runtime/MathObject.cpp:
2228         (JSC::mathProtoFuncAbs):
2229         (JSC::mathProtoFuncACos):
2230         (JSC::mathProtoFuncASin):
2231         (JSC::mathProtoFuncATan):
2232         (JSC::mathProtoFuncATan2):
2233         (JSC::mathProtoFuncCeil):
2234         (JSC::mathProtoFuncCos):
2235         (JSC::mathProtoFuncExp):
2236         (JSC::mathProtoFuncFloor):
2237         (JSC::mathProtoFuncLog):
2238         (JSC::mathProtoFuncMax):
2239         (JSC::mathProtoFuncMin):
2240         (JSC::mathProtoFuncPow):
2241         (JSC::mathProtoFuncRandom):
2242         (JSC::mathProtoFuncRound):
2243         (JSC::mathProtoFuncSin):
2244         (JSC::mathProtoFuncSqrt):
2245         (JSC::mathProtoFuncTan):
2246         * runtime/NativeErrorConstructor.cpp:
2247         (JSC::callNativeErrorConstructor):
2248         * runtime/NumberConstructor.cpp:
2249         (JSC::callNumberConstructor):
2250         * runtime/NumberPrototype.cpp:
2251         (JSC::numberProtoFuncToString):
2252         (JSC::numberProtoFuncToLocaleString):
2253         (JSC::numberProtoFuncValueOf):
2254         (JSC::numberProtoFuncToFixed):
2255         (JSC::numberProtoFuncToExponential):
2256         (JSC::numberProtoFuncToPrecision):
2257         * runtime/ObjectConstructor.cpp:
2258         (JSC::callObjectConstructor):
2259         (JSC::objectConstructorGetPrototypeOf):
2260         (JSC::objectConstructorGetOwnPropertyDescriptor):
2261         (JSC::objectConstructorGetOwnPropertyNames):
2262         (JSC::objectConstructorKeys):
2263         (JSC::objectConstructorDefineProperty):
2264         (JSC::objectConstructorDefineProperties):
2265         (JSC::objectConstructorCreate):
2266         * runtime/ObjectPrototype.cpp:
2267         (JSC::objectProtoFuncValueOf):
2268         (JSC::objectProtoFuncHasOwnProperty):
2269         (JSC::objectProtoFuncIsPrototypeOf):
2270         (JSC::objectProtoFuncDefineGetter):
2271         (JSC::objectProtoFuncDefineSetter):
2272         (JSC::objectProtoFuncLookupGetter):
2273         (JSC::objectProtoFuncLookupSetter):
2274         (JSC::objectProtoFuncPropertyIsEnumerable):
2275         (JSC::objectProtoFuncToLocaleString):
2276         (JSC::objectProtoFuncToString):
2277         * runtime/ObjectPrototype.h:
2278         * runtime/Operations.h:
2279         (JSC::jsString):
2280         * runtime/RegExpConstructor.cpp:
2281         (JSC::callRegExpConstructor):
2282         * runtime/RegExpObject.cpp:
2283         (JSC::RegExpObject::test):
2284         (JSC::RegExpObject::exec):
2285         (JSC::callRegExpObject):
2286         (JSC::RegExpObject::match):
2287         * runtime/RegExpObject.h:
2288         * runtime/RegExpPrototype.cpp:
2289         (JSC::regExpProtoFuncTest):
2290         (JSC::regExpProtoFuncExec):
2291         (JSC::regExpProtoFuncCompile):
2292         (JSC::regExpProtoFuncToString):
2293         * runtime/StringConstructor.cpp:
2294         (JSC::stringFromCharCodeSlowCase):
2295         (JSC::stringFromCharCode):
2296         (JSC::callStringConstructor):
2297         * runtime/StringPrototype.cpp:
2298         (JSC::stringProtoFuncReplace):
2299         (JSC::stringProtoFuncToString):
2300         (JSC::stringProtoFuncCharAt):
2301         (JSC::stringProtoFuncCharCodeAt):
2302         (JSC::stringProtoFuncConcat):
2303         (JSC::stringProtoFuncIndexOf):
2304         (JSC::stringProtoFuncLastIndexOf):
2305         (JSC::stringProtoFuncMatch):
2306         (JSC::stringProtoFuncSearch):
2307         (JSC::stringProtoFuncSlice):
2308         (JSC::stringProtoFuncSplit):
2309         (JSC::stringProtoFuncSubstr):
2310         (JSC::stringProtoFuncSubstring):
2311         (JSC::stringProtoFuncToLowerCase):
2312         (JSC::stringProtoFuncToUpperCase):
2313         (JSC::stringProtoFuncLocaleCompare):
2314         (JSC::stringProtoFuncBig):
2315         (JSC::stringProtoFuncSmall):
2316         (JSC::stringProtoFuncBlink):
2317         (JSC::stringProtoFuncBold):
2318         (JSC::stringProtoFuncFixed):
2319         (JSC::stringProtoFuncItalics):
2320         (JSC::stringProtoFuncStrike):
2321         (JSC::stringProtoFuncSub):
2322         (JSC::stringProtoFuncSup):
2323         (JSC::stringProtoFuncFontcolor):
2324         (JSC::stringProtoFuncFontsize):
2325         (JSC::stringProtoFuncAnchor):
2326         (JSC::stringProtoFuncLink):
2327         (JSC::stringProtoFuncTrim):
2328         (JSC::stringProtoFuncTrimLeft):
2329         (JSC::stringProtoFuncTrimRight):
2330
2331 2010-05-28  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
2332
2333         Reviewed by Geoffrey Garen.
2334
2335         Fix the JSObjectSetPrototype function.
2336
2337         A cycle in a prototype chain can cause an application hang or
2338         even crash.
2339         A check for a prototype chain cycles was added to
2340         the JSObjectSetPrototype.
2341
2342         JSObjectSetPrototype doesn't check for cycle in prototype chain.
2343         https://bugs.webkit.org/show_bug.cgi?id=39360
2344
2345         * API/JSObjectRef.cpp:
2346         (JSObjectSetPrototype):
2347         * API/tests/testapi.c:
2348         (assertTrue):
2349         (checkForCycleInPrototypeChain):
2350         (main):
2351         * runtime/JSObject.cpp:
2352         (JSC::JSObject::put):
2353         * runtime/JSObject.h:
2354         (JSC::JSObject::setPrototypeWithCycleCheck):
2355
2356 2010-05-28  Chao-ying Fu  <fu@mips.com>
2357
2358         Reviewed by Eric Seidel.
2359
2360         Fix MIPS JIT DoubleGreaterThanOrEqual Operands
2361         https://bugs.webkit.org/show_bug.cgi?id=39504
2362
2363         Swapped two operands of left and right for DoubleGreaterThanOrEqual.
2364         This patch fixed two layout tests as follows.
2365         fast/js/comparison-operators-greater.html
2366         fast/js/comparison-operators-less.html
2367
2368         * assembler/MacroAssemblerMIPS.h:
2369         (JSC::MacroAssemblerMIPS::branchDouble):
2370
2371 2010-05-28  Gavin Barraclough  <barraclough@apple.com>
2372
2373         Reviewed by Geoff Garen.
2374
2375         Move jit compilation from linking thunks into cti_vm_lazyLink methods.
2376
2377         * jit/JITOpcodes.cpp:
2378         (JSC::JIT::privateCompileCTIMachineTrampolines):
2379         * jit/JITOpcodes32_64.cpp:
2380         (JSC::JIT::privateCompileCTIMachineTrampolines):
2381         * jit/JITStubs.cpp:
2382         (JSC::DEFINE_STUB_FUNCTION):
2383
2384 2010-05-28  Gavin Barraclough  <barraclough@apple.com>
2385
2386         Reviewed by Sam Weinig.
2387
2388         Bug 39898 - Move arity check into callee.
2389         
2390         We can reduce the size of the virtual call trampolines by moving the arity check
2391         into the callee functions.  As a following step we will be able to remove the
2392         check for native function / codeblocks by performing translation in a lazy stub.
2393         
2394         * interpreter/CallFrame.h:
2395         (JSC::ExecState::init):
2396         (JSC::ExecState::setReturnPC):
2397         * jit/JIT.cpp:
2398         (JSC::JIT::privateCompile):
2399         (JSC::JIT::linkCall):
2400         (JSC::JIT::linkConstruct):
2401         * jit/JIT.h:
2402         (JSC::JIT::compile):
2403         * jit/JITOpcodes.cpp:
2404         (JSC::JIT::privateCompileCTIMachineTrampolines):
2405         * jit/JITOpcodes32_64.cpp:
2406         (JSC::JIT::privateCompileCTIMachineTrampolines):
2407         * jit/JITStubs.cpp:
2408         (JSC::DEFINE_STUB_FUNCTION):
2409         * runtime/Executable.cpp:
2410         (JSC::FunctionExecutable::generateJITCodeForCall):
2411         (JSC::FunctionExecutable::generateJITCodeForConstruct):
2412         (JSC::FunctionExecutable::reparseExceptionInfo):
2413         * runtime/Executable.h:
2414         (JSC::NativeExecutable::NativeExecutable):
2415         (JSC::FunctionExecutable::generatedJITCodeForCallWithArityCheck):
2416         (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
2417
2418 2010-05-27  Luiz Agostini  <luiz.agostini@openbossa.org>
2419
2420         Reviewed by Darin Adler.
2421
2422         UTF-16 code points compare() for String objects
2423         https://bugs.webkit.org/show_bug.cgi?id=39701
2424
2425         Moving compare() implementation from UString to StringImpl for it to be shared
2426         with String. Adding overloaded free functions codePointCompare() in StringImpl
2427         and WTFString. Renaming function compare in UString to codePointCompare to be
2428         consistent.
2429
2430         * runtime/JSArray.cpp:
2431         (JSC::compareByStringPairForQSort):
2432         * runtime/UString.cpp:
2433         * runtime/UString.h:
2434         (JSC::codePointCompare):
2435         * wtf/text/StringImpl.cpp:
2436         (WebCore::codePointCompare):
2437         * wtf/text/StringImpl.h:
2438         * wtf/text/WTFString.cpp:
2439         (WebCore::codePointCompare):
2440         * wtf/text/WTFString.h:
2441
2442 2010-05-26  Darin Adler  <darin@apple.com>
2443
2444         Reviewed by Kent Tamura.
2445
2446         Null characters handled incorrectly in ToNumber conversion
2447         https://bugs.webkit.org/show_bug.cgi?id=38088
2448
2449         * runtime/JSGlobalObjectFunctions.cpp:
2450         (JSC::parseInt): Changed code to use UTF8String().data() instead of
2451         ascii() to fix the thread safety issue. Code path is covered by existing
2452         tests in run-javascriptcore-tests.
2453         (JSC::parseFloat): Moved comment to UString::toDouble since the issue
2454         affects all clients, not just parseFloat. Specifically, this also affects
2455         standard JavaScript numeric conversion, ToNumber.
2456
2457         * runtime/UString.cpp:
2458         (JSC::UString::toDouble): Added a comment about incorrect space skipping.
2459         Changed trailing junk check to use the length of the CString instead of
2460         checking for a null character. Also got rid of a little unneeded logic
2461         in the case where we tolerate trailing junk.
2462
2463 2010-05-27  Nathan Lawrence  <nlawrence@apple.com>
2464
2465         Reviewed by Geoffrey Garen.
2466
2467         Search for the new allocation one word at a time.  Improves
2468         performance on SunSpider by approximately 1%.
2469         http://bugs.webkit.org/show_bug.cgi?id=39758
2470
2471         * runtime/Collector.cpp:
2472         (JSC::Heap::allocate):
2473         * runtime/Collector.h:
2474         (JSC::CollectorBitmap::advanceToNextPossibleFreeCell):
2475
2476 2010-05-27  Kevin Ollivier  <kevino@theolliviers.com>
2477
2478         [wx] Build fixes for Windows after recent changes.
2479
2480         * wscript:
2481
2482 2010-05-27  Gustavo Noronha Silva  <gns@gnome.org>
2483
2484         More build fixage for make dist.
2485
2486         * GNUmakefile.am:
2487
2488 2010-05-27  Kwang Yul Seo  <skyul@company100.net>
2489
2490         Reviewed by Darin Adler.
2491
2492         RVCT does not have strnstr.
2493         https://bugs.webkit.org/show_bug.cgi?id=39719
2494
2495         Add COMPILER(RVCT) guard to strnstr in StringExtras.h as RVCT does not provide strnstr.
2496
2497         * wtf/StringExtras.h:
2498
2499 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
2500
2501         Reviewed by Oliver Hunt.
2502
2503         Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
2504         (relanding r60267)
2505
2506         If the last item in a main disjunction is a quantified set of parentheses,
2507         this is easier to code generate for than the general case for quantified
2508         parentheses. This is because we never need to backtrack into the parentheses
2509         - the first match will be the final and accepted match.
2510
2511         This patch also somewhat reverts a recent change to when fallback to PCRE
2512         occurs. At the minute the compiler is tracking on patterns which will
2513         require JIT fallback. This is handy from a performance perspective (it saves
2514         the failed attempt at JIT compilation), but it means introducing knowledge
2515         of the JITs capabilities into the other layers of the regex compilers. For
2516         the specific feature of back-references, add a flag tracking their presence
2517         on the pattern, and make these expressions fallback without attempting to
2518         JIT. For parentheses, return to detecting which cases are have or have not
2519         been handled during JIT compilation.
2520
2521         18% progression on tagcloud, ~1.5% overall on sunspidey.
2522
2523         * yarr/RegexCompiler.cpp:
2524         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
2525         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
2526         * yarr/RegexJIT.cpp:
2527         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
2528         (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
2529         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
2530         (JSC::Yarr::RegexGenerator::generateTerm):
2531         (JSC::Yarr::RegexGenerator::RegexGenerator):
2532         (JSC::Yarr::RegexGenerator::shouldFallBack):
2533         (JSC::Yarr::jitCompileRegex):
2534         * yarr/RegexPattern.h:
2535         (JSC::Yarr::RegexPattern::RegexPattern):
2536         (JSC::Yarr::RegexPattern::reset):
2537
2538 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
2539
2540         Reviewed by NOBODY (revert).
2541
2542         Temporarily rolling out r60267, I appear to have hoesed perf at the last minute. :-/ Fixing.
2543
2544         * yarr/RegexCompiler.cpp:
2545         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
2546         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
2547         * yarr/RegexJIT.cpp:
2548         (JSC::Yarr::RegexGenerator::TermGenerationState::term):
2549         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
2550         (JSC::Yarr::RegexGenerator::generateTerm):
2551         (JSC::Yarr::RegexGenerator::RegexGenerator):
2552         (JSC::Yarr::jitCompileRegex):
2553         * yarr/RegexPattern.h:
2554         (JSC::Yarr::RegexPattern::RegexPattern):
2555         (JSC::Yarr::RegexPattern::reset):
2556
2557 2010-05-26  Gustavo Noronha Silva  <gns@gnome.org>
2558
2559         Build fixes for make distcheck.
2560
2561         * GNUmakefile.am:
2562
2563 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
2564
2565         Reviewed by Oliver Hunt.
2566
2567         Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
2568
2569         If the last item in a main disjunction is a quantified set of parentheses,
2570         this is easier to code generate for than the general case for quantified
2571         parentheses. This is because we never need to backtrack into the parentheses
2572         - the first match will be the final and accepted match.
2573
2574         This patch also somewhat reverts a recent change to when fallback to PCRE
2575         occurs. At the minute the compiler is tracking on patterns which will
2576         require JIT fallback. This is handy from a performance perspective (it saves
2577         the failed attempt at JIT compilation), but it means introducing knowledge
2578         of the JITs capabilities into the other layers of the regex compilers. For
2579         the specific feature of back-references, add a flag tracking their presence
2580         on the pattern, and make these expressions fallback without attempting to
2581         JIT. For parentheses, return to detecting which cases are have or have not
2582         been handled during JIT compilation.
2583
2584         18% progression on tagcloud, ~1.5% overall on sunspidey.
2585
2586         * yarr/RegexCompiler.cpp:
2587         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
2588         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
2589         * yarr/RegexJIT.cpp:
2590         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
2591         (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
2592         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
2593         (JSC::Yarr::RegexGenerator::generateTerm):
2594         (JSC::Yarr::RegexGenerator::RegexGenerator):
2595         (JSC::Yarr::RegexGenerator::shouldFallBack):
2596         (JSC::Yarr::jitCompileRegex):
2597         * yarr/RegexPattern.h:
2598         (JSC::Yarr::RegexPattern::RegexPattern):
2599         (JSC::Yarr::RegexPattern::reset):
2600
2601 2010-05-26  Geoffrey Garen  <ggaren@apple.com>
2602
2603         Reviewed by Sam Weinig.
2604
2605         Fixed a crash seen on the Leopard bot, caused by merge.
2606
2607         * jit/JITStubs.cpp:
2608         (JSC::DEFINE_STUB_FUNCTION): Get the return address from the callframe,
2609         since it's no longer passed to us as an argument.
2610
2611 2010-05-25  Geoffrey Garen  <ggaren@apple.com>
2612
2613         Fixed build failure caused by merge.
2614
2615         * jit/JITStubs.cpp:
2616         (JSC::DEFINE_STUB_FUNCTION): On error, return a single value, since this
2617         function no longer returns a pair.
2618
2619 2010-05-25  Geoffrey Garen  <ggaren@apple.com>
2620
2621         Reviewed by Oliver Hunt.
2622
2623         <rdar://problem/8020221>
2624         
2625         Fixed a crash seen on Windows when calling a function with too many
2626         arguments.
2627         
2628         SunSpider reports no change.
2629         
2630         No test because the ASSERT I added fires in existing tests.
2631
2632         * jit/JITStubs.cpp:
2633         (JSC::DEFINE_STUB_FUNCTION): Make sure to grow the registerFile when too
2634         many arguments have been provided, since the caller only allocated enough
2635         registerFile space for the arguments it provided, not enough for the extra
2636         copy of arguments we're going to need.
2637
2638 2010-05-25  Kwang Yul Seo  <skyul@company100.net>
2639
2640         Reviewed by Darin Adler.
2641
2642         Build fix for JSFunction
2643         https://bugs.webkit.org/show_bug.cgi?id=39658
2644
2645         MSVC can't compile one of JSFunction constructors when JIT is disabled.
2646         "PassRefPtr<NativeExecutable>" causes the compile error as NativeExecutable is not defined. 
2647         Add ENABLE(JIT) guard to the constructor.
2648
2649         * runtime/JSFunction.cpp:
2650         (JSC::JSFunction::JSFunction):
2651         * runtime/JSFunction.h:
2652
2653 2010-05-24  Gavin Barraclough  <barraclough@apple.com>
2654
2655         Reviewed by Sam Weinig.
2656
2657         Bug 39643 - Clean up code generation in the JIT of stub function calls for op_call.
2658
2659         Presently, as soon as op-call strays off the hot path we set up a set of values on
2660         the stack to be passed as arguments to cti functions, in case any should be called.
2661
2662         Instead, hoist the setup of the callframe to happen slightly sooner, and make the
2663         cti functions to compile & check arity read these values from the callframe. This
2664         allows up to remove the deprecated methods to manually set up cti arguments, rather
2665         than using JITStubCall.h.
2666
2667         * interpreter/CallFrame.h:
2668         * jit/JIT.h:
2669         * jit/JITCall.cpp:
2670         (JSC::JIT::compileOpCallInitializeCallFrame):
2671         (JSC::JIT::compileOpCallVarargs):
2672         (JSC::JIT::compileOpCallVarargsSlowCase):
2673         (JSC::JIT::compileOpCall):
2674         (JSC::JIT::compileOpCallSlowCase):
2675         * jit/JITCall32_64.cpp:
2676         (JSC::JIT::compileOpCallInitializeCallFrame):
2677         (JSC::JIT::compileOpCallVarargs):
2678         (JSC::JIT::compileOpCallVarargsSlowCase):
2679         (JSC::JIT::compileOpCall):
2680         (JSC::JIT::compileOpCallSlowCase):
2681         * jit/JITInlineMethods.h:
2682         * jit/JITOpcodes.cpp:
2683         (JSC::JIT::privateCompileCTIMachineTrampolines):
2684         * jit/JITOpcodes32_64.cpp:
2685         (JSC::JIT::privateCompileCTIMachineTrampolines):
2686         * jit/JITStubs.cpp:
2687         (JSC::DEFINE_STUB_FUNCTION):
2688         * jit/JITStubs.h:
2689         (JSC::):
2690
2691 2010-05-24  Gavin Barraclough  <barraclough@apple.com>
2692
2693         Reviewed by Sam Weinig.
2694         Relanding r60075.
2695
2696         * bytecode/CodeBlock.cpp:
2697         (JSC::CodeBlock::dump):
2698         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
2699         * bytecode/CodeBlock.h:
2700         * bytecode/Opcode.h:
2701         * bytecompiler/BytecodeGenerator.cpp:
2702         (JSC::BytecodeGenerator::BytecodeGenerator):
2703         (JSC::BytecodeGenerator::emitConstruct):
2704         * bytecompiler/BytecodeGenerator.h:
2705         (JSC::BytecodeGenerator::emitGetByIdExceptionInfo):
2706         * interpreter/Interpreter.cpp:
2707         (JSC::Interpreter::privateExecute):
2708         * jit/JIT.cpp:
2709         (JSC::JIT::privateCompileMainPass):
2710         * jit/JIT.h:
2711         * jit/JITCall.cpp:
2712         (JSC::JIT::compileOpCall):
2713         (JSC::JIT::compileOpCallSlowCase):
2714         * jit/JITCall32_64.cpp:
2715         (JSC::JIT::compileOpCall):
2716         (JSC::JIT::compileOpCallSlowCase):
2717         * jit/JITOpcodes.cpp:
2718         (JSC::JIT::privateCompileCTIMachineTrampolines):
2719         (JSC::JIT::privateCompileCTINativeCall):
2720         (JSC::JIT::emit_op_neq_null):
2721         (JSC::JIT::emit_op_convert_this):
2722         (JSC::JIT::emit_op_get_callee):
2723         (JSC::JIT::emit_op_create_this):
2724         * jit/JITOpcodes32_64.cpp:
2725         (JSC::JIT::privateCompileCTIMachineTrampolines):
2726         (JSC::JIT::privateCompileCTINativeCall):
2727         (JSC::JIT::emit_op_get_callee):
2728         (JSC::JIT::emit_op_create_this):
2729         * jit/JITStubs.cpp:
2730         (JSC::DEFINE_STUB_FUNCTION):
2731         (JSC::JITThunks::hostFunctionStub):
2732         * jit/JITStubs.h:
2733         (JSC::JITThunks::ctiNativeConstruct):
2734         (JSC::):
2735         * runtime/ExceptionHelpers.cpp:
2736         (JSC::createNotAnObjectError):
2737         * runtime/Executable.h:
2738         (JSC::NativeExecutable::create):
2739         (JSC::NativeExecutable::NativeExecutable):
2740         * runtime/JSFunction.cpp:
2741         (JSC::callHostFunctionAsConstructor):
2742         * runtime/JSFunction.h:
2743         * wtf/Platform.h:
2744
2745 == Rolled over to ChangeLog-2010-05-24 ==