2010-06-17 Shu Chang <chang.shu@nokia.com>
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2010-06-17  Shu Chang  <chang.shu@nokia.com>
2
3         Reviewed by Kenneth Rohde Christiansen.
4
5         [Qt] Fix the link error on symbian with ENABLE_JIT=0.
6         1. Add "#if ENABLE(JIT)" in the header file;
7         2. Put feature enable/disable logic to a common.pri so
8         that both JavaScriptCore.pri and WebCore.pri can share.
9
10         https://bugs.webkit.org/show_bug.cgi?id=40780
11
12         * JavaScriptCore.pri:
13         * jit/ExecutableAllocator.h:
14
15 2010-06-17  Darin Adler  <darin@apple.com>
16
17         Reviewed by Sam Weinig.
18
19         Use adoptRef and create functions in more code paths
20         https://bugs.webkit.org/show_bug.cgi?id=40760
21
22         * API/JSClassRef.h: Removed unneeded include of RefCounted.h.
23         * API/JSWeakObjectMapRefPrivate.cpp: Ditto.
24
25         * bytecode/CodeBlock.h:
26         (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the
27         SharedSymbolTable::create function instead of calling new directly.
28
29         * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable
30         class and made the constructor private.
31
32 2010-06-17  Mark Brand  <mabrand@mabrand.nl>
33
34         Reviewed by Simon Hausmann.
35
36         [Qt] use "win32-g++*" scope to match all MinGW makespecs
37
38         The scope "win32-g++" comes from the name of the makespec. However, it
39         is frequently used to check for MinGW. This works fine as long as
40         win32-g++ is the only makespec for MinGW. Now we need the wildcard
41         to cover "win32-g++-cross" as well.
42
43         * JavaScriptCore.pro:
44
45 2010-06-16  Darin Adler  <darin@apple.com>
46
47         Reviewed by David Levin.
48
49         Deploy adoptRef in more places, including all HTML and MathML elements
50         https://bugs.webkit.org/show_bug.cgi?id=39941
51
52         * wtf/ThreadSafeShared.h: Made the constructor protected and removed the
53         unneeded support for initial reference counts other than 1.
54
55 2010-06-16  Peter Varga  <pvarga@inf.u-szeged.hu>
56
57         Reviewed by Geoffrey Garen.
58
59         Store matchBegin directly in the array of output instead of the stack.
60         https://bugs.webkit.org/show_bug.cgi?id=38988
61
62         * yarr/RegexJIT.cpp:
63         (JSC::Yarr::RegexGenerator::generateDisjunction):
64         (JSC::Yarr::RegexGenerator::generate):
65
66 2010-06-15  Anders Carlsson  <andersca@apple.com>
67
68         Reviewed by Sam Weinig.
69
70         Make JavaScriptCore build with clang++.
71
72         * jit/JITInlineMethods.h:
73         (JSC::JIT::emitPutVirtualRegister):
74         Explicitly cast to an int.
75
76         * yarr/RegexCompiler.cpp:
77         (JSC::Yarr::compileRegex):
78         Return 0 instead of false.
79
80 2010-06-15  Adam Roben  <aroben@apple.com>
81
82         Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
83
84         Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
85
86         Reviewed by Sam Weinig.
87
88         * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of
89         JavaScriptCore's DerivedSources directory to
90         AppleInternal/Sources/JavaScriptCore.
91
92 2010-06-15  Gabor Loki  <loki@webkit.org>
93
94         Rubber-stamped by Eric Seidel.
95
96         Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM
97         https://bugs.webkit.org/show_bug.cgi?id=40423
98
99         Using OBJECT_OFFSETOF macro instead of objectof to bypass access to
100         non-static data member warning.
101
102         * jit/JITPropertyAccess32_64.cpp:
103         (JSC::JIT::privateCompilePutByIdTransition):
104
105 2010-06-11  Eric Seidel  <eric@webkit.org>
106
107         Reviewed by Adam Barth.
108
109         Rename the rest of the *Tokenizer classes to *DocumentParser
110         https://bugs.webkit.org/show_bug.cgi?id=40507
111
112         * wtf/Platform.h:
113          - fixed a comment to match new names.
114
115 2010-06-11  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
116
117         Reviewed by Simon Hausmann.
118
119         [Qt] Explicit conversions from QtScript types to JSC opaque types were removed.
120         https://bugs.webkit.org/show_bug.cgi?id=40412
121
122         Conversion between a JSC C types and a QtScript private types, takes
123         main part of the source code. In most cases a mapping between the types
124         is one to one. New cast operators were added to simplify the code.
125
126         The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef.
127         The QScriptEnginePrivate could be casted to the JSGlobalContext.
128         The QScriptProgramPrivate could be casted to the JSStringRef.
129
130         * qt/api/qscriptengine_p.cpp:
131         (QScriptEnginePrivate::evaluate):
132         (QScriptEnginePrivate::newObject):
133         (QScriptEnginePrivate::globalObject):
134         * qt/api/qscriptengine_p.h:
135         (QScriptEnginePrivate::operator JSGlobalContextRef):
136         * qt/api/qscriptprogram_p.h:
137         (QScriptProgramPrivate::operator JSStringRef):
138         * qt/api/qscriptsyntaxcheckresult.cpp:
139         (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate):
140         (QScriptSyntaxCheckResultPrivate::errorMessage):
141         (QScriptSyntaxCheckResultPrivate::errorLineNumber):
142         * qt/api/qscriptvalue_p.h:
143         (QScriptValuePrivate::~QScriptValuePrivate):
144         (QScriptValuePrivate::QScriptValuePrivate):
145         (QScriptValuePrivate::isBool):
146         (QScriptValuePrivate::isNumber):
147         (QScriptValuePrivate::isNull):
148         (QScriptValuePrivate::isString):
149         (QScriptValuePrivate::isUndefined):
150         (QScriptValuePrivate::isFunction):
151         (QScriptValuePrivate::toString):
152         (QScriptValuePrivate::toNumber):
153         (QScriptValuePrivate::toBool):
154         (QScriptValuePrivate::toObject):
155         (QScriptValuePrivate::equals):
156         (QScriptValuePrivate::strictlyEquals):
157         (QScriptValuePrivate::instanceOf):
158         (QScriptValuePrivate::call):
159         (QScriptValuePrivate::operator JSValueRef):
160         (QScriptValuePrivate::operator JSObjectRef):
161         (QScriptValuePrivate::setValue):
162         (QScriptValuePrivate::inherits):
163         (QScriptValuePrivate::refinedJSValue):
164
165 2010-05-31  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
166
167         Reviewed by Simon Hausmann.
168
169         [Qt] Implement the simple text code path.
170         https://bugs.webkit.org/show_bug.cgi?id=40077
171
172         Remove the FONT_FAST_PATH macro and use the Qt's
173         fast text implementation instead of the one of WebKit.
174
175         The Qt::TextBypassShaping flag is used to tell Qt to
176         only use the glyph advances.
177
178         Qt 4.7 is needed to get this flag thus the complex path is always
179         used if QtWebKit is compiled against an earlier version.
180
181         Contrary to the WebKit's implementation, the complex code path
182         is taken if the text is RightToLeft, justified or is formatted
183         with non-zero letter or word spacing.
184
185         * wtf/Platform.h:
186
187 2010-06-11  Luiz Agostini  <luiz.agostini@openbossa.org>
188
189         Reviewed by Kenneth Rohde Christiansen.
190
191         add codePointCompare to JavaScriptCore.exp
192         https://bugs.webkit.org/show_bug.cgi?id=40426
193
194         * JavaScriptCore.exp:
195
196 2010-06-10  Oliver Hunt  <oliver@apple.com>
197
198         Reviewed by Maciej Stachowiak.
199
200         Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode
201         https://bugs.webkit.org/show_bug.cgi?id=40367
202
203         If we're in the slow case of right shift we must write the type tag as
204         the only reason we hit this code path is because we know we're working
205         with a double.  eg. we are guaranteed that the tag cannot be reused.
206
207         * jit/JITArithmetic32_64.cpp:
208         (JSC::JIT::emitRightShiftSlowCase):
209
210 2010-06-10  Kwang Yul Seo  <skyul@company100.net>
211
212         Reviewed by Eric Seidel.
213
214         Remove weakRandomNumber
215         https://bugs.webkit.org/show_bug.cgi?id=40291
216
217         weakRandomNumber is used nowhere. Currently, WeakRandom is used instead.
218
219         * wtf/RandomNumber.cpp:
220         * wtf/RandomNumber.h:
221
222 2010-06-09  Alexey Proskuryakov  <ap@apple.com>
223
224         Reviewed by Brady Eidson.
225
226         Export StringImpl::ascii(). It might be not very useful, but it's a public function.
227
228         * JavaScriptCore.exp:
229
230 2010-06-09  Leandro Pereira  <leandro@profusion.mobi>
231
232         Reviewed by Adam Treat.
233
234         [EFL] Allow building core libraries as shared objects to speed up
235         linking time on machines with small amounts of memory.
236         http://webkit.org/b/39899
237
238         * CMakeLists.txt: If building with shared core, install the lib.
239         * jsc/CMakeListsEfl.txt: Needs Glib and Ecore to link dynamically.
240         * wtf/CMakeLists.txt: If building with shared core, install the lib.
241
242 2010-06-09  Gabor Loki  <loki@webkit.org>
243
244         Reviewed by David Levin.
245
246         Remove some unused variable warnings from JITOpcodes
247         https://bugs.webkit.org/show_bug.cgi?id=40298
248
249         * jit/JITOpcodes.cpp:
250         (JSC::JIT::privateCompileCTINativeCall):
251         * jit/JITOpcodes32_64.cpp:
252         (JSC::JIT::privateCompileCTINativeCall):
253
254 2010-05-18  Yuzo Fujishima  <yuzo@google.com>
255
256         Reviewed by Shinichiro Hamaji.
257
258         Fix for Bug 34529 -  [CSSOM] issues with cssText and selectorText
259         Add U16_LENGTH that is needed to implement CSS character serialization.
260         https://bugs.webkit.org/show_bug.cgi?id=34529
261
262         * wtf/unicode/qt4/UnicodeQt4.h:
263         * wtf/unicode/wince/UnicodeWince.h:
264
265 2010-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
266
267         Unreviewed, rolling out r60830.
268         http://trac.webkit.org/changeset/60830
269         https://bugs.webkit.org/show_bug.cgi?id=40305
270
271         Broke the Windows build (Requested by abarth on #webkit).
272
273         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
274         * wtf/OwnPtrCommon.h:
275         * wtf/brew/OwnPtrBrew.h: Removed.
276         * wtf/win/OwnPtrWin.h: Removed.
277
278 2010-06-08  MORITA Hajime  <morrita@google.com>
279
280         Unreviewed. An attempt to fix test break.
281
282         * Configurations/FeatureDefines.xcconfig:
283
284 2010-06-08  Kwang Yul Seo  <skyul@company100.net>
285
286         Reviewed by Adam Barth.
287
288         Change OwnPtrCommon to include platform-specific headers
289         https://bugs.webkit.org/show_bug.cgi?id=40279
290
291         Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
292         Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
293
294         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
295         * wtf/OwnPtrCommon.h:
296         * wtf/brew/OwnPtrBrew.h: Added.
297         * wtf/win/OwnPtrWin.h: Added.
298
299 2010-06-07  MORITA Hajime  <morrita@google.com>
300         
301         Reviewed by Kent Tamura.
302
303         https://bugs.webkit.org/show_bug.cgi?id=40219
304         [Mac] ENABLE_METER_TAG should be enabled
305         
306         Added ENABLE_METER_TAG.
307
308         * Configurations/FeatureDefines.xcconfig:
309
310 2010-06-07  Kwang Yul Seo  <skyul@company100.net>
311
312         Reviewed by Eric Seidel.
313
314         [BREWMP] Add more types to OwnPtr
315         https://bugs.webkit.org/show_bug.cgi?id=39667
316
317         Add ISSL and ISocket to the list of OwnPtr-ed type.
318
319         * wtf/OwnPtrCommon.h:
320         * wtf/brew/OwnPtrBrew.cpp:
321         (WTF::deleteOwnedPtr):
322
323 2010-06-07  Benjamin Poulain  <benjamin.poulain@nokia.com>
324
325         Reviewed by Simon Hausmann.
326
327         [Qt] Crash when compiling on Snow Leopard and running on Leopard
328         https://bugs.webkit.org/show_bug.cgi?id=31403
329
330         Disable the use of pthread_setname_np and other symbols
331         when targetting Leopard.
332
333         Use the defines TARGETING_XX instead of BUILDING_ON_XX 
334         for features that cannot be used before Snow Leopard.
335
336         * wtf/Platform.h:
337
338 2010-06-07  Gabor Loki  <loki@webkit.org>
339
340         Reviewed by NOBODY (JSVALUE32_64 build fix).
341
342         * jit/JITOpcodes32_64.cpp:
343         (JSC::JIT::privateCompileCTINativeCall):
344
345 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
346
347         Reviewed by NOBODY (windows build fix pt 2).
348
349         * JavaScriptCore.exp:
350         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
351
352 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
353
354         Reviewed by NOBODY (windows build fix pt 1).
355
356         * JavaScriptCore.exp:
357         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
358
359 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
360
361         Reviewed by Sam Weinig.
362
363         Bug 40214 - Clean up error construction / throwing in JSC.
364         
365         The one egregious insanity here is that creating an error requires
366         a VM-entry-esqe-host call (the string argument is wrapped as a JS
367         object & pushed on the RegisterFile, then unwrapped back to a
368         UString).  Changing this also means you only require a global
369         object, not an ExecState, to create an error.
370
371         The methods to create error objects are also parameterized
372         requiring a switch on the type, which can be made cleaner and
373         faster by moving to a separate method per error type.  Code to add
374         divot information to error had been duplicated, and is coalesced
375         back into a single function.
376
377         Convenience methods added to create & throw type & syntax error
378         with a default error message, since this is a common case.
379
380         Also, errors are currently thrown either using
381         "throwError(exec, error)" or "exec->setException(error)" - unify
382         on the former, since this is more commonly used.  Add
383         "throwVMError(exec, error)" equivalents, as a convenience for
384         cases where the result was being wrapped in "JSValue::encode(...)".
385
386         * API/JSCallbackConstructor.cpp:
387         (JSC::constructJSCallback):
388         * API/JSCallbackFunction.cpp:
389         (JSC::JSCallbackFunction::call):
390         * API/JSCallbackObjectFunctions.h:
391         (JSC::::getOwnPropertySlot):
392         (JSC::::put):
393         (JSC::::deleteProperty):
394         (JSC::::construct):
395         (JSC::::hasInstance):
396         (JSC::::call):
397         (JSC::::toNumber):
398         (JSC::::toString):
399         (JSC::::staticValueGetter):
400         (JSC::::staticFunctionGetter):
401         (JSC::::callbackGetter):
402         * API/JSObjectRef.cpp:
403         (JSObjectMakeError):
404         * JavaScriptCore.exp:
405         * bytecompiler/BytecodeGenerator.cpp:
406         (JSC::BytecodeGenerator::emitNewError):
407         (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
408         * bytecompiler/BytecodeGenerator.h:
409         * bytecompiler/NodesCodegen.cpp:
410         (JSC::ThrowableExpressionData::emitThrowError):
411         (JSC::RegExpNode::emitBytecode):
412         (JSC::PostfixErrorNode::emitBytecode):
413         (JSC::PrefixErrorNode::emitBytecode):
414         (JSC::AssignErrorNode::emitBytecode):
415         (JSC::ForInNode::emitBytecode):
416         (JSC::ContinueNode::emitBytecode):
417         (JSC::BreakNode::emitBytecode):
418         (JSC::ReturnNode::emitBytecode):
419         (JSC::LabelNode::emitBytecode):
420         * interpreter/CallFrame.h:
421         * interpreter/Interpreter.cpp:
422         (JSC::Interpreter::throwException):
423         (JSC::Interpreter::privateExecute):
424         * jit/JITStubs.cpp:
425         (JSC::DEFINE_STUB_FUNCTION):
426         * jsc.cpp:
427         (functionRun):
428         (functionLoad):
429         (functionCheckSyntax):
430         * parser/Nodes.h:
431         * runtime/ArrayConstructor.cpp:
432         (JSC::constructArrayWithSizeQuirk):
433         * runtime/ArrayPrototype.cpp:
434         (JSC::arrayProtoFuncToString):
435         (JSC::arrayProtoFuncToLocaleString):
436         (JSC::arrayProtoFuncJoin):
437         (JSC::arrayProtoFuncFilter):
438         (JSC::arrayProtoFuncMap):
439         (JSC::arrayProtoFuncEvery):
440         (JSC::arrayProtoFuncForEach):
441         (JSC::arrayProtoFuncSome):
442         (JSC::arrayProtoFuncReduce):
443         (JSC::arrayProtoFuncReduceRight):
444         * runtime/BooleanPrototype.cpp:
445         (JSC::booleanProtoFuncToString):
446         (JSC::booleanProtoFuncValueOf):
447         * runtime/DatePrototype.cpp:
448         (JSC::dateProtoFuncToString):
449         (JSC::dateProtoFuncToUTCString):
450         (JSC::dateProtoFuncToISOString):
451         (JSC::dateProtoFuncToDateString):
452         (JSC::dateProtoFuncToTimeString):
453         (JSC::dateProtoFuncToLocaleString):
454         (JSC::dateProtoFuncToLocaleDateString):
455         (JSC::dateProtoFuncToLocaleTimeString):
456         (JSC::dateProtoFuncGetTime):
457         (JSC::dateProtoFuncGetFullYear):
458         (JSC::dateProtoFuncGetUTCFullYear):
459         (JSC::dateProtoFuncToGMTString):
460         (JSC::dateProtoFuncGetMonth):
461         (JSC::dateProtoFuncGetUTCMonth):
462         (JSC::dateProtoFuncGetDate):
463         (JSC::dateProtoFuncGetUTCDate):
464         (JSC::dateProtoFuncGetDay):
465         (JSC::dateProtoFuncGetUTCDay):
466         (JSC::dateProtoFuncGetHours):
467         (JSC::dateProtoFuncGetUTCHours):
468         (JSC::dateProtoFuncGetMinutes):
469         (JSC::dateProtoFuncGetUTCMinutes):
470         (JSC::dateProtoFuncGetSeconds):
471         (JSC::dateProtoFuncGetUTCSeconds):
472         (JSC::dateProtoFuncGetMilliSeconds):
473         (JSC::dateProtoFuncGetUTCMilliseconds):
474         (JSC::dateProtoFuncGetTimezoneOffset):
475         (JSC::dateProtoFuncSetTime):
476         (JSC::setNewValueFromTimeArgs):
477         (JSC::setNewValueFromDateArgs):
478         (JSC::dateProtoFuncSetMilliSeconds):
479         (JSC::dateProtoFuncSetUTCMilliseconds):
480         (JSC::dateProtoFuncSetSeconds):
481         (JSC::dateProtoFuncSetUTCSeconds):
482         (JSC::dateProtoFuncSetMinutes):
483         (JSC::dateProtoFuncSetUTCMinutes):
484         (JSC::dateProtoFuncSetHours):
485         (JSC::dateProtoFuncSetUTCHours):
486         (JSC::dateProtoFuncSetDate):
487         (JSC::dateProtoFuncSetUTCDate):
488         (JSC::dateProtoFuncSetMonth):
489         (JSC::dateProtoFuncSetUTCMonth):
490         (JSC::dateProtoFuncSetFullYear):
491         (JSC::dateProtoFuncSetUTCFullYear):
492         (JSC::dateProtoFuncSetYear):
493         (JSC::dateProtoFuncGetYear):
494         (JSC::dateProtoFuncToJSON):
495         * runtime/Error.cpp:
496         (JSC::createError):
497         (JSC::createEvalError):
498         (JSC::createRangeError):
499         (JSC::createReferenceError):
500         (JSC::createSyntaxError):
501         (JSC::createTypeError):
502         (JSC::createURIError):
503         (JSC::addErrorSourceInfo):
504         (JSC::addErrorDivotInfo):
505         (JSC::addErrorInfo):
506         (JSC::hasErrorInfo):
507         (JSC::throwError):
508         (JSC::throwTypeError):
509         (JSC::throwSyntaxError):
510         * runtime/Error.h:
511         (JSC::throwVMError):
512         (JSC::throwVMTypeError):
513         * runtime/ErrorConstructor.cpp:
514         (JSC::constructWithErrorConstructor):
515         (JSC::callErrorConstructor):
516         * runtime/ErrorConstructor.h:
517         * runtime/ErrorInstance.cpp:
518         (JSC::ErrorInstance::ErrorInstance):
519         (JSC::ErrorInstance::create):
520         * runtime/ErrorInstance.h:
521         * runtime/ErrorPrototype.cpp:
522         (JSC::ErrorPrototype::ErrorPrototype):
523         * runtime/ExceptionHelpers.cpp:
524         (JSC::createStackOverflowError):
525         (JSC::createUndefinedVariableError):
526         (JSC::createInvalidParamError):
527         (JSC::createNotAConstructorError):
528         (JSC::createNotAFunctionError):
529         (JSC::createNotAnObjectError):
530         (JSC::throwOutOfMemoryError):
531         * runtime/ExceptionHelpers.h:
532         * runtime/Executable.cpp:
533         (JSC::EvalExecutable::compile):
534         (JSC::ProgramExecutable::checkSyntax):
535         (JSC::ProgramExecutable::compile):
536         * runtime/FunctionConstructor.cpp:
537         (JSC::constructFunction):
538         * runtime/FunctionPrototype.cpp:
539         (JSC::functionProtoFuncToString):
540         (JSC::functionProtoFuncApply):
541         (JSC::functionProtoFuncCall):
542         * runtime/Identifier.cpp:
543         (JSC::Identifier::from):
544         * runtime/Identifier.h:
545         * runtime/JSArray.cpp:
546         (JSC::JSArray::put):
547         * runtime/JSFunction.cpp:
548         (JSC::callHostFunctionAsConstructor):
549         * runtime/JSGlobalObjectFunctions.cpp:
550         (JSC::encode):
551         (JSC::decode):
552         (JSC::globalFuncEval):
553         * runtime/JSONObject.cpp:
554         (JSC::Stringifier::appendStringifiedValue):
555         (JSC::Walker::walk):
556         (JSC::JSONProtoFuncParse):
557         (JSC::JSONProtoFuncStringify):
558         * runtime/JSObject.cpp:
559         (JSC::throwSetterError):
560         (JSC::JSObject::put):
561         (JSC::JSObject::putWithAttributes):
562         (JSC::JSObject::defaultValue):
563         (JSC::JSObject::hasInstance):
564         (JSC::JSObject::defineOwnProperty):
565         * runtime/JSObject.h:
566         * runtime/JSValue.cpp:
567         (JSC::JSValue::toObjectSlowCase):
568         (JSC::JSValue::synthesizeObject):
569         (JSC::JSValue::synthesizePrototype):
570         * runtime/NativeErrorConstructor.cpp:
571         (JSC::constructWithNativeErrorConstructor):
572         (JSC::callNativeErrorConstructor):
573         * runtime/NativeErrorConstructor.h:
574         * runtime/NumberPrototype.cpp:
575         (JSC::numberProtoFuncToString):
576         (JSC::numberProtoFuncToLocaleString):
577         (JSC::numberProtoFuncValueOf):
578         (JSC::numberProtoFuncToFixed):
579         (JSC::numberProtoFuncToExponential):
580         (JSC::numberProtoFuncToPrecision):
581         * runtime/ObjectConstructor.cpp:
582         (JSC::objectConstructorGetPrototypeOf):
583         (JSC::objectConstructorGetOwnPropertyDescriptor):
584         (JSC::objectConstructorGetOwnPropertyNames):
585         (JSC::objectConstructorKeys):
586         (JSC::toPropertyDescriptor):
587         (JSC::objectConstructorDefineProperty):
588         (JSC::objectConstructorDefineProperties):
589         (JSC::objectConstructorCreate):
590         * runtime/ObjectPrototype.cpp:
591         (JSC::objectProtoFuncDefineGetter):
592         (JSC::objectProtoFuncDefineSetter):
593         * runtime/RegExpConstructor.cpp:
594         (JSC::constructRegExp):
595         * runtime/RegExpObject.cpp:
596         (JSC::RegExpObject::match):
597         * runtime/RegExpPrototype.cpp:
598         (JSC::regExpProtoFuncTest):
599         (JSC::regExpProtoFuncExec):
600         (JSC::regExpProtoFuncCompile):
601         (JSC::regExpProtoFuncToString):
602         * runtime/StringPrototype.cpp:
603         (JSC::stringProtoFuncToString):
604
605 2010-06-05  Kwang Yul Seo  <skyul@company100.net>
606
607         Reviewed by Eric Seidel.
608
609         [BREWMP] Add PLATFORM(BREWMP) guard for using std::xxx
610         https://bugs.webkit.org/show_bug.cgi?id=39710
611
612         Build fix for BREW MP.
613
614         * wtf/MathExtras.h:
615
616 2010-06-04  Adam Barth  <abarth@webkit.org>
617
618         Reviewed by Darin Adler.
619
620         HTML5 parser should be within 1% of old parser performance
621         https://bugs.webkit.org/show_bug.cgi?id=40172
622
623         Fix cast in this operator= to allow for assignment between vectors with
624         different inline capacities (as clearly intended by its author).
625
626         * wtf/Vector.h:
627         (WTF::::operator):
628
629 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
630
631         Reviewed by Kenneth Rohde Christiansen.
632
633         New QtScript API; QScriptValue::instanceOf.
634
635         New function create an easy way to check value's prototype hierarchy.
636
637         [Qt] QScriptValue should have an instanceOf method
638         https://bugs.webkit.org/show_bug.cgi?id=40120
639
640         * qt/api/qscriptvalue.cpp:
641         (QScriptValue::instanceOf):
642         * qt/api/qscriptvalue.h:
643         * qt/api/qscriptvalue_p.h:
644         (QScriptValuePrivate::instanceOf):
645         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
646         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
647         (tst_QScriptValue::instanceOf_initData):
648         (tst_QScriptValue::instanceOf_makeData):
649         (tst_QScriptValue::instanceOf_test):
650
651 2010-06-04  Gavin Barraclough  <barraclough@apple.com>
652
653         Reviewed by NOBODY (interpreter build fix).
654
655         * interpreter/Interpreter.cpp:
656         (JSC::Interpreter::privateExecute):
657
658 2010-06-04  Mark Rowe  <mrowe@apple.com>
659
660         Silence some warnings seen on the build bot.
661
662         * JavaScriptCore.JSVALUE32_64only.exp: Add a trailing newline.
663         * JavaScriptCore.JSVALUE32only.exp: Ditto.
664         * JavaScriptCore.JSVALUE64only.exp: Ditto.
665         * JavaScriptCore.xcodeproj/project.pbxproj: Remove the .exp files from all targets so that Xcode doesn't
666         complain about not knowing how to compile them.
667
668 2010-06-04  Gavin Barraclough  <barraclough@apple.com>
669
670         Reviewed by Oliver Hunt.
671
672         Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
673
674         Mostly for consistency, but constructor & args arguments are redundant,
675         and this will help if we wish to be able to JIT calls to more constructors.
676
677         * API/JSCallbackConstructor.cpp:
678         (JSC::constructJSCallback):
679         * API/JSCallbackObject.h:
680         * API/JSCallbackObjectFunctions.h:
681         (JSC::::construct):
682         * interpreter/Interpreter.cpp:
683         (JSC::Interpreter::executeConstruct):
684         * interpreter/Interpreter.h:
685         * jit/JITStubs.cpp:
686         (JSC::DEFINE_STUB_FUNCTION):
687         * runtime/ArrayConstructor.cpp:
688         (JSC::constructWithArrayConstructor):
689         * runtime/BooleanConstructor.cpp:
690         (JSC::constructWithBooleanConstructor):
691         * runtime/ConstructData.cpp:
692         (JSC::construct):
693         * runtime/ConstructData.h:
694         * runtime/DateConstructor.cpp:
695         (JSC::constructWithDateConstructor):
696         * runtime/Error.cpp:
697         (JSC::constructNativeError):
698         (JSC::Error::create):
699         * runtime/ErrorConstructor.cpp:
700         (JSC::constructWithErrorConstructor):
701         * runtime/FunctionConstructor.cpp:
702         (JSC::constructWithFunctionConstructor):
703         * runtime/NativeErrorConstructor.cpp:
704         (JSC::constructWithNativeErrorConstructor):
705         * runtime/NativeErrorConstructor.h:
706         (JSC::NativeErrorConstructor::errorStructure):
707         * runtime/NumberConstructor.cpp:
708         (JSC::constructWithNumberConstructor):
709         * runtime/ObjectConstructor.cpp:
710         (JSC::constructWithObjectConstructor):
711         * runtime/RegExpConstructor.cpp:
712         (JSC::constructWithRegExpConstructor):
713         * runtime/StringConstructor.cpp:
714         (JSC::constructWithStringConstructor):
715
716 2010-06-04  Tony Gentilcore  <tonyg@chromium.org>
717
718         Reviewed by Adam Barth.
719
720         Add a takeFirst() method to Deque and use it where appropriate.
721         https://bugs.webkit.org/show_bug.cgi?id=40089
722
723         * wtf/Deque.h:
724         (WTF::::takeFirst):
725         * wtf/MainThread.cpp:
726         (WTF::dispatchFunctionsFromMainThread):
727         * wtf/MessageQueue.h:
728         (WTF::::tryGetMessage):
729
730 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
731
732         Reviewed by Kenneth Rohde Christiansen.
733
734         Remove a QEXPECT_FAIL flag from an autotest.
735
736         Test tst_QScriptEngine::globalObject pass after 36600 bug
737         fix have been applied.
738
739         [Qt] Expected fail in the tst_QScriptEngine::globalObject should be removed.
740         https://bugs.webkit.org/show_bug.cgi?id=40114
741
742         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
743         (tst_QScriptEngine::globalObject):
744
745 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
746
747         Reviewed by Kenneth Rohde Christiansen.
748
749         Fix QScriptValue::equals.
750
751         Handling for a few edge cases were added. Now comparison between
752         NaN, an invalid objects should works as supposed.
753
754         [Qt] QScriptValue::equals problems
755         https://bugs.webkit.org/show_bug.cgi?id=40110
756
757         * qt/api/qscriptvalue.cpp:
758         (QScriptValue::equals):
759         * qt/api/qscriptvalue_p.h:
760         (QScriptValuePrivate::equals):
761         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
762         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
763         (tst_QScriptValue::equals_initData):
764         (tst_QScriptValue::equals_makeData):
765         (tst_QScriptValue::equals_test):
766
767 2010-06-03  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
768
769         Reviewed by Kenneth Rohde Christiansen.
770
771         New states in QScriptValuePrivate.
772
773         The CSpecial state was divided into CNull and CUndefined. It simplify
774         the QScriptValue code by avoiding a few "cast" and "if".
775         Moreover the MSVS compiler didn't like casting between a double and an
776         enum which is avoided now.
777
778         [Qt] The QScriptValuePrivate::CSpecial is too generic.
779         https://bugs.webkit.org/show_bug.cgi?id=40067
780
781         * qt/api/qscriptvalue_p.h:
782         (QScriptValuePrivate::):
783         (QScriptValuePrivate::QScriptValuePrivate):
784         (QScriptValuePrivate::isNull):
785         (QScriptValuePrivate::isUndefined):
786         (QScriptValuePrivate::toString):
787         (QScriptValuePrivate::toNumber):
788         (QScriptValuePrivate::toBool):
789         (QScriptValuePrivate::toObject):
790         (QScriptValuePrivate::assignEngine):
791         (QScriptValuePrivate::isNumberBased):
792
793 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
794
795         Reviewed by NOBODY (Qt build fix).
796
797         * wtf/Platform.h:
798
799 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
800
801         Reviewed by Mark Rowe.
802
803         Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms
804         This was fixed in bug #40094.
805
806         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
807         * wtf/Platform.h:
808
809 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
810
811         Reviewed by NOBODY (Interpreter build fix).
812
813         * JavaScriptCore.JSVALUE32_64only.exp:
814         * JavaScriptCore.JSVALUE32only.exp:
815         * JavaScriptCore.JSVALUE64only.exp:
816         * interpreter/Interpreter.cpp:
817         (JSC::Interpreter::privateExecute):
818
819 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
820
821         Reviewed by NOBODY (windows build fix II).
822
823         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
824
825 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
826
827         Reviewed by NOBODY (windows build fix).
828
829         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
830
831 2010-06-02  Gavin Barraclough  <barraclough@apple.com>
832
833         Reviewed by Oliver Hunt.
834
835         Bug 40094 - The return type of NativeFunction should be EncodedJSValue
836         On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not.
837
838         * API/JSCallbackFunction.cpp:
839         (JSC::JSCallbackFunction::call):
840         * API/JSCallbackFunction.h:
841         * API/JSCallbackObject.h:
842         * API/JSCallbackObjectFunctions.h:
843         (JSC::::call):
844         * JavaScriptCore.exp:
845         * interpreter/Interpreter.cpp:
846         (JSC::Interpreter::executeCall):
847         * jit/JITStubs.cpp:
848         (JSC::DEFINE_STUB_FUNCTION):
849         * jit/JITStubs.h:
850         * jsc.cpp:
851         (functionPrint):
852         (functionDebug):
853         (functionGC):
854         (functionVersion):
855         (functionRun):
856         (functionLoad):
857         (functionCheckSyntax):
858         (functionSetSamplingFlags):
859         (functionClearSamplingFlags):
860         (functionReadline):
861         (functionQuit):
862         * runtime/ArrayConstructor.cpp:
863         (JSC::callArrayConstructor):
864         (JSC::arrayConstructorIsArray):
865         * runtime/ArrayPrototype.cpp:
866         (JSC::arrayProtoFuncToString):
867         (JSC::arrayProtoFuncToLocaleString):
868         (JSC::arrayProtoFuncJoin):
869         (JSC::arrayProtoFuncConcat):
870         (JSC::arrayProtoFuncPop):
871         (JSC::arrayProtoFuncPush):
872         (JSC::arrayProtoFuncReverse):
873         (JSC::arrayProtoFuncShift):
874         (JSC::arrayProtoFuncSlice):
875         (JSC::arrayProtoFuncSort):
876         (JSC::arrayProtoFuncSplice):
877         (JSC::arrayProtoFuncUnShift):
878         (JSC::arrayProtoFuncFilter):
879         (JSC::arrayProtoFuncMap):
880         (JSC::arrayProtoFuncEvery):
881         (JSC::arrayProtoFuncForEach):
882         (JSC::arrayProtoFuncSome):
883         (JSC::arrayProtoFuncReduce):
884         (JSC::arrayProtoFuncReduceRight):
885         (JSC::arrayProtoFuncIndexOf):
886         (JSC::arrayProtoFuncLastIndexOf):
887         * runtime/BooleanConstructor.cpp:
888         (JSC::callBooleanConstructor):
889         * runtime/BooleanPrototype.cpp:
890         (JSC::booleanProtoFuncToString):
891         (JSC::booleanProtoFuncValueOf):
892         * runtime/CallData.h:
893         * runtime/DateConstructor.cpp:
894         (JSC::callDate):
895         (JSC::dateParse):
896         (JSC::dateNow):
897         (JSC::dateUTC):
898         * runtime/DatePrototype.cpp:
899         (JSC::dateProtoFuncToString):
900         (JSC::dateProtoFuncToUTCString):
901         (JSC::dateProtoFuncToISOString):
902         (JSC::dateProtoFuncToDateString):
903         (JSC::dateProtoFuncToTimeString):
904         (JSC::dateProtoFuncToLocaleString):
905         (JSC::dateProtoFuncToLocaleDateString):
906         (JSC::dateProtoFuncToLocaleTimeString):
907         (JSC::dateProtoFuncGetTime):
908         (JSC::dateProtoFuncGetFullYear):
909         (JSC::dateProtoFuncGetUTCFullYear):
910         (JSC::dateProtoFuncToGMTString):
911         (JSC::dateProtoFuncGetMonth):
912         (JSC::dateProtoFuncGetUTCMonth):
913         (JSC::dateProtoFuncGetDate):
914         (JSC::dateProtoFuncGetUTCDate):
915         (JSC::dateProtoFuncGetDay):
916         (JSC::dateProtoFuncGetUTCDay):
917         (JSC::dateProtoFuncGetHours):
918         (JSC::dateProtoFuncGetUTCHours):
919         (JSC::dateProtoFuncGetMinutes):
920         (JSC::dateProtoFuncGetUTCMinutes):
921         (JSC::dateProtoFuncGetSeconds):
922         (JSC::dateProtoFuncGetUTCSeconds):
923         (JSC::dateProtoFuncGetMilliSeconds):
924         (JSC::dateProtoFuncGetUTCMilliseconds):
925         (JSC::dateProtoFuncGetTimezoneOffset):
926         (JSC::dateProtoFuncSetTime):
927         (JSC::dateProtoFuncSetMilliSeconds):
928         (JSC::dateProtoFuncSetUTCMilliseconds):
929         (JSC::dateProtoFuncSetSeconds):
930         (JSC::dateProtoFuncSetUTCSeconds):
931         (JSC::dateProtoFuncSetMinutes):
932         (JSC::dateProtoFuncSetUTCMinutes):
933         (JSC::dateProtoFuncSetHours):
934         (JSC::dateProtoFuncSetUTCHours):
935         (JSC::dateProtoFuncSetDate):
936         (JSC::dateProtoFuncSetUTCDate):
937         (JSC::dateProtoFuncSetMonth):
938         (JSC::dateProtoFuncSetUTCMonth):
939         (JSC::dateProtoFuncSetFullYear):
940         (JSC::dateProtoFuncSetUTCFullYear):
941         (JSC::dateProtoFuncSetYear):
942         (JSC::dateProtoFuncGetYear):
943         (JSC::dateProtoFuncToJSON):
944         * runtime/ErrorConstructor.cpp:
945         (JSC::callErrorConstructor):
946         * runtime/ErrorPrototype.cpp:
947         (JSC::errorProtoFuncToString):
948         * runtime/FunctionConstructor.cpp:
949         (JSC::callFunctionConstructor):
950         * runtime/FunctionPrototype.cpp:
951         (JSC::callFunctionPrototype):
952         (JSC::functionProtoFuncToString):
953         (JSC::functionProtoFuncApply):
954         (JSC::functionProtoFuncCall):
955         * runtime/JSCell.h:
956         (JSC::getCallData):
957         (JSC::getConstructData):
958         * runtime/JSFunction.cpp:
959         (JSC::callHostFunctionAsConstructor):
960         * runtime/JSFunction.h:
961         * runtime/JSGlobalObjectFunctions.cpp:
962         (JSC::globalFuncEval):
963         (JSC::globalFuncParseInt):
964         (JSC::globalFuncParseFloat):
965         (JSC::globalFuncIsNaN):
966         (JSC::globalFuncIsFinite):
967         (JSC::globalFuncDecodeURI):
968         (JSC::globalFuncDecodeURIComponent):
969         (JSC::globalFuncEncodeURI):
970         (JSC::globalFuncEncodeURIComponent):
971         (JSC::globalFuncEscape):
972         (JSC::globalFuncUnescape):
973         (JSC::globalFuncJSCPrint):
974         * runtime/JSGlobalObjectFunctions.h:
975         * runtime/JSONObject.cpp:
976         (JSC::JSONProtoFuncParse):
977         (JSC::JSONProtoFuncStringify):
978         * runtime/JSObject.cpp:
979         (JSC::callDefaultValueFunction):
980         * runtime/JSValue.h:
981         * runtime/MathObject.cpp:
982         (JSC::mathProtoFuncAbs):
983         (JSC::mathProtoFuncACos):
984         (JSC::mathProtoFuncASin):
985         (JSC::mathProtoFuncATan):
986         (JSC::mathProtoFuncATan2):
987         (JSC::mathProtoFuncCeil):
988         (JSC::mathProtoFuncCos):
989         (JSC::mathProtoFuncExp):
990         (JSC::mathProtoFuncFloor):
991         (JSC::mathProtoFuncLog):
992         (JSC::mathProtoFuncMax):
993         (JSC::mathProtoFuncMin):
994         (JSC::mathProtoFuncPow):
995         (JSC::mathProtoFuncRandom):
996         (JSC::mathProtoFuncRound):
997         (JSC::mathProtoFuncSin):
998         (JSC::mathProtoFuncSqrt):
999         (JSC::mathProtoFuncTan):
1000         * runtime/NativeErrorConstructor.cpp:
1001         (JSC::callNativeErrorConstructor):
1002         * runtime/NumberConstructor.cpp:
1003         (JSC::callNumberConstructor):
1004         * runtime/NumberPrototype.cpp:
1005         (JSC::numberProtoFuncToString):
1006         (JSC::numberProtoFuncToLocaleString):
1007         (JSC::numberProtoFuncValueOf):
1008         (JSC::numberProtoFuncToFixed):
1009         (JSC::numberProtoFuncToExponential):
1010         (JSC::numberProtoFuncToPrecision):
1011         * runtime/ObjectConstructor.cpp:
1012         (JSC::callObjectConstructor):
1013         (JSC::objectConstructorGetPrototypeOf):
1014         (JSC::objectConstructorGetOwnPropertyDescriptor):
1015         (JSC::objectConstructorGetOwnPropertyNames):
1016         (JSC::objectConstructorKeys):
1017         (JSC::toPropertyDescriptor):
1018         (JSC::objectConstructorDefineProperty):
1019         (JSC::objectConstructorDefineProperties):
1020         (JSC::objectConstructorCreate):
1021         * runtime/ObjectPrototype.cpp:
1022         (JSC::objectProtoFuncValueOf):
1023         (JSC::objectProtoFuncHasOwnProperty):
1024         (JSC::objectProtoFuncIsPrototypeOf):
1025         (JSC::objectProtoFuncDefineGetter):
1026         (JSC::objectProtoFuncDefineSetter):
1027         (JSC::objectProtoFuncLookupGetter):
1028         (JSC::objectProtoFuncLookupSetter):
1029         (JSC::objectProtoFuncPropertyIsEnumerable):
1030         (JSC::objectProtoFuncToLocaleString):
1031         (JSC::objectProtoFuncToString):
1032         * runtime/ObjectPrototype.h:
1033         * runtime/RegExpConstructor.cpp:
1034         (JSC::callRegExpConstructor):
1035         * runtime/RegExpObject.cpp:
1036         (JSC::callRegExpObject):
1037         * runtime/RegExpPrototype.cpp:
1038         (JSC::regExpProtoFuncTest):
1039         (JSC::regExpProtoFuncExec):
1040         (JSC::regExpProtoFuncCompile):
1041         (JSC::regExpProtoFuncToString):
1042         * runtime/StringConstructor.cpp:
1043         (JSC::stringFromCharCode):
1044         (JSC::callStringConstructor):
1045         * runtime/StringPrototype.cpp:
1046         (JSC::stringProtoFuncReplace):
1047         (JSC::stringProtoFuncToString):
1048         (JSC::stringProtoFuncCharAt):
1049         (JSC::stringProtoFuncCharCodeAt):
1050         (JSC::stringProtoFuncConcat):
1051         (JSC::stringProtoFuncIndexOf):
1052         (JSC::stringProtoFuncLastIndexOf):
1053         (JSC::stringProtoFuncMatch):
1054         (JSC::stringProtoFuncSearch):
1055         (JSC::stringProtoFuncSlice):
1056         (JSC::stringProtoFuncSplit):
1057         (JSC::stringProtoFuncSubstr):
1058         (JSC::stringProtoFuncSubstring):
1059         (JSC::stringProtoFuncToLowerCase):
1060         (JSC::stringProtoFuncToUpperCase):
1061         (JSC::stringProtoFuncLocaleCompare):
1062         (JSC::stringProtoFuncBig):
1063         (JSC::stringProtoFuncSmall):
1064         (JSC::stringProtoFuncBlink):
1065         (JSC::stringProtoFuncBold):
1066         (JSC::stringProtoFuncFixed):
1067         (JSC::stringProtoFuncItalics):
1068         (JSC::stringProtoFuncStrike):
1069         (JSC::stringProtoFuncSub):
1070         (JSC::stringProtoFuncSup):
1071         (JSC::stringProtoFuncFontcolor):
1072         (JSC::stringProtoFuncFontsize):
1073         (JSC::stringProtoFuncAnchor):
1074         (JSC::stringProtoFuncLink):
1075         (JSC::stringProtoFuncTrim):
1076         (JSC::stringProtoFuncTrimLeft):
1077         (JSC::stringProtoFuncTrimRight):
1078
1079 2010-06-02  Mark Rowe  <mrowe@apple.com>
1080
1081         Reviewed by Gavin Barraclough.
1082
1083         Add value-representation specific sections to the mac export file.
1084
1085         * Configurations/JavaScriptCore.xcconfig:
1086         * DerivedSources.make:
1087         * JavaScriptCore.JSVALUE32_64only.exp: Added.
1088         * JavaScriptCore.JSVALUE32only.exp: Added.
1089         * JavaScriptCore.JSVALUE64only.exp: Added.
1090         * JavaScriptCore.xcodeproj/project.pbxproj:
1091
1092 2010-06-02  Mark Rowe  <mrowe@apple.com>
1093
1094         Reviewed by Gavin Barraclough.
1095
1096         <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE.
1097
1098         * pcre/pcre_exec.cpp:
1099         (repeatInformationFromInstructionOffset): Change the type of instructionOffset to int.  There's no good
1100         reason for it to be a short, and using int prevents this code from triggering the LLVM GCC bug.
1101
1102 2010-06-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1103
1104         Reviewed by Kenneth Rohde Christiansen.
1105
1106         Fix the QScriptValue::strictlyEquals function.
1107
1108         Handling for a few edge cases was added.
1109
1110         New autotest that covers the QScriptValue::strictlyEquals function.
1111
1112         [Qt] QScriptValue::strictlyEquals is broken
1113         https://bugs.webkit.org/show_bug.cgi?id=36600
1114
1115         * qt/api/qscriptvalue.cpp:
1116         (QScriptValue::strictlyEquals):
1117         * qt/api/qscriptvalue_p.h:
1118         (QScriptValuePrivate::strictlyEquals):
1119         * qt/tests/qscriptvalue/qscriptvalue.pro:
1120         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
1121         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: Added.
1122         (tst_QScriptValue::strictlyEquals_initData):
1123         (tst_QScriptValue::strictlyEquals_makeData):
1124         (tst_QScriptValue::strictlyEquals_test):
1125
1126 2010-06-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1127
1128         Reviewed by Kenneth Rohde Christiansen.
1129
1130         New function QScriptEngine::newObject.
1131
1132         The function creates a object of class Object and returns it
1133         as a QScriptValue.
1134
1135         [Qt] QScriptEngine API should contain a newObject function
1136         https://bugs.webkit.org/show_bug.cgi?id=39114
1137
1138         * qt/api/qscriptengine.cpp:
1139         (QScriptEngine::newObject):
1140         * qt/api/qscriptengine.h:
1141         * qt/api/qscriptengine_p.cpp:
1142         (QScriptEnginePrivate::newObject):
1143         * qt/api/qscriptengine_p.h:
1144         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
1145         (tst_QScriptEngine::newObject):
1146
1147 2010-06-02  Gabor Loki  <loki@webkit.org>
1148
1149         Reviewed by Gavin Barraclough.
1150         https://bugs.webkit.org/show_bug.cgi?id=40011
1151
1152         Thumb-2 build fix: The offset parameter of ldrh should be encoded as an
1153         imm12 immediate constant in load16. If it is not fit in the instruction
1154         a temporary register has to be used.
1155
1156         * assembler/MacroAssemblerARMv7.h:
1157         (JSC::MacroAssemblerARMv7::load16):
1158
1159 2010-06-02  Sterling Swigart  <sswigart@google.com>
1160
1161         Reviewed by David Levin.
1162
1163         Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
1164         https://bugs.webkit.org/show_bug.cgi?id=39906
1165
1166         * Configurations/FeatureDefines.xcconfig:
1167
1168 2010-06-01  Gavin Barraclough  <barraclough@apple.com>
1169
1170         Reviewed by Sam Weinig.
1171
1172         Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together
1173
1174         This is a useful stepping stone towards reversing argument order.
1175
1176         * bytecompiler/BytecodeGenerator.cpp:
1177         (JSC::BytecodeGenerator::BytecodeGenerator):
1178         (JSC::BytecodeGenerator::addParameter):
1179         (JSC::BytecodeGenerator::emitCall):
1180         (JSC::BytecodeGenerator::emitCallEval):
1181         (JSC::BytecodeGenerator::emitConstruct):
1182         * bytecompiler/BytecodeGenerator.h:
1183         (JSC::CallArguments::thisRegister):
1184         (JSC::CallArguments::argumentRegister):
1185         (JSC::CallArguments::callFrame):
1186         (JSC::CallArguments::count):
1187         (JSC::BytecodeGenerator::shouldEmitProfileHooks):
1188         * bytecompiler/NodesCodegen.cpp:
1189         (JSC::NewExprNode::emitBytecode):
1190         (JSC::CallArguments::CallArguments):
1191         (JSC::EvalFunctionCallNode::emitBytecode):
1192         (JSC::FunctionCallValueNode::emitBytecode):
1193         (JSC::FunctionCallResolveNode::emitBytecode):
1194         (JSC::FunctionCallBracketNode::emitBytecode):
1195         (JSC::FunctionCallDotNode::emitBytecode):
1196         (JSC::CallFunctionCallDotNode::emitBytecode):
1197         (JSC::ApplyFunctionCallDotNode::emitBytecode):
1198
1199 2010-06-01  Yong Li  <yoli@rim.com>
1200
1201         Reviewed by Darin Adler.
1202
1203         Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex.
1204         https://bugs.webkit.org/show_bug.cgi?id=39893
1205
1206         * wtf/ThreadingPthreads.cpp:
1207         (WTF::Mutex::Mutex):
1208
1209 2010-06-01  Kwang Yul Seo  <skyul@company100.net>
1210
1211         Reviewed by Xan Lopez.
1212
1213         [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap
1214         https://bugs.webkit.org/show_bug.cgi?id=39831
1215
1216         Use DEFINE_STATIC_LOCAL for static local variables.
1217
1218         * wtf/gtk/ThreadingGtk.cpp:
1219         (WTF::threadMapMutex):
1220         (WTF::threadMap):
1221         (WTF::identifierByGthreadHandle):
1222
1223 2010-06-01  Kent Tamura  <tkent@chromium.org>
1224
1225         Reviewed by Shinichiro Hamaji.
1226
1227         Fix style errors of dtoa
1228         https://bugs.webkit.org/show_bug.cgi?id=39972
1229
1230         Fix all errors reported by check-webkit-style.
1231
1232         * wtf/dtoa.cpp:
1233         * wtf/dtoa.h:
1234
1235 2010-05-30  Darin Adler  <darin@apple.com>
1236
1237         Reviewed by Sam Weinig.
1238
1239         * wtf/OwnArrayPtr.h:
1240         (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr.
1241         At some point someone fixed the "asserts when assigning to 0 and the pointer is
1242         already 0" issue in OwnPtr but forgot to do it here.
1243
1244 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
1245
1246         Windows build fix: Updated exported symbols.
1247         
1248         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1249
1250 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
1251
1252         Disabled ENABLE_JIT_OPTIMIZE_NATIVE_CALL on Windows for now, until I
1253         can figure out why it's crashing.
1254
1255         * wtf/Platform.h:
1256
1257 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
1258
1259         Fixed Windows crash seen on buildbot.
1260
1261         * jit/JITOpcodes32_64.cpp:
1262         (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first
1263         argument in ecx.
1264
1265 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1266
1267         Windows build fix: Updated exported symbols.
1268
1269         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1270
1271 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1272
1273         Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL
1274         is disabled.
1275
1276         * runtime/Lookup.cpp:
1277         (JSC::setUpStaticFunctionSlot):
1278         * runtime/Lookup.h:
1279         * wtf/Platform.h:
1280
1281 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1282
1283         Windows build fix: Updated exported symbols.
1284
1285         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1286
1287 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
1288
1289         Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
1290
1291         Simplified the host calling convention.
1292         
1293         22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host
1294         function calls.
1295         
1296         No change on SunSpider.
1297         
1298         All JS calls (but not constructs, yet) now go through the normal JS
1299         calling convention via the RegisterFile. As a result, the host calling
1300         convention, which used to be this
1301
1302             JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&)
1303             
1304         is now this
1305
1306             JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*)
1307             
1308         Callee, 'this', and argument access all hapen relative to the ExecState*,
1309         which is a pointer into the RegisterFile.
1310         
1311         This patch comes in two parts.
1312         
1313         PART ONE: Functional code changes.
1314         
1315         * wtf/Platform.h: Disabled optimized calls on platforms I didn't test.
1316         We can re-enable once we verify that host calls on these platforms are
1317         correct.
1318
1319         * debugger/DebuggerCallFrame.cpp:
1320         (JSC::DebuggerCallFrame::functionName):
1321         (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to
1322         ExecState::callee().
1323
1324         (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue().
1325
1326         * interpreter/CallFrame.cpp:
1327         * interpreter/CallFrame.h:
1328         (JSC::ExecState::callee):
1329         (JSC::ExecState::scopeChain):
1330         (JSC::ExecState::init): Changed callee() to be JSObject* instead of
1331         JSFunction* -- now, it might be some other callable host object.
1332
1333         (JSC::ExecState::hostThisRegister):
1334         (JSC::ExecState::hostThisValue):
1335         (JSC::ExecState::argumentCount):
1336         (JSC::ExecState::argumentCountIncludingThis):
1337         (JSC::ExecState::argument):
1338         (JSC::ExecState::setArgumentCountIncludingThis):
1339         (JSC::ExecState::setCallee): Added convenient accessors for arguments
1340         from within a host function. Removed thisValue() because it was too
1341         tempting to use incorrectly, and it only had one or two clients, anyway.
1342
1343         * interpreter/Interpreter.cpp:
1344         (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
1345
1346         (JSC::Interpreter::throwException): Be sure to shrink the register file
1347         before invoking the exception handler, to reduce the chances that the
1348         handler will re-throw in the case of stack overflow. (Re-throwing is now
1349         more likely than it used to be, since standardizing the calling convention
1350         implicitly added stack overflow checks to some places where they used to be missing.)
1351
1352         (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
1353         Updated for CallFrame::init API change.
1354
1355         (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
1356         Updated for CallFrame::init API change. Added support for calling a host
1357         function.
1358
1359         (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
1360         Updated for CallFrame::init API change. 
1361
1362         (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change. 
1363
1364         (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change.
1365         Added some explicit JSValue(JSObject*) initialization, since relaxing
1366         the JSFunction* restriction on callee has made register types more ambiguous.
1367         Removed toThisObject() conversion, since all callees do it themselves now.
1368         Updated host function call for new host function signature. Updated for
1369         change to ExecState::argumentCount() API.
1370
1371         * interpreter/Register.h:
1372         (JSC::Register::):
1373         (JSC::Register::operator=):
1374         (JSC::Register::function): Changed callee() to be JSObject* instead of
1375         JSFunction* -- now, it might be some other callable host object.
1376
1377         * jit/JITOpcodes.cpp:
1378         (JSC::JIT::privateCompileCTINativeCall):
1379         * jit/JITOpcodes32_64.cpp:
1380         (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that
1381         set up the arguments to host functions -- all but one of the arguments
1382         are gone now. This is the actual optimization.
1383
1384         * jit/JITStubs.cpp:
1385         (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API
1386         changes noted above. Removed toThisObject() conversion, since all callees
1387         do it themselves now.
1388         
1389         * runtime/ArgList.h:
1390         (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a
1391         temporary shim for converting from ExecState* to ArgList where it's still
1392         necessary.
1393
1394         * runtime/Arguments.h:
1395         (JSC::Arguments::getArgumentsData):
1396         (JSC::Arguments::Arguments): Updated for ExecState and Register API
1397         changes noted above. 
1398
1399         * runtime/CallData.cpp:
1400         (JSC::call): Changed call always to call Interpreter::executeCall, even
1401         for host functions. This ensures that the normal calling convention is
1402         set up in the RegsiterFile when calling from C++ to host function.
1403
1404         * runtime/CallData.h: Changed host function signature as described above.
1405
1406         * runtime/ConstructData.cpp:
1407         (JSC::construct): Moved JSFunction::construct code here so I could nix
1408         JSFunction::call and JSFunction::call. We want a JSFunction-agnostic
1409         way to call and construct, so that everything works naturally for non-
1410         JSFunction objects. 
1411
1412         * runtime/JSFunction.cpp:
1413         (JSC::callHostFunctionAsConstructor):
1414         * runtime/JSFunction.h: Updated for ExecState and Register API changes
1415         noted above. Nixed JSFunction::call and JSFunction::construct, noted above.
1416  
1417         * runtime/JSGlobalObject.cpp:
1418         (JSC::JSGlobalObject::init): Ditto.
1419
1420         PART TWO: Global search and replace.
1421         
1422         In the areas below, I used global search-and-replace to change
1423             (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
1424             args.size() => exec->argumentCount()
1425             args.at(i) => exec->argument(i)
1426
1427         * API/JSCallbackFunction.cpp:
1428         (JSC::JSCallbackFunction::call):
1429         * API/JSCallbackFunction.h:
1430         * API/JSCallbackObject.h:
1431         * API/JSCallbackObjectFunctions.h:
1432         (JSC::::call):
1433         * JavaScriptCore.exp:
1434         * jsc.cpp:
1435         (functionPrint):
1436         (functionDebug):
1437         (functionGC):
1438         (functionVersion):
1439         (functionRun):
1440         (functionLoad):
1441         (functionCheckSyntax):
1442         (functionSetSamplingFlags):
1443         (functionClearSamplingFlags):
1444         (functionReadline):
1445         (functionQuit):
1446         * runtime/ArrayConstructor.cpp:
1447         (JSC::callArrayConstructor):
1448         (JSC::arrayConstructorIsArray):
1449         * runtime/ArrayPrototype.cpp:
1450         (JSC::arrayProtoFuncToString):
1451         (JSC::arrayProtoFuncToLocaleString):
1452         (JSC::arrayProtoFuncJoin):
1453         (JSC::arrayProtoFuncConcat):
1454         (JSC::arrayProtoFuncPop):
1455         (JSC::arrayProtoFuncPush):
1456         (JSC::arrayProtoFuncReverse):
1457         (JSC::arrayProtoFuncShift):
1458         (JSC::arrayProtoFuncSlice):
1459         (JSC::arrayProtoFuncSort):
1460         (JSC::arrayProtoFuncSplice):
1461         (JSC::arrayProtoFuncUnShift):
1462         (JSC::arrayProtoFuncFilter):
1463         (JSC::arrayProtoFuncMap):
1464         (JSC::arrayProtoFuncEvery):
1465         (JSC::arrayProtoFuncForEach):
1466         (JSC::arrayProtoFuncSome):
1467         (JSC::arrayProtoFuncReduce):
1468         (JSC::arrayProtoFuncReduceRight):
1469         (JSC::arrayProtoFuncIndexOf):
1470         (JSC::arrayProtoFuncLastIndexOf):
1471         * runtime/BooleanConstructor.cpp:
1472         (JSC::callBooleanConstructor):
1473         * runtime/BooleanPrototype.cpp:
1474         (JSC::booleanProtoFuncToString):
1475         (JSC::booleanProtoFuncValueOf):
1476         * runtime/DateConstructor.cpp:
1477         (JSC::callDate):
1478         (JSC::dateParse):
1479         (JSC::dateNow):
1480         (JSC::dateUTC):
1481         * runtime/DatePrototype.cpp:
1482         (JSC::formatLocaleDate):
1483         (JSC::fillStructuresUsingTimeArgs):
1484         (JSC::fillStructuresUsingDateArgs):
1485         (JSC::dateProtoFuncToString):
1486         (JSC::dateProtoFuncToUTCString):
1487         (JSC::dateProtoFuncToISOString):
1488         (JSC::dateProtoFuncToDateString):
1489         (JSC::dateProtoFuncToTimeString):
1490         (JSC::dateProtoFuncToLocaleString):
1491         (JSC::dateProtoFuncToLocaleDateString):
1492         (JSC::dateProtoFuncToLocaleTimeString):
1493         (JSC::dateProtoFuncGetTime):
1494         (JSC::dateProtoFuncGetFullYear):
1495         (JSC::dateProtoFuncGetUTCFullYear):
1496         (JSC::dateProtoFuncToGMTString):
1497         (JSC::dateProtoFuncGetMonth):
1498         (JSC::dateProtoFuncGetUTCMonth):
1499         (JSC::dateProtoFuncGetDate):
1500         (JSC::dateProtoFuncGetUTCDate):
1501         (JSC::dateProtoFuncGetDay):
1502         (JSC::dateProtoFuncGetUTCDay):
1503         (JSC::dateProtoFuncGetHours):
1504         (JSC::dateProtoFuncGetUTCHours):
1505         (JSC::dateProtoFuncGetMinutes):
1506         (JSC::dateProtoFuncGetUTCMinutes):
1507         (JSC::dateProtoFuncGetSeconds):
1508         (JSC::dateProtoFuncGetUTCSeconds):
1509         (JSC::dateProtoFuncGetMilliSeconds):
1510         (JSC::dateProtoFuncGetUTCMilliseconds):
1511         (JSC::dateProtoFuncGetTimezoneOffset):
1512         (JSC::dateProtoFuncSetTime):
1513         (JSC::setNewValueFromTimeArgs):
1514         (JSC::setNewValueFromDateArgs):
1515         (JSC::dateProtoFuncSetMilliSeconds):
1516         (JSC::dateProtoFuncSetUTCMilliseconds):
1517         (JSC::dateProtoFuncSetSeconds):
1518         (JSC::dateProtoFuncSetUTCSeconds):
1519         (JSC::dateProtoFuncSetMinutes):
1520         (JSC::dateProtoFuncSetUTCMinutes):
1521         (JSC::dateProtoFuncSetHours):
1522         (JSC::dateProtoFuncSetUTCHours):
1523         (JSC::dateProtoFuncSetDate):
1524         (JSC::dateProtoFuncSetUTCDate):
1525         (JSC::dateProtoFuncSetMonth):
1526         (JSC::dateProtoFuncSetUTCMonth):
1527         (JSC::dateProtoFuncSetFullYear):
1528         (JSC::dateProtoFuncSetUTCFullYear):
1529         (JSC::dateProtoFuncSetYear):
1530         (JSC::dateProtoFuncGetYear):
1531         (JSC::dateProtoFuncToJSON):
1532         * runtime/ErrorConstructor.cpp:
1533         (JSC::callErrorConstructor):
1534         * runtime/ErrorPrototype.cpp:
1535         (JSC::errorProtoFuncToString):
1536         * runtime/FunctionConstructor.cpp:
1537         (JSC::callFunctionConstructor):
1538         * runtime/FunctionPrototype.cpp:
1539         (JSC::callFunctionPrototype):
1540         (JSC::functionProtoFuncToString):
1541         (JSC::functionProtoFuncApply):
1542         (JSC::functionProtoFuncCall):
1543         * runtime/JSGlobalObjectFunctions.cpp:
1544         (JSC::encode):
1545         (JSC::decode):
1546         (JSC::globalFuncEval):
1547         (JSC::globalFuncParseInt):
1548         (JSC::globalFuncParseFloat):
1549         (JSC::globalFuncIsNaN):
1550         (JSC::globalFuncIsFinite):
1551         (JSC::globalFuncDecodeURI):
1552         (JSC::globalFuncDecodeURIComponent):
1553         (JSC::globalFuncEncodeURI):
1554         (JSC::globalFuncEncodeURIComponent):
1555         (JSC::globalFuncEscape):
1556         (JSC::globalFuncUnescape):
1557         (JSC::globalFuncJSCPrint):
1558         * runtime/JSGlobalObjectFunctions.h:
1559         * runtime/JSONObject.cpp:
1560         (JSC::JSONProtoFuncParse):
1561         (JSC::JSONProtoFuncStringify):
1562         * runtime/JSString.h:
1563         * runtime/MathObject.cpp:
1564         (JSC::mathProtoFuncAbs):
1565         (JSC::mathProtoFuncACos):
1566         (JSC::mathProtoFuncASin):
1567         (JSC::mathProtoFuncATan):
1568         (JSC::mathProtoFuncATan2):
1569         (JSC::mathProtoFuncCeil):
1570         (JSC::mathProtoFuncCos):
1571         (JSC::mathProtoFuncExp):
1572         (JSC::mathProtoFuncFloor):
1573         (JSC::mathProtoFuncLog):
1574         (JSC::mathProtoFuncMax):
1575         (JSC::mathProtoFuncMin):
1576         (JSC::mathProtoFuncPow):
1577         (JSC::mathProtoFuncRandom):
1578         (JSC::mathProtoFuncRound):
1579         (JSC::mathProtoFuncSin):
1580         (JSC::mathProtoFuncSqrt):
1581         (JSC::mathProtoFuncTan):
1582         * runtime/NativeErrorConstructor.cpp:
1583         (JSC::callNativeErrorConstructor):
1584         * runtime/NumberConstructor.cpp:
1585         (JSC::callNumberConstructor):
1586         * runtime/NumberPrototype.cpp:
1587         (JSC::numberProtoFuncToString):
1588         (JSC::numberProtoFuncToLocaleString):
1589         (JSC::numberProtoFuncValueOf):
1590         (JSC::numberProtoFuncToFixed):
1591         (JSC::numberProtoFuncToExponential):
1592         (JSC::numberProtoFuncToPrecision):
1593         * runtime/ObjectConstructor.cpp:
1594         (JSC::callObjectConstructor):
1595         (JSC::objectConstructorGetPrototypeOf):
1596         (JSC::objectConstructorGetOwnPropertyDescriptor):
1597         (JSC::objectConstructorGetOwnPropertyNames):
1598         (JSC::objectConstructorKeys):
1599         (JSC::objectConstructorDefineProperty):
1600         (JSC::objectConstructorDefineProperties):
1601         (JSC::objectConstructorCreate):
1602         * runtime/ObjectPrototype.cpp:
1603         (JSC::objectProtoFuncValueOf):
1604         (JSC::objectProtoFuncHasOwnProperty):
1605         (JSC::objectProtoFuncIsPrototypeOf):
1606         (JSC::objectProtoFuncDefineGetter):
1607         (JSC::objectProtoFuncDefineSetter):
1608         (JSC::objectProtoFuncLookupGetter):
1609         (JSC::objectProtoFuncLookupSetter):
1610         (JSC::objectProtoFuncPropertyIsEnumerable):
1611         (JSC::objectProtoFuncToLocaleString):
1612         (JSC::objectProtoFuncToString):
1613         * runtime/ObjectPrototype.h:
1614         * runtime/Operations.h:
1615         (JSC::jsString):
1616         * runtime/RegExpConstructor.cpp:
1617         (JSC::callRegExpConstructor):
1618         * runtime/RegExpObject.cpp:
1619         (JSC::RegExpObject::test):
1620         (JSC::RegExpObject::exec):
1621         (JSC::callRegExpObject):
1622         (JSC::RegExpObject::match):
1623         * runtime/RegExpObject.h:
1624         * runtime/RegExpPrototype.cpp:
1625         (JSC::regExpProtoFuncTest):
1626         (JSC::regExpProtoFuncExec):
1627         (JSC::regExpProtoFuncCompile):
1628         (JSC::regExpProtoFuncToString):
1629         * runtime/StringConstructor.cpp:
1630         (JSC::stringFromCharCodeSlowCase):
1631         (JSC::stringFromCharCode):
1632         (JSC::callStringConstructor):
1633         * runtime/StringPrototype.cpp:
1634         (JSC::stringProtoFuncReplace):
1635         (JSC::stringProtoFuncToString):
1636         (JSC::stringProtoFuncCharAt):
1637         (JSC::stringProtoFuncCharCodeAt):
1638         (JSC::stringProtoFuncConcat):
1639         (JSC::stringProtoFuncIndexOf):
1640         (JSC::stringProtoFuncLastIndexOf):
1641         (JSC::stringProtoFuncMatch):
1642         (JSC::stringProtoFuncSearch):
1643         (JSC::stringProtoFuncSlice):
1644         (JSC::stringProtoFuncSplit):
1645         (JSC::stringProtoFuncSubstr):
1646         (JSC::stringProtoFuncSubstring):
1647         (JSC::stringProtoFuncToLowerCase):
1648         (JSC::stringProtoFuncToUpperCase):
1649         (JSC::stringProtoFuncLocaleCompare):
1650         (JSC::stringProtoFuncBig):
1651         (JSC::stringProtoFuncSmall):
1652         (JSC::stringProtoFuncBlink):
1653         (JSC::stringProtoFuncBold):
1654         (JSC::stringProtoFuncFixed):
1655         (JSC::stringProtoFuncItalics):
1656         (JSC::stringProtoFuncStrike):
1657         (JSC::stringProtoFuncSub):
1658         (JSC::stringProtoFuncSup):
1659         (JSC::stringProtoFuncFontcolor):
1660         (JSC::stringProtoFuncFontsize):
1661         (JSC::stringProtoFuncAnchor):
1662         (JSC::stringProtoFuncLink):
1663         (JSC::stringProtoFuncTrim):
1664         (JSC::stringProtoFuncTrimLeft):
1665         (JSC::stringProtoFuncTrimRight):
1666
1667 2010-05-28  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
1668
1669         Reviewed by Geoffrey Garen.
1670
1671         Fix the JSObjectSetPrototype function.
1672
1673         A cycle in a prototype chain can cause an application hang or
1674         even crash.
1675         A check for a prototype chain cycles was added to
1676         the JSObjectSetPrototype.
1677
1678         JSObjectSetPrototype doesn't check for cycle in prototype chain.
1679         https://bugs.webkit.org/show_bug.cgi?id=39360
1680
1681         * API/JSObjectRef.cpp:
1682         (JSObjectSetPrototype):
1683         * API/tests/testapi.c:
1684         (assertTrue):
1685         (checkForCycleInPrototypeChain):
1686         (main):
1687         * runtime/JSObject.cpp:
1688         (JSC::JSObject::put):
1689         * runtime/JSObject.h:
1690         (JSC::JSObject::setPrototypeWithCycleCheck):
1691
1692 2010-05-28  Chao-ying Fu  <fu@mips.com>
1693
1694         Reviewed by Eric Seidel.
1695
1696         Fix MIPS JIT DoubleGreaterThanOrEqual Operands
1697         https://bugs.webkit.org/show_bug.cgi?id=39504
1698
1699         Swapped two operands of left and right for DoubleGreaterThanOrEqual.
1700         This patch fixed two layout tests as follows.
1701         fast/js/comparison-operators-greater.html
1702         fast/js/comparison-operators-less.html
1703
1704         * assembler/MacroAssemblerMIPS.h:
1705         (JSC::MacroAssemblerMIPS::branchDouble):
1706
1707 2010-05-28  Gavin Barraclough  <barraclough@apple.com>
1708
1709         Reviewed by Geoff Garen.
1710
1711         Move jit compilation from linking thunks into cti_vm_lazyLink methods.
1712
1713         * jit/JITOpcodes.cpp:
1714         (JSC::JIT::privateCompileCTIMachineTrampolines):
1715         * jit/JITOpcodes32_64.cpp:
1716         (JSC::JIT::privateCompileCTIMachineTrampolines):
1717         * jit/JITStubs.cpp:
1718         (JSC::DEFINE_STUB_FUNCTION):
1719
1720 2010-05-28  Gavin Barraclough  <barraclough@apple.com>
1721
1722         Reviewed by Sam Weinig.
1723
1724         Bug 39898 - Move arity check into callee.
1725         
1726         We can reduce the size of the virtual call trampolines by moving the arity check
1727         into the callee functions.  As a following step we will be able to remove the
1728         check for native function / codeblocks by performing translation in a lazy stub.
1729         
1730         * interpreter/CallFrame.h:
1731         (JSC::ExecState::init):
1732         (JSC::ExecState::setReturnPC):
1733         * jit/JIT.cpp:
1734         (JSC::JIT::privateCompile):
1735         (JSC::JIT::linkCall):
1736         (JSC::JIT::linkConstruct):
1737         * jit/JIT.h:
1738         (JSC::JIT::compile):
1739         * jit/JITOpcodes.cpp:
1740         (JSC::JIT::privateCompileCTIMachineTrampolines):
1741         * jit/JITOpcodes32_64.cpp:
1742         (JSC::JIT::privateCompileCTIMachineTrampolines):
1743         * jit/JITStubs.cpp:
1744         (JSC::DEFINE_STUB_FUNCTION):
1745         * runtime/Executable.cpp:
1746         (JSC::FunctionExecutable::generateJITCodeForCall):
1747         (JSC::FunctionExecutable::generateJITCodeForConstruct):
1748         (JSC::FunctionExecutable::reparseExceptionInfo):
1749         * runtime/Executable.h:
1750         (JSC::NativeExecutable::NativeExecutable):
1751         (JSC::FunctionExecutable::generatedJITCodeForCallWithArityCheck):
1752         (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
1753
1754 2010-05-27  Luiz Agostini  <luiz.agostini@openbossa.org>
1755
1756         Reviewed by Darin Adler.
1757
1758         UTF-16 code points compare() for String objects
1759         https://bugs.webkit.org/show_bug.cgi?id=39701
1760
1761         Moving compare() implementation from UString to StringImpl for it to be shared
1762         with String. Adding overloaded free functions codePointCompare() in StringImpl
1763         and WTFString. Renaming function compare in UString to codePointCompare to be
1764         consistent.
1765
1766         * runtime/JSArray.cpp:
1767         (JSC::compareByStringPairForQSort):
1768         * runtime/UString.cpp:
1769         * runtime/UString.h:
1770         (JSC::codePointCompare):
1771         * wtf/text/StringImpl.cpp:
1772         (WebCore::codePointCompare):
1773         * wtf/text/StringImpl.h:
1774         * wtf/text/WTFString.cpp:
1775         (WebCore::codePointCompare):
1776         * wtf/text/WTFString.h:
1777
1778 2010-05-26  Darin Adler  <darin@apple.com>
1779
1780         Reviewed by Kent Tamura.
1781
1782         Null characters handled incorrectly in ToNumber conversion
1783         https://bugs.webkit.org/show_bug.cgi?id=38088
1784
1785         * runtime/JSGlobalObjectFunctions.cpp:
1786         (JSC::parseInt): Changed code to use UTF8String().data() instead of
1787         ascii() to fix the thread safety issue. Code path is covered by existing
1788         tests in run-javascriptcore-tests.
1789         (JSC::parseFloat): Moved comment to UString::toDouble since the issue
1790         affects all clients, not just parseFloat. Specifically, this also affects
1791         standard JavaScript numeric conversion, ToNumber.
1792
1793         * runtime/UString.cpp:
1794         (JSC::UString::toDouble): Added a comment about incorrect space skipping.
1795         Changed trailing junk check to use the length of the CString instead of
1796         checking for a null character. Also got rid of a little unneeded logic
1797         in the case where we tolerate trailing junk.
1798
1799 2010-05-27  Nathan Lawrence  <nlawrence@apple.com>
1800
1801         Reviewed by Geoffrey Garen.
1802
1803         Search for the new allocation one word at a time.  Improves
1804         performance on SunSpider by approximately 1%.
1805         http://bugs.webkit.org/show_bug.cgi?id=39758
1806
1807         * runtime/Collector.cpp:
1808         (JSC::Heap::allocate):
1809         * runtime/Collector.h:
1810         (JSC::CollectorBitmap::advanceToNextPossibleFreeCell):
1811
1812 2010-05-27  Kevin Ollivier  <kevino@theolliviers.com>
1813
1814         [wx] Build fixes for Windows after recent changes.
1815
1816         * wscript:
1817
1818 2010-05-27  Gustavo Noronha Silva  <gns@gnome.org>
1819
1820         More build fixage for make dist.
1821
1822         * GNUmakefile.am:
1823
1824 2010-05-27  Kwang Yul Seo  <skyul@company100.net>
1825
1826         Reviewed by Darin Adler.
1827
1828         RVCT does not have strnstr.
1829         https://bugs.webkit.org/show_bug.cgi?id=39719
1830
1831         Add COMPILER(RVCT) guard to strnstr in StringExtras.h as RVCT does not provide strnstr.
1832
1833         * wtf/StringExtras.h:
1834
1835 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
1836
1837         Reviewed by Oliver Hunt.
1838
1839         Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
1840         (relanding r60267)
1841
1842         If the last item in a main disjunction is a quantified set of parentheses,
1843         this is easier to code generate for than the general case for quantified
1844         parentheses. This is because we never need to backtrack into the parentheses
1845         - the first match will be the final and accepted match.
1846
1847         This patch also somewhat reverts a recent change to when fallback to PCRE
1848         occurs. At the minute the compiler is tracking on patterns which will
1849         require JIT fallback. This is handy from a performance perspective (it saves
1850         the failed attempt at JIT compilation), but it means introducing knowledge
1851         of the JITs capabilities into the other layers of the regex compilers. For
1852         the specific feature of back-references, add a flag tracking their presence
1853         on the pattern, and make these expressions fallback without attempting to
1854         JIT. For parentheses, return to detecting which cases are have or have not
1855         been handled during JIT compilation.
1856
1857         18% progression on tagcloud, ~1.5% overall on sunspidey.
1858
1859         * yarr/RegexCompiler.cpp:
1860         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
1861         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
1862         * yarr/RegexJIT.cpp:
1863         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
1864         (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
1865         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
1866         (JSC::Yarr::RegexGenerator::generateTerm):
1867         (JSC::Yarr::RegexGenerator::RegexGenerator):
1868         (JSC::Yarr::RegexGenerator::shouldFallBack):
1869         (JSC::Yarr::jitCompileRegex):
1870         * yarr/RegexPattern.h:
1871         (JSC::Yarr::RegexPattern::RegexPattern):
1872         (JSC::Yarr::RegexPattern::reset):
1873
1874 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
1875
1876         Reviewed by NOBODY (revert).
1877
1878         Temporarily rolling out r60267, I appear to have hoesed perf at the last minute. :-/ Fixing.
1879
1880         * yarr/RegexCompiler.cpp:
1881         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
1882         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
1883         * yarr/RegexJIT.cpp:
1884         (JSC::Yarr::RegexGenerator::TermGenerationState::term):
1885         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
1886         (JSC::Yarr::RegexGenerator::generateTerm):
1887         (JSC::Yarr::RegexGenerator::RegexGenerator):
1888         (JSC::Yarr::jitCompileRegex):
1889         * yarr/RegexPattern.h:
1890         (JSC::Yarr::RegexPattern::RegexPattern):
1891         (JSC::Yarr::RegexPattern::reset):
1892
1893 2010-05-26  Gustavo Noronha Silva  <gns@gnome.org>
1894
1895         Build fixes for make distcheck.
1896
1897         * GNUmakefile.am:
1898
1899 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
1900
1901         Reviewed by Oliver Hunt.
1902
1903         Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
1904
1905         If the last item in a main disjunction is a quantified set of parentheses,
1906         this is easier to code generate for than the general case for quantified
1907         parentheses. This is because we never need to backtrack into the parentheses
1908         - the first match will be the final and accepted match.
1909
1910         This patch also somewhat reverts a recent change to when fallback to PCRE
1911         occurs. At the minute the compiler is tracking on patterns which will
1912         require JIT fallback. This is handy from a performance perspective (it saves
1913         the failed attempt at JIT compilation), but it means introducing knowledge
1914         of the JITs capabilities into the other layers of the regex compilers. For
1915         the specific feature of back-references, add a flag tracking their presence
1916         on the pattern, and make these expressions fallback without attempting to
1917         JIT. For parentheses, return to detecting which cases are have or have not
1918         been handled during JIT compilation.
1919
1920         18% progression on tagcloud, ~1.5% overall on sunspidey.
1921
1922         * yarr/RegexCompiler.cpp:
1923         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
1924         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
1925         * yarr/RegexJIT.cpp:
1926         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
1927         (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
1928         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
1929         (JSC::Yarr::RegexGenerator::generateTerm):
1930         (JSC::Yarr::RegexGenerator::RegexGenerator):
1931         (JSC::Yarr::RegexGenerator::shouldFallBack):
1932         (JSC::Yarr::jitCompileRegex):
1933         * yarr/RegexPattern.h:
1934         (JSC::Yarr::RegexPattern::RegexPattern):
1935         (JSC::Yarr::RegexPattern::reset):
1936
1937 2010-05-26  Geoffrey Garen  <ggaren@apple.com>
1938
1939         Reviewed by Sam Weinig.
1940
1941         Fixed a crash seen on the Leopard bot, caused by merge.
1942
1943         * jit/JITStubs.cpp:
1944         (JSC::DEFINE_STUB_FUNCTION): Get the return address from the callframe,
1945         since it's no longer passed to us as an argument.
1946
1947 2010-05-25  Geoffrey Garen  <ggaren@apple.com>
1948
1949         Fixed build failure caused by merge.
1950
1951         * jit/JITStubs.cpp:
1952         (JSC::DEFINE_STUB_FUNCTION): On error, return a single value, since this
1953         function no longer returns a pair.
1954
1955 2010-05-25  Geoffrey Garen  <ggaren@apple.com>
1956
1957         Reviewed by Oliver Hunt.
1958
1959         <rdar://problem/8020221>
1960         
1961         Fixed a crash seen on Windows when calling a function with too many
1962         arguments.
1963         
1964         SunSpider reports no change.
1965         
1966         No test because the ASSERT I added fires in existing tests.
1967
1968         * jit/JITStubs.cpp:
1969         (JSC::DEFINE_STUB_FUNCTION): Make sure to grow the registerFile when too
1970         many arguments have been provided, since the caller only allocated enough
1971         registerFile space for the arguments it provided, not enough for the extra
1972         copy of arguments we're going to need.
1973
1974 2010-05-25  Kwang Yul Seo  <skyul@company100.net>
1975
1976         Reviewed by Darin Adler.
1977
1978         Build fix for JSFunction
1979         https://bugs.webkit.org/show_bug.cgi?id=39658
1980
1981         MSVC can't compile one of JSFunction constructors when JIT is disabled.
1982         "PassRefPtr<NativeExecutable>" causes the compile error as NativeExecutable is not defined. 
1983         Add ENABLE(JIT) guard to the constructor.
1984
1985         * runtime/JSFunction.cpp:
1986         (JSC::JSFunction::JSFunction):
1987         * runtime/JSFunction.h:
1988
1989 2010-05-24  Gavin Barraclough  <barraclough@apple.com>
1990
1991         Reviewed by Sam Weinig.
1992
1993         Bug 39643 - Clean up code generation in the JIT of stub function calls for op_call.
1994
1995         Presently, as soon as op-call strays off the hot path we set up a set of values on
1996         the stack to be passed as arguments to cti functions, in case any should be called.
1997
1998         Instead, hoist the setup of the callframe to happen slightly sooner, and make the
1999         cti functions to compile & check arity read these values from the callframe. This
2000         allows up to remove the deprecated methods to manually set up cti arguments, rather
2001         than using JITStubCall.h.
2002
2003         * interpreter/CallFrame.h:
2004         * jit/JIT.h:
2005         * jit/JITCall.cpp:
2006         (JSC::JIT::compileOpCallInitializeCallFrame):
2007         (JSC::JIT::compileOpCallVarargs):
2008         (JSC::JIT::compileOpCallVarargsSlowCase):
2009         (JSC::JIT::compileOpCall):
2010         (JSC::JIT::compileOpCallSlowCase):
2011         * jit/JITCall32_64.cpp:
2012         (JSC::JIT::compileOpCallInitializeCallFrame):
2013         (JSC::JIT::compileOpCallVarargs):
2014         (JSC::JIT::compileOpCallVarargsSlowCase):
2015         (JSC::JIT::compileOpCall):
2016         (JSC::JIT::compileOpCallSlowCase):
2017         * jit/JITInlineMethods.h:
2018         * jit/JITOpcodes.cpp:
2019         (JSC::JIT::privateCompileCTIMachineTrampolines):
2020         * jit/JITOpcodes32_64.cpp:
2021         (JSC::JIT::privateCompileCTIMachineTrampolines):
2022         * jit/JITStubs.cpp:
2023         (JSC::DEFINE_STUB_FUNCTION):
2024         * jit/JITStubs.h:
2025         (JSC::):
2026
2027 2010-05-24  Gavin Barraclough  <barraclough@apple.com>
2028
2029         Reviewed by Sam Weinig.
2030         Relanding r60075.
2031
2032         * bytecode/CodeBlock.cpp:
2033         (JSC::CodeBlock::dump):
2034         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
2035         * bytecode/CodeBlock.h:
2036         * bytecode/Opcode.h:
2037         * bytecompiler/BytecodeGenerator.cpp:
2038         (JSC::BytecodeGenerator::BytecodeGenerator):
2039         (JSC::BytecodeGenerator::emitConstruct):
2040         * bytecompiler/BytecodeGenerator.h:
2041         (JSC::BytecodeGenerator::emitGetByIdExceptionInfo):
2042         * interpreter/Interpreter.cpp:
2043         (JSC::Interpreter::privateExecute):
2044         * jit/JIT.cpp:
2045         (JSC::JIT::privateCompileMainPass):
2046         * jit/JIT.h:
2047         * jit/JITCall.cpp:
2048         (JSC::JIT::compileOpCall):
2049         (JSC::JIT::compileOpCallSlowCase):
2050         * jit/JITCall32_64.cpp:
2051         (JSC::JIT::compileOpCall):
2052         (JSC::JIT::compileOpCallSlowCase):
2053         * jit/JITOpcodes.cpp:
2054         (JSC::JIT::privateCompileCTIMachineTrampolines):
2055         (JSC::JIT::privateCompileCTINativeCall):
2056         (JSC::JIT::emit_op_neq_null):
2057         (JSC::JIT::emit_op_convert_this):
2058         (JSC::JIT::emit_op_get_callee):
2059         (JSC::JIT::emit_op_create_this):
2060         * jit/JITOpcodes32_64.cpp:
2061         (JSC::JIT::privateCompileCTIMachineTrampolines):
2062         (JSC::JIT::privateCompileCTINativeCall):
2063         (JSC::JIT::emit_op_get_callee):
2064         (JSC::JIT::emit_op_create_this):
2065         * jit/JITStubs.cpp:
2066         (JSC::DEFINE_STUB_FUNCTION):
2067         (JSC::JITThunks::hostFunctionStub):
2068         * jit/JITStubs.h:
2069         (JSC::JITThunks::ctiNativeConstruct):
2070         (JSC::):
2071         * runtime/ExceptionHelpers.cpp:
2072         (JSC::createNotAnObjectError):
2073         * runtime/Executable.h:
2074         (JSC::NativeExecutable::create):
2075         (JSC::NativeExecutable::NativeExecutable):
2076         * runtime/JSFunction.cpp:
2077         (JSC::callHostFunctionAsConstructor):
2078         * runtime/JSFunction.h:
2079         * wtf/Platform.h:
2080
2081 == Rolled over to ChangeLog-2010-05-24 ==