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