| 2010-05-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Sam Weinig. | 
 |  | 
 |         Accidentally committed double write of codeblock in Interpreter. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2010-05-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39583 | 
 |         Move creation of 'this' object from caller to callee in construction. | 
 |  | 
 |         Presently the caller of a constructor is responsible for providing a this | 
 |         object.  Instead, move the object creation into a new op_create_this opcode, | 
 |         planted in the head of the contructor bytecode for a function.  Since the | 
 |         prototype for the object is provided by performing a get_by_id on the callee, | 
 |         also add a new get_callee opcode (this is used to get the callee JSFunction | 
 |         into a register so that a normal get_by_id can be used). | 
 |  | 
 |         Currently the caller is also responsible for detecting when op_construct is | 
 |         performed on a JSFunction representing a host function, in which case an | 
 |         exception is thrown – and this check currently takes place when constructing | 
 |         the this object.  Instead, mirroring the recent changes for non-host functions, | 
 |         add a parallel code-path for native constructors to follow, with a thunk for | 
 |         invoking native constructors provided by JITStubs, and a constructor-specific | 
 |         NativeFunction on NativeExecutable.  Provide an implementation of a host | 
 |         constructor which will throw an exception. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset): | 
 |         * bytecode/CodeBlock.h: | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         (JSC::BytecodeGenerator::emitConstruct): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::emitGetByIdExceptionInfo): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |         * jit/JITCall32_64.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::privateCompileCTINativeCall): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         (JSC::JIT::emit_op_get_callee): | 
 |         (JSC::JIT::emit_op_create_this): | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::privateCompileCTINativeCall): | 
 |         (JSC::JIT::emit_op_get_callee): | 
 |         (JSC::JIT::emit_op_create_this): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         (JSC::JITThunks::hostFunctionStub): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiNativeConstruct): | 
 |         (JSC::): | 
 |         * runtime/ExceptionHelpers.cpp: | 
 |         (JSC::createNotAnObjectError): | 
 |         * runtime/Executable.h: | 
 |         (JSC::NativeExecutable::create): | 
 |         (JSC::NativeExecutable::NativeExecutable): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::callHostFunctionAsConstructor): | 
 |         * runtime/JSFunction.h: | 
 |  | 
 | 2010-05-23  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Fix windows build. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-23  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fix for https://bugs.webkit.org/show_bug.cgi?id=39575 | 
 |         Make JS DOMObject inherit from JSObjectWithGlobalObject instead of JSObject | 
 |  | 
 |         Expose the global object stored in JSObjectWithGlobalObject. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSObjectWithGlobalObject.cpp: | 
 |         (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): | 
 |         (JSC::JSObjectWithGlobalObject::globalObject): | 
 |         * runtime/JSObjectWithGlobalObject.h: | 
 |  | 
 | 2010-05-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         "asm volatile" isn't valid outside of functions. | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |  | 
 | 2010-05-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Unreviewed build fix. | 
 |  | 
 |         Interpreter fix following r59974. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::get): | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |  | 
 | 2010-05-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Oliver Hunt. | 
 |  | 
 |         Interpreter fix following r59939. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2010-05-21  David Levin  <levin@chromium.org> | 
 |  | 
 |         Unreviewed build fix. | 
 |  | 
 |         * wtf/SizeLimits.cpp: Removed a check while I figure out how to write it properly. | 
 |  | 
 | 2010-05-21  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Enforce size constraints on various data structures in JavaScriptCore/wtf. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39327 | 
 |  | 
 |         I only modified the default build for OSX and Chromium's build file to include WTFCompileAsserts.cpp | 
 |         as those should be sufficient to catch regressions on the size of the data structures. | 
 |  | 
 |         * JavaScriptCore.gypi: Added the WTFCompileAsserts.cpp file. | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Added the WTFCompileAsserts.cpp file. | 
 |         * runtime/UString.cpp: Added a compile assert for UString size. | 
 |         * wtf/SizeLimits.cpp: Added compile asserts for data structures that didn't have cpp files. | 
 |         * wtf/text/StringImpl.cpp: Added a compile assert for StringImpl size. | 
 |  | 
 | 2010-05-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 39509 - Exceptions raised when JSString::value() is called not always properly thrown. | 
 |         Missing some CHECK_FOR_EXCEPTION()s, cleanup NativeError construction (adding a property | 
 |         via the prototype was inefficient, and whilst trivially true that the property is is not | 
 |         a rope - and thus couldn't except - it would be hard to prove this). | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::callEval): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/InternalFunction.cpp: | 
 |         (JSC::InternalFunction::name): | 
 |         (JSC::InternalFunction::displayName): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::name): | 
 |         (JSC::JSFunction::displayName): | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::reset): | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         * runtime/JSString.h: | 
 |         (JSC::RopeBuilder::tryGetValue): | 
 |         (JSC::JSString::getIndex): | 
 |         * runtime/NativeErrorConstructor.cpp: | 
 |         (JSC::NativeErrorConstructor::NativeErrorConstructor): | 
 |         * runtime/NativeErrorConstructor.h: | 
 |         * runtime/NativeErrorPrototype.cpp: | 
 |         (JSC::NativeErrorPrototype::NativeErrorPrototype): | 
 |         * runtime/NativeErrorPrototype.h: | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncReplace): | 
 |  | 
 | 2010-05-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Fix interpreter build. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2010-05-21  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Split out JITCall32_64.cpp, and tightened up some #ifdefs in the hopes | 
 |         of improving compile times. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39507 | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * jit/JIT.cpp: | 
 |         * jit/JITArithmetic.cpp: | 
 |         * jit/JITArithmetic32_64.cpp: | 
 |         * jit/JITCall.cpp: | 
 |         * jit/JITCall32_64.cpp: Copied from jit/JITCall.cpp. | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         * jit/JITStubs.cpp: | 
 |  | 
 | 2010-05-21  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Unreviewed buildfix for Qt after r59941. | 
 |  | 
 |         * JavaScriptCore.pro: missing runtime/JSObjectWithGlobalObject.cpp added to SOURCES. | 
 |  | 
 | 2010-05-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix #3 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix #2 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix #1 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         All callable objects should have a global object reference | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39495 | 
 |  | 
 |         All objects that may ever return a value other CallTypeNone | 
 |         or ConstructTypeNone now get a global object in their constructor | 
 |         and store that in their first anonymous slot.  We add a new type | 
 |         JSObjectWithGlobalObject to allow us to share this logic as much | 
 |         as possible, however some objects have specific inheritance  | 
 |         requirements so we can't just use it universally. | 
 |  | 
 |         To enforce this requirement JSValue::getCallData and getConstructData | 
 |         make use of a new "isValidCallee" function to assert that any object | 
 |         that returns a value other than CallType/ConstructTypeNone has a | 
 |         global object in anonymous slot 0. | 
 |  | 
 |         In order to ensure that static function slots are converted into | 
 |         function objects with the correct global object, all prototype objects | 
 |         and other classes with static function slots also gain a global object | 
 |         reference.  Happily this fixes the long standing issue where host | 
 |         function objects get a prototype from the lexical global object of the | 
 |         first function that calls them, instead of the global object that they | 
 |         are defined on. | 
 |  | 
 |         * API/JSCallbackConstructor.cpp: | 
 |         (JSC::JSCallbackConstructor::JSCallbackConstructor): | 
 |         * API/JSCallbackConstructor.h: | 
 |         * API/JSCallbackFunction.cpp: | 
 |         (JSC::JSCallbackFunction::JSCallbackFunction): | 
 |         * API/JSCallbackFunction.h: | 
 |         * API/JSCallbackObject.cpp: | 
 |         (JSC::): | 
 |         * API/JSCallbackObject.h: | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::JSCallbackObject): | 
 |         (JSC::::staticFunctionGetter): | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::prototype): | 
 |         * API/JSContextRef.cpp: | 
 |         * API/JSObjectRef.cpp: | 
 |         (JSObjectMake): | 
 |         (JSObjectMakeFunctionWithCallback): | 
 |         (JSObjectMakeConstructor): | 
 |         (JSObjectGetPrivate): | 
 |         (JSObjectSetPrivate): | 
 |         (JSObjectGetPrivateProperty): | 
 |         (JSObjectSetPrivateProperty): | 
 |         (JSObjectDeletePrivateProperty): | 
 |         * API/JSValueRef.cpp: | 
 |         (JSValueIsObjectOfClass): | 
 |         * API/JSWeakObjectMapRefPrivate.cpp: | 
 |         * CMakeLists.txt: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jsc.cpp: | 
 |         (GlobalObject::GlobalObject): | 
 |         * runtime/ArrayConstructor.cpp: | 
 |         (JSC::ArrayConstructor::ArrayConstructor): | 
 |         * runtime/ArrayConstructor.h: | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::ArrayPrototype::ArrayPrototype): | 
 |         * runtime/ArrayPrototype.h: | 
 |         (JSC::ArrayPrototype::createStructure): | 
 |         * runtime/BooleanConstructor.cpp: | 
 |         (JSC::BooleanConstructor::BooleanConstructor): | 
 |         * runtime/BooleanConstructor.h: | 
 |         * runtime/BooleanPrototype.cpp: | 
 |         (JSC::BooleanPrototype::BooleanPrototype): | 
 |         * runtime/BooleanPrototype.h: | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::DateConstructor::DateConstructor): | 
 |         * runtime/DateConstructor.h: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::DatePrototype::DatePrototype): | 
 |         * runtime/DatePrototype.h: | 
 |         * runtime/ErrorConstructor.cpp: | 
 |         (JSC::ErrorConstructor::ErrorConstructor): | 
 |         * runtime/ErrorConstructor.h: | 
 |         * runtime/ErrorPrototype.cpp: | 
 |         (JSC::ErrorPrototype::ErrorPrototype): | 
 |         * runtime/ErrorPrototype.h: | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::FunctionConstructor::FunctionConstructor): | 
 |         * runtime/FunctionConstructor.h: | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::FunctionPrototype::FunctionPrototype): | 
 |         (JSC::FunctionPrototype::addFunctionProperties): | 
 |         * runtime/FunctionPrototype.h: | 
 |         * runtime/GlobalEvalFunction.cpp: | 
 |         (JSC::GlobalEvalFunction::GlobalEvalFunction): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         * runtime/InternalFunction.cpp: | 
 |         (JSC::InternalFunction::InternalFunction): | 
 |         * runtime/InternalFunction.h: | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSValue::getCallData): | 
 |         (JSC::JSValue::getConstructData): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::reset): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::JSGlobalObject): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::JSONObject::JSONObject): | 
 |         * runtime/JSONObject.h: | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSObjectWithGlobalObject.cpp: Added. | 
 |         (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): | 
 |         * runtime/JSObjectWithGlobalObject.h: Added. | 
 |         (JSC::JSObjectWithGlobalObject::createStructure): | 
 |         (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): | 
 |         * runtime/JSValue.cpp: | 
 |         (JSC::JSValue::isValidCallee): | 
 |         * runtime/JSValue.h: | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::setUpStaticFunctionSlot): | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::MathObject::MathObject): | 
 |         * runtime/MathObject.h: | 
 |         * runtime/NativeErrorConstructor.cpp: | 
 |         (JSC::NativeErrorConstructor::NativeErrorConstructor): | 
 |         * runtime/NativeErrorConstructor.h: | 
 |         * runtime/NativeErrorPrototype.cpp: | 
 |         (JSC::NativeErrorPrototype::NativeErrorPrototype): | 
 |         * runtime/NativeErrorPrototype.h: | 
 |         * runtime/NumberConstructor.cpp: | 
 |         (JSC::NumberConstructor::NumberConstructor): | 
 |         * runtime/NumberConstructor.h: | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::NumberPrototype::NumberPrototype): | 
 |         * runtime/NumberPrototype.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         * runtime/ObjectConstructor.h: | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::ObjectPrototype::ObjectPrototype): | 
 |         * runtime/ObjectPrototype.h: | 
 |         * runtime/PrototypeFunction.cpp: | 
 |         (JSC::PrototypeFunction::PrototypeFunction): | 
 |         * runtime/PrototypeFunction.h: | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::RegExpConstructor::RegExpConstructor): | 
 |         (JSC::constructRegExp): | 
 |         * runtime/RegExpConstructor.h: | 
 |         * runtime/RegExpObject.cpp: | 
 |         (JSC::RegExpObject::RegExpObject): | 
 |         * runtime/RegExpObject.h: | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::RegExpPrototype::RegExpPrototype): | 
 |         * runtime/RegExpPrototype.h: | 
 |         * runtime/StringConstructor.cpp: | 
 |         (JSC::StringConstructor::StringConstructor): | 
 |         * runtime/StringConstructor.h: | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::StringPrototype::StringPrototype): | 
 |         * runtime/StringPrototype.h: | 
 |  | 
 | 2010-05-21  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Removed the unused entry in the CallFrame | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39470 | 
 |          | 
 |         Removed the unused entry in the CallFrame, and reordered CallFrame | 
 |         writes on the hot path to be in forwards order. | 
 |          | 
 |         SunSpider says 0.3% faster. | 
 |  | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |  | 
 | 2010-05-21  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Split the QScriptValue autotest into smaller chunks. | 
 |  | 
 |         File tst_qscriptvalue_generated.cpp was huge and it was difficult to compile | 
 |         it with MSVS2008, because of the code optimization. | 
 |  | 
 |         Tests were splited into a few files for better use of distributed | 
 |         compilation. | 
 |         Repeated calls to insert() and operator<<() where replaced by loops, | 
 |         that should reduce time of code optimizing. | 
 |  | 
 |         New files were generated by the same application, test logic wasn't changed. | 
 |  | 
 |         [Qt] The QScriptValue autotest should be refactored. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38987 | 
 |  | 
 |         * qt/tests/qscriptvalue/qscriptvalue.pro: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: Removed. | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_init.cpp: Added. | 
 |         (tst_QScriptValue::initScriptValues): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_istype.cpp: Added. | 
 |         (tst_QScriptValue::isValid_initData): | 
 |         (tst_QScriptValue::isValid_makeData): | 
 |         (tst_QScriptValue::isValid_test): | 
 |         (tst_QScriptValue::isBool_initData): | 
 |         (tst_QScriptValue::isBool_makeData): | 
 |         (tst_QScriptValue::isBool_test): | 
 |         (tst_QScriptValue::isBoolean_initData): | 
 |         (tst_QScriptValue::isBoolean_makeData): | 
 |         (tst_QScriptValue::isBoolean_test): | 
 |         (tst_QScriptValue::isNumber_initData): | 
 |         (tst_QScriptValue::isNumber_makeData): | 
 |         (tst_QScriptValue::isNumber_test): | 
 |         (tst_QScriptValue::isFunction_initData): | 
 |         (tst_QScriptValue::isFunction_makeData): | 
 |         (tst_QScriptValue::isFunction_test): | 
 |         (tst_QScriptValue::isNull_initData): | 
 |         (tst_QScriptValue::isNull_makeData): | 
 |         (tst_QScriptValue::isNull_test): | 
 |         (tst_QScriptValue::isString_initData): | 
 |         (tst_QScriptValue::isString_makeData): | 
 |         (tst_QScriptValue::isString_test): | 
 |         (tst_QScriptValue::isUndefined_initData): | 
 |         (tst_QScriptValue::isUndefined_makeData): | 
 |         (tst_QScriptValue::isUndefined_test): | 
 |         (tst_QScriptValue::isObject_initData): | 
 |         (tst_QScriptValue::isObject_makeData): | 
 |         (tst_QScriptValue::isObject_test): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_totype.cpp: Added. | 
 |         (tst_QScriptValue::toString_initData): | 
 |         (tst_QScriptValue::toString_makeData): | 
 |         (tst_QScriptValue::toString_test): | 
 |         (tst_QScriptValue::toNumber_initData): | 
 |         (tst_QScriptValue::toNumber_makeData): | 
 |         (tst_QScriptValue::toNumber_test): | 
 |         (tst_QScriptValue::toBool_initData): | 
 |         (tst_QScriptValue::toBool_makeData): | 
 |         (tst_QScriptValue::toBool_test): | 
 |         (tst_QScriptValue::toBoolean_initData): | 
 |         (tst_QScriptValue::toBoolean_makeData): | 
 |         (tst_QScriptValue::toBoolean_test): | 
 |         (tst_QScriptValue::toInteger_initData): | 
 |         (tst_QScriptValue::toInteger_makeData): | 
 |         (tst_QScriptValue::toInteger_test): | 
 |         (tst_QScriptValue::toInt32_initData): | 
 |         (tst_QScriptValue::toInt32_makeData): | 
 |         (tst_QScriptValue::toInt32_test): | 
 |         (tst_QScriptValue::toUInt32_initData): | 
 |         (tst_QScriptValue::toUInt32_makeData): | 
 |         (tst_QScriptValue::toUInt32_test): | 
 |         (tst_QScriptValue::toUInt16_initData): | 
 |         (tst_QScriptValue::toUInt16_makeData): | 
 |         (tst_QScriptValue::toUInt16_test): | 
 |  | 
 | 2010-05-21  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Add COMPILER(MSVC) guard for strnstr | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39397 | 
 |  | 
 |         BREWMP uses MSVC for simulator build, but it is not OS(WINDOWS). | 
 |         Add COMPILER(MSVC) guard for strnstr. | 
 |  | 
 |         * wtf/StringExtras.h: | 
 |  | 
 | 2010-05-21  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Add !PLATFORM(BREWMP) guard for isMainThread | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39396 | 
 |  | 
 |         BREWMP sets ENABLE(SINGLE_THREADED), so it uses isMainThread from ThreadingNone.cpp. | 
 |         Exclude isMainThread in MainThread.cpp. | 
 |  | 
 |         * wtf/MainThread.cpp: | 
 |  | 
 | 2010-05-20  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Use skia as BREW MP's graphics backend. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39407 | 
 |  | 
 |         Define WTF_PLATFORM_SKIA=1 for BREW MP. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Beth Dakin. | 
 |  | 
 |         Fixed naming mixup: it's op_call_put_result, not ret_result. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2010-05-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Whittling away at CodeBlock use: Removed a little wonkiness in closure lookup | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39444 | 
 |          | 
 |         Calculate all lookup depths at compile time. I'm not sure why we couldn't | 
 |         do this before, but whatever the reason, it seems to be gone now. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::findScopedProperty): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::resolveSkip): | 
 |         (JSC::Interpreter::resolveGlobalDynamic): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_resolve_skip): | 
 |         (JSC::JIT::emit_op_resolve_global_dynamic): | 
 |         (JSC::JIT::emitSlow_op_resolve_global_dynamic): | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_resolve_skip): | 
 |  | 
 | 2010-05-20  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Fix warnings seen on the buildbots today | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39368 | 
 |  | 
 |         * profiler/ProfileNode.cpp: | 
 |         (JSC::getCount): Removed unneeded initialization of global variable. | 
 |         These are all initialized to zero anyway, so no need to try to initialize | 
 |         it and get a warning. | 
 |  | 
 |         * wtf/CurrentTime.cpp: | 
 |         (WTF::currentTime): Removed unused global variable. | 
 |  | 
 | 2010-05-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Removed some reliance on callFame[CodeBlock] by storing CodeBlock in a | 
 |         local variable in the Interpreter. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39447 | 
 |  | 
 |         Small speedup on SunSpider in Interpreter mode. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jsc.cpp: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 39408 - Unify JIT/interpreter return behaviour. | 
 |  | 
 |         Presently the JIT and the interpreter have differing implementations in how | 
 |         they handle storing the result of a function call back to the register file. | 
 |         In both cases the op_call ( / _eval / _varargs / op_construct) opcode has an | 
 |         operand indicating the VM register in which the result should be stored. | 
 |         The JIT plants code after the call to store the result, so the value will be | 
 |         stored as soon as the callee has returned.  In the interpreter the call | 
 |         passes the return value register id into the callee via the callee callframe, | 
 |         and the callee is responsible for writing the result back into its callers | 
 |         register file after it has restored the parents callframe pointer, but before | 
 |         returning. | 
 |  | 
 |         Instead, move the task of writing the call result to the register file into a | 
 |         new opcode (op_call_put_result), and after returning the callee should leave | 
 |         the return value in a canonical location.  In the case of the interpreter, | 
 |         this canonical location is a local variable in privateExecute | 
 |         (functionReturnValue), in the case of the JIT this is the normal return value | 
 |         registers (regT0, or regT1:regT0 in JSVALUE32_64).  op_call_put_result stores | 
 |         the result from the canonical location to the registerfile. | 
 |  | 
 |         In addition to unifying JIT & interpreter behaviour this change allows us to | 
 |         remove a slot from the callframe, omit the write of the result where the | 
 |         return value from the call is not used, and provides a 2% speedup on sunspider | 
 |         in the interpreter. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitCall): | 
 |         (JSC::BytecodeGenerator::emitCallVarargs): | 
 |         (JSC::BytecodeGenerator::emitConstruct): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::finalDestinationOrIgnored): | 
 |         * bytecompiler/NodesCodegen.cpp: | 
 |         (JSC::NewExprNode::emitBytecode): | 
 |         (JSC::FunctionCallValueNode::emitBytecode): | 
 |         (JSC::FunctionCallResolveNode::emitBytecode): | 
 |         (JSC::FunctionCallBracketNode::emitBytecode): | 
 |         (JSC::FunctionCallDotNode::emitBytecode): | 
 |         (JSC::CallFunctionCallDotNode::emitBytecode): | 
 |         (JSC::ApplyFunctionCallDotNode::emitBytecode): | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::init): | 
 |         (JSC::ExecState::noCaller): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::dumpRegisters): | 
 |         (JSC::Interpreter::throwException): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallSetupArgs): | 
 |         (JSC::JIT::compileOpConstructSetupArgs): | 
 |         (JSC::JIT::emit_op_call_put_result): | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         (JSC::JIT::compileOpCallVarargsSlowCase): | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |         (JSC::JIT::compileOpCallVarargsSetupArgs): | 
 |  | 
 | 2010-05-20  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Jeremy Orlow. | 
 |  | 
 |         Provide bindings for DeviceOrientation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39210 | 
 |  | 
 |         Adds ENABLE_DEVICE_ORIENTATION to XCode project file, always disabled. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Errk! rename op_constructor_ret as requested in review of Bug 39399. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitReturn): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::emit_op_ret_object_or_this): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_ret_object_or_this): | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 39399 - Move responsibility for verifying constructors return objects from the caller to the callee. | 
 |          | 
 |         This is a necessary step to move object creation from caller to callee. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         (JSC::BytecodeGenerator::emitReturn): | 
 |         (JSC::BytecodeGenerator::emitConstruct): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::isConstructor): | 
 |         * bytecompiler/NodesCodegen.cpp: | 
 |         (JSC::FunctionBodyNode::emitBytecode): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::emit_op_constructor_ret): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_constructor_ret): | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Fix windows build II. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Fix windows build. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 39393 - JSFunction need not be a subclass of InternalFunction. | 
 |  | 
 |         re-landing r59800. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::retrieveCaller): | 
 |         (JSC::Interpreter::findFunctionCallFrame): | 
 |         * interpreter/Interpreter.h: | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::Profiler::createCallIdentifier): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::): | 
 |         (JSC::JSFunction::JSFunction): | 
 |         (JSC::JSFunction::name): | 
 |         (JSC::JSFunction::displayName): | 
 |         (JSC::JSFunction::calculatedDisplayName): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::putDirectFunction): | 
 |         (JSC::JSObject::putDirectFunctionWithoutTransition): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::setUpStaticFunctionSlot): | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Reverting r59800, this b0rked stuff. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::retrieveCaller): | 
 |         (JSC::Interpreter::findFunctionCallFrame): | 
 |         * interpreter/Interpreter.h: | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::Profiler::createCallIdentifier): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::): | 
 |         (JSC::JSFunction::JSFunction): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSObject.cpp: | 
 |         * runtime/JSObject.h: | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::setUpStaticFunctionSlot): | 
 |  | 
 | 2010-05-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 39393 - JSFunction need not be a subclass of InternalFunction. | 
 |  | 
 |         This may prevent us from introducing a more useful parent class to | 
 |         JSFunction, e.g. a JSObject that holds an executable, which could | 
 |         also reference an eval or program executable. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::retrieveCaller): | 
 |         (JSC::Interpreter::findFunctionCallFrame): | 
 |         * interpreter/Interpreter.h: | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::Profiler::createCallIdentifier): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::): | 
 |         (JSC::JSFunction::JSFunction): | 
 |         (JSC::JSFunction::name): | 
 |         (JSC::JSFunction::displayName): | 
 |         (JSC::JSFunction::calculatedDisplayName): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::putDirectFunction): | 
 |         (JSC::JSObject::putDirectFunctionWithoutTransition): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::setUpStaticFunctionSlot): | 
 |  | 
 | 2010-05-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         emitJumpIfNotJSCell should special case constant immediate values | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39392 | 
 |         <rdar://problem/8001324> | 
 |  | 
 |         Make emitJumpSlowCaseIfNotJSCell special case constant immediate | 
 |         values, in addition to the immediate JSCell optimisation. | 
 |  | 
 |         Also add assertions to make sure no one else produces code that | 
 |         attempts to load constants from the register file. | 
 |  | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitJumpSlowCaseIfNotJSCell): | 
 |         * jit/JSInterfaceJIT.h: | 
 |         (JSC::JSInterfaceJIT::emitJumpIfNotJSCell): | 
 |         (JSC::JSInterfaceJIT::emitLoadInt32): | 
 |         (JSC::JSInterfaceJIT::tagFor): | 
 |         (JSC::JSInterfaceJIT::payloadFor): | 
 |         (JSC::JSInterfaceJIT::emitLoadDouble): | 
 |         (JSC::JSInterfaceJIT::addressFor): | 
 |         * jit/ThunkGenerators.cpp: | 
 |  | 
 | 2010-05-19  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Slight refactoring to CodeBlock bytecode access | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39384 | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::bytecodeOffset): | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::returnPC): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::unwindCallFrame): | 
 |         (JSC::Interpreter::retrieveLastCaller): Moved bytecode access into a | 
 |         CodeBlock helper function. Changed CallFrame to accurately represent | 
 |         how the returnPC is stored in JIT vs Interpreter. | 
 |  | 
 | 2010-05-19  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Don't build the Interpreter into JIT builds. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39373 | 
 |  | 
 |         SunSpider says no change. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * interpreter/Interpreter.h: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-19  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |          | 
 |         Standardized naming: "bytecode offset" wins; "bytecode index" loses. | 
 |          | 
 |         Also renamed getBytecodeOffset to bytecodeOffset, to match the WebKit | 
 |         naming style. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CallReturnOffsetToBytecodeOffset::CallReturnOffsetToBytecodeOffset): | 
 |         (JSC::getCallReturnOffset): | 
 |         (JSC::CodeBlock::bytecodeOffset): | 
 |         (JSC::CodeBlock::callReturnIndexVector): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::bytecodeOffsetForPC): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::JIT): | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileLinkPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         (JSC::JIT::privateCompile): | 
 |         * jit/JIT.h: | 
 |         (JSC::CallRecord::CallRecord): | 
 |         (JSC::JumpTable::JumpTable): | 
 |         (JSC::SwitchRecord::SwitchRecord): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallVarargsSlowCase): | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitNakedCall): | 
 |         (JSC::JIT::addSlowCase): | 
 |         (JSC::JIT::addJump): | 
 |         (JSC::JIT::emitJumpSlowToHot): | 
 |         (JSC::JIT::isLabeled): | 
 |         (JSC::JIT::map): | 
 |         (JSC::JIT::unmap): | 
 |         (JSC::JIT::isMapped): | 
 |         (JSC::JIT::getMappedPayload): | 
 |         (JSC::JIT::getMappedTag): | 
 |         (JSC::JIT::emitGetVirtualRegister): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_switch_imm): | 
 |         (JSC::JIT::emit_op_switch_char): | 
 |         (JSC::JIT::emit_op_switch_string): | 
 |         (JSC::JIT::emit_op_new_error): | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         (JSC::JIT::emit_op_mov): | 
 |         (JSC::JIT::emit_op_get_global_var): | 
 |         (JSC::JIT::emit_op_put_global_var): | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_to_primitive): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_catch): | 
 |         (JSC::JIT::emit_op_switch_imm): | 
 |         (JSC::JIT::emit_op_switch_char): | 
 |         (JSC::JIT::emit_op_switch_string): | 
 |         (JSC::JIT::emit_op_new_error): | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::emitSlow_op_method_check): | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::emitSlow_op_method_check): | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emit_op_get_by_id): | 
 |         (JSC::JIT::emit_op_get_by_pname): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::call): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |  | 
 | 2010-05-19  Peter Varga  <pvarga@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         The backtrackParenthesesOnceEnd function should store the start position | 
 |         of the subpattern's non-greedy match at the place of the subpattern's | 
 |         start index in the output array instead of the place of the | 
 |         subpattern's end index. | 
 |         Add layout test for checking of non-greedy matching of subpattern in | 
 |         regular expressions. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39289 | 
 |  | 
 |         * yarr/RegexInterpreter.cpp: | 
 |         (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd): | 
 |  | 
 | 2010-05-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 39343 - Dynamically generate a native call thunk per NativeFunction | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39252 regressed performance on i386, | 
 |         by adding an extra indirection to making a native call.  By introducing per- | 
 |         NativeFunction thunks we can hard code the function pointer into the thunk | 
 |         so that it need not be loaded from the callee. | 
 |  | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileCTINativeCall): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTINativeCall): | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         (JSC::JIT::privateCompileCTINativeCall): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::ctiStub): | 
 |         (JSC::JITThunks::hostFunctionStub): | 
 |         * jit/JITStubs.h: | 
 |         * jit/SpecializedThunkJIT.h: | 
 |         (JSC::SpecializedThunkJIT::finalize): | 
 |         * jit/ThunkGenerators.cpp: | 
 |         (JSC::charCodeAtThunkGenerator): | 
 |         (JSC::charAtThunkGenerator): | 
 |         (JSC::fromCharCodeThunkGenerator): | 
 |         (JSC::sqrtThunkGenerator): | 
 |         (JSC::powThunkGenerator): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::getHostFunction): | 
 |         * runtime/JSGlobalData.h: | 
 |         (JSC::JSGlobalData::getCTIStub): | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::setUpStaticFunctionSlot): | 
 |         * runtime/StringConstructor.cpp: | 
 |         (JSC::StringConstructor::StringConstructor): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-18  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Simplified handling of 'arguments' -- 1.2% SunSpider speedup | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39200 | 
 |          | 
 |         Removed the reserved OptionalCalleeArguments slot from the CallFrame. | 
 |         Now, slots for 'arguments' are allocated and initialized only by | 
 |         functions that might need them. | 
 |          | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): Updated for new bytecode operands. | 
 |  | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::unmodifiedArgumentsRegister): Added a helper function for mapping | 
 |         from the arguments register to its unmodified counterpart. | 
 |  | 
 |         (JSC::CodeBlock::setArgumentsRegister): | 
 |         (JSC::CodeBlock::argumentsRegister): | 
 |         (JSC::CodeBlock::usesArguments):  Changed from a "usesArguments" bool to | 
 |         an optional int index representing the arguments register. | 
 |  | 
 |         * bytecode/Opcode.h: Updated for new bytecode operands. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::addVar): Factored out a helper function for | 
 |         allocating an anonymous var. | 
 |  | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): Merged / simplified some | 
 |         arguments vs activation logic, and added code to allocate the arguments | 
 |         registers when needed. | 
 |  | 
 |         (JSC::BytecodeGenerator::createArgumentsIfNecessary): Updated for new bytecode operands. | 
 |  | 
 |         (JSC::BytecodeGenerator::emitCallEval): No need to create the arguments | 
 |         object before calling eval; the activation object will lazily create the | 
 |         arguments object if eval resolves it. | 
 |  | 
 |         (JSC::BytecodeGenerator::emitReturn): Updated for new bytecode operands. | 
 |  | 
 |         (JSC::BytecodeGenerator::emitPushScope): | 
 |         (JSC::BytecodeGenerator::emitPushNewScope): Ditto emitCallEval. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::addVar): Factored out a helper function for | 
 |         allocating an anonymous var. | 
 |  | 
 |         (JSC::BytecodeGenerator::registerFor): No more need for special handling | 
 |         of the arguments registers; they're allocated just like normal registers | 
 |         now. | 
 |  | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::callerFrame): | 
 |         (JSC::ExecState::init): | 
 |         * interpreter/CallFrameClosure.h: | 
 |         (JSC::CallFrameClosure::resetCallFrame): Nixed optionalCalleeArguments. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::dumpRegisters): | 
 |         (JSC::Interpreter::unwindCallFrame): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         (JSC::Interpreter::retrieveArguments): Opcodes accessing 'arguments' now | 
 |         take operands specifying registers, just like all other opcodes. | 
 |         JSActivation::copyRegisters is no longer responsible for tearing off the | 
 |         arguments object; instead, the VM is responsible for both. | 
 |  | 
 |         Also, a behavior change: Each access to f.arguments creates a new object, | 
 |         unless f itself uses 'arguments'. This matches Chrome, and is necessary | 
 |         for the optimization. f.arguments is a nonstandard, deprecated feature, | 
 |         so high fidelity to a given implementation is not necessarily a goal. | 
 |         Also, as illustrated by the new test case, the identity of f.arguments | 
 |         has been broken since 2008, except in the case where f itself accesses | 
 |         f.arguments -- but nobody seemed to notice. So, hopefully this change won't | 
 |         break the web. | 
 |          | 
 |         * interpreter/Register.h: Nixed the special arguments accessor. It's no | 
 |         longer needed. | 
 |  | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_tear_off_activation): | 
 |         (JSC::JIT::emit_op_tear_off_arguments): | 
 |         (JSC::JIT::emit_op_create_arguments): | 
 |         (JSC::JIT::emit_op_init_arguments): | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         (JSC::JIT::emit_op_tear_off_activation): | 
 |         (JSC::JIT::emit_op_tear_off_arguments): | 
 |         (JSC::JIT::emit_op_create_arguments): | 
 |         (JSC::JIT::emit_op_init_arguments): The actual optimization: Removed | 
 |         OptionalCalleeArguments from the callframe slot. Now, it doesn't need | 
 |         to be initialized for most calls. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): Updated stubs to support arbitrary 'arguments' registers, | 
 |         instead of hard-coding something in the call frame. | 
 |  | 
 |         * runtime/Arguments.h: | 
 |         (JSC::JSActivation::copyRegisters): Removed some obfuscatory abstraction. | 
 |  | 
 |         * runtime/Executable.h: | 
 |         (JSC::FunctionExecutable::generatedByteCode): Added a helper for accessing | 
 |         the 'arguments' register. In a future patch, that kind of data should | 
 |         probably move out of CodeBlock and into Executable. | 
 |  | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::getOwnPropertySlot): | 
 |         (JSC::JSActivation::argumentsGetter): | 
 |         * runtime/JSActivation.h: Simplified / fixed access to 'arguments' via | 
 |         the activation object. It now implements the same behavior implemented | 
 |         by optimized variable access in the VM. This simplifies some other | 
 |         things, too -- like eval code generation. | 
 |  | 
 | 2010-05-18  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Try to fix the windows build. | 
 |  | 
 |         * API/JSStringRefBSTR.cpp: | 
 |  | 
 | 2010-05-18  Anders Carlsson  <andersca@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Add an inlineCapacity template parameter to ListHashSet and use it to shrink the positioned object list hash set. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39304 | 
 |         <rdar://problem/7998366> | 
 |  | 
 |         Add an inlineCapacity template parameter to ListHashSet. | 
 |  | 
 |         * wtf/ListHashSet.h: | 
 |         (WTF::::ListHashSet): | 
 |         (WTF::::operator): | 
 |         (WTF::::swap): | 
 |         (WTF::::~ListHashSet): | 
 |         (WTF::::size): | 
 |         (WTF::::capacity): | 
 |         (WTF::::isEmpty): | 
 |         (WTF::::begin): | 
 |         (WTF::::end): | 
 |         (WTF::::find): | 
 |         (WTF::::contains): | 
 |         (WTF::::add): | 
 |         (WTF::::insertBefore): | 
 |         (WTF::::remove): | 
 |         (WTF::::clear): | 
 |         (WTF::::unlinkAndDelete): | 
 |         (WTF::::appendNode): | 
 |         (WTF::::insertNodeBefore): | 
 |         (WTF::::deleteAllNodes): | 
 |         (WTF::::makeIterator): | 
 |         (WTF::::makeConstIterator): | 
 |         (WTF::deleteAllValues): | 
 |  | 
 | 2010-05-18  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix the interpreter after r59637 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39287 | 
 |  | 
 |         * runtime/Executable.h: | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         (JSC::JSFunction::getCallData): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         * runtime/JSGlobalData.h: | 
 |  | 
 | 2010-05-17  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Oops, meant ebx not eax there.  Fix Qt (and probably Win too). | 
 |  | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |  | 
 | 2010-05-17  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 39252 - Move host/native JSFunction's NativeFunction onto NativeExecutable. | 
 |  | 
 |         Currently host functions reuse JSFunction's ScopeChain as storage for their | 
 |         NativeFunction (the C function pointer to the host function implementation). | 
 |         Instead, move this onto NativeExecutable.  This will allow host functions to | 
 |         have a scopechain (which will be implemented as a separate patch). | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::stringGetByValStubGenerator): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::stringGetByValStubGenerator): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::specializedThunk): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiNativeCall): | 
 |         * jit/SpecializedThunkJIT.h: | 
 |         (JSC::SpecializedThunkJIT::finalize): | 
 |         * jit/ThunkGenerators.cpp: | 
 |         (JSC::charCodeAtThunkGenerator): | 
 |         (JSC::charAtThunkGenerator): | 
 |         (JSC::fromCharCodeThunkGenerator): | 
 |         (JSC::sqrtThunkGenerator): | 
 |         (JSC::powThunkGenerator): | 
 |         * jit/ThunkGenerators.h: | 
 |         * runtime/Executable.h: | 
 |         (JSC::NativeExecutable::create): | 
 |         (JSC::NativeExecutable::function): | 
 |         (JSC::NativeExecutable::NativeExecutable): | 
 |         (JSC::JSFunction::nativeFunction): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         (JSC::JSFunction::~JSFunction): | 
 |         (JSC::JSFunction::markChildren): | 
 |         (JSC::JSFunction::getCallData): | 
 |         (JSC::JSFunction::call): | 
 |         (JSC::JSFunction::getOwnPropertySlot): | 
 |         (JSC::JSFunction::getConstructData): | 
 |         (JSC::JSFunction::construct): | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::scope): | 
 |         * runtime/JSGlobalData.h: | 
 |         (JSC::JSGlobalData::getThunk): | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::setUpStaticFunctionSlot): | 
 |         * runtime/StringConstructor.cpp: | 
 |         (JSC::StringConstructor::StringConstructor): | 
 |  | 
 | 2010-05-17  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [Qt] Remove WinCE endian dedection. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38511 | 
 |  | 
 |         Windows CE supports little-endian format only. | 
 |         Correct dedection was added in r57804. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-16  Simon Fraser  <simon.fraser@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Reduce the size of FunctionExecutable | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39180 | 
 |          | 
 |         Change m_numVariables from a size_t to 31 bits in a bitfield, | 
 |         packed with another bit for m_forceUsesArguments (which in turn | 
 |         get packed with the base class). | 
 |          | 
 |         Reduces the size of FunctionExecutable from 160 to 152 bytes. | 
 |  | 
 |         * runtime/Executable.h: | 
 |         (JSC::FunctionExecutable::variableCount): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |  | 
 | 2010-05-15  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Incorrect codegen for slowcase of < in 64-bit | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39151 | 
 |  | 
 |         Call the correct stud for the slowcases of the < operator. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jless): | 
 |  | 
 | 2010-05-15  Leo Yang  <leo.yang@torchmobile.com.cn> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix bug https://bugs.webkit.org/show_bug.cgi?id=38890 | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |  | 
 | 2010-05-15  Leandro Pereira  <leandro@profusion.mobi> | 
 |  | 
 |         Reviewed by Adam Treat. | 
 |  | 
 |         [EFL] Add build system for the EFL port. | 
 |         http://webkit.org/b/37945 | 
 |  | 
 |         * CMakeLists.txt: Added. | 
 |         * CMakeListsEfl.txt: Added. | 
 |         * config.h: Add conditional to look for cmakeconfig.h. | 
 |         * jsc/CMakeLists.txt: Added. | 
 |         * jsc/CMakeListsEfl.txt: Added. | 
 |         * wtf/CMakeLists.txt: Added. | 
 |         * wtf/CMakeListsEfl.txt: Added. | 
 |  | 
 | 2010-05-15  Chao-ying Fu  <fu@mips.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Update MIPS JIT for unsigned right shift, Math.sqrt, load16 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38412 | 
 |  | 
 |         Fixed MIPS build failure. | 
 |  | 
 |         * assembler/MIPSAssembler.h: | 
 |         (JSC::MIPSAssembler::srl): | 
 |         (JSC::MIPSAssembler::srlv): | 
 |         (JSC::MIPSAssembler::sqrtd): | 
 |         * assembler/MacroAssemblerMIPS.h: | 
 |         (JSC::MacroAssemblerMIPS::urshift32): | 
 |         (JSC::MacroAssemblerMIPS::sqrtDouble): | 
 |         (JSC::MacroAssemblerMIPS::load16): | 
 |         (JSC::MacroAssemblerMIPS::supportsFloatingPointSqrt): | 
 |         * jit/JSInterfaceJIT.h: | 
 |  | 
 | 2010-05-15  Ilya Tikhonovsky  <loislo@chromium.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         WebInspector: JSC Should provide heap size info for Timeline panel. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38420 | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::size): | 
 |         * runtime/Collector.h: | 
 |  | 
 | 2010-05-15  Dave Tapuska  <dtapuska@rim.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Add a new define for we need strict arena alignment. ARMv5 with | 
 |         double word instructions set this value. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-14  Stephanie Lewis  <slewis@apple.com> | 
 |  | 
 |         Rubber-stamped by Mark Rowe. | 
 |  | 
 |         Update order files. | 
 |  | 
 |         * JavaScriptCore.order: | 
 |  | 
 | 2010-05-14  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Implementation of QtScript API that provide method to convert a value to an object. | 
 |  | 
 |         [Qt] QtScript is missing toObject API | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36594 | 
 |  | 
 |         * qt/api/qscriptengine.cpp: | 
 |         (QScriptEngine::toObject): | 
 |         * qt/api/qscriptengine.h: | 
 |         * qt/api/qscriptvalue.cpp: | 
 |         (QScriptValue::toObject): | 
 |         * qt/api/qscriptvalue.h: | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::toObject): | 
 |         * qt/tests/qscriptengine/tst_qscriptengine.cpp: | 
 |         (tst_QScriptEngine::toObject): | 
 |         (tst_QScriptEngine::toObjectTwoEngines): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp: | 
 |         (tst_QScriptValue::toObjectSimple): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: | 
 |  | 
 | 2010-05-14  Chao-ying Fu  <fu@mips.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         String Indexing Failure on JSVALUE32 targets | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39034 | 
 |  | 
 |         Remove zero-extend/shift-right code on regT1, because we already have | 
 |         it in emit_op_get_by_val(). | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::stringGetByValStubGenerator): | 
 |  | 
 | 2010-05-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Fix a VS2010 assert in std::copy | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38630 | 
 |  | 
 |         The assert complains that the output iterator is null. | 
 |  | 
 |         * wtf/Vector.h: | 
 |         (WTF::::operator): | 
 |  | 
 | 2010-05-13  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         No review, attempted build fix. | 
 |  | 
 |         Try to fix Tiger build with some gratuitous initialization of | 
 |         seemingly uninitialized variables. | 
 |  | 
 |         * wtf/text/StringImpl.h: | 
 |         (WebCore::StringImpl::tryCreateUninitialized): | 
 |  | 
 | 2010-05-13  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Various JavaScript string optimizations | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39051 | 
 |  | 
 |         Approximately 1% SunSpider speedup. | 
 |          | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncJoin): Remove branches from the hot code path | 
 |         by moving the first pass outside the loop, and duplicating the hot loop | 
 |         to extract the loop-invariant branch. | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::match): resize ovector to 0 instead of clearing to avoid | 
 |         thrash in case of large matches. | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::performMatch): Mark ALWAYS_INLINE to make the | 
 |         compiler respect our authority. | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::jsSpliceSubstringsWithSeparators): Inline. | 
 |         (JSC::stringProtoFuncSubstring): Rewrite boundary condition checks to | 
 |         reduce the number of floating point comparisons and branches. | 
 |  | 
 | 2010-05-12  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39039 | 
 |         Provide support for separate bytecode/JIT code translations for call/construct usage | 
 |         This will allow us to produce code generated specifically for use as a constructor, not for general function use. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |         (JSC::CodeBlock::unlinkCallers): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::getBytecodeIndex): | 
 |         (JSC::CodeBlock::getJITCode): | 
 |         (JSC::CodeBlock::executablePool): | 
 |         (JSC::GlobalCodeBlock::GlobalCodeBlock): | 
 |         (JSC::FunctionCodeBlock::FunctionCodeBlock): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::executeCall): | 
 |         (JSC::Interpreter::executeConstruct): | 
 |         (JSC::Interpreter::prepareForRepeatCall): | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * interpreter/Interpreter.h: | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::unlinkCallOrConstruct): | 
 |         (JSC::JIT::linkConstruct): | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiVirtualConstructLink): | 
 |         (JSC::JITThunks::ctiVirtualConstruct): | 
 |         (JSC::): | 
 |         * jit/SpecializedThunkJIT.h: | 
 |         (JSC::SpecializedThunkJIT::finalize): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::JSActivation::copyRegisters): | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::isNumericCompareFunction): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::~FunctionExecutable): | 
 |         (JSC::FunctionExecutable::compileForCall): | 
 |         (JSC::FunctionExecutable::compileForConstruct): | 
 |         (JSC::EvalExecutable::generateJITCode): | 
 |         (JSC::ProgramExecutable::generateJITCode): | 
 |         (JSC::FunctionExecutable::generateJITCodeForCall): | 
 |         (JSC::FunctionExecutable::generateJITCodeForConstruct): | 
 |         (JSC::FunctionExecutable::markAggregate): | 
 |         (JSC::FunctionExecutable::reparseExceptionInfo): | 
 |         (JSC::EvalExecutable::reparseExceptionInfo): | 
 |         (JSC::FunctionExecutable::recompile): | 
 |         * runtime/Executable.h: | 
 |         (JSC::ExecutableBase::ExecutableBase): | 
 |         (JSC::ExecutableBase::isHostFunction): | 
 |         (JSC::ExecutableBase::generatedJITCodeForCall): | 
 |         (JSC::ExecutableBase::generatedJITCodeForConstruct): | 
 |         (JSC::NativeExecutable::NativeExecutable): | 
 |         (JSC::EvalExecutable::jitCode): | 
 |         (JSC::ProgramExecutable::jitCode): | 
 |         (JSC::FunctionExecutable::bytecodeForCall): | 
 |         (JSC::FunctionExecutable::isGeneratedForCall): | 
 |         (JSC::FunctionExecutable::generatedBytecodeForCall): | 
 |         (JSC::FunctionExecutable::bytecodeForConstruct): | 
 |         (JSC::FunctionExecutable::isGeneratedForConstruct): | 
 |         (JSC::FunctionExecutable::generatedBytecodeForConstruct): | 
 |         (JSC::FunctionExecutable::symbolTable): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         (JSC::FunctionExecutable::jitCodeForCall): | 
 |         (JSC::FunctionExecutable::jitCodeForConstruct): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::JSActivationData::JSActivationData): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::~JSFunction): | 
 |         (JSC::JSFunction::call): | 
 |         (JSC::JSFunction::construct): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::numericCompareFunction): | 
 |  | 
 | 2010-05-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         build fix | 
 |  | 
 |         <rdar://problem/7977960> REGRESSION (r59282): Tiger PPC build broken | 
 |  | 
 |         * runtime/UString.h: | 
 |         (JSC::tryMakeString): | 
 |  | 
 | 2010-05-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         <rdar://7969718> Incorrect 32-bit codegen for op_jnlesseq | 
 |         https://bugs.webkit.org/show_bug.cgi?id=39038 | 
 |  | 
 |         Correct the use of incorrect comparison operators. | 
 |  | 
 |         * jit/JITArithmetic32_64.cpp: | 
 |         (JSC::JIT::emit_op_jlesseq): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |  | 
 | 2010-05-12  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         JavaScriptCore: fix build when some optimizations are disabled | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38800 | 
 |  | 
 |         Remove outdated UNUSED_PARAMs when using JIT but with | 
 |         ENABLE_JIT_OPTIMIZE_CALL and ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS | 
 |         disabled. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITOpcodes32_64.cpp: | 
 |  | 
 | 2010-05-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Work around GCC stupidity by either explicitly inlining or by | 
 |         using ALWAYS_INLINE | 
 |  | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncReplace): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::~UString): | 
 |         * wtf/RefPtr.h: | 
 |         (WTF::RefPtr::RefPtr): | 
 |         (WTF::RefPtr::~RefPtr): | 
 |         * wtf/text/StringImpl.h: | 
 |         (WebCore::StringImpl::create): | 
 |         (WebCore::StringImpl::tryCreateUninitialized): | 
 |  | 
 | 2010-05-12  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Detect debug mode consistently | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38863 | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.pro: | 
 |         * jsc.pro: | 
 |         * qt/api/QtScript.pro: | 
 |  | 
 | 2010-05-12  Peter Varga  <pvarga@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Remove a direct jump in generatePatternCharacterGreedy() and | 
 |         generatePatternCharacterClassGreedy() functions if quantityCount of the term | 
 |         is unlimited. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38898 | 
 |  | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy): | 
 |         (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy): | 
 |  | 
 | 2010-05-11  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Slight simplification to the calling convention: read RegisterFile::end() | 
 |         from an absolute address, instead of from a pointer to the RegisterFile | 
 |         on the stack. | 
 |          | 
 |         SunSpider reports no change. | 
 |          | 
 |         This should free us to remove the RegisterFile argument from the stack. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompile): | 
 |  | 
 | 2010-05-11  Brian Weinstein  <bweinstein@apple.com> | 
 |  | 
 |         Possible Gtk build fix - use ALWAYS_INLINE on functions that were inlined. | 
 |  | 
 |         * wtf/text/AtomicString.h: | 
 |         (WebCore::AtomicString::add): Use ALWAYS_INLINE. | 
 |         * wtf/text/WTFString.h: | 
 |         (WebCore::String::length): Ditto. | 
 |         (WebCore::String::isEmpty): Ditto. | 
 |  | 
 | 2010-05-11  Anders Carlsson  <andersca@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Add a compile time assert that sizeof(String) == sizeof(AtomicString). | 
 |  | 
 |         * wtf/text/AtomicString.cpp: | 
 |  | 
 | 2010-05-11  Anders Carlsson  <andersca@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38961 | 
 |         Move some member variables around to reduce class sizes. | 
 |          | 
 |         Make AtomicString no longer inherit from FastAllocBase. | 
 |  | 
 |         Since AtomicString's first (and only) member variable, a RefPtr, also inherits from FastAllocBase this | 
 |         was causing the size of AtomicString to contain sizeof(void*) bytes of padding. | 
 |  | 
 |         * wtf/text/AtomicString.h: | 
 |  | 
 | 2010-05-11  Brian Weinstein  <bweinstein@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |         Patch by Gavin Barraclough. | 
 |          | 
 |         Rest of REGRESSION (r57900-57919): 3% PLT Regression from moving strings into WTF. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38930 | 
 |         <rdar://problem/7937188> | 
 |          | 
 |         Inline string functions that are commonly used in WTFString, CString, and AtomicString. | 
 |  | 
 |         * JavaScriptCore.exp: Remove exports of inline functions. | 
 |         * wtf/text/AtomicString.cpp: | 
 |         (WebCore::AtomicString::addSlowCase): Rename add to addSlowCase, and inline the fast path | 
 |             of add. | 
 |         * wtf/text/AtomicString.h: | 
 |         (WebCore::AtomicString::add): Inline the fast path of add. | 
 |         * wtf/text/CString.cpp: Inline implementation of data and length in the header. | 
 |         * wtf/text/CString.h: | 
 |         (WTF::CString::data): Inline implementation of data. | 
 |         (WTF::CString::length): Inline implementation of length. | 
 |         * wtf/text/WTFString.cpp: Remove implementations of functions to be inlined. | 
 |         * wtf/text/WTFString.h: | 
 |         (WebCore::String::String): Inline implementation. | 
 |         (WebCore::String::length): Ditto. | 
 |         (WebCore::String::characters): Ditto. | 
 |         (WebCore::String::operator[]): Ditto. | 
 |         (WebCore::String::isEmpty): Ditto. | 
 |  | 
 | 2010-05-11  Brian Weinstein  <bweinstein@apple.com> | 
 |  | 
 |         Reviewed by Steve Falkenburg and Jon Honeycutt. | 
 |         Patch by Gavin Barraclough. | 
 |          | 
 |         REGRESSION (r57900-57919): 3% PLT Regression from moving strings into WTF. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38930 | 
 |         <rdar://problem/7937188> | 
 |          | 
 |         When the String classes were moved from WebCore to WTF, it meant that on Windows, all operations | 
 |         on Strings in WebCore had to cross a DLL boundary (from WebKit.dll to JavaScript.dll). | 
 |          | 
 |         We fix this by refactoring some of the WTF string code, so the code in AtomicString, StringImpl, and | 
 |         WTFString can be built by both WebCore and WTF, and we don't need to talk across a DLL to do operations | 
 |         on Strings. | 
 |  | 
 |         * GNUmakefile.am: Add new file to build system. | 
 |         * JavaScriptCore.gypi: Ditto. | 
 |         * JavaScriptCore.pro: Ditto. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Remove string exports, because these are now | 
 |             handled in WebCore. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Remove the post-build step that was added | 
 |             here (the post build step is in JavaScriptCoreCommon.vsprops). | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Copy the three cpp files that need to be compiled | 
 |             by WebCore into the WebKitOutputDir directory. | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Add the StringStatics file. | 
 |         * JavaScriptCore.vcproj/jsc/jsc.vcproj: Add the three WTF string cpp files to this project. | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Remove the need to link against WTF.lib (since jsc links against JavaScriptCore). | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Add the StringStatics file. | 
 |         * wtf/text/AtomicString.cpp: Moved code to StringStatics. | 
 |         * wtf/text/StringImpl.cpp: Ditto. | 
 |         * wtf/text/StringStatics.cpp: Added. Move functions in WTF Strings that define static variables to here, so  | 
 |             the rest of the files can be compiled in WebCore. | 
 |         (WebCore::StringImpl::empty): Moved from StringImpl.cpp to here. | 
 |         (WebCore::AtomicString::init): Moved from AtomicString.cpp to here. | 
 |  | 
 | 2010-05-11  Alice Liu  <alice.liu@apple.com> | 
 |  | 
 |         Rubber-stamped by Gavin Barraclough. | 
 |  | 
 |         Fix build error when enabling debugging block in WebKit win painting code | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-11  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Fix the world. | 
 |  | 
 |         In r59162 a change was made to WebCore's FeatureDefines.xcconfig that enabled FILE_READER and FILE_WRITER. | 
 |         The author and reviewer of that patch ignored the carefully-worded warning at the top of that file asking | 
 |         that changes to the file be kept in sync across JavaScriptCore, WebCore and WebKit, as well as being kept | 
 |         in sync with build-webkit.  This led to WebCore and WebKit having different views of Document's vtable | 
 |         and results in crashes in Safari shortly after launch when virtual function calls resulted in the wrong | 
 |         function in WebCore being called. | 
 |  | 
 |         We fix this by bringing the FeatureDefines.xcconfig files in to sync.  Based on the ChangeLog message and | 
 |         other changes in r59162 it appears that enabling FILE_WRITER was unintentional so that particular change | 
 |         has been reverted. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-05-11  Sheriff Bot  <webkit.review.bot@gmail.com> | 
 |  | 
 |         Unreviewed, rolling out r59171. | 
 |         http://trac.webkit.org/changeset/59171 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38933 | 
 |  | 
 |         "Broke the world" (Requested by bweinstein on #webkit). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.vcproj/jsc/jsc.vcproj: | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * wtf/text/AtomicString.cpp: | 
 |         (WebCore::AtomicString::init): | 
 |         * wtf/text/StringImpl.cpp: | 
 |         (WebCore::StringImpl::empty): | 
 |         * wtf/text/StringStatics.cpp: Removed. | 
 |  | 
 | 2010-05-11  Brian Weinstein  <bweinstein@apple.com> | 
 |  | 
 |         Reviewed by Steve Falkenburg. | 
 |         Patch by Gavin Barraclough. | 
 |          | 
 |         REGRESSION (r57900-57919): 3% PLT Regression from moving strings into WTF. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38930 | 
 |         <rdar://problem/7937188> | 
 |          | 
 |         When the String classes were moved from WebCore to WTF, it meant that on Windows, all operations | 
 |         on Strings in WebCore had to cross a DLL boundary (from WebKit.dll to JavaScript.dll). | 
 |          | 
 |         We fix this by refactoring some of the WTF string code, so the code in AtomicString, StringImpl, and | 
 |         WTFString can be built by both WebCore and WTF, and we don't need to talk across a DLL to do operations | 
 |         on Strings. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Remove string exports, because these are now | 
 |             handled in WebCore. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Remove the post-build step that was added | 
 |             here (the post build step is in JavaScriptCoreCommon.vsprops). | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Copy the three cpp files that need to be compiled | 
 |             by WebCore into the WebKitOutputDir directory. | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Add the StringStatics file. | 
 |         * JavaScriptCore.vcproj/jsc/jsc.vcproj: Add the three WTF string cpp files to this project. | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Remove the need to link against WTF.lib (since jsc links against JavaScriptCore). | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Add the StringStatics file. | 
 |         * wtf/text/AtomicString.cpp: Moved code to StringStatics. | 
 |         * wtf/text/StringImpl.cpp: Ditto. | 
 |         * wtf/text/StringStatics.cpp: Added. Move functions in WTF Strings that define static variables to here, so  | 
 |             the rest of the files can be compiled in WebCore. | 
 |         (WebCore::StringImpl::empty): Moved from StringImpl.cpp to here. | 
 |         (WebCore::AtomicString::init): Moved from AtomicString.cpp to here. | 
 |  | 
 | 2010-05-11  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Fixed test failures seen on SnowLeopard buildbot. | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::replaceCharacter): Don't use size_t and wtf::notFound. | 
 |         Instead, use the individual types and notFound values of the string APIs | 
 |         we're using, since they're not necessarily the same in 64bit. | 
 |  | 
 | 2010-05-11  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt and Darin Adler. | 
 |  | 
 |         Start using ropes in String.prototype.replace. | 
 |          | 
 |         1%-1.5% speedup on SunSpider. | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): Updated for RopeImpl refactoring. | 
 |  | 
 |         (JSC::JSString::replaceCharacter): Added a replaceCharacter function, which creates | 
 |         a rope for the resulting replacement. | 
 |  | 
 |         * runtime/JSString.h: A few changes here: | 
 |         (JSC::): | 
 |         (JSC::RopeBuilder::RopeIterator::RopeIterator): | 
 |         (JSC::RopeBuilder::RopeIterator::operator++): | 
 |         (JSC::RopeBuilder::RopeIterator::operator*): | 
 |         (JSC::RopeBuilder::RopeIterator::operator!=): | 
 |         (JSC::RopeBuilder::RopeIterator::WorkItem::WorkItem): | 
 |         (JSC::RopeBuilder::RopeIterator::WorkItem::operator!=): | 
 |         (JSC::RopeBuilder::RopeIterator::skipRopes): Created a RopeIterator abstraction. | 
 |         We use this to do a substring find without having to resolve the rope. | 
 |         (We could use this iterator when resolving ropes, too, but resolving | 
 |         ropes backwards is usually more efficient.) | 
 |  | 
 |         (JSC::RopeBuilder::JSString): Added constructors for 2 & 3 UStrings. | 
 |  | 
 |         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength): | 
 |         (JSC::RopeBuilder::size): Updated for RopeImpl refactoring. | 
 |  | 
 |         * runtime/Operations.h: Updated for RopeImpl refactoring. | 
 |         (JSC::jsString): Added jsString functions for 2 & 3 UStrings. | 
 |  | 
 |         * runtime/RopeImpl.cpp: | 
 |         (JSC::RopeImpl::derefFibersNonRecursive): | 
 |         * runtime/RopeImpl.h: | 
 |         (JSC::RopeImpl::initializeFiber): | 
 |         (JSC::RopeImpl::size): | 
 |         (JSC::RopeImpl::fibers): | 
 |         (JSC::RopeImpl::deref): | 
 |         (JSC::RopeImpl::RopeImpl): A little refactoring to make this patch easier: | 
 |         Moved statics to the top of the class; put multi-statement functions on | 
 |         multiple lines; renamed "fiberCount" to "size" to match other collections; | 
 |         changed the "fibers" accessor to return the fibers buffer, instead of an | 
 |         item in the buffer, to make iteration easier. | 
 |  | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncReplace): Don't resolve a rope unless we need to. Do | 
 |         use our new replaceCharacter function if possible. Do use a rope to | 
 |         represent splicing three strings together. | 
 |  | 
 | 2010-05-10  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         [Qt] Disable JIT support for mingw-w64 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38747 | 
 |  | 
 |         Disale JIT for mingw-w64 as it is reportedly | 
 |         unstable. | 
 |  | 
 |         Thanks for Vanboxem Rruben for the investigation. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-09  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         JavaScriptCore/wtf/MD5.h: checksum should take a reference to output. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38723 | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * wtf/MD5.cpp: | 
 |         (WTF::expectMD5): | 
 |           Fix for checksum change. | 
 |         (WTF::MD5::checksum): | 
 |           Take a reference to output, instead of returning the result by value, to reduce coping for performance. | 
 |         * wtf/MD5.h: | 
 |  | 
 | 2010-05-09  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Build fix. | 
 |  | 
 |         Fix accidental repeat addition of emit_op_new_regexp | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |  | 
 | 2010-05-09  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         REGRESSION(r57955): RegExp literals should not actually be cached, so r57955 should be rolled out. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38828 | 
 |         <rdar://problem/7961634> | 
 |  | 
 |         Rollout r57955 | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::regexpToSourceString): | 
 |         (JSC::regexpName): | 
 |         (JSC::CodeBlock::dump): | 
 |         (JSC::CodeBlock::shrinkToFit): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::addRegExp): | 
 |         (JSC::CodeBlock::regexp): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::addRegExp): | 
 |         (JSC::BytecodeGenerator::emitNewRegExp): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * bytecompiler/NodesCodegen.cpp: | 
 |         (JSC::RegExpNode::emitBytecode): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_new_regexp): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |  | 
 | 2010-05-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Reserve a large-ish initial capacity for Lexer::m_buffer16. | 
 |          | 
 |         SunSpider says 0.3% faster. | 
 |          | 
 |         m_buffer16 is used when parsing complex strings -- for example, strings | 
 |         with escape sequences in them. These kinds of strings can be really long, | 
 |         and we want to avoid repeatedly copying as we grow m_buffer16. | 
 |          | 
 |         The net memory cost is quite low, since it's proporitional to source | 
 |         code we already have in memory, and we throw away m_buffer16 right when | 
 |         we're done parsing. | 
 |  | 
 |         * parser/Lexer.cpp: | 
 |         (JSC::Lexer::Lexer): No need to reserve initial capacity in our constructor, | 
 |         since setCode will be called before we're asked to lex anything. | 
 |         (JSC::Lexer::setCode): Reserve enough space to lex half the source code | 
 |         as a complex string without having to copy. | 
 |         (JSC::Lexer::clear): No need to reserve initial capacity here either, | 
 |         since setCode will be called before we're asked to lex anything. | 
 |  | 
 | 2010-05-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [Qt] Remove YARR configuration rules from Qt make system | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38819 | 
 |  | 
 |         Setting YARR based on JIT seeting is now in Platform.h  | 
 |         for all ports. This patch essentially reverses r49238. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2010-05-09  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Improve string indexing performance | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38814 | 
 |  | 
 |         Add an assembly stub to do indexed loads from strings much | 
 |         more cheaply than the current stub dispatch logic.  We can | 
 |         do this because we are able to make guarantees about the | 
 |         register contents when entering the stub so the call overhead | 
 |         is negligible. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::stringGetByValStubGenerator): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |            Moved from JITOpcodes.cpp to keep the slowcase next to | 
 |            the normal case codegen as we do for everything else. | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::stringGetByValStubGenerator): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JSInterfaceJIT.h: | 
 |         (JSC::JSInterfaceJIT::emitFastArithImmToInt): | 
 |  | 
 | 2010-05-09  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Fixed version of: "Optimized o[s] where o is a cell and s is a string" | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38815 | 
 |          | 
 |         Fixed the previous patch for this from Geoff Garen. | 
 |          | 
 |         The two problems were a missing exception check and a PropertySlot | 
 |         initialized improperly, leading to crashes and failures in the case | 
 |         of getters accessed with bracket syntax. | 
 |  | 
 |     Previous patch: | 
 |  | 
 |         Optimized o[s] where o is a cell and s is a string, removing some old | 
 |         code that wasn't really tuned for the JIT. | 
 |          | 
 |         SunSpider says 0.8% faster. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSCell.h: | 
 |  | 
 | 2010-05-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed, build fix. | 
 |  | 
 |         Fix missing terminating ' character warning | 
 |  | 
 |         The warning has been only seen on the Gtk buildbots. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Refactor YARR and YARR_JIT default rules in Platform.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38727 | 
 |  | 
 |         Turn on YARR and YARR JIT by default of JIT is enabled. | 
 |         Ports can overrule this default decisions as they wish. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-08  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Split JSVALUE32_64 code out of JITOpcodes.cpp and into JITOpcodes32_64.cpp | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38808 | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITOpcodes32_64.cpp: Added. | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::emit_op_mov): | 
 |         (JSC::JIT::emit_op_end): | 
 |         (JSC::JIT::emit_op_jmp): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emitSlow_op_loop_if_lesseq): | 
 |         (JSC::JIT::emit_op_new_object): | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emitSlow_op_instanceof): | 
 |         (JSC::JIT::emit_op_new_func): | 
 |         (JSC::JIT::emit_op_get_global_var): | 
 |         (JSC::JIT::emit_op_put_global_var): | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_tear_off_activation): | 
 |         (JSC::JIT::emit_op_tear_off_arguments): | 
 |         (JSC::JIT::emit_op_new_array): | 
 |         (JSC::JIT::emit_op_resolve): | 
 |         (JSC::JIT::emit_op_to_primitive): | 
 |         (JSC::JIT::emitSlow_op_to_primitive): | 
 |         (JSC::JIT::emit_op_strcat): | 
 |         (JSC::JIT::emit_op_resolve_base): | 
 |         (JSC::JIT::emit_op_resolve_skip): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emitSlow_op_resolve_global): | 
 |         (JSC::JIT::emit_op_not): | 
 |         (JSC::JIT::emitSlow_op_not): | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emitSlow_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |         (JSC::JIT::emitSlow_op_jtrue): | 
 |         (JSC::JIT::emit_op_jeq_null): | 
 |         (JSC::JIT::emit_op_jneq_null): | 
 |         (JSC::JIT::emit_op_jneq_ptr): | 
 |         (JSC::JIT::emit_op_jsr): | 
 |         (JSC::JIT::emit_op_sret): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emitSlow_op_neq): | 
 |         (JSC::JIT::compileOpStrictEq): | 
 |         (JSC::JIT::emit_op_stricteq): | 
 |         (JSC::JIT::emitSlow_op_stricteq): | 
 |         (JSC::JIT::emit_op_nstricteq): | 
 |         (JSC::JIT::emitSlow_op_nstricteq): | 
 |         (JSC::JIT::emit_op_eq_null): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |         (JSC::JIT::emit_op_resolve_with_base): | 
 |         (JSC::JIT::emit_op_new_func_exp): | 
 |         (JSC::JIT::emit_op_throw): | 
 |         (JSC::JIT::emit_op_get_pnames): | 
 |         (JSC::JIT::emit_op_next_pname): | 
 |         (JSC::JIT::emit_op_push_scope): | 
 |         (JSC::JIT::emit_op_pop_scope): | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emitSlow_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_push_new_scope): | 
 |         (JSC::JIT::emit_op_catch): | 
 |         (JSC::JIT::emit_op_jmp_scopes): | 
 |         (JSC::JIT::emit_op_switch_imm): | 
 |         (JSC::JIT::emit_op_switch_char): | 
 |         (JSC::JIT::emit_op_switch_string): | 
 |         (JSC::JIT::emit_op_new_error): | 
 |         (JSC::JIT::emit_op_debug): | 
 |         (JSC::JIT::emit_op_enter): | 
 |         (JSC::JIT::emit_op_enter_with_activation): | 
 |         (JSC::JIT::emit_op_create_arguments): | 
 |         (JSC::JIT::emit_op_init_arguments): | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         (JSC::JIT::emitSlow_op_convert_this): | 
 |         (JSC::JIT::emit_op_profile_will_call): | 
 |         (JSC::JIT::emit_op_profile_did_call): | 
 |  | 
 | 2010-05-08  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix halfword loads on ARM | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38741 | 
 |  | 
 |         The BaseIndex and ImplicitAddress are contain 32bit wide offset, but | 
 |         the load16 functions were working with 8 bit data (encoded in the | 
 |         instruction). If the offset cannot be encoded in an instruction, it | 
 |         should be stored in a temporary register. | 
 |  | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::getOffsetForHalfwordDataTransfer): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::load16): | 
 |  | 
 | 2010-05-08  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix spanning branch instruction on Cortex-A8 with Thumb-2 JIT | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38280 | 
 |  | 
 |         If the 32-bit Thumb-2 branch instruction spans two 4KiB regions and | 
 |         the target of the branch falls within the first region it is | 
 |         possible for the processor to incorrectly determine the branch | 
 |         instruction, and it is also possible in some cases for the processor | 
 |         to enter a deadlock state. | 
 |  | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMv7Assembler::linkJumpAbsolute): | 
 |  | 
 | 2010-05-08  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Reviewed by Darin Fisher. | 
 |  | 
 |         [WTFURL] Add a buffer for managing the output of the canonicalizer | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38671 | 
 |  | 
 |         The canonicalizer produces a stream of canonicalized characters, which | 
 |         we will store in a URLBuffer.  URLBuffer is quite similar to Vector, | 
 |         but serves as an abstraction to isolate us from the underlying | 
 |         character storage.  In the case of WebKit, we'll probably implement a | 
 |         subclass of URLBuffer with Vector.  In Chromium, the backing store is a | 
 |         std::string, which avoids an unnecessary memcpy that would be caused by | 
 |         using Vector instead. | 
 |  | 
 |         * wtf/url/src/URLBuffer.h: Added. | 
 |         (WTF::URLBuffer::URLBuffer): | 
 |         (WTF::URLBuffer::~URLBuffer): | 
 |         (WTF::URLBuffer::at): | 
 |         (WTF::URLBuffer::set): | 
 |         (WTF::URLBuffer::capacity): | 
 |         (WTF::URLBuffer::length): | 
 |         (WTF::URLBuffer::data): | 
 |         (WTF::URLBuffer::setLength): | 
 |         (WTF::URLBuffer::append): | 
 |         (WTF::URLBuffer::grow): | 
 |  | 
 | 2010-05-08  Eric Seidel  <eric@webkit.org> | 
 |  | 
 |         Unreviewed, just reverting commit. | 
 |  | 
 |         REGRESSION(59000): r59000 contained all sorts of changes it should not have, needs revert. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38798 | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitResolve): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |  | 
 | 2010-05-04  Jer Noble  <jer.noble@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak | 
 |  | 
 |         Safari pegs CPU and drops tons of frames using HTML5 Vimeo player | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=34005> | 
 |         <rdar://problem/7569713> | 
 |          | 
 |         Added cancelCallOnMainThread.  callOnMainThread should always now be paired | 
 |         with cancelCallOnMainThread in situations where the refcon passed to callOnMainThread | 
 |         may be dealloced before the main thread function can be dispatched.   | 
 |          | 
 |         * wtf/MainThread.cpp: | 
 |         (WTF::FunctionWithContext::operator == ): Supports the FunctionWithContextFinder predicate functor. | 
 |         (WTF::FunctionWithContextFinder::FunctionWithContextFinder):  Predicate functor for use with Dequeue::findIf | 
 |         (WTF::FunctionWithContextFinder::operator()): | 
 |         (WTF::cancelCallOnMainThread): | 
 |         * wtf/MainThread.h: | 
 |  | 
 | 2010-05-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-07  Eric Seidel  <eric@webkit.org> | 
 |  | 
 |         Unreviewed, rolling out r58990. | 
 |         http://trac.webkit.org/changeset/58990 | 
 |  | 
 |         Broke 4 tests on Snow Leopard and Qt. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSCell.h: | 
 |  | 
 | 2010-05-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Optimize access to the global object from a function that uses eval | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38644 | 
 |  | 
 |         Fix bug where cross scope access to a global var (vs. property) would | 
 |         be allowed without checking for intervening dynamic scopes. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitResolve): | 
 |  | 
 | 2010-05-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         32-bit buildfix. | 
 |  | 
 |         Macro expansion I stab at thee! | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |  | 
 | 2010-05-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Optimized o[s] where o is a cell and s is a string, removing some old | 
 |         code that wasn't really tuned for the JIT. | 
 |          | 
 |         SunSpider says 0.8% faster. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSCell.h: | 
 |  | 
 | 2010-05-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Optimize access to the global object from a function that uses eval | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38644 | 
 |  | 
 |         Add op_resolve_global_dynamic, a variant of op_resolve_global that | 
 |         checks each node in the scope chain for dynamically inserted properties | 
 |         and falls back to the normal resolve logic in that case. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::isGlobalResolve): | 
 |         (JSC::CodeBlock::printStructures): | 
 |         (JSC::CodeBlock::dump): | 
 |         (JSC::CodeBlock::derefStructures): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::findScopedProperty): | 
 |            Now take an additional reference parameter to used to indicate that | 
 |            there were nodes that may gain dynamic properties | 
 |         (JSC::BytecodeGenerator::emitResolve): | 
 |         (JSC::BytecodeGenerator::emitResolveBase): | 
 |         (JSC::BytecodeGenerator::emitResolveWithBase): | 
 |            deal with additional argument to findScopedProperty | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * bytecompiler/NodesCodegen.cpp: | 
 |         (JSC::FunctionCallResolveNode::emitBytecode): | 
 |         (JSC::PostfixResolveNode::emitBytecode): | 
 |         (JSC::PrefixResolveNode::emitBytecode): | 
 |         (JSC::ReadModifyResolveNode::emitBytecode): | 
 |         (JSC::AssignResolveNode::emitBytecode): | 
 |            These functions use findScopedProperty directly in order to | 
 |            optimise lookup.  They cannot trivially handle any degree of | 
 |            dynamism in the lookup so we just give up in such case. | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::resolveGlobalDynamic): | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * interpreter/Interpreter.h: | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emit_op_resolve_global_dynamic): | 
 |         (JSC::JIT::emitSlow_op_resolve_global): | 
 |         (JSC::JIT::emitSlow_op_resolve_global_dynamic): | 
 |            Happily resolve_global_dynamic can share the slow case! | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::isDynamicScope): | 
 |         * runtime/JSActivation.h: | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::isDynamicScope): | 
 |         * runtime/JSGlobalObject.h: | 
 |         * runtime/JSStaticScopeObject.cpp: | 
 |         (JSC::JSStaticScopeObject::isDynamicScope): | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         * runtime/JSVariableObject.h: | 
 |  | 
 | 2010-05-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fixed Sputnik failure seen on buildbot. | 
 |  | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::numberProtoFuncToString): Cast to unsigned before checking magnitude, | 
 |         to efficiently exclude negative numbers, which require two characters | 
 |         instead of one. | 
 |  | 
 | 2010-05-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |          | 
 |         Slightly more effective way to guarantee a compile-time constant, at | 
 |         least on gcc. | 
 |  | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::numberProtoFuncToString): Use pointer notation instead of array | 
 |         notation, so the compiler treats the string and its contents as constant. | 
 |  | 
 | 2010-05-07  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         [WTFURL] Add core URL parser | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38572 | 
 |  | 
 |         This patch adds the core of the URL parser.  The URL parser uses a | 
 |         templated notion of a code unit to support different string types. | 
 |         Later we'll add some non-templated APIs with concrete types that | 
 |         clients can use more conveniently. | 
 |  | 
 |         The URLParser has a couple calls to ASSERT(), which I've commented out | 
 |         for now.  I'm not 100% sure how to handle the dependency issues there | 
 |         yet, so I've punted on the issue for now. | 
 |  | 
 |         Also, there are a number of methods that are declared public in this | 
 |         patch that are only used by the canonicalizer.  My plan is to make | 
 |         those private or protected and make the canonicalizer a friend of the | 
 |         parser.  The details will be in a later patch. | 
 |  | 
 |         * wtf/url/src/URLComponent.h: | 
 |         (WTF::URLComponent::fromRange): | 
 |         (WTF::URLComponent::isNonEmpty): | 
 |         (WTF::URLComponent::isEmptyOrInvalid): | 
 |         * wtf/url/src/URLParser.h: Added. | 
 |         (WTF::URLParser::): | 
 |         (WTF::URLParser::isPossibleAuthorityTerminator): | 
 |         (WTF::URLParser::parseAuthority): | 
 |         (WTF::URLParser::extractScheme): | 
 |         (WTF::URLParser::parseAfterScheme): | 
 |         (WTF::URLParser::parseStandardURL): | 
 |         (WTF::URLParser::parsePath): | 
 |         (WTF::URLParser::parsePathURL): | 
 |         (WTF::URLParser::parseMailtoURL): | 
 |         (WTF::URLParser::parsePort): | 
 |         (WTF::URLParser::extractFileName): | 
 |         (WTF::URLParser::extractQueryKeyValue): | 
 |         (WTF::URLParser::isURLSlash): | 
 |         (WTF::URLParser::shouldTrimFromURL): | 
 |         (WTF::URLParser::trimURL): | 
 |         (WTF::URLParser::consecutiveSlashes): | 
 |         (WTF::URLParser::isPortDigit): | 
 |         (WTF::URLParser::nextAuthorityTerminator): | 
 |         (WTF::URLParser::parseUserInfo): | 
 |         (WTF::URLParser::parseServerInfo): | 
 |  | 
 | 2010-05-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Added a fast path for number-to-character conversion via | 
 |         Number.prototype.toString base 36. | 
 |          | 
 |         0.7% speedup on SunSpider. | 
 |  | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::numberProtoFuncToString): Made radix interpretation a little more | 
 |         efficient by keeping it in int space. Turned "const char" into | 
 |         "static const char" just in case. Added a fast path for base 36 | 
 |         conversion of something that will turn into a character. | 
 |  | 
 | 2010-05-07  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Reviewed by Darin Fisher. | 
 |  | 
 |         [WTFURL] Add a malloc-backed URLBuffer | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38694 | 
 |  | 
 |         This patch adds a URLBuffer that uses new/delete to manage the backing | 
 |         store for the buffer. | 
 |  | 
 |         * wtf/url/src/RawURLBuffer.h: Added. | 
 |         (WTF::RawURLBuffer::RawURLBuffer): | 
 |         (WTF::RawURLBuffer::~RawURLBuffer): | 
 |         (WTF::RawURLBuffer::resize): | 
 |  | 
 | 2010-05-06  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         JavaScriptCore/wtf/RandomNumber.h should provide using WTF::* | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38719 | 
 |  | 
 |         * wtf/RandomNumber.h: | 
 |           Add using directives. | 
 |  | 
 | 2010-05-06  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Enable YARR_JIT for X86 Mac for QtWebKit | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38668 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-06  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 38714 - Add result caching for Math.sin | 
 |  | 
 |         Math.sin is frequently called with the same operand, caching the result should | 
 |         improve performance.  CachedTranscendentalFunction adds a generic mechanism to | 
 |         cache results for pure functions with the signature "double func(double)", and | 
 |         where NaN maps to NaN. | 
 |  | 
 |         CachedTranscendentalFunction uses a very simple hash function designed to be | 
 |         fast to execute since we cannot cache the result, and trivial to JIT generate, | 
 |         should we wish to do so. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/CachedTranscendentalFunction.h: Added. | 
 |         (JSC::CachedTranscendentalFunction::CachedTranscendentalFunction): | 
 |         (JSC::CachedTranscendentalFunction::~CachedTranscendentalFunction): | 
 |         (JSC::CachedTranscendentalFunction::operator()): | 
 |         (JSC::CachedTranscendentalFunction::initialize): | 
 |         (JSC::CachedTranscendentalFunction::hash): | 
 |         * runtime/JSGlobalData.h: | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::mathProtoFuncSin): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * bytecode/SamplingTool.cpp: | 
 |         (JSC::SamplingFlags::sample): Use a cast, so Windows will be happy when | 
 |         this code is enabled. | 
 |         * wtf/Platform.h: Reverted last change to this file, which seems to have | 
 |         been accidental. | 
 |  | 
 | 2010-05-06  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Add compile switch to make debugger keyword plant breakpoint instructions. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitDebugHook): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_debug): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-06  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Build fix | 
 |  | 
 |         Fix ARM builds | 
 |  | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::load16): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::load16): | 
 |  | 
 | 2010-05-06  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Improve performance of single character string compares | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38659 | 
 |  | 
 |         Add logic to the jit to identify comparisons to single character string literals | 
 |         and then just perform the comparison inline, rather than ignoring the evidence | 
 |         and attempting to perform an integer comparison. | 
 |  | 
 |         Multiple changes required -- add jnlesseq opcode, add helper function to identify | 
 |         single character string constants, add a helper to load single character strings. | 
 |         Then add the 32_64 and normal codepaths to the JIT. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::load16): | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitJumpIfTrue): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jless): | 
 |         (JSC::JIT::emitSlow_op_jless): | 
 |         (JSC::JIT::emit_op_jlesseq): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         * jit/JITArithmetic32_64.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jless): | 
 |         (JSC::JIT::emitSlow_op_jless): | 
 |         (JSC::JIT::emit_op_jlesseq): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitLoadCharacterString): | 
 |         (JSC::JIT::isOperandConstantImmediateChar): | 
 |         * jit/JSInterfaceJIT.h: | 
 |         (JSC::ThunkHelpers::stringImplDataOffset): | 
 |         (JSC::ThunkHelpers::jsStringLengthOffset): | 
 |         (JSC::ThunkHelpers::jsStringValueOffset): | 
 |          Moved from ThunkGenerators to make it possible to share. | 
 |         * jit/ThunkGenerators.cpp: | 
 |  | 
 | 2010-05-06  Martin Robinson  <mrobinson@webkit.org> | 
 |  | 
 |         Reviewed by Gustavo Noronha Silva. | 
 |  | 
 |         [GTK] Enable DOM clipboard and drag-and-drop access | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30623 | 
 |  | 
 |         Convert dragging portion of drag-and-drop to use DataObjectGtk. | 
 |  | 
 |         * wtf/gobject/GRefPtr.h: Add forward declarations for GObject functions. | 
 |  | 
 | 2010-05-06  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         MAC_JAVA_BRIDGE should be renamed JAVA_BRIDGE | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38544 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-06  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         [WTFURL] Add a class to represent the segments of a URL | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38566 | 
 |  | 
 |         When paired with a string, this class represents a parsed URL. | 
 |  | 
 |         * wtf/url/src/URLSegments.cpp: Added. | 
 |         (WTF::URLSegments::length): | 
 |         (WTF::URLSegments::charactersBefore): | 
 |         * wtf/url/src/URLSegments.h: Added. | 
 |         (WTF::URLSegments::): | 
 |         (WTF::URLSegments::URLSegments): | 
 |         * wtf/url/wtfurl.gyp: | 
 |  | 
 | 2010-05-05  Tony Gentilcore  <tonyg@chromium.org> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Adding comment with link to RefPtr documentation. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38601 | 
 |  | 
 |         * wtf/RefPtr.h: | 
 |  | 
 | 2010-05-05  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Bug 38604 - workers-gc2 crashing on Qt | 
 |  | 
 |         This appears to be due to a couple of issues. | 
 |         (1) When the atomic string table is deleted it does not clear the 'inTable' bit | 
 |         on AtomicStrings - it implicitly assumes that all AtomicStrings have already | 
 |         been deleted at this point (otherwise they will crash in their destructor when | 
 |         they try to remove themselves from the atomic string table). | 
 |         (2) We don't fix the ordering in which WTF::WTFThreadData and | 
 |         WebCore::ThreadGlobalData are destructed. | 
 |  | 
 |         We should make sure that ThreadGlobalData is cleaned up before worker threads | 
 |         terminate and WTF::WTFThreadData is destroyed, and we should clear the inTable | 
 |         bit of members on atomic string table destruction. | 
 |  | 
 |         WTF changes (fix issue 1, above) - ensure inTable property is cleared when the | 
 |         atomic string table is destroyed (also, rename InTable to IsAtomic, to make it | 
 |         clear which table we are refering to!) | 
 |  | 
 |         * wtf/text/AtomicString.cpp: | 
 |         (WebCore::AtomicStringTable::destroy): | 
 |         (WebCore::CStringTranslator::translate): | 
 |         (WebCore::UCharBufferTranslator::translate): | 
 |         (WebCore::HashAndCharactersTranslator::translate): | 
 |         (WebCore::AtomicString::add): | 
 |         * wtf/text/StringImpl.cpp: | 
 |         (WebCore::StringImpl::~StringImpl): | 
 |         * wtf/text/StringImpl.h: | 
 |         (WebCore::StringImpl::isAtomic): | 
 |         (WebCore::StringImpl::setIsAtomic): | 
 |         * wtf/text/StringImplBase.h: | 
 |  | 
 | 2010-05-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Make Array.join specialised for actual arrays | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38592 | 
 |  | 
 |         Bring Array.join in line with the other array methods by specialising for | 
 |         this === an array. | 
 |  | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncJoin): | 
 |  | 
 | 2010-05-04  Yongjun Zhang  <yongjun_zhang@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         WebKit crashes at DebuggerCallFrame::functionName() if m_callFrame is the top global callframe. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38535 | 
 |  | 
 |         Don't call asFunction if callee is not a FunctionType to prevent assertion failure | 
 |         in JSCell::isObject(). | 
 |  | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::functionName): | 
 |         (JSC::DebuggerCallFrame::calculatedFunctionName): | 
 |  | 
 | 2010-05-04  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Remove redundant exports to fix Windows build warnings. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-05-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Holger Freyther. | 
 |  | 
 |         Fix a memory leak inside the QScriptValue. | 
 |  | 
 |         QSciptValuePrivate::toString should release all temporary variables. | 
 |  | 
 |         [Qt] QScriptValue::toString have a memory leak. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38112 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::toString): | 
 |  | 
 | 2010-05-04  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Does not work on SPARC because of alignment issues | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38455 | 
 |  | 
 |         Use AllocAlignmentInteger instead of void* on pageheap_memory to | 
 |         avoid crashing at runtime in some architectures. Investigated by | 
 |         Mike Hommey <mh@glandium.org>, change suggested by Darin Adler. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |  | 
 | 2010-05-04  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Add first WTFURL file | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38470 | 
 |  | 
 |         This class represents a component of a URL, such as the scheme or path. | 
 |         Essentially, the class is an index into a string buffer. | 
 |  | 
 |         * wtf/url: Added. | 
 |             - There was some discussion about where to put the URL library. | 
 |               There are a number of reasonable options, but putting the library | 
 |               in the WTF directory seems like a reasonable alternative.  This | 
 |               location will make more sense once WTF is moved out of | 
 |               JavaScriptCore and into a top-level directory. | 
 |         * wtf/url/src: Added. | 
 |             - I've added this extra directory to the usual structure because we | 
 |               eventually want a "public" folder that defines the public | 
 |               interface to this library that clients outside of svn.webkit.org | 
 |               can rely upon, much like the various subfolders of the WebKit | 
 |               directory often define a public API. | 
 |         * wtf/url/src/URLComponent.h: Added. | 
 |             - I've added this somewhat trivial class to get the ball rolling. | 
 |         (WTF::URLComponent::URLComponent): | 
 |         (WTF::URLComponent::isValid): | 
 |         (WTF::URLComponent::isNonempty): | 
 |         (WTF::URLComponent::reset): | 
 |         (WTF::URLComponent::operator==): | 
 |         (WTF::URLComponent::begin): | 
 |         (WTF::URLComponent::setBegin): | 
 |         (WTF::URLComponent::length): | 
 |         (WTF::URLComponent::setLength): | 
 |         (WTF::URLComponent::end): | 
 |         * wtf/url/wtfurl.gyp: Added. | 
 |             - WTFURL will be an independently buildable library, hence the | 
 |               beginnings of a wtfurl.gyp file. | 
 |  | 
 | 2010-05-03  Stephanie Lewis  <slewis@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38368 | 
 |         <rdar://problem/7834433> REGRESSSION: 1.5% PLT regression due to 56028  | 
 |         (return memory quicker). | 
 |         Instead of returning everything but the smallest spans spread out  | 
 |         the spans kept over several size lists. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::scavenge): | 
 |  | 
 | 2010-05-03  James Robinson  <jamesr@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Clean up a few compiler warnings | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38073 | 
 |  | 
 |         * wtf/text/StringImpl.cpp: | 
 |         (WebCore::StringImpl::ascii): | 
 |  | 
 | 2010-05-03  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (reverting previous commit). | 
 |  | 
 |         Rolling out r58114 - this introduced memory leaks of | 
 |         AtomicStrings then workers terminated. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * jit/ThunkGenerators.cpp: | 
 |         (JSC::ThunkHelpers::stringImplDataOffset): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::IdentifierTable::~IdentifierTable): | 
 |         (JSC::IdentifierTable::add): | 
 |         (JSC::IdentifierCStringTranslator::hash): | 
 |         (JSC::IdentifierCStringTranslator::equal): | 
 |         (JSC::IdentifierCStringTranslator::translate): | 
 |         (JSC::Identifier::add): | 
 |         (JSC::IdentifierUCharBufferTranslator::hash): | 
 |         (JSC::IdentifierUCharBufferTranslator::equal): | 
 |         (JSC::IdentifierUCharBufferTranslator::translate): | 
 |         (JSC::Identifier::addSlowCase): | 
 |         * runtime/Identifier.h: | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         (JSC::JSGlobalData::~JSGlobalData): | 
 |         * runtime/JSGlobalData.h: | 
 |         * wtf/WTFThreadData.cpp: | 
 |         (WTF::WTFThreadData::WTFThreadData): | 
 |         (WTF::WTFThreadData::~WTFThreadData): | 
 |         * wtf/WTFThreadData.h: | 
 |         (JSC::IdentifierTable::remove): | 
 |         (JSC::IdentifierTable::literalTable): | 
 |         (WTF::WTFThreadData::atomicStringTable): | 
 |         * wtf/text/AtomicString.cpp: | 
 |         (WebCore::AtomicStringTable::create): | 
 |         (WebCore::AtomicStringTable::table): | 
 |         (WebCore::AtomicStringTable::destroy): | 
 |         (WebCore::stringTable): | 
 |         (WebCore::CStringTranslator::hash): | 
 |         (WebCore::CStringTranslator::equal): | 
 |         (WebCore::CStringTranslator::translate): | 
 |         (WebCore::operator==): | 
 |         (WebCore::AtomicString::add): | 
 |         (WebCore::equal): | 
 |         (WebCore::UCharBufferTranslator::hash): | 
 |         (WebCore::UCharBufferTranslator::equal): | 
 |         (WebCore::UCharBufferTranslator::translate): | 
 |         (WebCore::HashAndCharactersTranslator::hash): | 
 |         (WebCore::HashAndCharactersTranslator::equal): | 
 |         (WebCore::HashAndCharactersTranslator::translate): | 
 |         (WebCore::AtomicString::find): | 
 |         (WebCore::AtomicString::remove): | 
 |         * wtf/text/AtomicStringTable.h: Removed. | 
 |         * wtf/text/StringImpl.cpp: | 
 |         (WebCore::StringImpl::~StringImpl): | 
 |         * wtf/text/StringImpl.h: | 
 |         (WebCore::StringImpl::inTable): | 
 |         (WebCore::StringImpl::setInTable): | 
 |         (WebCore::equal): | 
 |         * wtf/text/StringImplBase.h: | 
 |         (WTF::StringImplBase::StringImplBase): | 
 |  | 
 | 2010-05-03  Kevin Watters  <kevinwatters@gmail.com> | 
 |  | 
 |         Reviewed by Kevin Ollivier. | 
 |  | 
 |         [wx] Implement scheduleDispatchFunctionsOnMainThread for wx port. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38480 | 
 |  | 
 |         * wtf/wx/MainThreadWx.cpp: | 
 |         (wxCallAfter::wxCallAfter): | 
 |         (wxCallAfter::OnCallback): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): | 
 |  | 
 | 2010-05-03  Kevin Watters  <kevinwatters@gmail.com> | 
 |  | 
 |         Reviewed by Kevin Ollivier. | 
 |  | 
 |         [wx] Build and use Mac's ComplexTextController to support complex text in wx. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38482 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-05-03  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Interpreter crashes due to incorrect refcounting of cached structures. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38491 | 
 |         rdar://problem/7926160 | 
 |  | 
 |         Make sure we ref/deref structures used for cached custom property getters | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::derefStructures): | 
 |         (JSC::CodeBlock::refStructures): | 
 |  | 
 | 2010-05-02  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [Qt] Enable JIT for QtWebKit on Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38339 | 
 |  | 
 |         JIT on Symbian has been stable for quite some time, it | 
 |         is time to turn it on by default. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-04-29  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add codegen support for unsigned right shift | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38375 | 
 |  | 
 |         Expose unsigned right shift in the macro assembler, and make use of it | 
 |         from the jit.  Currently if the result is outside the range 0..2^31-1 | 
 |         we simply fall back to the slow case, even in JSVALUE64 and JSVALUE32_64 | 
 |         where technically we could still return an immediate value. | 
 |  | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::urshift32): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::urshift32): | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::urshift32): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::): | 
 |         (JSC::X86Assembler::shrl_i8r): | 
 |         (JSC::X86Assembler::shrl_CLr): | 
 |            Add unsigned right shift to the x86 assembler | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |            op_rshift no longer simply get thrown to a stub function | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_urshift): | 
 |         (JSC::JIT::emitSlow_op_urshift): | 
 |           JSVALUE32 and JSVALUE64 implementation.  Only supports | 
 |           double lhs in JSVALUE64. | 
 |         * jit/JITArithmetic32_64.cpp: | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emitSlow_op_rshift): | 
 |         (JSC::JIT::emit_op_urshift): | 
 |         (JSC::JIT::emitSlow_op_urshift): | 
 |           Refactor right shift code to have shared implementation between signed | 
 |           and unsigned versions. | 
 |  | 
 | 2010-04-29  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Handle double on righthand side of a right shift | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38363 | 
 |  | 
 |         In 64-bit we support right shift of a double, and there's no | 
 |         reason not to in 32-bit either.  This is a 1.1% sunspider | 
 |         improvement in 32bit. | 
 |  | 
 |         Given high performance javascript code frequently makes | 
 |         use of bit operators to perform double->int conversion i'll | 
 |         follow this patch up with similar patches for bitwise 'and' | 
 |         and 'or'. | 
 |  | 
 |         * jit/JITArithmetic32_64.cpp: | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emitSlow_op_rshift): | 
 |  | 
 | 2010-04-29  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Hoist JSVALUE32_64 arithmetic implementations into a separate file. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jless): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emit_op_mod): | 
 |         (JSC::JIT::compileBinaryArithOpSlowCase): | 
 |         (JSC::JIT::emit_op_div): | 
 |         (JSC::JIT::compileBinaryArithOp): | 
 |         * jit/JITArithmetic32_64.cpp: Added. | 
 |         (JSC::JIT::emit_op_negate): | 
 |         (JSC::JIT::emitSlow_op_negate): | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jless): | 
 |         (JSC::JIT::emitSlow_op_jless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emit_op_lshift): | 
 |         (JSC::JIT::emitSlow_op_lshift): | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emitSlow_op_rshift): | 
 |         (JSC::JIT::emit_op_bitand): | 
 |         (JSC::JIT::emitSlow_op_bitand): | 
 |         (JSC::JIT::emit_op_bitor): | 
 |         (JSC::JIT::emitSlow_op_bitor): | 
 |         (JSC::JIT::emit_op_bitxor): | 
 |         (JSC::JIT::emitSlow_op_bitxor): | 
 |         (JSC::JIT::emit_op_bitnot): | 
 |         (JSC::JIT::emitSlow_op_bitnot): | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |         (JSC::JIT::emitSlow_op_post_inc): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emitSlow_op_post_dec): | 
 |         (JSC::JIT::emit_op_pre_inc): | 
 |         (JSC::JIT::emitSlow_op_pre_inc): | 
 |         (JSC::JIT::emit_op_pre_dec): | 
 |         (JSC::JIT::emitSlow_op_pre_dec): | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitSub32Constant): | 
 |         (JSC::JIT::emitSlow_op_sub): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         (JSC::JIT::emit_op_div): | 
 |         (JSC::JIT::emitSlow_op_div): | 
 |         (JSC::JIT::emit_op_mod): | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |  | 
 | 2010-04-29  Zoltan Herczeg  <zherczeg@webkit.org> | 
 |  | 
 |         Reviewed by Oliver Hunt | 
 |  | 
 |         Add sqrt() instruction support for ARM assembler (using VFP) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38312 | 
 |  | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::fsqrtd_r): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::supportsFloatingPointSqrt): | 
 |         (JSC::MacroAssemblerARM::sqrtDouble): | 
 |  | 
 | 2010-04-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Refactor qtscriptglobal.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37953 | 
 |  | 
 |         Use the same pattern in qtscriptglobal.h as in  | 
 |         qwebkitglobal.h without checking for specific OSs. | 
 |  | 
 |         * qt/api/qtscriptglobal.h: | 
 |  | 
 | 2010-04-29  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Small cleanup. | 
 |  | 
 |         QScriptValuePrivate constructor shouldn't take QScriptEngine pointer | 
 |         as a parameter, because it breaks a private / public separation rule. | 
 |         QScriptEnginePrivate::get(QScriptEngine*) should return | 
 |         a QScriptEnginePrivate pointer instead of a QScriptEnginePtr, it simplifies | 
 |         implementation. | 
 |  | 
 |         [Qt] QScriptValuePrivate class needs some cleanup. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37729 | 
 |  | 
 |         * qt/api/qscriptengine_p.h: | 
 |         (QScriptEnginePrivate::get): | 
 |         * qt/api/qscriptvalue.cpp: | 
 |         (QScriptValue::QScriptValue): | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::QScriptValuePrivate): | 
 |  | 
 | 2010-04-29  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [WINCE] Export g_stackBase with JS_EXPORTDATA | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37437 | 
 |  | 
 |         Export g_stackBase with JS_EXPORTDATA as it is used by SharedTimerWince.cpp. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |  | 
 | 2010-04-28  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Do an unordered compare so that we don't treat NaN incorrectly. | 
 |  | 
 |         RS=Gavin Barraclough | 
 |  | 
 |         * jit/ThunkGenerators.cpp: | 
 |         (JSC::powThunkGenerator): | 
 |  | 
 | 2010-04-28  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add fast paths for Math.pow and Math.sqrt | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38294 | 
 |  | 
 |         Add specialized thunks for Math.pow and Math.sqrt. | 
 |         This requires adding a sqrtDouble function to the MacroAssembler | 
 |         and sqrtsd to the x86 assembler. | 
 |  | 
 |         Math.pow is slightly more complicated, in that we have | 
 |         to implement exponentiation ourselves rather than relying | 
 |         on hardware support.  The inline exponentiation is restricted | 
 |         to positive integer exponents on a numeric base.  Exponentiation | 
 |         is finally performed through the "Exponentiation by Squaring" | 
 |         algorithm. | 
 |  | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::supportsFloatingPointSqrt): | 
 |         (JSC::MacroAssemblerARM::loadDouble): | 
 |         (JSC::MacroAssemblerARM::sqrtDouble): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::supportsFloatingPointSqrt): | 
 |         (JSC::MacroAssemblerARMv7::sqrtDouble): | 
 |         * assembler/MacroAssemblerX86.h: | 
 |         (JSC::MacroAssemblerX86::loadDouble): | 
 |         (JSC::MacroAssemblerX86::supportsFloatingPointSqrt): | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::sqrtDouble): | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         (JSC::MacroAssemblerX86_64::loadDouble): | 
 |         (JSC::MacroAssemblerX86_64::supportsFloatingPointSqrt): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::): | 
 |         (JSC::X86Assembler::movsd_mr): | 
 |         (JSC::X86Assembler::sqrtsd_rr): | 
 |         (JSC::X86Assembler::X86InstructionFormatter::twoByteOp): | 
 |         (JSC::X86Assembler::X86InstructionFormatter::memoryModRM): | 
 |         * create_hash_table: | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiNativeCallThunk): | 
 |         * jit/JSInterfaceJIT.h: | 
 |         (JSC::JSInterfaceJIT::emitLoadDouble): | 
 |         (JSC::JSInterfaceJIT::emitJumpIfImmediateNumber): | 
 |         (JSC::JSInterfaceJIT::emitJumpIfNotImmediateNumber): | 
 |         (JSC::JSInterfaceJIT::emitLoadInt32): | 
 |         * jit/SpecializedThunkJIT.h: | 
 |         (JSC::SpecializedThunkJIT::loadDoubleArgument): | 
 |         (JSC::SpecializedThunkJIT::loadInt32Argument): | 
 |         (JSC::SpecializedThunkJIT::returnJSValue): | 
 |         (JSC::SpecializedThunkJIT::returnDouble): | 
 |         (JSC::SpecializedThunkJIT::finalize): | 
 |         * jit/ThunkGenerators.cpp: | 
 |         (JSC::sqrtThunkGenerator): | 
 |         (JSC::powThunkGenerator): | 
 |         * jit/ThunkGenerators.h: | 
 |         * runtime/Executable.h: | 
 |         (JSC::NativeExecutable::NativeExecutable): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |  | 
 | 2010-04-28  Mike Thole  <mthole@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Reenable WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK now that an | 
 |         exports file for it has been added. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-04-28  Mike Thole  <mthole@apple.com> | 
 |  | 
 |         Build fix, not reviewed. | 
 |  | 
 |         * wtf/Platform.h: | 
 |         Disable WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK until an exports file is created. | 
 |  | 
 | 2010-04-28  Mike Thole  <mthole@apple.com> | 
 |  | 
 |         Reviewed by David Kilzer. | 
 |  | 
 |         Add canAuthenticateAgainstProtectionSpace() to frame loader so that a protection space  | 
 |         can be inspected before attempting to authenticate against it | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38271 | 
 |  | 
 |         * wtf/Platform.h: Add WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK define. | 
 |  | 
 | 2010-04-28  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Don't use CFAbsoluteTimeGetCurrent on Mac OS X, since it's just a cover | 
 |         for gettimeofday anyway. | 
 |  | 
 |         * wtf/CurrentTime.cpp: | 
 |         (WTF::currentTime): Remove the CF version of this. Change the "other POSIX" | 
 |         version to pass 0 for the time zone instead of ignoring a return value. | 
 |         Also get rid of unneeded type casts, since operations involving both | 
 |         integers and doubles are always evaluated as doubles in C without explicit | 
 |         type casting. | 
 |  | 
 | 2010-04-28  Darin Fisher  <darin@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         [Chromium] callOnMainThread should equate to MessageLoop::PostTask | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38276 | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: | 
 |         * wtf/MainThread.cpp: | 
 |         * wtf/chromium/ChromiumThreading.h: | 
 |         * wtf/chromium/MainThreadChromium.cpp: | 
 |         (WTF::initializeMainThread): | 
 |         (WTF::callOnMainThread): | 
 |         (WTF::callOnMainThreadAndWait): | 
 |         (WTF::setMainThreadCallbacksPaused): | 
 |         (WTF::isMainThread): | 
 |  | 
 | 2010-04-28  Simon Hausmann  <simon.hausmann@nokia.com>, Kent Hansen <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         JSC's currentThreadStackBase is not reentrant on some platforms | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37195 | 
 |  | 
 |         This function needs to be reentrant to avoid memory corruption on platforms where | 
 |         the implementation uses global variables. | 
 |  | 
 |         This patch adds a mutex lock where necessary and makes the Symbian implementation | 
 |         reentrant. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::currentThreadStackBaseMutex): | 
 |         (JSC::currentThreadStackBase): | 
 |  | 
 | 2010-04-28  Thiago Macieira <thiago.macieira@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix compilation with gcc 3.4. | 
 |  | 
 |         AtomicStringImpl.h:29: error: base `WebCore::StringImpl' with only | 
 |         non-default constructor in class without a constructor | 
 |  | 
 |         * wtf/text/AtomicStringImpl.h: | 
 |         (WebCore::AtomicStringImpl::AtomicStringImpl): Provide a default constructor. | 
 |         * wtf/text/StringImpl.h: Allow AtomicStringImpl to call a StringImpl constructor through a friend declaration. | 
 |  | 
 | 2010-04-27  Stephanie Lewis  <slewis@apple.com> | 
 |  | 
 |         Fix Tiger build. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::Carve): | 
 |  | 
 | 2010-04-26  Stephanie Lewis  <slewis@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38154 FastMalloc calls madvise too often. | 
 |         <rdar://problem/7834433> REGRESSSION: 1.5% PLT regression due to 56028 (return memory quicker).   | 
 |         To save on madvise calls when recommitting memory recommit the entire span and then carve it | 
 |         instead of carving the span up and only committing the part that will be used immediately. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::New): | 
 |         (WTF::TCMalloc_PageHeap::AllocLarge): | 
 |         (WTF::TCMalloc_PageHeap::Carve): | 
 |  | 
 | 2010-04-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Add specialized thunks for a char code related string functions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38177 | 
 |  | 
 |         This is a simple extension to my prior patch.  Basically hoist the | 
 |         existing character loading logic from the charCodeAt thunk and into | 
 |         a helper function, then add a helper to load strings from the small | 
 |         string cache.  This allows trivial implementations of fromCharCode | 
 |         and charAt.  | 
 |  | 
 |         * create_hash_table: | 
 |         * jit/SpecializedThunkJIT.h: | 
 |         (JSC::SpecializedThunkJIT::returnJSCell): | 
 |         (JSC::SpecializedThunkJIT::tagReturnAsJSCell): | 
 |         * jit/ThunkGenerators.cpp: | 
 |         (JSC::stringCharLoad): | 
 |         (JSC::charToString): | 
 |         (JSC::charCodeAtThunkGenerator): | 
 |         (JSC::charAtThunkGenerator): | 
 |         (JSC::fromCharCodeThunkGenerator): | 
 |         * jit/ThunkGenerators.h: | 
 |         * runtime/SmallStrings.h: | 
 |         (JSC::SmallStrings::singleCharacterStrings): | 
 |         * runtime/StringConstructor.cpp: | 
 |         (JSC::StringConstructor::StringConstructor): | 
 |  | 
 | 2010-04-27  Thomas Zander <t.zander@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Fix the build on Symbian on Linux using the Makefile based mkspec | 
 |  | 
 |         * JavaScriptCore.pri: It is necessary to specify the library search path | 
 |         when linking against JavaScriptCore. | 
 |  | 
 | 2010-04-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Compile fix for Visual Studio 2010 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37867 | 
 |  | 
 |         Patch by Prasanth Ullattil <prasanth.ullattil@nokia.com> | 
 |  | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::transitionTableAdd): | 
 |         * wtf/MathExtras.h: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-04-27  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Rename COMPILER(MSVC7) to COMPILER(MSVC7_OR_LOWER) | 
 |  | 
 |         * config.h: | 
 |         (JSC::Structure::transitionTableAdd): | 
 |         * wtf/Assertions.h: | 
 |         * wtf/Atomics.h: | 
 |         * wtf/CurrentTime.h: | 
 |         (WTF::getLocalTime): | 
 |         * wtf/Platform.h: | 
 |         * wtf/StaticConstructors.h: | 
 |         * wtf/StringExtras.h: | 
 |         * wtf/Vector.h: | 
 |         (WTF::::append): | 
 |  | 
 | 2010-04-15  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Fix Mac build break. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37867 | 
 |         - Make sure JavaScriptCore's debug_and_release config follows that | 
 |           of WebCore. | 
 |         - Use different name for JavaScriptCore target in debug and release | 
 |           since they might be written in the same path at the same time on | 
 |           parallel builds | 
 |         - Consolidate the DESTDIR determination logic in JavaScriptCore.pri | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2010-04-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Make sure WebKit is not compiled using C++0x. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37867 | 
 |  | 
 |         As the rest of Qt compiles in the C++0x mode, people might start | 
 |         compiling it in this mode. WebKit don't support this yet. | 
 |  | 
 |         Patch by Thiago Macieira <thiago.macieira@nokia.com> | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2010-04-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Fix windows | 
 |  | 
 |         * jit/SpecializedThunkJIT.h: | 
 |         (JSC::SpecializedThunkJIT::argumentToVirtualRegister): | 
 |  | 
 | 2010-04-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Need to support more efficient dispatch of lightweight builtins | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38155 | 
 |  | 
 |         The problem with calling lightweight builtins is that marshalling | 
 |         the call from the nitro calling convention to the system calling | 
 |         convention is very expensive relative to the cost of the actually | 
 |         evaluating the function.  To work around this problem this patch | 
 |         adds the ability to define a custom thunk for a builtin. | 
 |  | 
 |         This allows us to use high performance custom implementations of | 
 |         the common and sensible versions of simple builtins.  This patch | 
 |         includes a simple (use of which is currently hardcoded) thunk for | 
 |         charCodeAt. | 
 |  | 
 |         This adds a JSInterfaceJIT subclass called SpecializedThunkJIT | 
 |         that has helper functions to remove (or at least reduce) the need | 
 |         to have separate thunk implementations for each JSValue encoding. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |           Many project file updates | 
 |  | 
 |         * create_hash_table: | 
 |           Add thunk generation callbacks to the hash tables, currently | 
 |           we hardcode the script to only support charCodeAt | 
 |  | 
 |         * jit/JITStubCall.h: | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::~JITThunks): | 
 |         (JSC::JITThunks::specializedThunk): | 
 |         * jit/JITStubs.h: | 
 |         * jit/SpecializedThunkJIT.h: Added. | 
 |         (JSC::SpecializedThunkJIT::SpecializedThunkJIT): | 
 |         (JSC::SpecializedThunkJIT::loadCellArgument): | 
 |         (JSC::SpecializedThunkJIT::loadJSStringArgument): | 
 |         (JSC::SpecializedThunkJIT::loadInt32Argument): | 
 |         (JSC::SpecializedThunkJIT::appendFailure): | 
 |         (JSC::SpecializedThunkJIT::returnInt32): | 
 |         (JSC::SpecializedThunkJIT::finalize): | 
 |         (JSC::SpecializedThunkJIT::argumentToVirtualRegister): | 
 |         (JSC::SpecializedThunkJIT::tagReturnAsInt32): | 
 |         * jit/ThunkGenerators.cpp: Added. | 
 |         (JSC::ThunkHelpers::stringImplDataOffset): | 
 |         (JSC::ThunkHelpers::jsStringLengthOffset): | 
 |         (JSC::ThunkHelpers::jsStringValueOffset): | 
 |         (JSC::charCodeAtThunkGenerator): | 
 |         * jit/ThunkGenerators.h: Added. | 
 |         * runtime/Executable.h: | 
 |         (JSC::NativeExecutable::NativeExecutable): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSGlobalData.h: | 
 |         (JSC::JSGlobalData::getThunk): | 
 |         * runtime/JSString.h: | 
 |         (JSC::): | 
 |         * runtime/JSValue.h: | 
 |           Protect some of the JSVALUE32 and JSVALUE32_64 only constants | 
 |           and function behind appropriate USE() guards to make it harder | 
 |           to use the wrong flags for the target build. | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::HashTable::createTable): | 
 |         (JSC::setUpStaticFunctionSlot): | 
 |         * runtime/Lookup.h: | 
 |         (JSC::HashEntry::initialize): | 
 |         (JSC::HashEntry::generator): | 
 |         (JSC::HashEntry::): | 
 |           Make the lookup tables use a specialized thunkGenerator | 
 |           if present | 
 |         * wtf/text/StringImpl.h: | 
 |  | 
 | 2010-04-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Build fix | 
 |  | 
 |         * runtime/JSImmediate.h: | 
 |         * runtime/JSValue.h: | 
 |  | 
 | 2010-04-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Factor some basic JS interface logic out of JIT and into a superclass | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38163 | 
 |  | 
 |         Create JSInterfaceJIT to hold some common low level functions for | 
 |         interacting with the JS RegisterFile.  Doing this separately from | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38155 to ease reviewing. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitJumpSlowCaseIfNotJSCell): | 
 |         * jit/JSInterfaceJIT.h: Added. | 
 |         (JSC::JSInterfaceJIT::emitLoadJSCell): | 
 |         (JSC::JSInterfaceJIT::emitJumpIfNotJSCell): | 
 |         (JSC::JSInterfaceJIT::emitLoadInt32): | 
 |         (JSC::JSInterfaceJIT::tagFor): | 
 |         (JSC::JSInterfaceJIT::payloadFor): | 
 |         (JSC::JSInterfaceJIT::addressFor): | 
 |  | 
 | 2010-04-26  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Fix Tiger build. | 
 |  | 
 |         * wtf/mac/MainThreadMac.mm: | 
 |         (WTF::isMainThread): | 
 |  | 
 | 2010-04-26  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         <rdar://problem/7766413> | 
 |          | 
 |         Fixed a crash seen when using the JavaScriptCore API with WebKit. | 
 |          | 
 |         No layout test because DumpRenderTree doesn't use the JavaScriptCore API | 
 |         in this way. | 
 |  | 
 |         * interpreter/RegisterFile.cpp: | 
 |         (JSC::RegisterFile::setGlobalObject): | 
 |         (JSC::RegisterFile::clearGlobalObject): | 
 |         (JSC::RegisterFile::globalObject): | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::RegisterFile): Use WeakGCPtr for managing m_globalObject, | 
 |         since it's a weak pointer. (We never noticed this error before because, | 
 |         in WebKit, global objects always have a self-reference in a global variable, | 
 |         so marking the register file's global variables would keep m_globalObject | 
 |         alive. In the JavaScriptCore API, you can allocate a global object with | 
 |         no self-reference.) | 
 |  | 
 |         * runtime/JSActivation.h: Removed unneeded #include. | 
 |  | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::~JSGlobalObject): Don't use ==, since a weak | 
 |         pointer is 0 when the object it points to runs its destructor. | 
 |  | 
 |         * runtime/WeakGCPtr.h: | 
 |         (JSC::WeakGCPtr::clear): Changed to return a bool indicating whether the | 
 |         clear actually happened. | 
 |         (JSC::WeakGCPtr::assign): Changed to forbid assignment of 0 as a shorthand | 
 |         for calling clear(). A client should never clear by assigning 0, since | 
 |         clear() should be conditional on whether the object doing the clearing | 
 |         is still pointed to by the weak pointer. (Otherwise, a zombie object might | 
 |         clear a pointer to a new, valid object.) | 
 |  | 
 | 2010-04-25  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 | 
 |         Disentangle initializing the main thread from initializing threading | 
 |  | 
 |         This is the first step in getting rid of the WEB_THREAD #define and | 
 |         paving the way to allowing mac both WebKit and WebKit2 to use the same | 
 |         WebCore. | 
 |  | 
 |         * JavaScriptCore.exp: Export initializeMainThread and initializeMainThreadToProcessMainThread. | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Sort files. | 
 |  | 
 |         * wtf/MainThread.cpp: | 
 |         (WTF::mainThreadInitializationMutex): | 
 |         (WTF::mainThreadFunctionQueueMutex): | 
 |         (WTF::initializeMainThread): | 
 |         (WTF::deprecatedInitializeMainThread): | 
 |         * wtf/MainThread.h: | 
 |         Added Mac only initializeMainThreadToProcessMainThread which sets up callOnMainThread | 
 |         and isMainThead calls to assume that WebCore's main thread is also the | 
 |         process's main thread. Since it is possible that both initializeMainThread | 
 |         and initializeMainThreadToProcessMainThread could be called, the first one called | 
 |         wins (either will work). | 
 |  | 
 |         * wtf/Threading.h: Moved to top of file. | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::initializeThreading): Remove call to initializeMainThread. | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::initializeThreading): Ditto. | 
 |         * wtf/gtk/ThreadingGtk.cpp: | 
 |         (WTF::initializeThreading): Ditto. | 
 |  | 
 |         * wtf/mac/MainThreadMac.mm: | 
 |         (WTF::initializeMainThreadPlatform): | 
 |         (WTF::initializeMainThreadToProcessMainThread): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): | 
 |         (WTF::isMainThread): | 
 |         Add runtime switch between the old behavior of using the system's main | 
 |         thread and a stored pointer to the main thread. Tiger always uses the | 
 |         system's main thread. | 
 |  | 
 |         * wtf/qt/ThreadingQt.cpp: | 
 |         (WTF::initializeThreading): Remove call to initializeMainThread. | 
 |         * wtf/win/MainThreadWin.cpp: | 
 |         (WTF::initializeMainThreadPlatform): Add call to initializeCurrentThreadInternal | 
 |         removed from initializeThreading. | 
 |  | 
 | 2010-04-26  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Fix a memory leak in the QScriptString. | 
 |  | 
 |         QScriptStringPrivate's constructor shouldn't call JSStringRetain as | 
 |         QScriptConverter implicitly pass a JSStringRef ownership. | 
 |  | 
 |         [Qt] QScriptStringPrivate c'tor problem | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38110 | 
 |  | 
 |         * qt/api/qscriptstring_p.h: | 
 |         (QScriptStringPrivate::QScriptStringPrivate): | 
 |  | 
 | 2010-04-24  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Dan Bernstein. | 
 |  | 
 |         REGRESSION (r56560): Crash in parseFloat if passed invalid UTF-16 data | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38083 | 
 |         rdar://problem/7901044 | 
 |  | 
 |         Tests: fast/js/ToNumber.html | 
 |                fast/js/parseFloat.html | 
 |  | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::parseInt): Added a FIXME comment about a problem I noticed. | 
 |         (JSC::parseFloat): Added a FIXME comment about a problem I noticed; | 
 |         covered by test cases in the test I added. | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::toDouble): Added FIXME comments about two problems I | 
 |         noticed; covered by test cases in the tests I added. Added a return | 
 |         statement so we don't crash when illegal UTF-16 sequences are present. | 
 |  | 
 | 2010-04-24  Anton Muhin  <antonm@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow to construct HashTraits<WebCore::QualifiedName>::constructDeletedValue | 
 |  | 
 |         Former implementation attempted to use AtomicString(HashTableDeletedValue) | 
 |         however those values cannot be used that way: one cannot construct | 
 |         QualifiedNameImpl out of such AtomicString as we'll try to lookup this string | 
 |         in the table, for example. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37722 | 
 |  | 
 |         * wtf/RefPtr.h: expose hash table deleted value | 
 |  | 
 | 2010-04-23  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Fix for https://bugs.webkit.org/show_bug.cgi?id=38060 | 
 |         Split up Threading.h | 
 |  | 
 |         Move bits for of Threading.h into 3 new files. | 
 |         - Atomics.h for atomic operations. | 
 |         - ThreadSafeShared.h for the ThreadSafeShared class. | 
 |         - ThreadingPrimitives.h for the primitives and platform types. | 
 |  | 
 |         Basic threading operations (creation, etc.) remain in Threading.h. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * wtf/Atomics.h: Copied from wtf/Threading.h. | 
 |         * wtf/ThreadSafeShared.h: Copied from wtf/Threading.h. | 
 |         * wtf/Threading.h: | 
 |         * wtf/ThreadingPrimitives.h: Copied from wtf/Threading.h. | 
 |  | 
 | 2010-04-23  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Fix Qt build. | 
 |  | 
 |         * wtf/qt/MainThreadQt.cpp: #include <QThread> | 
 |  | 
 | 2010-04-22  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Anders Carlsson. | 
 |  | 
 |         Fix for https://bugs.webkit.org/show_bug.cgi?id=38022 | 
 |         Move isMainThread predicate function to MainThread.h | 
 |  | 
 |         * wtf/MainThread.cpp: | 
 |         (WTF::initializeMainThread): | 
 |         (WTF::isMainThread): | 
 |         * wtf/MainThread.h: | 
 |         * wtf/Threading.h: | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::initializeThreading): | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::initializeThreading): | 
 |         * wtf/gtk/ThreadingGtk.cpp: | 
 |         (WTF::initializeThreading): | 
 |         * wtf/mac/MainThreadMac.mm: | 
 |         (WTF::initializeMainThreadPlatform): | 
 |         (WTF::isMainThread): | 
 |         * wtf/qt/MainThreadQt.cpp: | 
 |         (WTF::isMainThread): | 
 |         * wtf/qt/ThreadingQt.cpp: | 
 |         (WTF::initializeThreading): | 
 |         * wtf/text/AtomicString.cpp: | 
 |  | 
 | 2010-04-23  Gabor Rapcsanyi  <rgabor@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         Add RVCT support for Linux | 
 |  | 
 |         Developed in cooperation with Gabor Loki. | 
 |  | 
 |         * API/JSStringRef.h: | 
 |         * jit/ExecutableAllocator.h: | 
 |         * jit/ExecutableAllocatorPosix.cpp: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |         * jit/JITStubs.cpp: | 
 |         * wtf/MathExtras.h: | 
 |         * wtf/unicode/qt4/UnicodeQt4.h: | 
 |  | 
 | 2010-04-23  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [WIN] Move OwnPtrWin.cpp into platform specific folder. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38042 | 
 |  | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * wtf/OwnPtrWin.cpp: Removed. | 
 |         * wtf/win/OwnPtrWin.cpp: Copied from JavaScriptCore/wtf/OwnPtrWin.cpp. | 
 |  | 
 | 2010-04-23  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [BREWMP] Move OwnPtrBrew.cpp into platform specific folder. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38042 | 
 |  | 
 |         * wtf/OwnPtrBrew.cpp: Removed. | 
 |         * wtf/brew/OwnPtrBrew.cpp: Copied from JavaScriptCore/wtf/OwnPtrBrew.cpp. | 
 |  | 
 | 2010-04-22  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Update Android to use isfinite, isinf, isnan and signbit from namespace std. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37948 | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |  | 
 | 2010-04-22  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Unreviewed build fix. | 
 |  | 
 |         * wtf/MD5.cpp: fix include path of CString.h | 
 |  | 
 | 2010-04-22  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         MD5 is required for WebSocket new protocol implementation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37913 | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * wtf/MD5.cpp: Added. | 
 |         * wtf/MD5.h: Added. | 
 |  | 
 | 2010-04-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |         Errk, accidentally committed commenting out two ASSERTs! reverting. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::protect): | 
 |         (JSC::Heap::unprotect): | 
 |  | 
 | 2010-04-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38006 | 
 |         Change lifetime of JSC::IdentifierTables used by WebCores to match AtomicStringTable | 
 |  | 
 |         Presently JSC's IdentifierTables are owned by the JSGlobalData.  For | 
 |         JSGlobalData objects created via the API this should continue to be the case, | 
 |         but for the JSGlobalData objects used by WebCore (the main thread's common | 
 |         global data, and those for workers) use a IdentifierTable provided (and owned) | 
 |         by wtfThreadData.  This allow the lifetime of these IdentifierTable to match | 
 |         those of the corresponding AtomicStringTables. | 
 |  | 
 |         * API/APIShims.h: | 
 |         (JSC::APIEntryShim::APIEntryShim): | 
 |         * API/JSContextRef.cpp: | 
 |         (JSContextGroupCreate): | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::protect): | 
 |         (JSC::Heap::unprotect): | 
 |         (JSC::Heap::markRoots): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         (JSC::JSGlobalData::~JSGlobalData): | 
 |         (JSC::JSGlobalData::createContextGroup): | 
 |         (JSC::JSGlobalData::create): | 
 |         (JSC::JSGlobalData::sharedInstance): | 
 |         * runtime/JSGlobalData.h: | 
 |         (JSC::JSGlobalData::): | 
 |         (JSC::JSGlobalData::isSharedInstance): | 
 |         * runtime/JSLock.cpp: | 
 |         (JSC::JSLock::JSLock): | 
 |         (JSC::JSLock::lock): | 
 |         (JSC::JSLock::unlock): | 
 |         (JSC::JSLock::DropAllLocks::DropAllLocks): | 
 |         * wtf/WTFThreadData.cpp: | 
 |         (WTF::WTFThreadData::WTFThreadData): | 
 |         (WTF::WTFThreadData::~WTFThreadData): | 
 |  | 
 | 2010-04-22  Sheriff Bot  <webkit.review.bot@gmail.com> | 
 |  | 
 |         Unreviewed, rolling out r58110. | 
 |         http://trac.webkit.org/changeset/58110 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=38007 | 
 |  | 
 |         Caused an internal compiler error on Qt (Requested by abarth | 
 |         on #webkit). | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |  | 
 | 2010-04-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 |         * API/JSWeakObjectMapRefPrivate.cpp: | 
 |  | 
 | 2010-04-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 |         * API/JSBase.cpp: | 
 |         * API/JSCallbackObject.cpp: | 
 |  | 
 | 2010-04-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37978 | 
 |         Unify JSC::IdentifierTable and WebCore::AtomicStringTable implementations. | 
 |  | 
 |         These two classes both implement a HashSet of uniqued StringImpls, with | 
 |         translator classes to avoid unnecessary object creation. The only difference | 
 |         between the classes is which flag (isIdentifier or inTable) is set. | 
 |         Combine the two classes using a template predicated on which flag to use. | 
 |  | 
 |         New class AtomicStringTable created, containing all the goodness from | 
 |         IdentifierTable & AtomicStringTable, expect for Identifier's literalTable, | 
 |         which has been moved onto JSGlobalData. Removed duplicate string translator | 
 |         classes. Renamed StringImpl's inTable flag to more explicit 'isAtomic', | 
 |         and set this on the empty string (which matches Identifier behaviour, and | 
 |         removes a redundant check for zero-length). | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::createLiteralTable): | 
 |         (JSC::deleteLiteralTable): | 
 |         (JSC::Identifier::add): | 
 |         (JSC::Identifier::addSlowCase): | 
 |         * runtime/Identifier.h: | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         (JSC::JSGlobalData::~JSGlobalData): | 
 |         * runtime/JSGlobalData.h: | 
 |         * wtf/WTFThreadData.cpp: | 
 |         (WTF::WTFThreadData::WTFThreadData): | 
 |         (WTF::WTFThreadData::~WTFThreadData): | 
 |         * wtf/WTFThreadData.h: | 
 |         (WTF::WTFThreadData::atomicStringTable): | 
 |         * wtf/text/AtomicString.cpp: | 
 |         (WebCore::table): | 
 |         (WebCore::operator==): | 
 |         (WebCore::AtomicString::add): | 
 |         (WebCore::AtomicString::find): | 
 |         (WebCore::AtomicString::remove): | 
 |         * wtf/text/AtomicStringTable.h: Added. | 
 |         (WTF::CStringTranslator::hash): | 
 |         (WTF::CStringTranslator::equal): | 
 |         (WTF::CStringTranslator::translate): | 
 |         (WTF::UCharBufferTranslator::hash): | 
 |         (WTF::UCharBufferTranslator::equal): | 
 |         (WTF::UCharBufferTranslator::translate): | 
 |         (WTF::HashAndCharactersTranslator::hash): | 
 |         (WTF::HashAndCharactersTranslator::equal): | 
 |         (WTF::HashAndCharactersTranslator::translate): | 
 |         (WTF::IdentifierOrAtomicStringTable::remove): | 
 |         (WTF::::~IdentifierOrAtomicStringTable): | 
 |         (WTF::::add): | 
 |         (WTF::::find): | 
 |         * wtf/text/StringImpl.cpp: | 
 |         (WebCore::StringImpl::~StringImpl): | 
 |         * wtf/text/StringImpl.h: | 
 |         (WebCore::StringImpl::isAtomic): | 
 |         (WebCore::StringImpl::setIsAtomic): | 
 |         (WebCore::equal): | 
 |         * wtf/text/StringImplBase.h: | 
 |         (WTF::StringImplBase::StringImplBase): | 
 |  | 
 | 2010-04-22  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Update Android to use isfinite, isinf, isnan and signbit from namespace std. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37948 | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |  | 
 | 2010-04-22  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Remove dependency of JSC to QtGui | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37867 | 
 |  | 
 |         The patch also make sure that hal.h is in the include path on Symbian. | 
 |         The dependency to QtGui took care of that before. | 
 |  | 
 |         Patch by Thiago Macieira <thiago.macieira@nokia.com> | 
 |              and Rohan McGovern <rohan.mcgovern@nokia.com> | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2010-04-22  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Corrects symbols visibility for JavaScriptCore. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37867 | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2010-04-22  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Use BLX and BX to keep happy the return stack predictor above ARMv4 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37862 | 
 |  | 
 |         Inspired by Jacob Bramley's patch from JaegerMonkey | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::executableCopy): | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::bx): | 
 |         (JSC::ARMAssembler::blx): | 
 |         (JSC::ARMAssembler::loadBranchTarget): | 
 |         (JSC::ARMAssembler::jmp): | 
 |         (JSC::ARMAssembler::getLdrImmAddress): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::jump): | 
 |         (JSC::MacroAssemblerARM::nearCall): | 
 |         (JSC::MacroAssemblerARM::call): | 
 |         (JSC::MacroAssemblerARM::ret): | 
 |         (JSC::MacroAssemblerARM::prepareCall): | 
 |         (JSC::MacroAssemblerARM::call32): | 
 |  | 
 | 2010-04-21  Andy Estes  <aestes@apple.com> | 
 |  | 
 |         Rubber stamped by Mark Rowe. | 
 |  | 
 |         Export WTF::deleteOwnedPtr(HFONT). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-04-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Oliver Hunt. | 
 |  | 
 |         Make SmallStrings store an array of RefPtr<StringImpl>, | 
 |         instead of a direct array of StringImpls.  This allows | 
 |         us to remove a friend (and a layering violation) from | 
 |         WTF::StringImpl, and makes it so that all StringImpls | 
 |         are individually heap allocated. | 
 |  | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::SmallStringsStorage::rep): | 
 |         (JSC::SmallStringsStorage::SmallStringsStorage): | 
 |         * wtf/text/StringImpl.h: | 
 |  | 
 | 2010-04-21  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Fix for https://bugs.webkit.org/show_bug.cgi?id=37937 | 
 |         Wean JavaScriptCore off calls to isMainThread() | 
 |  | 
 |         - Replace use of isMainThread() for interpreter reentry checks | 
 |           with a stored value on the JSGlobalData. | 
 |         - Replace use of isMainThread() for useMainThread only check in the | 
 |           collector with a stored exclusive thread. | 
 |  | 
 |         * API/JSContextRef.cpp: | 
 |         (JSContextGroupCreate): | 
 |         Always default to a small stack type for uses of the JSC API. It is | 
 |         unlikely that the interpreter reentry required on the web will be as | 
 |         important for other uses of JavaScriptCore.  | 
 |  | 
 |         * JavaScriptCore.exp:  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         Update exports. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::prepareForRepeatCall): | 
 |         Use new stored JSGlobalData::maxReentryDepth instead of isMainThread(). | 
 |  | 
 |         * interpreter/Interpreter.h: | 
 |         Rename MaxMainThreadReentryDepth to MaxLargeThreadReentryDepth and  | 
 |         MaxSecondaryThreadReentryDepth to MaxSmallThreadReentryDepth. | 
 |  | 
 |         * jsc.cpp: | 
 |         (main): Use the a large stack for jsc since it is always using the | 
 |         main thread. | 
 |          | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |         (JSC::arrayProtoFuncToLocaleString): | 
 |         (JSC::arrayProtoFuncJoin): | 
 |         Use new stored JSGlobalData::maxReentryDepth instead of isMainThread(). | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::registerThread): | 
 |         Use the concept of making JSC run on an exclusiveThread instead of | 
 |         forcing a mainThreadOnly assertion. | 
 |          | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         (JSC::JSGlobalData::createNonDefault): | 
 |         (JSC::JSGlobalData::create): | 
 |         (JSC::JSGlobalData::createLeaked): | 
 |         (JSC::JSGlobalData::sharedInstance): | 
 |         * runtime/JSGlobalData.h: | 
 |         Add ThreadStackType argument to JSGlobalData constructors and set | 
 |         maxReentryDepth based on it. | 
 |  | 
 | 2010-04-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix pt. 3). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-04-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix pt. 2). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-04-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Qt build fix). | 
 |  | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * wtf/qt/StringQt.cpp: Copied from WebCore/platform/text/qt/StringQt.cpp. | 
 |  | 
 | 2010-04-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 |         * API/JSValueRef.cpp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::IdentifierTable::~IdentifierTable): | 
 |         (JSC::IdentifierTable::add): | 
 |         * runtime/Identifier.h: | 
 |         * wtf/WTFThreadData.h: | 
 |         (JSC::IdentifierTable::remove): | 
 |         (JSC::IdentifierTable::literalTable): | 
 |         * wtf/text/StringImpl.cpp: | 
 |         (WebCore::StringImpl::~StringImpl): | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt, Darin Adler. | 
 |  | 
 |         Bug 37906 - Remove JSC::UStringImpl; unify with StringImpl. | 
 |  | 
 |         JSC::UStringImpl and WebCore::StringImpl (soon to be renamed to | 
 |         WTF::StringImpl) are almost identical.  Remove duplication of code by unifying | 
 |         the two, move missing features from UStringImpl into StringImpl & delete the | 
 |         class UStringImpl. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         * API/JSContextRef.cpp: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * bytecode/EvalCodeCache.h: | 
 |         * bytecode/JumpTable.cpp: | 
 |         * profiler/ProfileNode.cpp: | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::add): | 
 |         * runtime/Identifier.h: | 
 |         (JSC::Identifier::equal): | 
 |         * runtime/UString.cpp: | 
 |         * runtime/UString.h: | 
 |         (WTF::): | 
 |         * runtime/UStringImpl.cpp: Removed. | 
 |         * runtime/UStringImpl.h: | 
 |         * wtf/text/StringHash.h: | 
 |         (WebCore::StringHash::equal): | 
 |         (WebCore::CaseFoldingHash::equal): | 
 |         * wtf/text/StringImpl.cpp: | 
 |         (WebCore::StringImpl::~StringImpl): | 
 |         (WebCore::StringImpl::empty): | 
 |         (WebCore::StringImpl::sharedBuffer): | 
 |         (WebCore::equal): | 
 |         * wtf/text/StringImpl.h: | 
 |         (WebCore::StringImpl::StringImpl): | 
 |         (WebCore::StringImpl::create): | 
 |         (WebCore::StringImpl::tryCreateUninitialized): | 
 |         (WebCore::StringImpl::cost): | 
 |         (WebCore::StringImpl::isIdentifier): | 
 |         (WebCore::StringImpl::setIsIdentifier): | 
 |         (WebCore::StringImpl::computeHash): | 
 |         (WebCore::StringImpl::copyChars): | 
 |         (WebCore::StringImpl::): | 
 |  | 
 | 2010-04-21  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Added missing #include "Lookup.h" in LUT source files. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37903 | 
 |  | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         * runtime/DatePrototype.cpp: | 
 |         * runtime/JSONObject.cpp: | 
 |         * runtime/MathObject.cpp: | 
 |         * runtime/NumberConstructor.cpp: | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         * runtime/RegExpObject.cpp: | 
 |         * runtime/StringPrototype.cpp: | 
 |  | 
 | 2010-04-21  Gustavo Sverzut Barbieri  <barbieri@profusion.mobi> | 
 |  | 
 |         Reviewed by Nikolas Zimmermann. | 
 |  | 
 |         Add missing EFL JavaScriptCore file. | 
 |         http://webkit.org/b/37854 | 
 |  | 
 |         * wtf/efl: Added. | 
 |         * wtf/efl/MainThreadEfl.cpp: Added. | 
 |         (WTF::initializeMainThreadPlatform): | 
 |         (WTF::timeoutFired): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): | 
 |  | 
 | 2010-04-20  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Another attempt to fix the build. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2010-04-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         [ES5] RegExp literals are constants that should be persistent across multiple function calls. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37908 | 
 |  | 
 |         Dump the separate RegExp constant pool, and just use the standard JS constant pool | 
 |         in codeblock.  This allows us to drop op_new_regexp and all associated code as well. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         (JSC::CodeBlock::shrinkToFit): | 
 |         * bytecode/CodeBlock.h: | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitLoad): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * bytecompiler/NodesCodegen.cpp: | 
 |         (JSC::RegExpNode::emitBytecode): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITStubs.cpp: | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |  | 
 | 2010-04-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Fix license on create_regex_tables | 
 |  | 
 |         * create_regex_tables: | 
 |  | 
 | 2010-04-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Fix gtk | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * make-generated-sources.sh: | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 37895 - Share common code from UStringImplBase with StringImpl | 
 |  | 
 |         The implementation of StringImpl & UStringImpl is very similar.  Restructure | 
 |         StringImpl to match UStringImpl, moving the flags and length into a base class, | 
 |         so that this can be shared between both string types to increase code reuse. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/RopeImpl.h: | 
 |         (JSC::RopeImpl::RopeImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         * wtf/text/StringImpl.h: | 
 |         (WebCore::StringImpl::StringImpl): | 
 |         (WebCore::StringImpl::characters): | 
 |         * wtf/text/StringImplBase.h: Copied from JavaScriptCore/runtime/UStringImpl.h. | 
 |         (WTF::StringImplBase::length): | 
 |         (WTF::StringImplBase::operator new): | 
 |         (WTF::StringImplBase::StringImplBase): | 
 |  | 
 | 2010-04-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Autogenerate yarr character tables | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37877 | 
 |  | 
 |         Use a python script to automatically generate character tables | 
 |         for the builtin YARR character classes.  This allows us to generate | 
 |         actual tables as well, by using these tables we can both increase | 
 |         performance of the check (for complex builtins) and reduce the actual | 
 |         code size. | 
 |  | 
 |         4-8% win on string-unpack-code, but lots of noise on other tests so | 
 |         i'm only confident saying its a 1% win overall. | 
 |  | 
 |         * DerivedSources.make: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::ExtendedAddress::ExtendedAddress): | 
 |         * assembler/MacroAssembler.h: | 
 |         (JSC::MacroAssembler::branchTest8): | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::branchTest8): | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         (JSC::MacroAssemblerX86_64::branchTest8): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::cmpb_im): | 
 |         (JSC::X86Assembler::testb_im): | 
 |         * bytecode/SamplingTool.cpp: | 
 |         (JSC::SamplingTool::dump): | 
 |         * create_regex_tables: Added. | 
 |         * yarr/RegexCompiler.cpp: | 
 |         (JSC::Yarr::CharacterClassConstructor::charClass): | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::matchCharacterClass): | 
 |         (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy): | 
 |         (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy): | 
 |         (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy): | 
 |         * yarr/RegexPattern.h: | 
 |         (JSC::Yarr::CharacterClassTable::create): | 
 |         (JSC::Yarr::CharacterClassTable::CharacterClassTable): | 
 |         (JSC::Yarr::CharacterClass::CharacterClass): | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (speculative windows fix - missed a bit!). | 
 |  | 
 |         * wtf/text/AtomicString.h: | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (speculative windows fix). | 
 |  | 
 |         * wtf/text/AtomicString.h: | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 |         Add missing .def file entries. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 37869 - Move URopeImpl to its own .h/.cpp | 
 |          | 
 |         Currently Ropes are implemented by the class URopeImpl, which is defined in | 
 |         UStringImpl.h, and then typedefed to the name JSString::Rope. Remove the | 
 |         typedef, and rename all uses of URopeImpl and JSString::Rope to just RopeImpl. | 
 |  | 
 |         Move RopeImpl to its own header, and remove all remaining references to ropes | 
 |         from UStringImpl (rename UStringOrRopeImpl to UStringImplBase, rename or move | 
 |         the isRope & deref methods from UStringOrRopeImpl). | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         * runtime/JSString.h: | 
 |         (JSC::): | 
 |         (JSC::RopeBuilder::JSString): | 
 |         (JSC::RopeBuilder::~JSString): | 
 |         (JSC::RopeBuilder::appendStringInConstruct): | 
 |         (JSC::RopeBuilder::JSStringFinalizerStruct::): | 
 |         * runtime/RopeImpl.cpp: Copied from JavaScriptCore/runtime/UStringImpl.cpp. | 
 |         (JSC::RopeImpl::derefFibersNonRecursive): | 
 |         (JSC::RopeImpl::destructNonRecursive): | 
 |         * runtime/RopeImpl.h: Copied from JavaScriptCore/runtime/UStringImpl.h. | 
 |         (JSC::RopeImpl::tryCreateUninitialized): | 
 |         (JSC::RopeImpl::isRope): | 
 |         (JSC::RopeImpl::deref): | 
 |         (JSC::RopeImpl::RopeImpl): | 
 |         * runtime/UStringImpl.cpp: | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImplBase::isInvalid): | 
 |         (JSC::UStringImplBase::ref): | 
 |         (JSC::UStringImplBase::UStringImplBase): | 
 |         (JSC::UStringImplBase::): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 37828 - Move WebCore's String classes to WTF | 
 |  | 
 |         Move these classes up to WTF so they are available to all clients of WTF (in | 
 |         particular JSC). | 
 |  | 
 |         As a first patch, making the most minimal change possible, since this patch | 
 |         could easily grow rather large since we'll have to change every class forward | 
 |         declaration ( e.g. every "namespace WebCore { class String; }" much change to | 
 |         "namespace WTF { class String; }"). | 
 |  | 
 |         Moving the files, but leaving the classes logically in the WebCore namespace - | 
 |         which is technically a layering violation - I'll come back and fix this up in a | 
 |         subsequent patch. | 
 |  | 
 |         * Android.mk: | 
 |         * Android.v8.wtf.mk: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * config.h: | 
 |         * wtf/StaticConstructors.h: Copied from WebCore/platform/StaticConstructors.h. | 
 |         * wtf/text/AtomicString.cpp: Copied from WebCore/platform/text/AtomicString.cpp. | 
 |         * wtf/text/AtomicString.h: Copied from WebCore/platform/text/AtomicString.h. | 
 |         * wtf/text/AtomicStringImpl.h: Copied from WebCore/platform/text/AtomicStringImpl.h. | 
 |         * wtf/text/StringBuffer.h: Copied from WebCore/platform/text/StringBuffer.h. | 
 |         * wtf/text/StringHash.h: Copied from WebCore/platform/text/StringHash.h. | 
 |         * wtf/text/StringImpl.cpp: Copied from WebCore/platform/text/StringImpl.cpp. | 
 |         * wtf/text/StringImpl.h: Copied from WebCore/platform/text/StringImpl.h. | 
 |         * wtf/text/WTFString.cpp: Copied from WebCore/platform/text/String.cpp. | 
 |         (WebCore::charactersToFloat): | 
 |         * wtf/text/WTFString.h: Copied from WebCore/platform/text/PlatformString.h. | 
 |  | 
 | 2010-04-20  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         [Qt] Unreviewed speculative buildfix for WinCE after r57882 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37701 | 
 |  | 
 |         * JavaScriptCore.pri: missing wince* case added. | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |         Speculative Chromium/Win build fix, attempt #2. | 
 |  | 
 |         * config.h: | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |         Speculative Chromium/Win build fix. | 
 |  | 
 |         * config.h: JS_EXPORTDATA should do nothing on !JSC builds. | 
 |  | 
 | 2010-04-20  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Target(WebCore,jsc,...) must depends on static library of JavaScriptCore | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37701 | 
 |  | 
 |         * JavaScriptCore.pri: dependency added. | 
 |  | 
 | 2010-04-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Maciej Stachowiak (relanding r57829). | 
 |         Added missing JS_EXPORTDATA | 
 |  | 
 |         * API/APIShims.h: | 
 |         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): | 
 |         (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): | 
 |         (JSC::APICallbackShim::APICallbackShim): | 
 |         (JSC::APICallbackShim::~APICallbackShim): | 
 |         * API/JSContextRef.cpp: | 
 |         * Android.mk: | 
 |         * Android.v8.wtf.mk: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::remove): | 
 |         (JSC::Identifier::checkCurrentIdentifierTable): | 
 |         * runtime/Identifier.h: | 
 |         * runtime/InitializeThreading.cpp: | 
 |         (JSC::initializeThreadingOnce): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::create): | 
 |         * wtf/WTFThreadData.cpp: Copied from JavaScriptCore/wtf/WTFThreadData.cpp. | 
 |         * wtf/WTFThreadData.h: Copied from JavaScriptCore/wtf/WTFThreadData.h. | 
 |  | 
 | 2010-04-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (rolling out r57829). | 
 |         This broke windows. | 
 |  | 
 |         * API/APIShims.h: | 
 |         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): | 
 |         (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): | 
 |         (JSC::APICallbackShim::APICallbackShim): | 
 |         (JSC::APICallbackShim::~APICallbackShim): | 
 |         * API/JSContextRef.cpp: | 
 |         * Android.mk: | 
 |         * Android.v8.wtf.mk: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::remove): | 
 |         (JSC::Identifier::checkCurrentIdentifierTable): | 
 |         (JSC::createIdentifierTableSpecificCallback): | 
 |         (JSC::createIdentifierTableSpecific): | 
 |         * runtime/Identifier.h: | 
 |         (JSC::ThreadIdentifierTableData::ThreadIdentifierTableData): | 
 |         (JSC::defaultIdentifierTable): | 
 |         (JSC::setDefaultIdentifierTable): | 
 |         (JSC::currentIdentifierTable): | 
 |         (JSC::setCurrentIdentifierTable): | 
 |         (JSC::resetCurrentIdentifierTable): | 
 |         * runtime/InitializeThreading.cpp: | 
 |         (JSC::initializeThreadingOnce): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::create): | 
 |         * wtf/WTFThreadData.cpp: Removed. | 
 |         * wtf/WTFThreadData.h: Removed. | 
 |  | 
 | 2010-04-19  Douglas Gregor  <dgregor@apple.com> | 
 |  | 
 |         Reviewed and landed by Anders Carlsson. | 
 |  | 
 |         * runtime/UStringImpl.h: | 
 |         Fix class/struct declaration mismatches. | 
 |  | 
 | 2010-04-19  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Beth Dakin. | 
 |  | 
 |         Checked in these tests I wrote becuase Balazs Kelemen wanted to use them. | 
 |  | 
 |         * tests/perf: Added. | 
 |         * tests/perf/bench-allocate-nonretained.js: Added. | 
 |         * tests/perf/bench-allocate-retained.js: Added. | 
 |  | 
 | 2010-04-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-04-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37745 | 
 |         Move string uniquing tables to (new) WTFThreadData class. | 
 |  | 
 |         Remove AtomicString's dependency on ThreadGlobalData so that we can move | 
 |         WebCore's string classes up to WTF. | 
 |  | 
 |         WTFThreadData.cpp/.h are based on ThreadGlobalData from WebCore. | 
 |         Moved JSC & WebCore's string uniquing tables to this class. | 
 |  | 
 |         This patch introduces a temporary layering violation in providing forward | 
 |         declarations of classes from JSC and WTF; this will be resolved as we move | 
 |         more string code up to WTF. | 
 |  | 
 |         * API/APIShims.h: | 
 |         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): | 
 |         (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): | 
 |         (JSC::APICallbackShim::APICallbackShim): | 
 |         (JSC::APICallbackShim::~APICallbackShim): | 
 |         * API/JSContextRef.cpp: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::remove): | 
 |         (JSC::Identifier::checkCurrentIdentifierTable): | 
 |         * runtime/Identifier.h: | 
 |         * runtime/InitializeThreading.cpp: | 
 |         (JSC::initializeThreadingOnce): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::create): | 
 |         * wtf/WTFThreadData.cpp: Copied from WebCore/platform/ThreadGlobalData.cpp. | 
 |         (WTF::WTFThreadData::WTFThreadData): | 
 |         (WTF::WTFThreadData::~WTFThreadData): | 
 |         * wtf/WTFThreadData.h: Copied from WebCore/platform/ThreadGlobalData.h. | 
 |         (WTF::WTFThreadData::atomicStringTable): | 
 |         (WTF::WTFThreadData::initializeIdentifierTable): | 
 |         (WTF::WTFThreadData::currentIdentifierTable): | 
 |         (WTF::WTFThreadData::setCurrentIdentifierTable): | 
 |         (WTF::WTFThreadData::resetCurrentIdentifierTable): | 
 |         (WTF::wtfThreadData): | 
 |  | 
 | 2010-04-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Build fix for WinCE. | 
 |  | 
 |         Moved the include of the non-existing errno.h header file inside | 
 |         platform guard macros. | 
 |  | 
 |         * jit/ExecutableAllocatorFixedVMPool.cpp: | 
 |  | 
 | 2010-04-18  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [WINCE] Don't define WTF_CPU_MIDDLE_ENDIAN=1 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37434 | 
 |  | 
 |         Windows CE supports little-endian format only, so don't define | 
 |         WTF_CPU_MIDDLE_ENDIAN=1. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-04-18  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [Qt] Fix JavaScriptCore's include path for WinCE builds | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36751 | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2010-04-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by nobody, build fix. | 
 |  | 
 | 2010-04-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by nobody, build fix. | 
 |  | 
 | 2010-04-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 37730 - Remove JSC::UString dependencies from WebCore::StringImpl | 
 |         (Following on from bug #37675). | 
 |  | 
 |         Make the argument ordering for UStringImpl's constructor & create | 
 |         methods match, when passed a shared buffer. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::create): | 
 |         * runtime/UStringImpl.h: | 
 |  | 
 | 2010-04-15  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Fix memory leak in QScriptEngine::evaluate(). | 
 |  | 
 |         QScriptEnginePrivate::evaluate should release temporary variables. | 
 |  | 
 |         [Qt] QScriptEngine::evaluate has memory leak. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37596 | 
 |  | 
 |         * qt/api/qscriptengine_p.cpp: | 
 |         (QScriptEnginePrivate::evaluate): | 
 |         * qt/api/qscriptengine_p.h: | 
 |  | 
 | 2010-04-14  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Fix a memory leak in QScriptValue::inherits. | 
 |  | 
 |         [Qt] QScriptValue::inherits has a memory leak. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37617 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::inherits): | 
 |  | 
 | 2010-04-14  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Fix a few memory leaks in QScriptEngine. | 
 |  | 
 |         Syntax checking caused memory leak, not all temporary variables were released. | 
 |  | 
 |         [Qt] Syntax checking  in the QtScript cause a memory leak. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37610 | 
 |  | 
 |         * qt/api/qscriptengine_p.cpp: | 
 |         (QScriptEnginePrivate::checkSyntax): | 
 |         * qt/api/qscriptsyntaxcheckresult.cpp: | 
 |         (QScriptSyntaxCheckResultPrivate::errorMessage): | 
 |         (QScriptSyntaxCheckResultPrivate::errorLineNumber): | 
 |  | 
 | 2010-04-14  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Fix memory leak inside QScriptEnginePrivate::makeJSValue. | 
 |  | 
 |         QScriptEnginePrivate::makeJSValue should release temporary JSStringRef variable. | 
 |  | 
 |         [Qt] tst_QScriptValue::toString has a memory leak. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37598 | 
 |  | 
 |         * qt/api/qscriptengine_p.h: | 
 |         (QScriptEnginePrivate::makeJSValue): | 
 |  | 
 | 2010-04-14  Peter Varga  <pvarga@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Move the YARR JIT fallback detection from RegexJIT.cpp to | 
 |         RegexCompiler.cpp. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37571 | 
 |  | 
 |         * yarr/RegexCompiler.cpp: | 
 |         (JSC::Yarr::RegexPatternConstructor::atomBackReference): | 
 |         (JSC::Yarr::RegexPatternConstructor::quantifyAtom): | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateTerm): | 
 |         (JSC::Yarr::RegexGenerator::RegexGenerator): | 
 |         (JSC::Yarr::jitCompileRegex): | 
 |         * yarr/RegexJIT.h: | 
 |         (JSC::Yarr::RegexCodeBlock::operator!): | 
 |         * yarr/RegexPattern.h: | 
 |         (JSC::Yarr::RegexPattern::RegexPattern): | 
 |         (JSC::Yarr::RegexPattern::reset): | 
 |  | 
 | 2010-04-14  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Mac OS X: Use deployment target to determine whether memory tagging should be enabled | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34888 | 
 |  | 
 |         When building on (Snow) Leopard but targeting Tiger | 
 |         (TARGETING_TIGER defined, BUILDING_ON_TIGER not defined), | 
 |         WebKit would crash on Tiger because the tags passed to mmap | 
 |         caused those function calls to fail. | 
 |  | 
 |         Conversely, when building on Tiger but targeting Leopard | 
 |         (BUILDING_ON_TIGER defined, TARGETING_LEOPARD defined), WebKit | 
 |         would crash on Leopard because the tags passed to vm_map and | 
 |         vm_allocate caused those function calls to fail. | 
 |  | 
 |         Solution: Use TARGETING_TIGER rather than BUILDING_ON_TIGER to | 
 |         govern the tag definitions. Use the same tags for vm_map and | 
 |         vm_allocate regardless of target, since they work on | 
 |         both. Fall back to the mmap tags that work on Tiger (that is, | 
 |         "no tags") if targeting Tiger, since those tags also work on | 
 |         Leopard. | 
 |  | 
 |         * wtf/VMTags.h: | 
 |  | 
 | 2010-04-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by nobody, build fix. | 
 |  | 
 |         [Qt] Build fix for Mac when building with build-webkit --qt | 
 |  | 
 |         Specifying no configuration on Mac builds WebCore both in debug | 
 |         and release. JavaScriptCore has to follow this rule as well. | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2010-04-11  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         <rdar://problem/7851332> Fix the build. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMallocStats::): Initialize extra members of malloc_introspection_t to zero. | 
 |  | 
 | 2010-04-09  Mikhail Naganov  <mnaganov@chromium.org> | 
 |  | 
 |         Reviewed by Pavel Feldman. | 
 |  | 
 |         Make CallIdentifier constructor to handle null urls. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37341 | 
 |  | 
 |         * profiler/CallIdentifier.h: | 
 |         (JSC::CallIdentifier::CallIdentifier): | 
 |  | 
 | 2010-04-09  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Fix crashes with package builds in release | 
 |  | 
 |         Add NDEBUG to the defines for package build in JavaScriptCore.pri, | 
 |         so that it's consistently used for JavaScriptCore, WebCore, jsc and all | 
 |         other tools using wtf, etc. data structures directly. Mixing NDEBUG with | 
 |         non-NDEBUG builds causes crashes due to differences in data structures when | 
 |         assertions/checks are enabled. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2010-04-09  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Implement NO_RETURN for COMPILER(MSVC). | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33056  | 
 |  | 
 |         Added NO_RETURN_WITH_VALUE for functions with non-void return type. | 
 |  | 
 |         * jsc.cpp: | 
 |         * wtf/AlwaysInline.h: | 
 |         * wtf/FastMalloc.cpp: | 
 |  | 
 | 2010-04-08  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [WINCE] Check if ARM or _ARM_ is defined | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37200 | 
 |  | 
 |         MSVC defines ARM and _ARM_ for Windows CE ARM. Define WTF_CPU_ARM=1 | 
 |         when either ARM or _ARM_ is defined. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-04-08  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Reviewed Oliver Hunt. | 
 |  | 
 |         [Qt]r57240 broke Qt build (might be a gcc bug) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37253 | 
 |  | 
 |         Workaround until fix. On PLATFORM(QT) use inline instead of ALWAYS_INLINE. | 
 |  | 
 |         * wtf/PassRefPtr.h: Qt guards added. | 
 |  | 
 | 2010-04-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Anders Carlsson. | 
 |  | 
 |         Vector<UString> makes many needless calls to UString::UString and UString::~UString | 
 |  | 
 |         Add a VectorTrait<UString> specialisation to allow vector to simply memset/memcpy | 
 |         data around.  Only difference from the VectorTrait<RefPtr<T> > traits is the inability | 
 |         to use memset to initialize data. | 
 |  | 
 |         * runtime/UString.h: | 
 |         (WTF::): | 
 |  | 
 | 2010-04-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Beat gcc with a clue bat -- force inlining of refIfNotNull and derefIfNotNull | 
 |  | 
 |         * wtf/PassRefPtr.h: | 
 |  | 
 | 2010-04-07  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Replace isprint with isASCIIPrintable | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37223 | 
 |  | 
 |         WebKit does not use functions in <ctype.h> as they are dependent on the current | 
 |         locale. Use the equivalent functions in <wtf/ASCIICType.h>. isASCIIPrintable | 
 |         replaces isprint. | 
 |  | 
 |         * pcre/pcre_exec.cpp: | 
 |         (pchars): | 
 |  | 
 | 2010-04-07  Enrica Casucci  <enrica@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37219 | 
 |          | 
 |         This change disables text caret for the iPhone platflorm. | 
 |          | 
 |         * wtf/Platform.h: Disabled text caret for iPhone. | 
 |  | 
 | 2010-04-06  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         REGRESSION: Worker termination via JS timeout may cause worker tests like fast/workers/worker-terminate.html fail. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36646 | 
 |  | 
 |         Add a new exception type for forcibly terminating a JavaScript stack. | 
 |         The new exception functions similarly to the | 
 |         InterruptedExecutionException but is conceptually different because | 
 |         execution is terminated instead of just interrupted. | 
 |  | 
 |         * GNUmakefile.am: | 
 |             - Added new Terminator.h file. | 
 |         * JavaScriptCore.gypi: | 
 |             - Added new Terminator.h file. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |             - Added new Terminator.h file. | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |             - Added new Terminator.h file. | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::throwException): | 
 |             - Fully unwind the stack for TerminatedExecutionException. | 
 |         (JSC::Interpreter::privateExecute): | 
 |             - Check if we've been terminated at the same time we check if we've | 
 |               timed out. | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |             - Check if we've been terminated at the same time we check if we've | 
 |               timed out. | 
 |         * runtime/Completion.cpp: | 
 |             - Some exceptions define special completion types so that calls can | 
 |               see why we terminated evaluation. | 
 |         (JSC::evaluate): | 
 |         * runtime/Completion.h: | 
 |             - Define a new completion type for termination. | 
 |         (JSC::): | 
 |         * runtime/ExceptionHelpers.cpp: | 
 |             - Define TerminatedExecutionException and refactor pseudo-RTTI | 
 |               virtual function to be more semantic. | 
 |         (JSC::InterruptedExecutionError::exceptionType): | 
 |         (JSC::TerminatedExecutionError::TerminatedExecutionError): | 
 |         (JSC::TerminatedExecutionError::exceptionType): | 
 |         (JSC::TerminatedExecutionError::toString): | 
 |         (JSC::createTerminatedExecutionException): | 
 |         * runtime/ExceptionHelpers.h: | 
 |             - Entry point for generating a TerminatedExecutionException. | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |             - Add a Terminator object that can be used to asynchronously | 
 |               terminate a JavaScript execution stack. | 
 |         * runtime/JSGlobalData.h: | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::exceptionType): | 
 |             - Define that, by default, thrown objects have a normal exception | 
 |               type. | 
 |         * runtime/Terminator.h: Added. | 
 |             - Added a new controller object that can be used to terminate | 
 |               execution asynchronously.  This object is more or less a | 
 |               glorified bool. | 
 |         (JSC::Terminator::Terminator): | 
 |         (JSC::Terminator::termianteSoon): | 
 |         (JSC::Terminator::shouldTerminate): | 
 |  | 
 | 2010-04-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         And another one. | 
 |  | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |  | 
 | 2010-04-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         And another build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: | 
 |  | 
 | 2010-04-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Build fix | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |  | 
 | 2010-04-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Support weak maps in JSC | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37132 | 
 |  | 
 |         Expose an API to allow creation of a map for storing | 
 |         weak JS references. | 
 |  | 
 |         * API/JSWeakObjectMapRefInternal.h: Added. | 
 |         (OpaqueJSWeakObjectMap::create): | 
 |         (OpaqueJSWeakObjectMap::map): | 
 |         (OpaqueJSWeakObjectMap::~OpaqueJSWeakObjectMap): | 
 |         (OpaqueJSWeakObjectMap::OpaqueJSWeakObjectMap): | 
 |         * API/JSWeakObjectMapRefPrivate.cpp: Added. | 
 |         * API/JSWeakObjectMapRefPrivate.h: Added. | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::registerWeakMap): | 
 |         (JSC::JSGlobalObject::deregisterWeakMap): | 
 |  | 
 | 2010-04-05  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Symbian] Consolidate Symbian WINSCW environment configuration | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37100 | 
 |  | 
 |         Move the "undefinition" of WIN32 and _WIN32 from WebCore/config.h | 
 |         to JavaScriptCore/wtf/Platform.h as it is not specific to WebCore. | 
 |  | 
 |         PLATFORM(WIN) and OS(WIN) no longer needs to be undefined as | 
 |         undefining WIN32 takes care of it. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-04-03  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37068 | 
 |         Change UString to use a 0 rep for null strings instead of a null object. | 
 |  | 
 |         No performance impact. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/InternalFunction.cpp: | 
 |         (JSC::InternalFunction::InternalFunction): | 
 |         * runtime/JSString.h: | 
 |         (JSC::RopeBuilder::JSString): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::initializeUString): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::UString): | 
 |         (JSC::UString::data): | 
 |         (JSC::UString::size): | 
 |         (JSC::UString::isNull): | 
 |         (JSC::UString::isEmpty): | 
 |         (JSC::UString::cost): | 
 |  | 
 | 2010-04-03  Balazs Kelemen  <kb@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fix uninitalised members in CallLinkInfo and BytecodeGenerator. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36816 | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CallLinkInfo::CallLinkInfo): | 
 |  | 
 | 2010-04-03  yael aharon  <yael.aharon@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Enable HTMLProgressElement for Safari on OSX | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36961 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-04-02  Ruben Van Boxem  <vanboxem.ruben@gmail.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Mingw-w64 fixes for JavaScriptCore | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35607 | 
 |  | 
 |         * runtime/Collector.cpp: use the msvc code for mingw-w64 (but not mingw-w32) | 
 |         (JSC::Heap::allocateBlock): | 
 |         (JSC::Heap::freeBlockPtr): | 
 |         (JSC::currentThreadStackBase): | 
 |         (JSC::currentThreadStackBase): | 
 |         * wtf/Platform.h: added COMPILER(MINGW64) check to differentiate between mingw.org and mingw-w64 functions | 
 |  | 
 | 2010-04-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: updated the .def file. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-04-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Inlined toThisString and toThisJSString to avoid virtual function call overhead | 
 |         https://bugs.webkit.org/show_bug.cgi?id=37039 | 
 |          | 
 |         Maybe a 1% speedup on iBench JS. | 
 |  | 
 |         * JavaScriptCore.exp: New exports. | 
 |  | 
 |         * runtime/JSCell.cpp: | 
 |         * runtime/JSCell.h: | 
 |         * runtime/JSNumberCell.cpp: | 
 |         * runtime/JSNumberCell.h: | 
 |         * runtime/JSString.cpp: | 
 |         * runtime/JSString.h: | 
 |         * runtime/JSValue.h: | 
 |         * runtime/JSZombie.h: | 
 |         (JSC::JSZombie::toThisObject): Nixed the old virtual-type implementation. | 
 |  | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSValue::toThisString): | 
 |         (JSC::JSValue::toThisJSString): Added the inlined implementation. | 
 |  | 
 | 2010-04-02  Jeremy Moskovich  <jeremy@chromium.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Beef up documentation for ASSERT* and CRASH macros a bit. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36527 | 
 |  | 
 |         * wtf/Assertions.h: | 
 |  | 
 | 2010-04-02  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed, minor build fix. | 
 |  | 
 |         Change the order of the member initialisation list | 
 |         in constructor to match declaration order | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::Heap): | 
 |  | 
 | 2010-04-01  Kinuko Yasuda  <kinuko@chromium.org> | 
 |  | 
 |         Reviewed by Dmitry Titov. | 
 |  | 
 |         Add FileThread for async file operation support in FileReader and FileWriter | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36896 | 
 |  | 
 |         Add ENABLE_FILE_READER and ENABLE_FILE_WRITER flags. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-03-31  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix pt II). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-31  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-31  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 36871 - Remove JSC::CString | 
 |         Use WTF::CString instead (which until recently was WebCore::CString). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * runtime/UString.cpp: | 
 |         * runtime/UString.h: | 
 |  | 
 | 2010-03-31  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed, fix after r56842. | 
 |  | 
 |         Add UNUSED_PARAM a to silence warning. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |  | 
 | 2010-03-31  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed, Symbian build fix. | 
 |  | 
 |         Refactor JITStubs.cpp so that the list of STUB_FUNCTIONs | 
 |         are not dependent on the JSVALUE32_64 guard. | 
 |  | 
 |         * jit/JITStubs.cpp: Place the JSVALUE32_64 guard inside  | 
 |         the body of cti_op_eq_strings. | 
 |         * jit/JITStubs.h: Remove JSVALUE32_64 guard from  | 
 |         cti_op_eq_strings stub. | 
 |  | 
 | 2010-03-30  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 |         Fixing b0rked version of JavaScriptCore.vcproj - added lines were truncated. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |  | 
 | 2010-03-30  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36866 | 
 |         Move CString to WTF | 
 |  | 
 |         * Android.mk: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pro: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * wtf/text: Added. | 
 |         * wtf/text/CString.cpp: Copied from WebCore/platform/text/CString.cpp. | 
 |         * wtf/text/CString.h: Copied from WebCore/platform/text/CString.h. | 
 |         (WTF::CStringBuffer::data): | 
 |         (WTF::CStringBuffer::length): | 
 |         (WTF::CStringBuffer::create): | 
 |         (WTF::CStringBuffer::CStringBuffer): | 
 |         (WTF::CStringBuffer::mutableData): | 
 |         (WTF::CString::CString): | 
 |         (WTF::CString::isNull): | 
 |         (WTF::CString::buffer): | 
 |         (WTF::operator!=): | 
 |  | 
 | 2010-03-30  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by nobody, build break. | 
 |  | 
 |         [Qt] Fix build break on Qt Mac. | 
 |  | 
 |         DESTDIR path on Mac do not include the configuration path by default | 
 |         like on Windows. Have to force it. | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2010-03-29  Alice Liu  <alice.liu@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: | 
 |         add JSObjectRefPrivate.h | 
 |  | 
 | 2010-03-29  Chao-ying Fu  <fu@mips.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         MIPS JIT Supports | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30144 | 
 |  | 
 |         The following changes enable MIPS JIT. | 
 |  | 
 |         * assembler/MIPSAssembler.h: | 
 |         (JSC::MIPSAssembler::lbu): | 
 |         (JSC::MIPSAssembler::linkWithOffset): | 
 |         * assembler/MacroAssemblerMIPS.h: | 
 |         (JSC::MacroAssemblerMIPS::load8): | 
 |         (JSC::MacroAssemblerMIPS::branch8): | 
 |         (JSC::MacroAssemblerMIPS::branchTest8): | 
 |         (JSC::MacroAssemblerMIPS::setTest8): | 
 |         (JSC::MacroAssemblerMIPS::setTest32): | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::preserveReturnAddressAfterCall): | 
 |         (JSC::JIT::restoreReturnAddressBeforeReturn): | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITStackFrame::returnAddressSlot): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-26  Kenneth Rohde Christiansen  <kenneth@webkit.org> | 
 |  | 
 |         Reviewed by Simon Fraser. | 
 |  | 
 |         Add support for Widgets 1.0: View Mode Media Feature | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35446 | 
 |  | 
 |         Add an enable flag for the Widgets (http://www.w3.org/TR/widgets-reqs/) | 
 |         and turn it on for Qt only. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-03-29  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Corrected name of (u)int64_t compile time assert. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36739 | 
 |  | 
 |         int64_t_is_four_bytes -> int64_t_is_eight_bytes | 
 |  | 
 |         * os-win32/stdint.h: | 
 |  | 
 | 2010-03-29  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Use the -l syntax for linking against JavaScriptCore on Windows. | 
 |         This allow qmake to extract dependencies correctly when generating VS | 
 |         solutions. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2010-03-29  Thomas Zander  <t.zander@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36742 | 
 |  | 
 |         gcc for Symbian doesn't support gcc extensions like atomicity.h - disable | 
 |  | 
 |         * wtf/Threading.h: also detect os symbian | 
 |  | 
 | 2010-03-28  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Remove the definition of WTF_CHANGES guards from the build system | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31670 | 
 |    | 
 |         * JavaScriptCore.pro: Remove the definition of WTF_CHANGES | 
 |         as it is already defined in config.h | 
 |  | 
 | 2010-03-28  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Add API for reporting additional memory cost of JavaScript objects | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36650 | 
 |  | 
 |         * qt/api/qscriptengine.cpp: | 
 |         (QScriptEngine::reportAdditionalMemoryCost): | 
 |         * qt/api/qscriptengine.h: | 
 |         * qt/api/qscriptengine_p.h: | 
 |         (QScriptEnginePrivate::reportAdditionalMemoryCost): | 
 |         * qt/tests/qscriptengine/tst_qscriptengine.cpp: | 
 |         (tst_QScriptEngine::reportAdditionalMemoryCost): | 
 |  | 
 | 2010-03-28  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         QScriptEngine API was enriched by globalObject() method | 
 |         which give an access to the global object. | 
 |  | 
 |         [Qt] QScriptEngine doesn't give an access to global object | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36603 | 
 |  | 
 |         * qt/api/qscriptengine.cpp: | 
 |         (QScriptEngine::globalObject): | 
 |         * qt/api/qscriptengine.h: | 
 |         * qt/api/qscriptengine_p.cpp: | 
 |         (QScriptEnginePrivate::globalObject): | 
 |         * qt/api/qscriptengine_p.h: | 
 |         * qt/tests/qscriptengine/tst_qscriptengine.cpp: | 
 |         (tst_QScriptEngine::globalObject): | 
 |  | 
 | 2010-03-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Build JavaScriptCore as a static library. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36590 | 
 |  | 
 |         This patch takes what was left of the unused JavaScriptCore.pro | 
 |         and moved the compilation logic from JavaScriptCore.pri to | 
 |         JavaScriptCore.pro. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.pro: | 
 |         * jsc.pro: | 
 |         * qt/api/QtScript.pro: | 
 |  | 
 | 2010-03-25  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         * profiler/ProfileGenerator.cpp: | 
 |         (JSC::ProfileGenerator::willExecute): | 
 |         (JSC::ProfileGenerator::didExecute): | 
 |  | 
 | 2010-03-25  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 36611 - Cleanup JSC::CString | 
 |         Rename CString::c_str() -> CString::data(), CString::size() -> CString::length(), | 
 |         remove UString::getCString() (all uses are wrong, should use UString::UTF8String()). | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::printUnaryOp): | 
 |         (JSC::CodeBlock::printBinaryOp): | 
 |         (JSC::CodeBlock::printConditionalJump): | 
 |         (JSC::CodeBlock::printGetByIdOp): | 
 |         (JSC::CodeBlock::printPutByIdOp): | 
 |         (JSC::printGlobalResolveInfo): | 
 |         (JSC::printStructureStubInfo): | 
 |         (JSC::CodeBlock::printStructure): | 
 |         (JSC::CodeBlock::printStructures): | 
 |         (JSC::CodeBlock::dump): | 
 |         * jsc.cpp: | 
 |         (functionPrint): | 
 |         (functionDebug): | 
 |         (runInteractive): | 
 |         (fillBufferWithContentsOfFile): | 
 |         * profiler/CallIdentifier.h: | 
 |         (JSC::CallIdentifier::c_str): | 
 |         * profiler/Profile.cpp: | 
 |         (JSC::Profile::debugPrintDataSampleStyle): | 
 |         * profiler/ProfileNode.cpp: | 
 |         (JSC::ProfileNode::debugPrintData): | 
 |         (JSC::ProfileNode::debugPrintDataSampleStyle): | 
 |         * runtime/DateConversion.cpp: | 
 |         (JSC::parseDate): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::encode): | 
 |         (JSC::globalFuncJSCPrint): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::operator==): | 
 |         (JSC::UString::toDouble): | 
 |         * runtime/UString.h: | 
 |         (JSC::CString::length): | 
 |         (JSC::CString::data): | 
 |  | 
 | 2010-03-25  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by nobody, build fix. | 
 |  | 
 |         [Qt] Build fix on MSVC. Reverts r55633 for stdint.h | 
 |  | 
 |         This file gets included in generated moc files which don't | 
 |         include the prefix header. | 
 |  | 
 |         * os-win32/stdint.h: | 
 |  | 
 | 2010-03-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (windows build fix). | 
 |  | 
 | 2010-03-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Switch String::latin1, String::utf8, String::fromUTF8 to | 
 |         use WTF's Unicode conversion methods rather than TextEncoder. | 
 |         These methods only perform simple conversion, and don't need | 
 |         really require TextEncoder's full capability (to look up arbitrary | 
 |         encodings by name), switching to only be dependent on WTF will | 
 |         make it easier if we chose to move WebCore::String to WTF. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2010-03-24  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         * wtf/FastMalloc.h: Added a using directive for fastMallocSize, like we do for all public | 
 |         WTF symbols. Also sorted the list alphabetically. | 
 |  | 
 | 2010-03-23  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (speculative windows build fix part II). | 
 |  | 
 | 2010-03-23  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (speculative windows build fix). | 
 |  | 
 | 2010-03-23  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 36519 - JSGlobalContextRelease is unnecessarily slow | 
 |  | 
 |         Since [ http://trac.webkit.org/changeset/35917 ], calling | 
 |         JSGlobalContextRelease always triggers a GC heap collection | 
 |         (if not a full destroy). As per 35917's changelog "This is | 
 |         only really necessary when the (JSGlobalObject's) last | 
 |         reference is released, but there is no way to determine that, | 
 |         and no harm in collecting slightly more often." | 
 |          | 
 |         Well, we now know of cases of API clients who are harmed by | 
 |         the performance penalty of collecting too often, so it's time | 
 |         to add a way to determine whether a call to JSGlobalContextRelease | 
 |         is removing the last protect from it's global object.  If further | 
 |         protects are retaining the global object (likely from other | 
 |         JSGlobalContextRefs), then don't trigger a GC collection. | 
 |  | 
 |         * API/JSContextRef.cpp: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::unprotect): return a boolean indicating that the value is now unprotected. | 
 |         * runtime/Collector.h: | 
 |         * wtf/HashCountedSet.h: | 
 |         (WTF::::remove): return a boolean indicating whether the value was removed from the set. | 
 |  | 
 | 2010-03-23  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Build fix. | 
 |  | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncSplice): Some versions of GCC emit a warning about the implicit 64- to 32-bit truncation | 
 |         that takes place here. An explicit cast is sufficient to silence it. | 
 |  | 
 | 2010-03-23  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Build fix. | 
 |  | 
 |         * runtime/ArrayPrototype.cpp: (JSC::arrayProtoFuncSplice): Fixed a typo - length doesn't | 
 |         need to be converted with toInteger(). | 
 |  | 
 | 2010-03-23  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36511 | 
 |         <rdar://problem/7753498> Safari freezes when using SPUTNIK JavaScript conformance check | 
 |  | 
 |         Test: fast/js/sputnik-S15.4.4.12_A3_T3.html | 
 |  | 
 |         * runtime/ArrayPrototype.cpp: (JSC::arrayProtoFuncSplice): We were incorrectly computing | 
 |         the start offset, and iterated over (almost) all integers. Note that this can be fixed | 
 |         without using doubles, but the code would be much more complicated, and there is no important | 
 |         reason to stick to integers here. | 
 |  | 
 | 2010-03-23  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix compilation on Itanium in 32-bit mode | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36494 | 
 |  | 
 |         * wtf/Platform.h: Introduce CPU(IA64_32). Don't define | 
 |           WTF_USE_JSVALUE64 if the CPU is in 32-bit mode. | 
 |  | 
 | 2010-03-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Interpreter fix for <rdar://problem/7728196> REGRESSION (r46701): -(-2147483648) | 
 |         evaluates to -2147483648 on 32 bit (35842) | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): Only take the fast negate path if | 
 |         a bit other than bit 31 is set. If none of bits 0-30 are set, then the | 
 |         value we're negating can only be 0 or -2147483648, and neither can be | 
 |         negated in int space. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_negate): | 
 |         (JSC::JIT::emitSlow_op_negate): Updated the JIT implementation to match | 
 |         the interpreter, since it's slightly simpler. | 
 |  | 
 | 2010-03-22  Siddharth Mathur  <siddharth.mathur@nokia.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [Symbian] More efficient aligned memory allocation for JSC Collector | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34350 | 
 |  | 
 |         * JavaScriptCore.pri: Added 2 new Symbian source files and HAL linkage | 
 |  | 
 |         * runtime/Collector.cpp: Reduced port-specific code and added private data member | 
 |         (JSC::Heap::Heap): | 
 |         (JSC::Heap::~Heap): | 
 |         (JSC::Heap::destroy): | 
 |         (JSC::Heap::allocateBlock): | 
 |         (JSC::Heap::freeBlockPtr): | 
 |  | 
 |         * runtime/Collector.h: Added private data member | 
 |  | 
 |         * wtf/symbian: Added. | 
 |         * wtf/symbian/BlockAllocatorSymbian.cpp: Added. | 
 |         (WTF::AlignedBlockAllocator::AlignedBlockAllocator): Helper class to allocate  | 
 |         aligned blocks more efficiently as required by Collector | 
 |         (WTF::AlignedBlockAllocator::alloc): | 
 |         (WTF::AlignedBlockAllocator::free): | 
 |         (WTF::AlignedBlockAllocator::destroy): | 
 |         (WTF::AlignedBlockAllocator::~AlignedBlockAllocator): | 
 |         * wtf/symbian/BlockAllocatorSymbian.h: Added. | 
 |  | 
 | 2010-03-22  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Fixed <rdar://problem/7728196> REGRESSION (r46701): -(-2147483648) | 
 |         evaluates to -2147483648 on 32 bit (35842) | 
 |          | 
 |         Two ways to fix the same bug: | 
 |          | 
 |         1. Check for overflow when negating, since negating the largest negative | 
 |         int causes overflow. | 
 |          | 
 |         2. Constant-fold even when negating a negative, since, like they say in | 
 |         high school, "math works." | 
 |  | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::branchNeg32): | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::branchNeg32): Added a branching version | 
 |         of the negate operator. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_negate): Use the branching version of the negate  | 
 |         operator to check for overflow. | 
 |  | 
 |         (JSC::JIT::emitSlow_op_negate): Link the check for overflow to a slow case. | 
 |         (We could emit inline code for this, since we know what the result would | 
 |         be, but that's probably just a waste of generated code.) | 
 |  | 
 |         * parser/Grammar.y: Constant fold even when negating a negative. | 
 |  | 
 | 2010-03-22  David Kilzer  <ddkilzer@apple.com> | 
 |  | 
 |         <http://webkit.org/b/36431> Clean up 'int' use in UString.cpp after r54789 | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::from): Changed argument type from 'unsigned int' | 
 |         to 'unsigned' to match WebKit coding style. | 
 |         (JSC::UString::find): Changed static_cast<int>() to | 
 |         static_cast<unsigned>() now that this method returns unsigned. | 
 |         (JSC::UString::rfind): Ditto. | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::from): Changed argument type from 'unsigned int' | 
 |         to 'unsigned' to match WebKit coding style. | 
 |  | 
 | 2010-03-22  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Add support for syntax checking in the QtScript API. | 
 |  | 
 |         New class was created; the QScriptSyntaxCheckResult which main | 
 |         responsibility is to provide results of the ECMA Script code | 
 |         syntax check. The class is not fully functional as the JSC C API | 
 |         doesn't expose an error column number, but it is a good start point | 
 |         for a future development. | 
 |  | 
 |         [Qt] QtScript functionality should be extended by syntax checking. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36123 | 
 |  | 
 |         * qt/api/QtScript.pro: | 
 |         * qt/api/qscriptengine.cpp: | 
 |         (QScriptEngine::checkSyntax): | 
 |         * qt/api/qscriptengine.h: | 
 |         * qt/api/qscriptengine_p.cpp: | 
 |         (QScriptEnginePrivate::checkSyntax): | 
 |         * qt/api/qscriptengine_p.h: | 
 |         * qt/api/qscriptsyntaxcheckresult.cpp: Added. | 
 |         (QScriptSyntaxCheckResult::QScriptSyntaxCheckResult): | 
 |         (QScriptSyntaxCheckResult::~QScriptSyntaxCheckResult): | 
 |         (QScriptSyntaxCheckResult::operator=): | 
 |         (QScriptSyntaxCheckResult::state): | 
 |         (QScriptSyntaxCheckResult::errorLineNumber): | 
 |         (QScriptSyntaxCheckResult::errorColumnNumber): | 
 |         (QScriptSyntaxCheckResult::errorMessage): | 
 |         * qt/api/qscriptsyntaxcheckresult.h: Added. | 
 |         * qt/api/qscriptsyntaxcheckresult_p.cpp: Added. | 
 |         (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate): | 
 |         (QScriptSyntaxCheckResultPrivate::errorMessage): | 
 |         (QScriptSyntaxCheckResultPrivate::errorLineNumber): | 
 |         * qt/api/qscriptsyntaxcheckresult_p.h: Added. | 
 |         (QScriptSyntaxCheckResultPrivate::get): | 
 |         (QScriptSyntaxCheckResultPrivate::QScriptSyntaxCheckResultPrivate): | 
 |         (QScriptSyntaxCheckResultPrivate::state): | 
 |         (QScriptSyntaxCheckResultPrivate::errorColumnNumber): | 
 |         * qt/tests/qscriptengine/tst_qscriptengine.cpp: | 
 |         (tst_QScriptEngine::checkSyntax_data): | 
 |         (tst_QScriptEngine::checkSyntax): | 
 |  | 
 | 2010-03-21  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         New class; QScriptProgram. | 
 |  | 
 |         The class should be used to evaluate the same script multiple times | 
 |         more efficiently. | 
 |  | 
 |         [Qt] QtScript should have QScriptProgram class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36008 | 
 |  | 
 |         * qt/api/QtScript.pro: | 
 |         * qt/api/qscriptengine.cpp: | 
 |         (QScriptEngine::evaluate): | 
 |         * qt/api/qscriptengine.h: | 
 |         * qt/api/qscriptengine_p.cpp: | 
 |         (QScriptEnginePrivate::evaluate): | 
 |         * qt/api/qscriptengine_p.h: | 
 |         (QScriptEnginePrivate::evaluate): | 
 |         * qt/api/qscriptprogram.cpp: Added. | 
 |         (QScriptProgram::QScriptProgram): | 
 |         (QScriptProgram::~QScriptProgram): | 
 |         (QScriptProgram::operator=): | 
 |         (QScriptProgram::isNull): | 
 |         (QScriptProgram::sourceCode): | 
 |         (QScriptProgram::fileName): | 
 |         (QScriptProgram::firstLineNumber): | 
 |         (QScriptProgram::operator==): | 
 |         (QScriptProgram::operator!=): | 
 |         * qt/api/qscriptprogram.h: Added. | 
 |         * qt/api/qscriptprogram_p.h: Added. | 
 |         (QScriptProgramPrivate::get): | 
 |         (QScriptProgramPrivate::QScriptProgramPrivate): | 
 |         (QScriptProgramPrivate::~QScriptProgramPrivate): | 
 |         (QScriptProgramPrivate::isNull): | 
 |         (QScriptProgramPrivate::sourceCode): | 
 |         (QScriptProgramPrivate::fileName): | 
 |         (QScriptProgramPrivate::firstLineNumber): | 
 |         (QScriptProgramPrivate::operator==): | 
 |         (QScriptProgramPrivate::operator!=): | 
 |         (QScriptProgramPrivate::program): | 
 |         (QScriptProgramPrivate::file): | 
 |         (QScriptProgramPrivate::line): | 
 |         * qt/tests/qscriptengine/tst_qscriptengine.cpp: | 
 |         (tst_QScriptEngine::evaluateProgram): | 
 |  | 
 | 2010-03-21  David Kilzer  <ddkilzer@apple.com> | 
 |  | 
 |         Blind attempt #2 to fix the Windows build after r56314 | 
 |  | 
 |         * API/tests/testapi.c: Include JSObjectRefPrivate.h for the new | 
 |         methods instead of declaring them locally (and non-extern). | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         Backed out previous change. | 
 |  | 
 | 2010-03-21  David Kilzer  <ddkilzer@apple.com> | 
 |  | 
 |         Blind attempt to fix the Windows build after r56314 | 
 |  | 
 |         Try to fix the following errors on the Windows buildbot: | 
 |  | 
 |             Linking... | 
 |             testapi.obj : error LNK2001: unresolved external symbol "bool __cdecl JSObjectSetPrivateProperty(struct OpaqueJSContext const *,struct OpaqueJSValue *,struct OpaqueJSString *,struct OpaqueJSValue const *)" (?JSObjectSetPrivateProperty@@YA_NPBUOpaqueJSContext@@PAUOpaqueJSValue@@PAUOpaqueJSString@@PBU2@@Z) | 
 |             testapi.obj : error LNK2001: unresolved external symbol "struct OpaqueJSValue const * __cdecl JSObjectGetPrivateProperty(struct OpaqueJSContext const *,struct OpaqueJSValue *,struct OpaqueJSString *)" (?JSObjectGetPrivateProperty@@YAPBUOpaqueJSValue@@PBUOpaqueJSContext@@PAU1@PAUOpaqueJSString@@@Z) | 
 |             C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\bin\testapi.exe : fatal error LNK1120: 2 unresolved externals | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Added | 
 |         missing symbols to be exported. | 
 |  | 
 | 2010-03-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Documentation fix for previous patch. | 
 |  | 
 |         * API/JSObjectRefPrivate.h: | 
 |  | 
 | 2010-03-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         JSC needs an API to allow custom objects to have aprivate GC-accessible properties | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36420 | 
 |  | 
 |         Add new API methods to support "private" properties on custom | 
 |         objects. | 
 |  | 
 |         * API/JSCallbackObject.h: | 
 |         (JSC::JSCallbackObjectData::JSCallbackObjectData): | 
 |         (JSC::JSCallbackObjectData::~JSCallbackObjectData): | 
 |         (JSC::JSCallbackObjectData::getPrivateProperty): | 
 |         (JSC::JSCallbackObjectData::setPrivateProperty): | 
 |         (JSC::JSCallbackObjectData::deletePrivateProperty): | 
 |         (JSC::JSCallbackObjectData::markChildren): | 
 |         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty): | 
 |         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty): | 
 |         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::deletePrivateProperty): | 
 |         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren): | 
 |         (JSC::JSCallbackObject::getPrivateProperty): | 
 |         (JSC::JSCallbackObject::setPrivateProperty): | 
 |         (JSC::JSCallbackObject::deletePrivateProperty): | 
 |         (JSC::JSCallbackObject::markChildren): | 
 |         * API/JSObjectRef.cpp: | 
 |         (JSObjectGetPrivateProperty): | 
 |         (JSObjectSetPrivateProperty): | 
 |         (JSObjectDeletePrivateProperty): | 
 |         * API/JSObjectRefPrivate.h: Added. | 
 |         * API/tests/testapi.c: | 
 |         (main): | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2010-03-20  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         [wx] Build fixes after introduction of Brew files. | 
 |  | 
 |         * wscript: | 
 |  | 
 | 2010-03-18  Tom Callaway  <tcallawa@redhat.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Bug 35429: Fix compile on SPARC64 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35429 | 
 |  | 
 |         * wtf/Platform.h: Set WTF_USE_JSVALUE64 for SPARC64 | 
 |  | 
 | 2010-03-18  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Add API to directly expose JSON parsing | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34887 | 
 |  | 
 |         Add API to expose JSON parsing directly, and add tests to testapi | 
 |  | 
 |         * API/JSValueRef.cpp: | 
 |         (JSValueMakeFromJSONString): | 
 |         (JSValueCreateJSONString): | 
 |         * API/tests/testapi.c: | 
 |         (main): | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::JSONStringify): | 
 |         * runtime/JSONObject.h: | 
 |  | 
 | 2010-03-16  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler and Mark Rowe. | 
 |  | 
 |         Update WebKit availability macros for release after 4.0. | 
 |  | 
 |         * API/WebKitAvailability.h: | 
 |  | 
 | 2010-03-17  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         undefined, NaN, and Infinity should be ReadOnly | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36263 | 
 |  | 
 |         Simply add the ReadOnly flag to these properties. | 
 |  | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::reset): | 
 |  | 
 | 2010-03-17  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Speed up Math.round a little by removing unneeded special case | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36107 | 
 |  | 
 |         Test: fast/js/math.html | 
 |  | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::mathProtoFuncRound): This function had a special case for numbers | 
 |         between -0.5 and -0.0 to return -0.0. But the algorithm in the function | 
 |         already yields -0.0 for those cases, so the extra checking and branching | 
 |         is unneeded. | 
 |  | 
 | 2010-03-17  Mike Homey  <glandium@debian.org> | 
 |  | 
 |         Reviewed by Gustavo Noronha. | 
 |  | 
 |         Build fix for SPARC. Fix missing macro value. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-03-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt, Darin Adler. | 
 |  | 
 |         Bug 36083 - REGRESSION (r55772-r55834): Crash in JavaScriptCore RegExp code on PowerPC | 
 |  | 
 |         The problem is a bug in our port of PCRE - that a read may take place from the first character in an | 
 |         empty string.  For the time being, revert to using a valid pointer in the data segment rather than | 
 |         an invalid non-null pointer into the zero-page for the empty string's data pointer.  A better fix for | 
 |         this will be to remove PCRE. | 
 |  | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::empty): | 
 |  | 
 | 2010-03-16  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Rolled out r56081 since it broke the Windows build. | 
 |  | 
 | 2010-03-16  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Remove extra <new> include and add guards to operator new/delete definitions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35967 | 
 |  | 
 |         Remove extra <new> header include from FastAlloc.cpp since it is included in  | 
 |         FastAlloc.h. Add ENABLE(GLOBAL_FASTMALLOC_NEW) macro guard to operator | 
 |         new/delete/new []/delete [] definitions. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |  | 
 | 2010-03-15  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Add a function to create a BREW instance without local variable declarations. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34705 | 
 |  | 
 |         Add a template function to create a BREW instance in one line. | 
 |  | 
 |         * wtf/brew/ShellBrew.h: Added. | 
 |         (WTF::createInstance): | 
 |  | 
 | 2010-03-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Not reviewed. | 
 |  | 
 |         Removed a now-incorrect comment I forgot to remove in my last check-in. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::scavenge): | 
 |  | 
 | 2010-03-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Fixed a portion of: | 
 |         <rdar://problem/7165917> | https://bugs.webkit.org/show_bug.cgi?id=28676 | 
 |         Safari 4 does not release memory back to the operating system fast enough (28676) | 
 |  | 
 |         Every few seconds, release a percentage of the minimum unused page count | 
 |         during that time period. | 
 |  | 
 |         SunSpider reports no change, command-line or in-browser, Mac or Windows. | 
 |          | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::init): | 
 |         (WTF::TCMalloc_PageHeap::signalScavenger): | 
 |         (WTF::TCMalloc_PageHeap::initializeScavenger): Renamed shouldContinueScavenging | 
 |         to shouldScavenge, since scavenging is no longer something that we interrupt. | 
 |  | 
 |         (WTF::TCMalloc_PageHeap::scavenge): The new scavenging algorithm. Fixes | 
 |         a bug where the old code would release only one item from each size class | 
 |         per scavenge, potentially leaving large numbers of large-sized objects | 
 |         unreleased for a long time. | 
 |  | 
 |         (WTF::TCMalloc_PageHeap::shouldScavenge): | 
 |         (WTF::TCMalloc_PageHeap::New): | 
 |         (WTF::TCMalloc_PageHeap::AllocLarge): | 
 |         (WTF::TCMalloc_PageHeap::Delete): | 
 |         (WTF::TCMalloc_PageHeap::GrowHeap): | 
 |         (WTF::TCMalloc_PageHeap::scavengerThread): | 
 |         (WTF::TCMalloc_PageHeap::periodicScavenge): Updated to track the minimum | 
 |         value of free_committed_pages_ during a given scavenge period. | 
 |  | 
 | 2010-03-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35843 | 
 |         Re-land reverted fix to JSString::getIndex() | 
 |  | 
 |         Calling getIndex() on a JSString in rope form may result in a JSException being thrown | 
 |         if there is insuficient memory so value(exec) returns UString() with length zero, | 
 |         which will be passed to jsSingleCharacterSubstring. | 
 |         Add a slow case function to trap the error & return a safe null value, until the | 
 |         exception is handled. | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::getIndexSlowCase): | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         (JSC::jsSingleCharacterSubstring): | 
 |         (JSC::JSString::getIndex): | 
 |         (JSC::jsSingleCharacterString): | 
 |         (JSC::JSString::getStringPropertySlot): | 
 |  | 
 | 2010-03-04  Kenneth Rohde Christiansen  <kenneth@webkit.org> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         Add a long long version of abs() for MSVC. | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |         (abs): | 
 |  | 
 | 2010-03-15  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Combine ctiTrampolines on ARM and Thumb-2 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36014 | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |  | 
 | 2010-03-12  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-12  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 36075 - Clean up screwyness re static string impls & Identifiers. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::~OpaqueJSClass): Classname may be null/empty, and these are an identifer.  This is okay, since the null/empty strings are shared across all threads. | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::add): No need to explicitly hash null reps, this is done in the ststic UStringImpl constructor. | 
 |         (JSC::Identifier::addSlowCase): UStringImpl::empty() handled & checkCurrentIdentifierTable now called in the header. | 
 |         (JSC::Identifier::checkCurrentIdentifierTable): Replaces checkSameIdentifierTable (this no longer checked the rep since the identifierTable pointer was removed from UString::Rep long ago). | 
 |         * runtime/Identifier.h: | 
 |         (JSC::Identifier::add): Replace call to checkSameIdentifierTable with call to checkCurrentIdentifierTable at head of function. | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::~UStringImpl): Remove call to checkConsistency - this function no longer checks anything interesting. | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringOrRopeImpl::UStringOrRopeImpl): Set s_refCountFlagIsIdentifier in static constructor. | 
 |         (JSC::UStringImpl::UStringImpl): remove calls to checkConsistency (see above), add new ASSERT to substring constructor. | 
 |         (JSC::UStringImpl::setHash): ASSERT not static (static strings set the hash in their constructor, should not reach this code path). | 
 |         (JSC::UStringImpl::create): Add missing ASSERT. | 
 |         (JSC::UStringImpl::setIsIdentifier): ASSERT !isStatic() (static strings hash set in constructor). | 
 |  | 
 | 2010-03-12  Peter Varga  <pvarga@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Two functions tryConsumeCharacter() and tryConsumeCharacterClass() are | 
 |         removed from yarr/RegexInterpreter.cpp because they are never called. | 
 |  | 
 |         * yarr/RegexInterpreter.cpp: | 
 |  | 
 | 2010-03-11  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         The JSNative state was renamed to JSPrimitive. The new name better | 
 |         coresponds to the ECMAScript standard. | 
 |  | 
 |         Enum QScriptValuePrivate::States was renamed to State to obey Qt | 
 |         coding style rules ("States" name suggests that a state could | 
 |         mixed together with an other state using bitwise logic operators. | 
 |  | 
 |         [Qt] QScriptValuePrivate::States has naming issues | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35968 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::): | 
 |         (QScriptValuePrivate::QScriptValuePrivate): | 
 |         (QScriptValuePrivate::isBool): | 
 |         (QScriptValuePrivate::isNumber): | 
 |         (QScriptValuePrivate::isNull): | 
 |         (QScriptValuePrivate::isString): | 
 |         (QScriptValuePrivate::isUndefined): | 
 |         (QScriptValuePrivate::toString): | 
 |         (QScriptValuePrivate::toNumber): | 
 |         (QScriptValuePrivate::toBool): | 
 |         (QScriptValuePrivate::assignEngine): | 
 |         (QScriptValuePrivate::refinedJSValue): | 
 |  | 
 | 2010-03-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Windows build fix). | 
 |  | 
 |         Add export. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Windows build fix). | 
 |  | 
 |         Add export. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Oliver Hunt. | 
 |  | 
 |         Remove nonsense comments used in development & commited in error. | 
 |  | 
 |         * runtime/UStringImpl.h: | 
 |  | 
 | 2010-03-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Windows build fix). | 
 |  | 
 |         Remove export. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=36041 | 
 |         Remove unnecessary differences in common code between WebCore::StringImpl & JSC::UStringImpl | 
 |  | 
 |         Much of the code in WebCore::StringImpl and JSC::UStringImpl is now very similar, | 
 |         but has trivial and unnecessary formatting differences, such as the exact wording | 
 |         of comments, missing ASSERTs, functions implemented in the .h vs .cpp etc. | 
 |  | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::add): UStringImpl::empty() now automatically hashes, uas per WebCore strings. | 
 |         (JSC::Identifier::addSlowCase): UStringImpl::empty() now automatically hashes, uas per WebCore strings. | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::~UStringImpl): Only call bufferOwnership() once, add missing ASSERTs. | 
 |         (JSC::UStringImpl::createUninitialized): Move from .h, not commonly called, no need to inline. | 
 |         (JSC::UStringImpl::create): Move from .h, not commonly called, no need to inline. | 
 |         (JSC::UStringImpl::sharedBuffer): Rewritten to more closely match WebCore implementation, remove need for separate baseSharedBuffer() method. | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::UStringImpl): Automatically hash static strings, ASSERT m_data & m_length are non-null/non-zero in non-static strings. | 
 |         (JSC::UStringImpl::setHash): Add missing ASSERT. | 
 |         (JSC::UStringImpl::create): Moved to .cpp / added missing check for empty string creation. | 
 |         (JSC::UStringImpl::adopt): Vector.size() returns size_t, not unsigned. | 
 |         (JSC::UStringImpl::cost): Renamed m_bufferSubstring -> m_substringBuffer | 
 |         (JSC::UStringImpl::hash): Reordered in file. | 
 |         (JSC::UStringImpl::existingHash): Reordered in file. | 
 |         (JSC::UStringImpl::computeHash): Reordered in file, renamed parameter. | 
 |         (JSC::UStringImpl::checkConsistency): rewrote ASSERT. | 
 |         (JSC::UStringImpl::bufferOwnership): Return type should be BufferOwnership. | 
 |         (JSC::UStringImpl::): Moved friends to head of class. | 
 |  | 
 | 2010-03-11  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by David Kilzer. | 
 |  | 
 |         <rdar://problem/7745082> Make it possible to build WebKit for older Mac OS X versions from the current Mac OS X version | 
 |  | 
 |         Default to using the appropriate SDK if the target Mac OS X version is not the current Mac OS X version. | 
 |  | 
 |         * Configurations/Base.xcconfig: | 
 |  | 
 | 2010-03-11  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Tim Hatcher. | 
 |  | 
 |         <rdar://problem/7745082> Make it possible to build WebKit for older Mac OS X versions from the current Mac OS X version | 
 |  | 
 |         Introduce TARGET_MAC_OS_X_VERSION_MAJOR to represent the Mac OS X version that is being targeted.  It defaults to the | 
 |         current Mac OS X version unless otherwise specified. | 
 |  | 
 |         Key off TARGET_MAC_OS_X_VERSION_MAJOR where we'd previously been keying off MAC_OS_X_VERSION_MAJOR. | 
 |  | 
 |         Explicitly map from the target Mac OS X version to the preferred compiler since Xcode's default compiler choice | 
 |         may not be usable when targetting a different Mac OS X version. | 
 |  | 
 |         Key off TARGET_GCC_VERSION rather than MAC_OS_X_VERSION_MAJOR in locations where we'd previously been keying off | 
 |         MAC_OS_X_VERSION_MAJOR but the decision is really related to the compiler version being used. | 
 |  | 
 |         * Configurations/Base.xcconfig: | 
 |         * Configurations/DebugRelease.xcconfig: | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |         * Configurations/JavaScriptCore.xcconfig: | 
 |         * Configurations/Version.xcconfig: | 
 |  | 
 | 2010-03-11  Simon Fraser  <simon.fraser@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Sort the project file. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2010-03-11  Simon Fraser  <simon.fraser@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Sort the project file . | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2010-03-11  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Buildfix for Thumb-2 after r55684. Add branch8 and branchTest8 functions. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35892 | 
 |  | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMv7Assembler::): | 
 |         (JSC::ARMv7Assembler::ldrb): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::load8): | 
 |         (JSC::MacroAssemblerARMv7::branch8): | 
 |         (JSC::MacroAssemblerARMv7::branchTest8): | 
 |         (JSC::MacroAssemblerARMv7::setTest8): | 
 |  | 
 | 2010-03-10  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Oliver Hunt. | 
 |          | 
 |         Rename JSC::UStringImpl::data() to characters(), to match WebCore::StringImpl. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClassContextData::OpaqueJSClassContextData): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::keyForCharacterSwitch): | 
 |         * bytecompiler/NodesCodegen.cpp: | 
 |         (JSC::processClauseList): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::equal): | 
 |         (JSC::Identifier::addSlowCase): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::toStrictUInt32): | 
 |         (JSC::equal): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::data): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::characters): | 
 |         (JSC::UStringImpl::hash): | 
 |         (JSC::UStringImpl::setHash): | 
 |  | 
 | 2010-03-10  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler, Geoffrey Garen, Maciej Stachowiak. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35991 | 
 |         Would be faster to not use a thread specific to implement StringImpl::empty() | 
 |  | 
 |         Change JSC::UStringImpl's implementation of empty() match to match StringImpl's new implementation | 
 |         (use a static defined within the empty() method), and change the interface to match too (return | 
 |         a pointer not a reference).  | 
 |  | 
 |         ~0% performance impact (possible minor progression from moving empty() from .h to .cpp). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::add): | 
 |         (JSC::Identifier::addSlowCase): | 
 |         * runtime/PropertyNameArray.cpp: | 
 |         (JSC::PropertyNameArray::add): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::initializeUString): | 
 |         (JSC::UString::UString): | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::empty): | 
 |         (JSC::UStringImpl::create): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::adopt): | 
 |         (JSC::UStringImpl::createUninitialized): | 
 |         (JSC::UStringImpl::tryCreateUninitialized): | 
 |  | 
 | 2010-03-10  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Not reviewed, fixing Snow Leopard build. | 
 |  | 
 |         * wtf/mac/MainThreadMac.mm: Forgot 'static' for a new local function. | 
 |         (WTF::postTimer): | 
 |  | 
 | 2010-03-10  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Make Document::postTask to use a single queue of tasks, to fire them in order | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35943 | 
 |  | 
 |         The patch uses CFRunLoopTimer to schedule execution of tasks instead of performSelectorOnMainThread which apparently can starve other event sources. | 
 |         The timer is used when the schedule request is coming on the main thread itself. This happens when the task is posted on the main thread or | 
 |         when too many tasks are posted and the queue does 'stop and re-schedule' to make sure run loop has a chance to execute other events. | 
 |  | 
 |         * wtf/mac/MainThreadMac.mm: | 
 |         (WTF::timerFired): | 
 |         (WTF::postTimer): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): Use timer posted to the current RunLoop if scheduling the task execution while on the main thread. | 
 |  | 
 | 2010-03-10  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: added new symbol. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-10  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: removed old symbol. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov, Darin Adler, and Sam Weinig. | 
 |  | 
 |         Refactored fastCheckConsistency to match some review comments: | 
 |             - renamed fastCheckConsistency to fastMallocSize, and changed ValueCheck | 
 |               to ASSERT that a pointer's fastMallocSize is not 0. | 
 |             - implemented a version of fastMallocSize for tcmalloc. | 
 |              | 
 |         Also moved some pre-existing code around to avoid a problem related to | 
 |         mismatched #define/#undef of malloc/free in this source file. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::fastMallocSize): Renamed. Fixed indentation. | 
 |  | 
 |         (WTF::TCMalloc_PageHeap::scavenge): Removed an incorrect ASSERT that | 
 |         got in the way of testing the tcmalloc implementation. (More information | 
 |         on why this ASSERT is incorrect is in <rdar://problem/7165917>.) | 
 |  | 
 |         (WTF::TCMallocStats::fastMallocSize): Implemented for tcmalloc. | 
 |  | 
 |         * wtf/FastMalloc.h: Updated for rename. | 
 |  | 
 |         * wtf/ValueCheck.h: | 
 |         (WTF::): Moved the ASSERT that used to be in fastCheckConsistency here. | 
 |  | 
 | 2010-03-10  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Make global new/delete operators configurable for all ports and disable it | 
 |         for the wx port for now. | 
 |  | 
 |         * wtf/FastMalloc.h: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-03-09  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (reverting r54510). | 
 |  | 
 |         This caused a performance regression, by breaking the code | 
 |         generator's logic to calculate the skip level for resolving | 
 |         variables (traced by rdar:7683350)  Reverting for now. | 
 |  | 
 |         * parser/Grammar.y: | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::ContinueNode::ContinueNode): | 
 |         (JSC::BreakNode::BreakNode): | 
 |         (JSC::ForInNode::ForInNode): | 
 |         * runtime/CommonIdentifiers.cpp: | 
 |         (JSC::CommonIdentifiers::CommonIdentifiers): | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::FunctionPrototype::FunctionPrototype): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::add): | 
 |         * runtime/PropertyNameArray.cpp: | 
 |         (JSC::PropertyNameArray::add): | 
 |  | 
 | 2010-03-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Changed FastMalloc statistics reporting to be a bit clearer. We now | 
 |         report: | 
 |             - Reserved VM Bytes: the VM that has been mapped into the process. | 
 |             - Committed VM Bytes: the subset of Reserved VM Bytes actually in use. | 
 |             - Free List Bytes: the subset of Committed VM Bytes in a free list. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::fastMallocStatistics): | 
 |         (WTF::TCMallocStats::fastMallocStatistics): Updated to report the statistics | 
 |         above. Standardized use of "ifdef WTF_CHANGES". Added a SpinLockHolder | 
 |         around all statistics gathering, since it reads from the page heap. | 
 |  | 
 |         * wtf/FastMalloc.h: Updated to report the statistics above.  | 
 |  | 
 | 2010-03-09  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Rubber-stamped by Maciej Stachowiak. | 
 |  | 
 |         Buildfix for ARM after r55684. Add branch8 and branchTest8 functions. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35892 | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::dataTransfer32): | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::load8): | 
 |         (JSC::MacroAssemblerARM::branch8): | 
 |         (JSC::MacroAssemblerARM::branchTest8): | 
 |  | 
 | 2010-03-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: 'P' is not a type. Luckily, 'void' is. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::fastCheckConsistency): | 
 |  | 
 | 2010-03-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: export a new symbol. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Switching malloc implementations requires a world rebuild | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35899 | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::fastCheckConsistency): | 
 |         (WTF::TCMallocStats::fastCheckConsistency): | 
 |         * wtf/FastMalloc.h: | 
 |         * wtf/ValueCheck.h: | 
 |         (WTF::): Moved pointer checking into a helper function in FastMalloc.cpp, | 
 |         so you can switch malloc implementations without rebuilding the world. | 
 |  | 
 | 2010-03-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         TypeInfo is unnecessarily large | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35850 | 
 |  | 
 |         Reduce the size of the type and flags members to a single | 
 |         byte each, reducing the size of Structure by 8 bytes. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::branch8): | 
 |         (JSC::MacroAssemblerX86Common::branchTest8): | 
 |         (JSC::MacroAssemblerX86Common::setTest8): | 
 |           Add single byte branches, and correct setTest8 to do a | 
 |           single byte read from memory, and actually store the result | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::): | 
 |         (JSC::X86Assembler::cmpb_im): | 
 |         (JSC::X86Assembler::testb_im): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::emit_op_construct_verify): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emit_op_jeq_null): | 
 |         (JSC::JIT::emit_op_jneq_null): | 
 |         (JSC::JIT::emit_op_get_pnames): | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         (JSC::JIT::emit_op_construct_verify): | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_eq_null): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |         * runtime/JSTypeInfo.h: | 
 |         (JSC::TypeInfo::TypeInfo): | 
 |         (JSC::TypeInfo::type): | 
 |  | 
 | 2010-03-08  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (reverting regression). | 
 |  | 
 |         Reverting 55035, this caused a regression. | 
 |         (https://bugs.webkit.org/show_bug.cgi?id=35843) | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         (JSC::jsSingleCharacterSubstring): | 
 |         (JSC::JSString::getIndex): | 
 |         (JSC::JSString::getStringPropertySlot): | 
 |         * runtime/UStringImpl.cpp: | 
 |         * runtime/UStringImpl.h: | 
 |  | 
 | 2010-03-08  Stuart Morgan  <stuartmorgan@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Added a new USE definition for secure text mode on the Mac. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31265 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-03-08  Jian Li  <jianli@chromium.org> | 
 |  | 
 |         Reviewed by Dmitry Titov. | 
 |  | 
 |         Blob.slice support. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32993 | 
 |  | 
 |         Add ENABLE_BLOB_SLICE feature define. | 
 |         Also fix a problem that JSValue.toInteger is not exposed on Windows. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-07  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Small performance fix in the QScriptConverter::toString(). | 
 |  | 
 |         The QByteArray was replaced by the QVarLengthArray which doesn't | 
 |         have to allocate any memory on heap. | 
 |  | 
 |         [Qt] QScriptConverter::toString() should use QVarLengthArray instead of QByteArray | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35577 | 
 |  | 
 |         * qt/api/qscriptconverter_p.h: | 
 |         (QScriptConverter::toString): | 
 |  | 
 | 2010-03-06  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Rubber-stamped by Sam Weinig. | 
 |  | 
 |         Remove unnecessary includes of wtf/Platform.h.  This is already pulled in by config.h. | 
 |  | 
 |         * API/APICast.h: | 
 |         * API/JSCallbackFunction.cpp: | 
 |         * API/JSContextRef.cpp: | 
 |         * API/JSObjectRef.cpp: | 
 |         * API/JSValueRef.cpp: | 
 |         * assembler/ARMAssembler.h: | 
 |         * assembler/ARMv7Assembler.h: | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         * assembler/AssemblerBuffer.h: | 
 |         * assembler/AssemblerBufferWithConstantPool.h: | 
 |         * assembler/CodeLocation.h: | 
 |         * assembler/LinkBuffer.h: | 
 |         * assembler/MIPSAssembler.h: | 
 |         * assembler/MacroAssembler.h: | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         * assembler/MacroAssemblerCodeRef.h: | 
 |         * assembler/MacroAssemblerMIPS.h: | 
 |         * assembler/MacroAssemblerX86.h: | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         * assembler/RepatchBuffer.h: | 
 |         * assembler/X86Assembler.h: | 
 |         * jit/JIT.h: | 
 |         * jit/JITCode.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         * jit/JITStubs.h: | 
 |         * os-win32/stdint.h: | 
 |         * runtime/JSAPIValueWrapper.h: | 
 |         * runtime/JSImmediate.h: | 
 |         * wtf/ASCIICType.h: | 
 |         * wtf/StdLibExtras.h: | 
 |         * wtf/VMTags.h: | 
 |         * yarr/RegexCompiler.h: | 
 |         * yarr/RegexInterpreter.h: | 
 |         * yarr/RegexJIT.h: | 
 |         * yarr/RegexParser.h: | 
 |         * yarr/RegexPattern.h: | 
 |  | 
 | 2010-03-06  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Share OwnPtr. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35776 | 
 |  | 
 |         Share OwnPtr implementation with BREW MP and remove OwnPtrBrew. | 
 |  | 
 |         * wtf/OwnPtrBrew.cpp: Added. | 
 |         (WTF::deleteOwnedPtr): | 
 |         * wtf/OwnPtrCommon.h: | 
 |         * wtf/brew/OwnPtrBrew.cpp: Removed. | 
 |         * wtf/brew/OwnPtrBrew.h: Removed. | 
 |  | 
 | 2010-03-06  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Implemented JIT_OPTIMIZE_NATIVE_CALL for WinCE | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33426 | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |  | 
 | 2010-03-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Add enw exports to windows | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         JSC should cache int to Identifier conversion as it does for ordinary strings | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35814 | 
 |  | 
 |         Make the NumericStrings cache cache unsigned ints in addition to signed. | 
 |         We keep them separate from the int cache as it both simplifies code, and | 
 |         also because the unsigned path is exclusive to property access and therefore | 
 |         seems to have different usage patterns. | 
 |  | 
 |         The primary trigger for the unsigned to Identifier propertyName conversion | 
 |         is the construction of array-like objects out of normal objects.  Given these | 
 |         tend to be relative small numbers, and the array-like behaviour lends itself | 
 |         to sequential values this patch also adds a non-colliding cache for all small | 
 |         numbers. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::from): | 
 |         * runtime/Identifier.h: | 
 |         * runtime/NumericStrings.h: | 
 |         (JSC::NumericStrings::add): | 
 |         (JSC::NumericStrings::lookup): | 
 |         (JSC::NumericStrings::lookupSmallString): | 
 |  | 
 | 2010-03-03  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Allow static property getters to interact with JSCs caching | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35716 | 
 |  | 
 |         Add new opcodes for handling cached lookup of static value getters. | 
 |         More or less the same as with JS getters, all that changes is that | 
 |         instead of calling through a JSFunction we always know that we have | 
 |         a C function to call. | 
 |  | 
 |         For the patching routines in the JIT we now need to pass a few | 
 |         new parameters to allow us to pass enough information to the stub | 
 |         function to allow us to call the C function correctly.  Logically | 
 |         this shouldn't actually be necessary as all of these functions ignore | 
 |         the identifier, but removing the ident parameter would require | 
 |         somewhat involved changes to the way we implement getOwnPropertySlot, | 
 |         etc. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         (JSC::CodeBlock::derefStructures): | 
 |         (JSC::CodeBlock::refStructures): | 
 |         * bytecode/Instruction.h: | 
 |         (JSC::Instruction::Instruction): | 
 |         (JSC::Instruction::): | 
 |         * bytecode/Opcode.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileGetByIdProto): | 
 |         (JSC::JIT::compileGetByIdSelfList): | 
 |         (JSC::JIT::compileGetByIdProtoList): | 
 |         (JSC::JIT::compileGetByIdChainList): | 
 |         (JSC::JIT::compileGetByIdChain): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::getOwnPropertySlot): | 
 |         * runtime/Lookup.h: | 
 |         (JSC::getStaticPropertySlot): | 
 |         (JSC::getStaticValueSlot): | 
 |         * runtime/PropertySlot.h: | 
 |         (JSC::PropertySlot::): | 
 |         (JSC::PropertySlot::PropertySlot): | 
 |         (JSC::PropertySlot::cachedPropertyType): | 
 |         (JSC::PropertySlot::isCacheable): | 
 |         (JSC::PropertySlot::isCacheableValue): | 
 |         (JSC::PropertySlot::setValueSlot): | 
 |         (JSC::PropertySlot::setCacheableCustom): | 
 |         (JSC::PropertySlot::setGetterSlot): | 
 |         (JSC::PropertySlot::setCacheableGetterSlot): | 
 |         (JSC::PropertySlot::clearOffset): | 
 |         (JSC::PropertySlot::customGetter): | 
 |  | 
 | 2010-03-04  Shinichiro Hamaji  <hamaji@chromium.org> | 
 |  | 
 |         Unreviewed. Remove a non-ASCII character introduced in the following bug. | 
 |  | 
 |         put_by_id does will incorrectly cache writes where a specific value exists, where at the point of caching the same value is being written. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35537 | 
 |  | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::putDirectInternal): | 
 |  | 
 | 2010-03-04  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Make the OUTPUT_DIR variable in qmake projects independent of build-webkit's logic. | 
 |  | 
 |         This also allows shadow builds relying only on qmake to work properly. | 
 |         * jsc.pro: | 
 |         * qt/api/QtScript.pro: | 
 |         * qt/tests/qscriptengine/qscriptengine.pro: | 
 |         * qt/tests/qscriptvalue/qscriptvalue.pro: | 
 |         * qt/tests/tests.pri: | 
 |  | 
 | 2010-03-03  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         QScriptValue::isObject fix. | 
 |  | 
 |         Fix broken internal state evaluation from JSValue to JSNative / JSObject. | 
 |         New function was introduced which should take care about promoting | 
 |         JSValue state inside QScriptValuePrivate. It should be used instead of a | 
 |         direct JSC C API call. | 
 |  | 
 |         The bug exposed a weakness in autotest suite, as the QScriptValuePrivate | 
 |         is based on state machine with lazy state evaluation, there is a possibility | 
 |         that serial sequencial calls to the same public const function could return | 
 |         different results. The patch fix the issue. | 
 |  | 
 |         [Qt] Sometimes QScriptValue::isObject returns an incorrect value | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35387 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::isBool): | 
 |         (QScriptValuePrivate::isNumber): | 
 |         (QScriptValuePrivate::isNull): | 
 |         (QScriptValuePrivate::isString): | 
 |         (QScriptValuePrivate::isUndefined): | 
 |         (QScriptValuePrivate::isError): | 
 |         (QScriptValuePrivate::isObject): | 
 |         (QScriptValuePrivate::isFunction): | 
 |         (QScriptValuePrivate::call): | 
 |         (QScriptValuePrivate::refineJSValue): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: | 
 |         (tst_QScriptValue::initScriptValues): | 
 |         (tst_QScriptValue::isValid_makeData): | 
 |         (tst_QScriptValue::isValid_test): | 
 |         (tst_QScriptValue::isBool_makeData): | 
 |         (tst_QScriptValue::isBool_test): | 
 |         (tst_QScriptValue::isBoolean_makeData): | 
 |         (tst_QScriptValue::isBoolean_test): | 
 |         (tst_QScriptValue::isNumber_makeData): | 
 |         (tst_QScriptValue::isNumber_test): | 
 |         (tst_QScriptValue::isFunction_test): | 
 |         (tst_QScriptValue::isNull_makeData): | 
 |         (tst_QScriptValue::isNull_test): | 
 |         (tst_QScriptValue::isString_makeData): | 
 |         (tst_QScriptValue::isString_test): | 
 |         (tst_QScriptValue::isUndefined_makeData): | 
 |         (tst_QScriptValue::isUndefined_test): | 
 |         (tst_QScriptValue::isObject_makeData): | 
 |         (tst_QScriptValue::isObject_test): | 
 |         (tst_QScriptValue::toString_makeData): | 
 |         (tst_QScriptValue::toString_test): | 
 |         (tst_QScriptValue::toNumber_makeData): | 
 |         (tst_QScriptValue::toNumber_test): | 
 |         (tst_QScriptValue::toBool_makeData): | 
 |         (tst_QScriptValue::toBool_test): | 
 |         (tst_QScriptValue::toBoolean_makeData): | 
 |         (tst_QScriptValue::toBoolean_test): | 
 |         (tst_QScriptValue::toInteger_makeData): | 
 |         (tst_QScriptValue::toInteger_test): | 
 |         (tst_QScriptValue::toInt32_makeData): | 
 |         (tst_QScriptValue::toInt32_test): | 
 |         (tst_QScriptValue::toUInt32_makeData): | 
 |         (tst_QScriptValue::toUInt32_test): | 
 |         (tst_QScriptValue::toUInt16_makeData): | 
 |         (tst_QScriptValue::toUInt16_test): | 
 |  | 
 | 2010-03-03  Chao-ying Fu  <fu@mips.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         MIPS JIT Supports | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30144 | 
 |  | 
 |         The following changes enable MIPS YARR and YARR_JIT. | 
 |  | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::Imm32::Imm32): | 
 |         * assembler/MIPSAssembler.h: Added. | 
 |         (JSC::MIPSRegisters::): | 
 |         (JSC::MIPSAssembler::MIPSAssembler): | 
 |         (JSC::MIPSAssembler::): | 
 |         (JSC::MIPSAssembler::JmpSrc::JmpSrc): | 
 |         (JSC::MIPSAssembler::JmpDst::JmpDst): | 
 |         (JSC::MIPSAssembler::JmpDst::isUsed): | 
 |         (JSC::MIPSAssembler::JmpDst::used): | 
 |         (JSC::MIPSAssembler::emitInst): | 
 |         (JSC::MIPSAssembler::nop): | 
 |         (JSC::MIPSAssembler::loadDelayNop): | 
 |         (JSC::MIPSAssembler::copDelayNop): | 
 |         (JSC::MIPSAssembler::move): | 
 |         (JSC::MIPSAssembler::li): | 
 |         (JSC::MIPSAssembler::lui): | 
 |         (JSC::MIPSAssembler::addiu): | 
 |         (JSC::MIPSAssembler::addu): | 
 |         (JSC::MIPSAssembler::subu): | 
 |         (JSC::MIPSAssembler::mult): | 
 |         (JSC::MIPSAssembler::mfhi): | 
 |         (JSC::MIPSAssembler::mflo): | 
 |         (JSC::MIPSAssembler::mul): | 
 |         (JSC::MIPSAssembler::andInsn): | 
 |         (JSC::MIPSAssembler::andi): | 
 |         (JSC::MIPSAssembler::nor): | 
 |         (JSC::MIPSAssembler::orInsn): | 
 |         (JSC::MIPSAssembler::ori): | 
 |         (JSC::MIPSAssembler::xorInsn): | 
 |         (JSC::MIPSAssembler::xori): | 
 |         (JSC::MIPSAssembler::slt): | 
 |         (JSC::MIPSAssembler::sltu): | 
 |         (JSC::MIPSAssembler::sltiu): | 
 |         (JSC::MIPSAssembler::sll): | 
 |         (JSC::MIPSAssembler::sllv): | 
 |         (JSC::MIPSAssembler::sra): | 
 |         (JSC::MIPSAssembler::srav): | 
 |         (JSC::MIPSAssembler::lw): | 
 |         (JSC::MIPSAssembler::lwl): | 
 |         (JSC::MIPSAssembler::lwr): | 
 |         (JSC::MIPSAssembler::lhu): | 
 |         (JSC::MIPSAssembler::sw): | 
 |         (JSC::MIPSAssembler::jr): | 
 |         (JSC::MIPSAssembler::jalr): | 
 |         (JSC::MIPSAssembler::jal): | 
 |         (JSC::MIPSAssembler::bkpt): | 
 |         (JSC::MIPSAssembler::bgez): | 
 |         (JSC::MIPSAssembler::bltz): | 
 |         (JSC::MIPSAssembler::beq): | 
 |         (JSC::MIPSAssembler::bne): | 
 |         (JSC::MIPSAssembler::bc1t): | 
 |         (JSC::MIPSAssembler::bc1f): | 
 |         (JSC::MIPSAssembler::newJmpSrc): | 
 |         (JSC::MIPSAssembler::appendJump): | 
 |         (JSC::MIPSAssembler::addd): | 
 |         (JSC::MIPSAssembler::subd): | 
 |         (JSC::MIPSAssembler::muld): | 
 |         (JSC::MIPSAssembler::lwc1): | 
 |         (JSC::MIPSAssembler::ldc1): | 
 |         (JSC::MIPSAssembler::swc1): | 
 |         (JSC::MIPSAssembler::sdc1): | 
 |         (JSC::MIPSAssembler::mtc1): | 
 |         (JSC::MIPSAssembler::mfc1): | 
 |         (JSC::MIPSAssembler::truncwd): | 
 |         (JSC::MIPSAssembler::cvtdw): | 
 |         (JSC::MIPSAssembler::ceqd): | 
 |         (JSC::MIPSAssembler::cngtd): | 
 |         (JSC::MIPSAssembler::cnged): | 
 |         (JSC::MIPSAssembler::cltd): | 
 |         (JSC::MIPSAssembler::cled): | 
 |         (JSC::MIPSAssembler::cueqd): | 
 |         (JSC::MIPSAssembler::coled): | 
 |         (JSC::MIPSAssembler::coltd): | 
 |         (JSC::MIPSAssembler::culed): | 
 |         (JSC::MIPSAssembler::cultd): | 
 |         (JSC::MIPSAssembler::label): | 
 |         (JSC::MIPSAssembler::align): | 
 |         (JSC::MIPSAssembler::getRelocatedAddress): | 
 |         (JSC::MIPSAssembler::getDifferenceBetweenLabels): | 
 |         (JSC::MIPSAssembler::size): | 
 |         (JSC::MIPSAssembler::executableCopy): | 
 |         (JSC::MIPSAssembler::getCallReturnOffset): | 
 |         (JSC::MIPSAssembler::linkJump): | 
 |         (JSC::MIPSAssembler::linkCall): | 
 |         (JSC::MIPSAssembler::linkPointer): | 
 |         (JSC::MIPSAssembler::relinkJump): | 
 |         (JSC::MIPSAssembler::relinkCall): | 
 |         (JSC::MIPSAssembler::repatchInt32): | 
 |         (JSC::MIPSAssembler::repatchPointer): | 
 |         (JSC::MIPSAssembler::repatchLoadPtrToLEA): | 
 |         (JSC::MIPSAssembler::relocateJumps): | 
 |         (JSC::MIPSAssembler::linkWithOffset): | 
 |         (JSC::MIPSAssembler::linkCallInternal): | 
 |         * assembler/MacroAssembler.h: | 
 |         * assembler/MacroAssemblerMIPS.h: Added. | 
 |         (JSC::MacroAssemblerMIPS::MacroAssemblerMIPS): | 
 |         (JSC::MacroAssemblerMIPS::): | 
 |         (JSC::MacroAssemblerMIPS::add32): | 
 |         (JSC::MacroAssemblerMIPS::and32): | 
 |         (JSC::MacroAssemblerMIPS::lshift32): | 
 |         (JSC::MacroAssemblerMIPS::mul32): | 
 |         (JSC::MacroAssemblerMIPS::not32): | 
 |         (JSC::MacroAssemblerMIPS::or32): | 
 |         (JSC::MacroAssemblerMIPS::rshift32): | 
 |         (JSC::MacroAssemblerMIPS::sub32): | 
 |         (JSC::MacroAssemblerMIPS::xor32): | 
 |         (JSC::MacroAssemblerMIPS::load32): | 
 |         (JSC::MacroAssemblerMIPS::load32WithUnalignedHalfWords): | 
 |         (JSC::MacroAssemblerMIPS::load32WithAddressOffsetPatch): | 
 |         (JSC::MacroAssemblerMIPS::loadPtrWithPatchToLEA): | 
 |         (JSC::MacroAssemblerMIPS::loadPtrWithAddressOffsetPatch): | 
 |         (JSC::MacroAssemblerMIPS::load16): | 
 |         (JSC::MacroAssemblerMIPS::store32WithAddressOffsetPatch): | 
 |         (JSC::MacroAssemblerMIPS::store32): | 
 |         (JSC::MacroAssemblerMIPS::supportsFloatingPoint): | 
 |         (JSC::MacroAssemblerMIPS::supportsFloatingPointTruncate): | 
 |         (JSC::MacroAssemblerMIPS::pop): | 
 |         (JSC::MacroAssemblerMIPS::push): | 
 |         (JSC::MacroAssemblerMIPS::move): | 
 |         (JSC::MacroAssemblerMIPS::swap): | 
 |         (JSC::MacroAssemblerMIPS::signExtend32ToPtr): | 
 |         (JSC::MacroAssemblerMIPS::zeroExtend32ToPtr): | 
 |         (JSC::MacroAssemblerMIPS::branch32): | 
 |         (JSC::MacroAssemblerMIPS::branch32WithUnalignedHalfWords): | 
 |         (JSC::MacroAssemblerMIPS::branch16): | 
 |         (JSC::MacroAssemblerMIPS::branchTest32): | 
 |         (JSC::MacroAssemblerMIPS::jump): | 
 |         (JSC::MacroAssemblerMIPS::branchAdd32): | 
 |         (JSC::MacroAssemblerMIPS::branchMul32): | 
 |         (JSC::MacroAssemblerMIPS::branchSub32): | 
 |         (JSC::MacroAssemblerMIPS::breakpoint): | 
 |         (JSC::MacroAssemblerMIPS::nearCall): | 
 |         (JSC::MacroAssemblerMIPS::call): | 
 |         (JSC::MacroAssemblerMIPS::ret): | 
 |         (JSC::MacroAssemblerMIPS::set32): | 
 |         (JSC::MacroAssemblerMIPS::setTest32): | 
 |         (JSC::MacroAssemblerMIPS::moveWithPatch): | 
 |         (JSC::MacroAssemblerMIPS::branchPtrWithPatch): | 
 |         (JSC::MacroAssemblerMIPS::storePtrWithPatch): | 
 |         (JSC::MacroAssemblerMIPS::tailRecursiveCall): | 
 |         (JSC::MacroAssemblerMIPS::makeTailRecursiveCall): | 
 |         (JSC::MacroAssemblerMIPS::loadDouble): | 
 |         (JSC::MacroAssemblerMIPS::storeDouble): | 
 |         (JSC::MacroAssemblerMIPS::addDouble): | 
 |         (JSC::MacroAssemblerMIPS::subDouble): | 
 |         (JSC::MacroAssemblerMIPS::mulDouble): | 
 |         (JSC::MacroAssemblerMIPS::convertInt32ToDouble): | 
 |         (JSC::MacroAssemblerMIPS::insertRelaxationWords): | 
 |         (JSC::MacroAssemblerMIPS::branchTrue): | 
 |         (JSC::MacroAssemblerMIPS::branchFalse): | 
 |         (JSC::MacroAssemblerMIPS::branchEqual): | 
 |         (JSC::MacroAssemblerMIPS::branchNotEqual): | 
 |         (JSC::MacroAssemblerMIPS::branchDouble): | 
 |         (JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32): | 
 |         (JSC::MacroAssemblerMIPS::linkCall): | 
 |         (JSC::MacroAssemblerMIPS::repatchCall): | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |         * wtf/Platform.h: | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateEnter): | 
 |         (JSC::Yarr::RegexGenerator::generateReturn): | 
 |  | 
 | 2010-03-03  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/jsc/jsc.vcproj: | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |  | 
 | 2010-03-03  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/jsc/jsc.vcproj: | 
 |  | 
 | 2010-03-03  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Add virtual memory tags for TCMalloc and WebCore's purgeable buffers. | 
 |  | 
 |         * wtf/TCSystemAlloc.cpp: | 
 |         (TryMmap): Use the VM tag. | 
 |         * wtf/VMTags.h: Make use of VM_MEMORY_TCMALLOC and VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS. | 
 |  | 
 | 2010-03-03  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Rubber stamped by Adam Roben. | 
 |  | 
 |         Fix bogus xcopy that was polluting source tree at build time. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |  | 
 | 2010-03-02  Fridrich Strba  <fridrich.strba@bluewin.ch> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Allow building smoothly on win32 and win64 using GCC | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35607 | 
 |  | 
 |         * jit/JITStubs.h: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::allocateBlock): | 
 |         (JSC::Heap::freeBlockPtr): | 
 |         (JSC::currentThreadStackBase): | 
 |  | 
 | 2010-03-02  Jeremy Orlow  <jorlow@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Revert database thread changes that are no longer required | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35519 | 
 |  | 
 |         Jochen Eisinger created 55214 and 55247 to track which database | 
 |         owns which thread.  Dmitry suggested that this could also | 
 |         be done via TLS, though.  After exploring the options, Jochen | 
 |         chose to go the TLS route, so these patches are no longer needed. | 
 |  | 
 |         * wtf/Threading.h: | 
 |         * wtf/ThreadingNone.cpp: | 
 |         (WTF::isMainThread): | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::identifierByPthreadHandle): | 
 |         (WTF::establishIdentifierForPthreadHandle): | 
 |         (WTF::pthreadHandleForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |         (WTF::currentThread): | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::threadMap): | 
 |         (WTF::storeThreadHandleByIdentifier): | 
 |         (WTF::threadHandleForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |  | 
 | 2010-03-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix QScriptValue::toString(). | 
 |  | 
 |         More ECMA Script compliance, especially for values as NaN, Inifinite | 
 |         and really big/small numbers. | 
 |  | 
 |         [Qt] QScriptValue::toString() returns incorrect values | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34850 | 
 |  | 
 |         * qt/api/qscriptconverter_p.h: | 
 |         (QScriptConverter::toString): | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::toString): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: | 
 |         (tst_QScriptValue::toString_initData): | 
 |         (tst_QScriptValue::toString_makeData): | 
 |         (tst_QScriptValue::toString_test): | 
 |  | 
 | 2010-03-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Introduce a new class; QScriptString. | 
 |  | 
 |         The QScriptString class should act as a handle to "interned" | 
 |         strings in a QScriptEngine. | 
 |  | 
 |         [Qt] QtScript should provide QScriptString | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34843 | 
 |  | 
 |         * qt/api/QtScript.pro: | 
 |         * qt/api/qscriptengine.cpp: | 
 |         (QScriptEngine::toStringHandle): | 
 |         * qt/api/qscriptengine.h: | 
 |         * qt/api/qscriptengine_p.h: | 
 |         (QScriptEnginePrivate::toStringHandle): | 
 |         * qt/api/qscriptstring.cpp: Added. | 
 |         (QScriptString::QScriptString): | 
 |         (QScriptString::~QScriptString): | 
 |         (QScriptString::operator=): | 
 |         (QScriptString::isValid): | 
 |         (QScriptString::operator==): | 
 |         (QScriptString::operator!=): | 
 |         (QScriptString::toArrayIndex): | 
 |         (QScriptString::toString): | 
 |         (QScriptString::operator QString): | 
 |         (qHash): | 
 |         * qt/api/qscriptstring.h: Added. | 
 |         * qt/api/qscriptstring_p.h: Added. | 
 |         (QScriptStringPrivate::QScriptStringPrivate): | 
 |         (QScriptStringPrivate::~QScriptStringPrivate): | 
 |         (QScriptStringPrivate::get): | 
 |         (QScriptStringPrivate::isValid): | 
 |         (QScriptStringPrivate::operator==): | 
 |         (QScriptStringPrivate::operator!=): | 
 |         (QScriptStringPrivate::toArrayIndex): | 
 |         (QScriptStringPrivate::toString): | 
 |         (QScriptStringPrivate::id): | 
 |         * qt/tests/qscriptstring/qscriptstring.pro: Added. | 
 |         * qt/tests/qscriptstring/tst_qscriptstring.cpp: Added. | 
 |         (tst_QScriptString::tst_QScriptString): | 
 |         (tst_QScriptString::~tst_QScriptString): | 
 |         (tst_QScriptString::test): | 
 |         (tst_QScriptString::hash): | 
 |         (tst_QScriptString::toArrayIndex_data): | 
 |         (tst_QScriptString::toArrayIndex): | 
 |         * qt/tests/tests.pro: | 
 |  | 
 | 2010-03-02  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Export function on windows. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-03-01  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Refactor named getter function signature to be in line with indexing getter signature | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35563 | 
 |  | 
 |         This removes the PropertySlot argument from getter functions, and makes them directly | 
 |         pass the slot base.  This makes the semantics for the functions match that of the | 
 |         indexing getters. | 
 |  | 
 |         On the down side, this means that we can no longer simply use a proxy function for | 
 |         JS getters, so we now add another marker value to indicate that a getter is present | 
 |         and branch accordingly. | 
 |  | 
 |         Against all rationality sunspider reports this as a perf win, but i suspect it's just noise. | 
 |  | 
 |         * API/JSCallbackObject.h: | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::staticValueGetter): | 
 |         (JSC::::staticFunctionGetter): | 
 |         (JSC::::callbackGetter): | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::argumentsGetter): | 
 |         * runtime/JSActivation.h: | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::argumentsGetter): | 
 |         (JSC::JSFunction::callerGetter): | 
 |         (JSC::JSFunction::lengthGetter): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/NumberConstructor.cpp: | 
 |         (JSC::numberConstructorNaNValue): | 
 |         (JSC::numberConstructorNegInfinity): | 
 |         (JSC::numberConstructorPosInfinity): | 
 |         (JSC::numberConstructorMaxValue): | 
 |         (JSC::numberConstructorMinValue): | 
 |         * runtime/PropertySlot.cpp: | 
 |         (JSC::PropertySlot::functionGetter): | 
 |         * runtime/PropertySlot.h: | 
 |         (JSC::PropertySlot::getValue): | 
 |         (JSC::PropertySlot::setGetterSlot): | 
 |         (JSC::PropertySlot::setCacheableGetterSlot): | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::regExpConstructorDollar1): | 
 |         (JSC::regExpConstructorDollar2): | 
 |         (JSC::regExpConstructorDollar3): | 
 |         (JSC::regExpConstructorDollar4): | 
 |         (JSC::regExpConstructorDollar5): | 
 |         (JSC::regExpConstructorDollar6): | 
 |         (JSC::regExpConstructorDollar7): | 
 |         (JSC::regExpConstructorDollar8): | 
 |         (JSC::regExpConstructorDollar9): | 
 |         (JSC::regExpConstructorInput): | 
 |         (JSC::regExpConstructorMultiline): | 
 |         (JSC::regExpConstructorLastMatch): | 
 |         (JSC::regExpConstructorLastParen): | 
 |         (JSC::regExpConstructorLeftContext): | 
 |         (JSC::regExpConstructorRightContext): | 
 |         * runtime/RegExpObject.cpp: | 
 |         (JSC::regExpObjectGlobal): | 
 |         (JSC::regExpObjectIgnoreCase): | 
 |         (JSC::regExpObjectMultiline): | 
 |         (JSC::regExpObjectSource): | 
 |         (JSC::regExpObjectLastIndex): | 
 |  | 
 | 2010-03-01  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         PropertySlot::getValue(ExecState, unsigned) unnecessarily converts index to an Identifier | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35561 | 
 |  | 
 |         Fix this by defining a separate property getter function for index getters.  This allows | 
 |         us to pass an unsigned number without the conversion to an Identifier.  We then update | 
 |         setCustomIndex to take this new getter type. | 
 |  | 
 |         * runtime/PropertySlot.h: | 
 |         (JSC::PropertySlot::getValue): | 
 |         (JSC::PropertySlot::setCustom): | 
 |         (JSC::PropertySlot::setCustomIndex): | 
 |  | 
 | 2010-03-01  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 35537 - put_by_id does will incorrectly cache writes where a specific value exists, | 
 |                     where at the point of caching the same value is being written. | 
 |  | 
 |         When performing a put_by_id that is replacing a property already present on the object, | 
 |         there are three interesting cases regarding the state of the specific value: | 
 |  | 
 |         (1) No specific value set - nothing to do, leave the structure in it's current state, | 
 |             can cache. | 
 |         (2) A specific value was set, the new put is not of a specified value (i.e. function), | 
 |             or is of a different specific value - in these cases we need to perform a despecifying | 
 |             transition to clear the specific value in the structure, but having done so this is a | 
 |             normal property so as such we can again cache normally. | 
 |         (3) A specific value was set, and we are overwriting with the same value - in these cases | 
 |             leave the structure unchanged, but since a specific value is set we cannot cache this | 
 |             put (we would need the JIT to dynamically check the value being written matched). | 
 |  | 
 |         Unfortunately, the current behaviour does not match this.  the checks for a specific value | 
 |         being present & the value matching are combined in such a way that in case (2), above we | 
 |         will unnecessarily prevent the transition being cached, but in case (3) we will incorrectly | 
 |         fail to prevent caching. | 
 |  | 
 |         The bug exposes itself if multiple puts of the same specific value are performed to a | 
 |         property, and erroneously the put is allowed to be cached by the JIT.  Method checks may be | 
 |         generated caching calls of this structure.  Subsequent puts performed from JIT code may | 
 |         write different values without triggering a despecify transition, and as such cached method | 
 |         checks will continue to pass, despite the value having changed. | 
 |  | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::putDirectInternal): | 
 |  | 
 | 2010-03-01  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix the Qt build on Mac OS X/Cocoa 64-bit | 
 |  | 
 |         * JavaScriptCore.pri: Add missing implementation file to resolve JSC symbols | 
 |  | 
 | 2010-02-26  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Geoff Garen. | 
 |  | 
 |         Remove wrec.  All builds should have switched to yarr by now. | 
 |  | 
 |         * Android.mk: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::match): | 
 |         * runtime/RegExp.h: | 
 |         * wrec: Removed. | 
 |         * wrec/CharacterClass.cpp: Removed. | 
 |         * wrec/CharacterClass.h: Removed. | 
 |         * wrec/CharacterClassConstructor.cpp: Removed. | 
 |         * wrec/CharacterClassConstructor.h: Removed. | 
 |         * wrec/Escapes.h: Removed. | 
 |         * wrec/Quantifier.h: Removed. | 
 |         * wrec/WREC.cpp: Removed. | 
 |         * wrec/WREC.h: Removed. | 
 |         * wrec/WRECFunctors.cpp: Removed. | 
 |         * wrec/WRECFunctors.h: Removed. | 
 |         * wrec/WRECGenerator.cpp: Removed. | 
 |         * wrec/WRECGenerator.h: Removed. | 
 |         * wrec/WRECParser.cpp: Removed. | 
 |         * wrec/WRECParser.h: Removed. | 
 |         * wscript: | 
 |  | 
 | 2010-02-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Make the lookup table generator include an explicit cast to expected | 
 |         type of the function.  We do this because otherwise the blind intptr_t | 
 |         cast that is subsequently applied allows incorrectly typed functions | 
 |         to be inserted into the table, where they will only fail at runtime. | 
 |         This change makes such errors produce a compile time failure. | 
 |  | 
 |         * create_hash_table: | 
 |  | 
 | 2010-02-26  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Symbian specific getCPUTime implemetation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34742 | 
 |  | 
 |         Default implementation doesn't work on Symbian devices. | 
 |         This change adds a proper implementation by | 
 |         asking thread execution time from the current thread. | 
 |  | 
 |         * runtime/TimeoutChecker.cpp: | 
 |         (JSC::getCPUTime): | 
 |  | 
 | 2010-02-25  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Anders Carlsson. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35406 | 
 |         <rdar://problem/6945502> Make generic array methods work with JavaArray | 
 |  | 
 |         Renamed lazyCreationData to subclassData. This is extra data that can be used by JSArray | 
 |         subclasses (you can't add new data members, because it wouldn't fit in JSCell otherwise). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): | 
 |         (JSC::JSArray::subclassData): | 
 |         (JSC::JSArray::setSubclassData): | 
 |         * runtime/JSArray.h: | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::RegExpMatchesArray::RegExpMatchesArray): | 
 |         (JSC::RegExpMatchesArray::~RegExpMatchesArray): | 
 |         (JSC::RegExpMatchesArray::fillArrayInstance): | 
 |         * runtime/RegExpMatchesArray.h: | 
 |         (JSC::RegExpMatchesArray::getOwnPropertySlot): | 
 |         (JSC::RegExpMatchesArray::getOwnPropertyDescriptor): | 
 |         (JSC::RegExpMatchesArray::put): | 
 |         (JSC::RegExpMatchesArray::deleteProperty): | 
 |         (JSC::RegExpMatchesArray::getOwnPropertyNames): | 
 |  | 
 | 2010-02-25  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         JSC crashes like crazy in the JSPropertyNameIterator destructor | 
 |  | 
 |         Add back null check of m_cachedStructure.  Curse last minute changes. | 
 |  | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::~JSPropertyNameIterator): | 
 |  | 
 | 2010-02-25  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Race condition in JSPropertyNameIterator and Structure destruction | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35398 | 
 |  | 
 |         JSPropertyNameIterator and Structure have a cyclic dependency that they | 
 |         manage by clearing the appropriate reference in each other during their | 
 |         destruction.  However if the Structure is destroyed while the  | 
 |         JSPropertyNameIterator is dead but not yet finalized the Structures | 
 |         WeakGCPtr will return null, and so prevent Structure from clearing | 
 |         the m_cachedStructure pointer of the iterator.  When the iterator is | 
 |         then finalised the m_cachedStructure is invalid, and the attempt to | 
 |         clear the structures back reference fails. | 
 |  | 
 |         To fix this we simply make JSPropertyNameIterator keep the Structure | 
 |         alive, using the weak pointer to break the ref cycle. | 
 |  | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::~JSPropertyNameIterator): | 
 |           The iterator now keeps m_cachedStructure alive itself, so no longer needs | 
 |           to check for it being cleared | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::JSPropertyNameIterator::setCachedStructure): | 
 |           Add an assertion to ensure correct usage | 
 |         (JSC::JSPropertyNameIterator::cachedStructure): | 
 |           Add .get() | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::~Structure): | 
 |           Add an assertion that our iterator isn't already dead, and remove | 
 |           the now unnecessary attempt to clear the ref in the iterator | 
 |         * runtime/WeakGCPtr.h: | 
 |         (JSC::WeakGCPtr::hasDeadObject): | 
 |           An assert-only function to allow us to assert correct behaviour | 
 |           in the Structure destructor | 
 |  | 
 | 2010-02-25  Jochen Eisinger  <jochen@chromium.org> | 
 |   | 
 |         Reviewed by Jeremy Orlow. | 
 |   | 
 |         Make the context that was passed to the ThreadFunction accessible. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35379 | 
 |  | 
 |         When a database is opened, right now you | 
 |         don't have any context from where it is opened. The problem is that | 
 |         the actual calls that open a database go through the sqlite3 vfs | 
 |         layer, so there's no easy way to pass this function down to to | 
 |         platform/sql/chromium/SQLFileSystemChromium*.cpp | 
 |  | 
 |         This patch will allow you to get from anywhere within webkit a pointer | 
 |         to the Thread object that actually created the thread you're currently | 
 |         on (in case of the database, this can be either a thread forked of | 
 |         from the main thread or from a worker thread), and query the object | 
 |         for context information. | 
 |  | 
 |         * wtf/Threading.h: | 
 |         * wtf/ThreadingNone.cpp: | 
 |         (WTF::threadContext): | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::): | 
 |         (WTF::identifierByPthreadHandle): | 
 |         (WTF::establishIdentifierForPthreadHandle): | 
 |         (WTF::pthreadHandleForIdentifier): | 
 |         (WTF::contextForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |         (WTF::currentThread): | 
 |         (WTF::threadContext): | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::): | 
 |         (WTF::threadMap): | 
 |         (WTF::storeThreadHandleByIdentifier): | 
 |         (WTF::threadHandleForIdentifier): | 
 |         (WTF::contextForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |         (WTF::threadContext): | 
 |  | 
 | 2010-02-25  Jeremy Orlow  <jorlow@chromium.org> | 
 |  | 
 |         Reverting to re-submit with better change log. | 
 |  | 
 |         * wtf/Threading.h: | 
 |         * wtf/ThreadingNone.cpp: | 
 |         (WTF::isMainThread): | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::identifierByPthreadHandle): | 
 |         (WTF::establishIdentifierForPthreadHandle): | 
 |         (WTF::pthreadHandleForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |         (WTF::currentThread): | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::threadMap): | 
 |         (WTF::storeThreadHandleByIdentifier): | 
 |         (WTF::threadHandleForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |  | 
 | 2010-02-25  Jochen Eisinger  <jochen@chromium.org> | 
 |  | 
 |         Reviewed by Jeremy Orlow. | 
 |  | 
 |         Make the context that was passed to the ThreadFunction accessible. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35379 | 
 |  | 
 |         * wtf/Threading.h: | 
 |         * wtf/ThreadingNone.cpp: | 
 |         (WTF::threadContext): | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::): | 
 |         (WTF::identifierByPthreadHandle): | 
 |         (WTF::establishIdentifierForPthreadHandle): | 
 |         (WTF::pthreadHandleForIdentifier): | 
 |         (WTF::contextForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |         (WTF::currentThread): | 
 |         (WTF::threadContext): | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::): | 
 |         (WTF::threadMap): | 
 |         (WTF::storeThreadHandleByIdentifier): | 
 |         (WTF::threadHandleForIdentifier): | 
 |         (WTF::contextForIdentifier): | 
 |         (WTF::createThreadInternal): | 
 |         (WTF::threadContext): | 
 |  | 
 | 2010-02-24  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         [REGRESSION in r55185] EXC_BAD_ACCESS on opening inspector. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35335 | 
 |  | 
 |         compileGetDirectOffset modifies the contents of the object register | 
 |         when the object is not using the inline storage array.  As the object | 
 |         register contains our 'this' pointer we can't allow it to be clobbered. | 
 |         The fix is simply to copy the register into a separate scratch register | 
 |         when we're loading off an object that doesn't use inline storage. | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |  | 
 | 2010-02-24  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Speed up getter performance in the jit | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35332 | 
 |  | 
 |         Implement getter lookup caching in the interpreter. | 
 |         The getter stubs are generated through basically the | 
 |         same code paths as the normal get_by_id caching. | 
 |         Instead of simply loading a property and returning, | 
 |         we load the getter slot, and pass the getter, base value | 
 |         and return address to a shared stub used for getter | 
 |         dispatch. | 
 |  | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileGetByIdProto): | 
 |         (JSC::JIT::compileGetByIdSelfList): | 
 |         (JSC::JIT::compileGetByIdProtoList): | 
 |         (JSC::JIT::compileGetByIdChainList): | 
 |         (JSC::JIT::compileGetByIdChain): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |         * jit/JITPropertyAccess32_64.cpp: | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |         * runtime/GetterSetter.h: | 
 |  | 
 | 2010-02-23  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Web Inspector: Regression: r55027+: Inspector broken | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35253 | 
 |  | 
 |         op_get_by_id_getter_chain was not passing the correct this parameter. | 
 |         The bug was caused by incorrect use of baseCell instead of baseValue, | 
 |         baseValue contains the original object for the lookup (and hence the | 
 |         correct this object), baseCell is clobbered as part of walking the | 
 |         prototype chain. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2010-02-23  Gustavo Noronha Silva  <gns@gnome.org> | 
 |  | 
 |         Rubber-stamped by Dimitri Glazkov. | 
 |  | 
 |         Chromium build fix. | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: | 
 |  | 
 | 2010-02-23  Leandro Pereira  <leandro@profusion.mobi> | 
 |  | 
 |         Reviewed by Gustavo Noronha Silva. | 
 |  | 
 |         Changes references of GOwnPtr to reflect their new place. | 
 |         http://webkit.org/b/35084 | 
 |  | 
 |         * JavaScriptCore/JavaScriptCore.gypi: | 
 |         * JavaScriptCore/wtf/Threading.h: | 
 |         * JavaScriptCore/wtf/unicode/glib/UnicodeGLib.h: | 
 |  | 
 | 2010-02-23  Leandro Pereira  <leandro@profusion.mobi> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Adding the EFL implementation of JavaScriptCore. | 
 |         See https://bugs.webkit.org/show_bug.cgi?id=35084 for details. | 
 |  | 
 |         * GNUmakefile.am: Updated to reflect the new location of GOwnPtr and | 
 |                           GRefPtr. | 
 |         * wtf/efl/MainThreadEfl.cpp: Added. | 
 |         * wtf/gobject/GOwnPtr.cpp: Moved from wtf/gtk. | 
 |         * wtf/gobject/GOwnPtr.h: Moved from wtf/gtk. | 
 |         * wtf/gobject/GRefPtr.cpp: Moved from wtf/gtk. | 
 |         * wtf/gobject/GRefPtr.h: Moved from wtf/gtk. | 
 |  | 
 | 2010-02-22  Julien Chaffraix  <jchaffraix@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Remove auto_ptr usage in JavaScriptCore. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35221 | 
 |  | 
 |         * parser/Nodes.h: Removed now unneeded adopt method. | 
 |         * parser/Parser.cpp: Removed <memory> include as it is not required anymore. | 
 |         * wtf/OwnPtr.h: Removed the constructor from auto_ptr. | 
 |         * wtf/VectorTraits.h: Removed a template specialization for auto_ptr. | 
 |         * wtf/unicode/Collator.h: Made userDefault return a PassOwnPtr. | 
 |         * wtf/unicode/CollatorDefault.cpp: | 
 |         (WTF::Collator::userDefault): Changed the method to match the next signature. | 
 |         * wtf/unicode/icu/CollatorICU.cpp: | 
 |         (WTF::Collator::userDefault): Ditto. | 
 |  | 
 | 2010-02-22  Huahui Wu  <hwu@google.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Add code that enables SquirrelFish Extreme (a.k.a JSCX, JSC JIT) | 
 |         in Android. It's disabled by default, but is enabled when the  | 
 |         enveronment variable ENABLE_JSC_JIT is set to true. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34855 | 
 |  | 
 |         * Android.mk: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         JSStringBuilder should not CRASH if allocation fails, it should throw a JSException. | 
 |  | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         * runtime/JSStringBuilder.h: | 
 |         (JSC::JSStringBuilder::JSStringBuilder): | 
 |         (JSC::JSStringBuilder::append): | 
 |         (JSC::JSStringBuilder::build): | 
 |         * runtime/StringBuilder.h: | 
 |         (JSC::StringBuilder::build): | 
 |         * wtf/Vector.h: | 
 |         (WTF::VectorBufferBase::tryAllocateBuffer): | 
 |         (WTF::): | 
 |         (WTF::VectorBuffer::tryAllocateBuffer): | 
 |         (WTF::::tryExpandCapacity): | 
 |         (WTF::::tryReserveCapacity): | 
 |         (WTF::::tryAppend): | 
 |  | 
 | 2010-02-22  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Map FastMalloc to BREW memory allocator | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33570 | 
 |  | 
 |         Use MALLOC macro instead of the standard malloc function. | 
 |         Although RVCT provides malloc, we can't use it in BREW | 
 |         because the loader does not initialize the base address properly. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         * wtf/brew/SystemMallocBrew.h: Added. | 
 |         (mallocBrew): | 
 |         (callocBrew): | 
 |         (freeBrew): | 
 |         (reallocBrew): | 
 |  | 
 | 2010-02-22  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Build fix for make distcheck. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2010-02-22  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed build fix. | 
 |  | 
 |         [Qt] Build fix for RVCT. | 
 |  | 
 |         Fix after r55024. The "-i" option is for perl not for the | 
 |         script. | 
 |  | 
 |         * DerivedSources.pro: | 
 |  | 
 | 2010-02-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Make UString::m_data be const, and make the UChar owned/ref-counted by CrossThreadRefCounted be const too. | 
 |  | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::baseSharedBuffer): | 
 |         (JSC::UStringImpl::~UStringImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::create): | 
 |         (JSC::UStringImpl::data): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         * wtf/OwnFastMallocPtr.h: | 
 |         (WTF::OwnFastMallocPtr::~OwnFastMallocPtr): | 
 |  | 
 | 2010-02-21  Yuta Kitamura  <yutak@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         HashMapTranslatorAdapter::translate() needs to set the mapped value. | 
 |  | 
 |         HTTPHeaderMap::add(const char*, const String&) does not work | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35227 | 
 |  | 
 |         * wtf/HashMap.h: | 
 |         (WTF::HashMapTranslatorAdapter::translate): | 
 |  | 
 | 2010-02-19  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Add an ENABLE flag for sandboxed iframes to make it possible to disable it in releases | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35147 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-02-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         JSString::getIndex() calls value() to resolve the string value (is a rope) | 
 |         to a UString, then passes the result to jsSingleCharacterSubstring without | 
 |         checking for an exception.  In case of out-of-memory the returned UString | 
 |         is null(), which may result in an out-of-buounds substring being created. | 
 |         This is bad. | 
 |  | 
 |         Simple fix is to be able to get an index from a rope without resolving to | 
 |         UString.  This may be a useful optimization in some test cases. | 
 |  | 
 |         The same bug exists in some other methods is JSString, these can be fixed | 
 |         by changing them to call getIndex(). | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         (JSC::jsSingleCharacterSubstring): | 
 |         (JSC::JSString::getIndex): | 
 |         (JSC::jsSingleCharacterString): | 
 |         (JSC::JSString::getStringPropertySlot): | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::singleCharacterSubstring): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::singleCharacterSubstring): | 
 |  | 
 | 2010-02-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         RS = Gavin Barraclough. | 
 |  | 
 |         Split the 32/64 version of JITPropertyAccess into a separate file. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         * jit/JITPropertyAccess32_64.cpp: Added. | 
 |         (JSC::JIT::emit_op_put_by_index): | 
 |         (JSC::JIT::emit_op_put_getter): | 
 |         (JSC::JIT::emit_op_put_setter): | 
 |         (JSC::JIT::emit_op_del_by_id): | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::emitSlow_op_method_check): | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |         (JSC::JIT::emit_op_get_by_id): | 
 |         (JSC::JIT::emitSlow_op_get_by_id): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |         (JSC::JIT::emitSlow_op_put_by_id): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::compileGetByIdSlowCase): | 
 |         (JSC::JIT::compilePutDirectOffset): | 
 |         (JSC::JIT::compileGetDirectOffset): | 
 |         (JSC::JIT::testPrototype): | 
 |         (JSC::JIT::privateCompilePutByIdTransition): | 
 |         (JSC::JIT::patchGetByIdSelf): | 
 |         (JSC::JIT::patchMethodCallProto): | 
 |         (JSC::JIT::patchPutByIdReplace): | 
 |         (JSC::JIT::privateCompilePatchGetArrayLength): | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |         (JSC::JIT::emit_op_get_by_pname): | 
 |         (JSC::JIT::emitSlow_op_get_by_pname): | 
 |  | 
 | 2010-02-19  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         Added additional parameter to create_rvct_stubs  | 
 |         for setting the regularexpression prefix. | 
 |         Renamed it because it now works for other platforms too. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34951 | 
 |  | 
 |         * DerivedSources.pro: | 
 |         * create_jit_stubs: Copied from JavaScriptCore/create_rvct_stubs. | 
 |         * create_rvct_stubs: Removed. | 
 |  | 
 | 2010-02-18  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Improve interpreter getter performance | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35138 | 
 |  | 
 |         Improve the performance of getter dispatch by making it possible | 
 |         for the interpreter to cache the GetterSetter object lookup. | 
 |  | 
 |         To do this we simply need to make PropertySlot aware of getters | 
 |         as a potentially cacheable property, and record the base and this | 
 |         objects for a getter access.  This allows us to use more-or-less | 
 |         identical code to that used by the normal get_by_id caching, with | 
 |         the dispatch being the only actual difference. | 
 |  | 
 |         I'm holding off of implementing this in the JIT until I do some | 
 |         cleanup to try and making coding in the JIT not be as horrible | 
 |         as it is currently. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         (JSC::CodeBlock::derefStructures): | 
 |         (JSC::CodeBlock::refStructures): | 
 |         * bytecode/Opcode.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::resolveGlobal): | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::fillGetterPropertySlot): | 
 |         * runtime/PropertySlot.cpp: | 
 |         (JSC::PropertySlot::functionGetter): | 
 |         * runtime/PropertySlot.h: | 
 |         (JSC::PropertySlot::isGetter): | 
 |         (JSC::PropertySlot::isCacheable): | 
 |         (JSC::PropertySlot::isCacheableValue): | 
 |         (JSC::PropertySlot::setValueSlot): | 
 |         (JSC::PropertySlot::setGetterSlot): | 
 |         (JSC::PropertySlot::setCacheableGetterSlot): | 
 |         (JSC::PropertySlot::clearOffset): | 
 |         (JSC::PropertySlot::thisValue): | 
 |  | 
 | 2010-02-17  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fixed a portion of: | 
 |         <rdar://problem/7165917> | https://bugs.webkit.org/show_bug.cgi?id=28676 | 
 |         Safari 4 does not release memory back to the operating system fast enough (28676) | 
 |          | 
 |         This patch fixes a surprisingly common edge case in which the page heap | 
 |         would have only one free span, but that span would be larger than the | 
 |         minimum free size, so we would decide not to free it, even though it | 
 |         could be as large as 100MB or more! | 
 |          | 
 |         SunSpider reports no change on Mac or Windows. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::scavenge): Call shouldContinueScavenging() instead | 
 |         of doing the math ourselves. Don't keep a local value for pagesDecommitted | 
 |         because that lets free_committed_pages_ be wrong temporarily. Instead, | 
 |         update free_committed_pages_ as we go. ASSERT that we aren't releasing | 
 |         a span that has already been released, because we think this is impossible. | 
 |         Finally, don't be afraid to release all free memory in the page heap when | 
 |         scavenging. We only scavenge after 5 seconds of the application's working | 
 |         set not growing, and we keep both thread caches and a central cache on | 
 |         top of the page heap, so the extra free pages in the page heap were just | 
 |         overkill. | 
 |  | 
 | 2010-02-17  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=35070 | 
 |         Addition of 2 strings of length 2^31 may result in a string of length 0. | 
 |  | 
 |         Check for overflow when creating a new JSString as a result of an addition | 
 |         or concatenation, throw an out of memory exception. | 
 |  | 
 |         * runtime/JSString.h: | 
 |         (JSC::): | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsString): | 
 |  | 
 | 2010-02-17  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Reviewed by Gustavo Noronha. | 
 |  | 
 |         [Linux] Webkit incompatible with Java plugins | 
 |         https://bugs.webkit.org/show_bug.cgi?id=24912 | 
 |  | 
 |         Add support for GFile to GOwnPtr. | 
 |  | 
 |         Based on original work by Gustavo Noronha. | 
 |  | 
 |         * wtf/gtk/GOwnPtr.cpp: | 
 |         (WTF::GFile): | 
 |         * wtf/gtk/GOwnPtr.h: | 
 |  | 
 | 2010-02-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Fix a handful of other leaks seen on the buildbot. | 
 |  | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringOrRopeImpl::deref): Delegate through to the subclass version of deref to ensure that | 
 |         the correct cleanup takes place.  This function previously featured some code that attempted to | 
 |         skip deletion of static UStringImpl's.  Closer inspection revealed that it was in fact equivalent | 
 |         to "if (false)", meaning that UStringImpl's which had their final deref performed via this function | 
 |         were leaked. | 
 |  | 
 | 2010-02-16  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix a handful of leaks seen on the buildbot. | 
 |  | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringOrRopeImpl::deref): Call URopeImpl::destructNonRecursive rather than delete | 
 |         to ensure that the rope's fibers are also destroyed. | 
 |  | 
 | 2010-02-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34964 | 
 |         Leaks tool reports false memory leaks due to Rope implementation. | 
 |  | 
 |         A rope is a recursive data structure where each node in the rope holds a set of | 
 |         pointers, each of which may reference either a string (in UStringImpl form) or | 
 |         another rope node.  A low bit in each pointer is used to distinguish between | 
 |         rope & string elements, in a fashion similar to the recently-removed | 
 |         PtrAndFlags class (see https://bugs.webkit.org/show_bug.cgi?id=33731 ).  Again, | 
 |         this causes a problem for Leaks - refactor to remove the magic pointer | 
 |         mangling. | 
 |  | 
 |         Move Rope out from JSString.h and rename to URopeImpl, to match UStringImpl. | 
 |         Give UStringImpl and URopeImpl a common parent class, UStringOrRopeImpl. | 
 |         Repurpose an otherwise invalid permutation to flags (static & should report | 
 |         memory cost) to identify ropes. | 
 |  | 
 |         This allows us to change the rope's fibers to interrogate the object rather | 
 |         than storing a bool within the low bits of the pointer (or in some cases the | 
 |         use of a common parent class removes the need to determine the type at all - | 
 |         there is a common interface to ref or get the length of either ropes or strings). | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::OpaqueJSClass): | 
 |         (OpaqueJSClassContextData::OpaqueJSClassContextData): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::keyForCharacterSwitch): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::equal): | 
 |         (JSC::Identifier::addSlowCase): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         * runtime/JSString.h: | 
 |         (JSC::): | 
 |         (JSC::RopeBuilder::JSString): | 
 |         (JSC::RopeBuilder::~JSString): | 
 |         (JSC::RopeBuilder::appendStringInConstruct): | 
 |         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength): | 
 |         (JSC::RopeBuilder::JSStringFinalizerStruct::JSStringFinalizerStruct): | 
 |         (JSC::RopeBuilder::JSStringFinalizerStruct::): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::toStrictUInt32): | 
 |         (JSC::equal): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::isEmpty): | 
 |         (JSC::UString::size): | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::URopeImpl::derefFibersNonRecursive): | 
 |         (JSC::URopeImpl::destructNonRecursive): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringOrRopeImpl::isRope): | 
 |         (JSC::UStringOrRopeImpl::length): | 
 |         (JSC::UStringOrRopeImpl::ref): | 
 |         (JSC::UStringOrRopeImpl::): | 
 |         (JSC::UStringOrRopeImpl::operator new): | 
 |         (JSC::UStringOrRopeImpl::UStringOrRopeImpl): | 
 |         (JSC::UStringImpl::adopt): | 
 |         (JSC::UStringImpl::createUninitialized): | 
 |         (JSC::UStringImpl::tryCreateUninitialized): | 
 |         (JSC::UStringImpl::data): | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::deref): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         (JSC::UStringImpl::): | 
 |         (JSC::URopeImpl::tryCreateUninitialized): | 
 |         (JSC::URopeImpl::initializeFiber): | 
 |         (JSC::URopeImpl::fiberCount): | 
 |         (JSC::URopeImpl::fibers): | 
 |         (JSC::URopeImpl::deref): | 
 |         (JSC::URopeImpl::URopeImpl): | 
 |         (JSC::URopeImpl::hasOneRef): | 
 |         (JSC::UStringOrRopeImpl::deref): | 
 |  | 
 | 2010-02-15  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix the SP at ctiOpThrowNotCaught on Thumb2 (JSVALUE32) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34939 | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build Fix!). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Some general Rope related refactoring. | 
 |  | 
 |         Rename Rope::m_ropeLength to m_fiberCount, to be more descriptive. | 
 |         Rename Rope::m_stringLength to simply m_length (since this is the | 
 |         more conventional name for the length of a string).  Move append | 
 |         behaviour out into a new RopeBuilder class, so that Rope no longer | 
 |         needs any knowledge of the JSString or UString implementation. | 
 |  | 
 |         Make Rope no longer be nested within JSString. | 
 |         (Rope now no-longer need reside within JSString.h, but leaving | 
 |         the change of moving this out to a different header as a separate | 
 |         change from these renames). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::Rope::destructNonRecursive): | 
 |         (JSC::Rope::~Rope): | 
 |         (JSC::JSString::resolveRope): | 
 |         (JSC::JSString::toBoolean): | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         (JSC::Rope::Fiber::Fiber): | 
 |         (JSC::Rope::Fiber::deref): | 
 |         (JSC::Rope::Fiber::ref): | 
 |         (JSC::Rope::Fiber::refAndGetLength): | 
 |         (JSC::Rope::Fiber::isRope): | 
 |         (JSC::Rope::Fiber::rope): | 
 |         (JSC::Rope::Fiber::isString): | 
 |         (JSC::Rope::Fiber::string): | 
 |         (JSC::Rope::Fiber::nonFiber): | 
 |         (JSC::Rope::tryCreateUninitialized): | 
 |         (JSC::Rope::append): | 
 |         (JSC::Rope::fiberCount): | 
 |         (JSC::Rope::length): | 
 |         (JSC::Rope::fibers): | 
 |         (JSC::Rope::Rope): | 
 |         (JSC::Rope::operator new): | 
 |         (JSC::): | 
 |         (JSC::RopeBuilder::JSString): | 
 |         (JSC::RopeBuilder::~JSString): | 
 |         (JSC::RopeBuilder::length): | 
 |         (JSC::RopeBuilder::canGetIndex): | 
 |         (JSC::RopeBuilder::appendStringInConstruct): | 
 |         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength): | 
 |         (JSC::RopeBuilder::isRope): | 
 |         (JSC::RopeBuilder::fiberCount): | 
 |         (JSC::JSString::getStringPropertySlot): | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsString): | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Add missing cast for !YARR (PPC) builds. | 
 |  | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::match): | 
 |  | 
 | 2010-02-14  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33731 | 
 |         Many false leaks in release builds due to PtrAndFlags | 
 |  | 
 |         StructureTransitionTable was effectively a smart pointer type, | 
 |         one machine word in size and wholly contained as a member of | 
 |         of Structure.  It either pointed to an actual table, or could | 
 |         be used to describe a single transtion entry without use of a | 
 |         table. | 
 |  | 
 |         This, however, worked by using a PtrAndFlags, which is not | 
 |         compatible with the leaks tool.  Since there is no clear way to | 
 |         obtain another bit for 'free' here, and since there are bits | 
 |         available up in Structure, merge this functionality back up into | 
 |         Structure.  Having this in a separate class was quite clean | 
 |         from an enacapsulation perspective, but this solution doesn't | 
 |         seem to bad - all table access is now intermediated through the | 
 |         Structure::structureTransitionTableFoo methods, keeping the | 
 |         optimization fairly well contained. | 
 |  | 
 |         This was the last use of PtrAndFlags, so removing the file too. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * bytecode/CodeBlock.h: | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): | 
 |         (JSC::Structure::~Structure): | 
 |         (JSC::Structure::addPropertyTransitionToExistingStructure): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::hasTransition): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::): | 
 |         (JSC::Structure::structureTransitionTableContains): | 
 |         (JSC::Structure::structureTransitionTableGet): | 
 |         (JSC::Structure::structureTransitionTableHasTransition): | 
 |         (JSC::Structure::structureTransitionTableRemove): | 
 |         (JSC::Structure::structureTransitionTableAdd): | 
 |         (JSC::Structure::structureTransitionTable): | 
 |         (JSC::Structure::setStructureTransitionTable): | 
 |         (JSC::Structure::singleTransition): | 
 |         (JSC::Structure::setSingleTransition): | 
 |         * runtime/StructureTransitionTable.h: | 
 |         * wtf/PtrAndFlags.h: Removed. | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Geoff Garen. | 
 |  | 
 |         Bug 34948 - tryMakeString should fail on error in length calculation | 
 |  | 
 |         Ooops! - "bool overflow" argument should have been "bool& overflow". | 
 |  | 
 |         * runtime/UString.h: | 
 |         (JSC::sumWithOverflow): | 
 |         (JSC::tryMakeString): | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build Fix (pt 2!)). | 
 |  | 
 |         Some symbol names have changed, remove, will readd if required. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build Fix (pt 1?)). | 
 |  | 
 |         Some symbol names have changed, remove, will readd if required. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-02-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Removed some mistaken code added in http://trac.webkit.org/changeset/53860. | 
 |  | 
 |         * API/APIShims.h: | 
 |         (JSC::APICallbackShim::APICallbackShim): | 
 |         (JSC::APICallbackShim::~APICallbackShim): No need to start/stop the | 
 |         timeout checker when calling out from the API to the client; we want to | 
 |         monitor the VM for timeouts, not the client. This mistake was harmless / | 
 |         undetectable, since it's totally redundant with the APIEntryShim, which | 
 |         also starts / stops the timeout checker. | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 34952 - String lengths in UString should be unsigned. | 
 |         This matches WebCore::StringImpl, and better unifies behaviour throughout JSC. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * bytecode/EvalCodeCache.h: | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::equal): | 
 |         * runtime/Identifier.h: | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::globalFuncEscape): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::gap): | 
 |         (JSC::Stringifier::indent): | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::numberProtoFuncToFixed): | 
 |         (JSC::numberProtoFuncToPrecision): | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::match): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::substituteBackreferencesSlow): | 
 |         (JSC::stringProtoFuncReplace): | 
 |         (JSC::stringProtoFuncSplit): | 
 |         (JSC::trimString): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::UString): | 
 |         (JSC::UString::from): | 
 |         (JSC::UString::getCString): | 
 |         (JSC::UString::ascii): | 
 |         (JSC::UString::operator[]): | 
 |         (JSC::UString::toStrictUInt32): | 
 |         (JSC::UString::find): | 
 |         (JSC::UString::rfind): | 
 |         (JSC::UString::substr): | 
 |         (JSC::operator<): | 
 |         (JSC::operator>): | 
 |         (JSC::compare): | 
 |         (JSC::equal): | 
 |         (JSC::UString::UTF8String): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::size): | 
 |         (JSC::operator==): | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::create): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::create): | 
 |         (JSC::UStringImpl::size): | 
 |         (JSC::UStringImpl::computeHash): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |  | 
 | 2010-02-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 34948 - tryMakeString should fail on error in length calculation | 
 |  | 
 |         The sum of the length of substrings could overflow. | 
 |  | 
 |         * runtime/UString.h: | 
 |         (JSC::sumWithOverflow): | 
 |         (JSC::tryMakeString): | 
 |  | 
 | 2010-02-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fixed <rdar://problem/7628524> Crash beneath JSGlobalContextRelease when | 
 |         typing in Google search field with GuardMalloc/full page heap enabled | 
 |  | 
 |         * API/JSContextRef.cpp: Don't use APIEntryShim, since that requires | 
 |         a JSGlobalData, which this function destroys. Do use setCurrentIdentifierTable | 
 |         and JSLock instead, since those are the two features of APIEntryShim we | 
 |         require. | 
 |  | 
 | 2010-02-15  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         Added additional parameter to create_rvct_stubs  | 
 |         for setting the offset of thunkReturnAddress. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34657 | 
 |  | 
 |         * create_rvct_stubs: | 
 |         * jit/JITStubs.cpp: | 
 |  | 
 | 2010-02-15  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix QScriptValue::toIntXX methods. | 
 |  | 
 |         More ECMA Script compliance. | 
 |  | 
 |         [Qt] QScriptValue::toIntXX returns incorrect values | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34847 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::toInteger): | 
 |         (QScriptValuePrivate::toInt32): | 
 |         (QScriptValuePrivate::toUInt32): | 
 |         (QScriptValuePrivate::toUInt16): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: | 
 |         (tst_QScriptValue::toInteger_initData): | 
 |         (tst_QScriptValue::toInteger_makeData): | 
 |         (tst_QScriptValue::toInteger_test): | 
 |         (tst_QScriptValue::toInt32_initData): | 
 |         (tst_QScriptValue::toInt32_makeData): | 
 |         (tst_QScriptValue::toInt32_test): | 
 |         (tst_QScriptValue::toUInt32_initData): | 
 |         (tst_QScriptValue::toUInt32_makeData): | 
 |         (tst_QScriptValue::toUInt32_test): | 
 |         (tst_QScriptValue::toUInt16_initData): | 
 |         (tst_QScriptValue::toUInt16_makeData): | 
 |         (tst_QScriptValue::toUInt16_test): | 
 |  | 
 | 2010-02-14  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Implement NEVER_INLINE and NO_RETURN for RVCT | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34740 | 
 |  | 
 |         * wtf/AlwaysInline.h: | 
 |  | 
 | 2010-02-12  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33731 | 
 |         Remove uses of PtrAndFlags from JIT data stuctures. | 
 |  | 
 |         These break the OS X Leaks tool.  Free up a bit in CallLinkInfo, and invalid | 
 |         permutation of pointer states in MethodCallLinkInfo to represent the removed bits. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CallLinkInfo::seenOnce): | 
 |         (JSC::CallLinkInfo::setSeen): | 
 |         (JSC::MethodCallLinkInfo::MethodCallLinkInfo): | 
 |         (JSC::MethodCallLinkInfo::seenOnce): | 
 |         (JSC::MethodCallLinkInfo::setSeen): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::unlinkCall): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::patchMethodCallProto): | 
 |         * runtime/UString.h: | 
 |  | 
 | 2010-02-12  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33731 | 
 |         Many false leaks in release builds due to PtrAndFlags | 
 |  | 
 |         Remove UntypedPtrAndBitfield (similar to PtrAndFlags) in UStringImpl, | 
 |         and steal bits from the refCount instead. | 
 |  | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::baseSharedBuffer): | 
 |         (JSC::UStringImpl::~UStringImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::isIdentifier): | 
 |         (JSC::UStringImpl::setIsIdentifier): | 
 |         (JSC::UStringImpl::ref): | 
 |         (JSC::UStringImpl::deref): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         (JSC::UStringImpl::bufferOwnerString): | 
 |         (JSC::UStringImpl::bufferOwnership): | 
 |         (JSC::UStringImpl::isStatic): | 
 |         (JSC::UStringImpl::): | 
 |  | 
 | 2010-02-12  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Removed an unnecessary data dependency from my last patch. | 
 |  | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::SmallStrings::markChildren): Since isAnyStringMarked being false | 
 |         is a condition of entering the loop, we can just use '=' instead of '|='. | 
 |  | 
 | 2010-02-12  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         Additional refptr/passrefptr workarounds for WINSCW compiler | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28054 | 
 |  | 
 |         * wtf/PassRefPtr.h: | 
 |         (WTF::refIfNotNull): | 
 |         (WTF::PassRefPtr::PassRefPtr): | 
 |         (WTF::PassRefPtr::~PassRefPtr): | 
 |         (WTF::PassRefPtr::clear): | 
 |         (WTF::::operator): | 
 |         * wtf/RefPtr.h: | 
 |         (WTF::RefPtr::RefPtr): | 
 |         (WTF::::operator): | 
 |  | 
 | 2010-02-12  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         Additional refptr/passrefptr workarounds for WINSCW compiler | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28054 | 
 |  | 
 |         * wtf/PassRefPtr.h: | 
 |         (WTF::refIfNotNull): | 
 |         (WTF::PassRefPtr::PassRefPtr): | 
 |         (WTF::PassRefPtr::~PassRefPtr): | 
 |         (WTF::PassRefPtr::clear): | 
 |         (WTF::::operator): | 
 |         * wtf/RefPtr.h: | 
 |         (WTF::RefPtr::RefPtr): | 
 |         (WTF::::operator): | 
 |  | 
 | 2010-02-12  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         Additional refptr/passrefptr workarounds for WINSCW compiler | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28054 | 
 |  | 
 |         * wtf/PassRefPtr.h: | 
 |         (WTF::refIfNotNull): | 
 |         (WTF::PassRefPtr::PassRefPtr): | 
 |         (WTF::PassRefPtr::~PassRefPtr): | 
 |         (WTF::PassRefPtr::clear): | 
 |         (WTF::::operator): | 
 |         * wtf/RefPtr.h: | 
 |         (WTF::RefPtr::RefPtr): | 
 |         (WTF::::operator): | 
 |  | 
 | 2010-02-12  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Don't import the cmath functions from std:: for WINSCW. | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |  | 
 | 2010-02-12  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Typedef both JSChar and UChar to wchar_t in RVCT. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34560 | 
 |  | 
 |         Define both JSChar and UChar to wchar_t as the size | 
 |         of wchar_t is 2 bytes in RVCT. | 
 |  | 
 |         * API/JSStringRef.h: | 
 |         * wtf/unicode/qt4/UnicodeQt4.h: | 
 |  | 
 | 2010-02-11  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt and Darin Adler. | 
 |  | 
 |         The rest of the fix for | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34864 | <rdar://problem/7594198> | 
 |         Many objects left uncollected after visiting mail.google.com and closing | 
 |         window | 
 |          | 
 |         Don't unconditionally hang onto small strings. Instead, hang onto all | 
 |         small strings as long as any small string is still referenced. | 
 |          | 
 |         SunSpider reports no change. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::markRoots): Mark the small strings cache last, so it can | 
 |         check if anything else has kept any strings alive. | 
 |  | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::isMarked): | 
 |         (JSC::SmallStrings::markChildren): Only keep our strings alive if some | 
 |         other reference to at least one of them exists, too. | 
 |  | 
 | 2010-02-11  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Some progress toward fixing | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34864 | <rdar://problem/7594198> | 
 |         Many objects left uncollected after visiting mail.google.com and closing | 
 |         window | 
 |          | 
 |         SunSpider reports no change. | 
 |          | 
 |         Keep weak references, rather than protected references, to cached for-in | 
 |         property name enumerators. | 
 |          | 
 |         One problem with protected references is that a chain like  | 
 |             [ gc object 1 ] => [ non-gc object ] => [ gc object 2 ] | 
 |         takes two GC passes to break, since the first pass collects [ gc object 1 ], | 
 |         releasing [ non-gc object ] and unprotecting [ gc object 2 ], and only | 
 |         then can a second pass collect [ gc object 2 ]. | 
 |          | 
 |         Another problem with protected references is that they can keep a bunch | 
 |         of strings alive long after they're useful. In SunSpider and a few popular | 
 |         websites, the size-speed tradeoff seems to favor weak references. | 
 |  | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::JSPropertyNameIterator): Moved this constructor | 
 |         into the .cpp file, since it's not used elsewhere. | 
 |  | 
 |         (JSC::JSPropertyNameIterator::~JSPropertyNameIterator): Added a destructor | 
 |         to support our weak reference. | 
 |  | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::Structure::setEnumerationCache): | 
 |         (JSC::Structure::clearEnumerationCache): | 
 |         (JSC::Structure::enumerationCache): Added a function for clearing a | 
 |         Structure's enumeration cache, used by our new destructor. Also fixed | 
 |         indentation to match the rest of the file. | 
 |  | 
 |         * runtime/Structure.h: Changed from protected pointer to weak pointer. | 
 |  | 
 | 2010-02-11  Chris Rogers  <crogers@google.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         audio engine: add Complex number class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34538 | 
 |  | 
 |         * wtf/Complex.h: Added. | 
 |         (WebCore::complexFromMagnitudePhase): | 
 |  | 
 | 2010-02-10  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Added an SPI for asking about all the different live objects on the heap. | 
 |         Useful for memory debugging. | 
 |  | 
 |         * JavaScriptCore.exp: Export the new SPI. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::typeName): Use a little capitalization. Don't crash in the case of | 
 |         a non-object cell, since it might just be an uninitialized cell. | 
 |  | 
 |         (JSC::Heap::objectTypeCounts): The new SPI. | 
 |  | 
 |         * runtime/Collector.h: | 
 |         * runtime/CollectorHeapIterator.h: | 
 |         (JSC::CollectorHeapIterator::advance): | 
 |         (JSC::LiveObjectIterator::operator++): | 
 |         (JSC::DeadObjectIterator::operator++): | 
 |         (JSC::ObjectIterator::operator++): Made 2 tweaks to these iterators: | 
 |         (1) Skip the last cell in the block, since it's a dummy sentinel, and | 
 |         we don't want it to confuse the object count; (2) Fixed a logic error | 
 |         in LiveObjectIterator that could cause it to iterate dead objects if | 
 |         m_block were equal to m_heap.nextBlock and m_cell were less than | 
 |         m_heap.nextCell. No test for this since I can't think of a way that this | 
 |         could make WebKit behave badly. | 
 |  | 
 | 2010-02-11  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Guard cmath using declarations in MathExtras.h on Android | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34840 | 
 |  | 
 |         Android does not provide these functions. | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |  | 
 | 2010-02-08  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Cameron Zwarich. | 
 |  | 
 |         Restore ENABLE_RUBY flag so vendors can ship with Ruby disabled if they choose. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34698 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-02-10  Kevin Watters  <kevinwatters@gmail.com> | 
 |  | 
 |         Reviewed by Kevin Ollivier. | 
 |  | 
 |         [wx] Add Windows complex text support and Mac support for containsCharacters. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34759 | 
 |  | 
 |         * wscript: | 
 |  | 
 | 2010-02-10  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Addressing issues found by style bot. | 
 |  | 
 |         * wtf/ValueCheck.h: Renamed header guard to match final file name. | 
 |  | 
 |         * wtf/Vector.h: (WTF::::checkConsistency): Remove braces around a one-line clause. | 
 |  | 
 | 2010-02-09  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34490 | 
 |         WebCore::ImageEventSender::dispatchPendingEvents() crashes in certain conditions | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         Added ValueCheck.h. | 
 |  | 
 |         * wtf/ValueCheck.h: Added. Moved code out of HashTraits, since it would be awkward to | 
 |         include that from Vector.h. | 
 |         (WTF::ValueCheck::checkConsistency): Allow null pointers, those are pretty consistent. | 
 |  | 
 |         * wtf/HashTraits.h: Moved value checking code out of here. | 
 |  | 
 |         * wtf/HashTable.h: (WTF::::checkTableConsistencyExceptSize): Updated for the above changes. | 
 |  | 
 |         * wtf/Vector.h: | 
 |         (WTF::::checkConsistency): Check all vector elements. | 
 |         (WTF::ValueCheck): Support checking a Vector as an element in other containers. Currently | 
 |         unused. | 
 |  | 
 | 2010-02-10  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix QScriptValue::toBool. | 
 |  | 
 |         Fix ECMA compliance in the QScriptValue for values like 0, NaN and | 
 |         empty strings. | 
 |  | 
 |         [Qt] QScriptValue::toBool problem | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34793 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::toBool): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: | 
 |         (tst_QScriptValue::toBool_initData): | 
 |         (tst_QScriptValue::toBool_makeData): | 
 |         (tst_QScriptValue::toBool_test): | 
 |         (tst_QScriptValue::toBoolean_initData): | 
 |         (tst_QScriptValue::toBoolean_makeData): | 
 |         (tst_QScriptValue::toBoolean_test): | 
 |  | 
 | 2009-10-06  Yongjun Zhang  <yongjun.zhang@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Use derefIfNotNull() to work around WINSCW compiler forward declaration bug | 
 |  | 
 |         The compiler bug is reported at | 
 |         https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812. | 
 |  | 
 |         The change should be reverted when the above bug is fixed in WINSCW compiler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28054 | 
 |  | 
 | 2009-10-06  Yongjun Zhang  <yongjun.zhang@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Get rid of WINSCW hack for UnSpecifiedBoolType | 
 |  | 
 |         Add parenthesis around (RefPtr::*UnspecifiedBoolType) to make the WINSCW | 
 |         compiler work with the default UnSpecifiedBoolType() operator. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28054 | 
 |  | 
 |         * wtf/RefPtr.h: | 
 |  | 
 | 2010-02-09  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         New functions nullValue() and undefinedValue(). | 
 |  | 
 |         [Qt] QScriptEngine should contain nullValue and undefinedValue methods | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34749 | 
 |  | 
 |         * qt/api/qscriptengine.cpp: | 
 |         (QScriptEngine::nullValue): | 
 |         (QScriptEngine::undefinedValue): | 
 |         * qt/api/qscriptengine.h: | 
 |         * qt/tests/qscriptengine/tst_qscriptengine.cpp: | 
 |         (tst_QScriptEngine::nullValue): | 
 |         (tst_QScriptEngine::undefinedValue): | 
 |  | 
 | 2010-02-09  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fixes for QScriptValue::toNumber(). | 
 |  | 
 |         Fix ECMA compliance in QScriptValue for values unbound | 
 |         to a QScriptEngine. | 
 |  | 
 |         [Qt] QScriptValue::toNumber() is broken | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34592 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::toNumber): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: | 
 |         (tst_QScriptValue::toNumber_initData): | 
 |         (tst_QScriptValue::toNumber_makeData): | 
 |         (tst_QScriptValue::toNumber_test): | 
 |  | 
 | 2010-02-09  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix QScriptValue::isNumber(). | 
 |  | 
 |         The isNumber() should return 'true' if the value is in the CNumber | 
 |         state. | 
 |  | 
 |         [Qt] QScriptValue::isNumber() returns an incorrect value | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34575 | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::isNumber): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: | 
 |         (tst_QScriptValue::isNumber_initData): | 
 |         (tst_QScriptValue::isNumber_makeData): | 
 |         (tst_QScriptValue::isNumber_test): | 
 |  | 
 | 2010-02-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Small refactoring to the small strings cache to allow it to be cleared | 
 |         dynamically. | 
 |  | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::SmallStrings::SmallStrings): | 
 |         (JSC::SmallStrings::clear): | 
 |         * runtime/SmallStrings.h: Moved initialization code into a shared function, | 
 |         and changed the constructor to call it. | 
 |  | 
 | 2010-02-09  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Geoff Garen. | 
 |  | 
 |         Rename StringBuilder::release && JSStringBuilder::releaseJSString | 
 |         to 'build()'. | 
 |  | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToLocaleString): | 
 |         (JSC::arrayProtoFuncJoin): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::paramString): | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::constructFunction): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::encode): | 
 |         (JSC::decode): | 
 |         (JSC::globalFuncEscape): | 
 |         (JSC::globalFuncUnescape): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::stringify): | 
 |         * runtime/JSStringBuilder.h: | 
 |         (JSC::JSStringBuilder::build): | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::LiteralParser::Lexer::lexString): | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::integerPartNoExp): | 
 |         (JSC::numberProtoFuncToFixed): | 
 |         * runtime/StringBuilder.h: | 
 |         (JSC::StringBuilder::build): | 
 |  | 
 | 2010-02-09  John Sullivan  <sullivan@apple.com> | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34772 | 
 |         Overzealous new assertion in URStringImpl::adopt() | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::adopt): | 
 |         Only assert that vector.data() is non-zero if vector.size() is non-zero. | 
 |  | 
 | 2010-02-09  Nikolas Zimmermann  <nzimmermann@rim.com> | 
 |  | 
 |         Not reviewed. Try to fix build problem on SnowLeopard slaves to bring them back. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (tryCreateStringFromUTF8): Mark method as 'static inline' to suppress "warning: no previous prototype for ..." | 
 |  | 
 | 2010-02-09  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Three small string fixes: | 
 |         (1) StringBuilder::release should CRASH if the buffer allocation failed. | 
 |         (2) Remove weird, dead code from JSString::tryGetValue, replace with an ASSERT. | 
 |         (3) Move UString::createFromUTF8 out to the API, as tryCreateStringFromUTF8. | 
 |             This is only used from the API, and (now) unlike other UString::create | 
 |             methods may return UString::null() to indicate failure cases.  Better | 
 |             handle these in the API. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (tryCreateStringFromUTF8): | 
 |         (OpaqueJSClass::OpaqueJSClass): | 
 |         (OpaqueJSClassContextData::OpaqueJSClassContextData): | 
 |         * runtime/JSString.h: | 
 |         (JSC::Fiber::tryGetValue): | 
 |         * runtime/StringBuilder.h: | 
 |         (JSC::StringBuilder::release): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::UString): | 
 |         (JSC::UString::from): | 
 |         (JSC::UString::find): | 
 |         * runtime/UString.h: | 
 |  | 
 | 2010-02-09  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [Qt] use nanval() for Symbian as nonInlineNaN | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34170 | 
 |  | 
 |         numeric_limits<double>::quiet_NaN is broken in Symbian | 
 |         causing NaN to be evaluated as a number. | 
 |  | 
 |         * runtime/JSValue.cpp: | 
 |         (JSC::nonInlineNaN): | 
 |  | 
 | 2010-02-09  Tamas Szirbucz  <szirbucz@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add a soft modulo operation to ARM JIT using a trampoline function. | 
 |         The performance progression is about ~1.8% on ARMv7 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34424 | 
 |  | 
 |         Developed in cooperation with Gabor Loki. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mod): | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::softModulo): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiSoftModulo): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-08  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (SL/win build fixes). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * runtime/StringPrototype.cpp: | 
 |  | 
 | 2010-02-08  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt | 
 |  | 
 |         Make String.replace throw an exception on out-of-memory, rather than | 
 |         returning a null (err, empty-ish) string.  Move String::replaceRange | 
 |         and String::spliceSubstringsWithSeparators out to StringPrototype - | 
 |         these were fairly specific use anyway, and we can better integrate | 
 |         throwing the JS expcetion this way. | 
 |  | 
 |         Also removes redundant assignment operator from UString. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::StringRange::StringRange): | 
 |         (JSC::jsSpliceSubstringsWithSeparators): | 
 |         (JSC::jsReplaceRange): | 
 |         (JSC::stringProtoFuncReplace): | 
 |         * runtime/UString.cpp: | 
 |         * runtime/UString.h: | 
 |  | 
 | 2010-02-08  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Undefine WTF_OS_WINDOWS and WTF_PLATFORM_WIN | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34561 | 
 |  | 
 |         As the binary for simulator is built with MSVC 2005, | 
 |         WTF_OS_WINDOWS and WTF_PLATFORM_WIN are defined. | 
 |         Undefine them as we don't target Windows. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-08  Chris Rogers  <crogers@google.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         audio engine: add Vector3 class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34548 | 
 |  | 
 |         * wtf/Vector3.h: Added. | 
 |         (WebCore::Vector3::Vector3): | 
 |         (WebCore::Vector3::abs): | 
 |         (WebCore::Vector3::isZero): | 
 |         (WebCore::Vector3::normalize): | 
 |         (WebCore::Vector3::x): | 
 |         (WebCore::Vector3::y): | 
 |         (WebCore::Vector3::z): | 
 |         (WebCore::operator+): | 
 |         (WebCore::operator-): | 
 |         (WebCore::operator*): | 
 |         (WebCore::dot): | 
 |         (WebCore::cross): | 
 |         (WebCore::distance): | 
 |  | 
 | 2010-02-08  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix warning in clang++ | 
 |  | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::propertyStorageSize): | 
 |  | 
 | 2010-02-08  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Make makeString CRASH if we fail to allocate a string. | 
 |  | 
 |         (tryMakeString or jsMakeNontrivialString can be used where we | 
 |         expect allocation may fail and want to handle the error). | 
 |  | 
 |         * runtime/JSStringBuilder.h: | 
 |         (JSC::jsMakeNontrivialString): | 
 |         * runtime/UString.h: | 
 |         (JSC::tryMakeString): | 
 |         (JSC::makeString): | 
 |  | 
 | 2010-02-08  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Oliver Hunt. | 
 |  | 
 |         Remove a couple of unnecesary C-style casts spotted by Darin. | 
 |  | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::encode): | 
 |         (JSC::globalFuncEscape): | 
 |  | 
 | 2010-02-08  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Switch some more StringBuilder/jsNontrivialString code to use | 
 |         JSStringBuilder/jsMakeNontrivialString - these methods will | 
 |         throw an exception if we hit out-of-memory, rather than just | 
 |         CRASHing. | 
 |  | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::encode): | 
 |         (JSC::decode): | 
 |         (JSC::globalFuncEscape): | 
 |  | 
 | 2010-02-08  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Use an empty identifier instead of a null identifier for parse | 
 |         tokens without an identifier. | 
 |  | 
 |         This helps encapsulate the null UStringImpl within UString. | 
 |  | 
 |         * parser/Grammar.y: | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::ContinueNode::ContinueNode): | 
 |         (JSC::BreakNode::BreakNode): | 
 |         (JSC::ForInNode::ForInNode): | 
 |         * runtime/CommonIdentifiers.cpp: | 
 |         (JSC::CommonIdentifiers::CommonIdentifiers): | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::FunctionPrototype::FunctionPrototype): | 
 |  | 
 | 2010-02-08  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Build fix for make distcheck. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2010-02-08  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Unreviewed RVCT build fix. | 
 |  | 
 |         Similar to r54391, don't import the cmath functions from std:: for RVCT. | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |  | 
 | 2010-02-05  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Change UStringImpl::create to CRASH if the string cannot be allocated, | 
 |         rather than returning a null string (which will behave like a zero-length | 
 |         string if used). | 
 |  | 
 |         Also move createRep function from UString to become new overloaded | 
 |         UStringImpl::create methods.  In doing so, bring their behaviour closer to | 
 |         being in line with WebCore::StringImpl, in removing the behaviour that they | 
 |         can be used to produce null UStrings (ASSERT the char* provided is non-null). | 
 |         This behaviour of converting null C-strings to null UStrings is inefficient | 
 |         (cmompared to just using UString::null()), incompatible with WebCore::StringImpl's | 
 |         behaviour, and may generate unexpected behaviour, since in many cases a null | 
 |         UString can be used like an empty string. | 
 |  | 
 |         With these changes UStringImpl need not have a concept of null impls, we can | 
 |         start transitioning this to become an implementation detail of UString, that | 
 |         internally it chooses to use a null-object rather than an actually zero impl | 
 |         pointer. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::calculatedFunctionName): | 
 |         * parser/Parser.cpp: | 
 |         (JSC::Parser::parse): | 
 |         * profiler/Profile.cpp: | 
 |         (JSC::Profile::Profile): | 
 |         * profiler/ProfileGenerator.cpp: | 
 |         (JSC::ProfileGenerator::stopProfiling): | 
 |         * runtime/Error.cpp: | 
 |         (JSC::Error::create): | 
 |         (JSC::throwError): | 
 |         * runtime/ExceptionHelpers.cpp: | 
 |         (JSC::createError): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::add): | 
 |         * runtime/PropertyNameArray.cpp: | 
 |         (JSC::PropertyNameArray::add): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::initializeUString): | 
 |         (JSC::UString::UString): | 
 |         (JSC::UString::operator=): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::isNull): | 
 |         (JSC::UString::null): | 
 |         (JSC::UString::rep): | 
 |         (JSC::UString::UString): | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::create): | 
 |         * runtime/UStringImpl.h: | 
 |  | 
 | 2010-02-05  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Define SYSTEM_MALLOC 1 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34640 | 
 |  | 
 |         Make BREWMP use system malloc because FastMalloc is not ported. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-05  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Don't call CRASH() in fastMalloc and fastCalloc when the requested memory size is 0 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34569 | 
 |  | 
 |         With USE_SYSTEM_MALLOC=1, fastMalloc and fastCalloc call CRASH() | 
 |         if the return value of malloc and calloc is 0. | 
 |          | 
 |         However, these functions can return 0 when the request size is 0. | 
 |         Libc manual says, "If size is 0, then malloc() returns either NULL, | 
 |         or a unique pointer value that can later be successfully passed to free()." | 
 |         Though malloc returns a unique pointer in most systems, | 
 |         0 can be returned in some systems. For instance, BREW's MALLOC returns 0 | 
 |         when size is 0. | 
 |  | 
 |         If malloc or calloc returns 0 due to allocation size, increase the size | 
 |         to 1 and try again. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::fastMalloc): | 
 |         (WTF::fastCalloc): | 
 |  | 
 | 2010-02-04  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Timothy Hatcher. | 
 |  | 
 |         Build fix.  Remove a symbol corresponding to an inline function from the linker export | 
 |         file to prevent a weak external failure. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Accommodate rename of script. | 
 |  | 
 | 2010-02-04  Daniel Bates  <dbates@webkit.org> | 
 |  | 
 |         [Qt] Unreviewed, build fix for Qt bot. | 
 |  | 
 |         * runtime/JSStringBuilder.h: Changed #include <X.h> notation #include "X.h". | 
 |  | 
 | 2010-02-04  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Clearing a WeakGCPtr is weird | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34627 | 
 |  | 
 |         Added a WeakGCPtr::clear interface. | 
 |          | 
 |         As discussed in https://bugs.webkit.org/show_bug.cgi?id=33383, the old | 
 |         interface made it pretty weird for a client to conditionally clear a | 
 |         WeakGCPtr, which is exactly what clients want to do when objects are | 
 |         finalized. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (clearReferenceToPrototype): Use the new WeakGCPtr::clear() interface.  | 
 |  | 
 |         * runtime/WeakGCPtr.h: | 
 |         (JSC::WeakGCPtr::clear): Added an interface for clearing a WeakGCPtr, | 
 |         iff its current value is the value passed in. It's cumbersome for the | 
 |         client to do this test, since WeakGCPtr sometimes pretends to be null. | 
 |  | 
 | 2010-02-04  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: export a header. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2010-02-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Add a JSStringBuilder class (similar-to, and derived-from StringBuilder) to | 
 |         construct JSStrings, throwing a JS exception should we run out of memory whilst | 
 |         allocating storage for the string. | 
 |  | 
 |         Similarly, add jsMakeNontrivialString methods to use in cases where previously | 
 |         we were calling makeString & passing the result to jsNontrivialString.  Again, | 
 |         these new methods throw if we hit an out of memory condition. | 
 |  | 
 |         Move throwOutOfMemoryError into ExceptionHelpers, to make it more widely available. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |         (JSC::arrayProtoFuncToLocaleString): | 
 |         (JSC::arrayProtoFuncJoin): | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::callDate): | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::dateProtoFuncToString): | 
 |         (JSC::dateProtoFuncToUTCString): | 
 |         (JSC::dateProtoFuncToGMTString): | 
 |         * runtime/ErrorPrototype.cpp: | 
 |         (JSC::errorProtoFuncToString): | 
 |         * runtime/ExceptionHelpers.cpp: | 
 |         (JSC::throwOutOfMemoryError): | 
 |         * runtime/ExceptionHelpers.h: | 
 |         * runtime/JSStringBuilder.h: Added. | 
 |         (JSC::JSStringBuilder::releaseJSString): | 
 |         (JSC::jsMakeNontrivialString): | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::numberProtoFuncToPrecision): | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::objectProtoFuncToString): | 
 |         * runtime/Operations.cpp: | 
 |         * runtime/Operations.h: | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::regExpProtoFuncToString): | 
 |         * runtime/StringBuilder.h: | 
 |         (JSC::StringBuilder::append): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncBig): | 
 |         (JSC::stringProtoFuncSmall): | 
 |         (JSC::stringProtoFuncBlink): | 
 |         (JSC::stringProtoFuncBold): | 
 |         (JSC::stringProtoFuncFixed): | 
 |         (JSC::stringProtoFuncItalics): | 
 |         (JSC::stringProtoFuncStrike): | 
 |         (JSC::stringProtoFuncSub): | 
 |         (JSC::stringProtoFuncSup): | 
 |         (JSC::stringProtoFuncFontcolor): | 
 |         (JSC::stringProtoFuncFontsize): | 
 |         (JSC::stringProtoFuncAnchor): | 
 |  | 
 | 2010-02-04  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |  | 
 | 2010-02-04  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Make MathExtras.h compatible with <cmath> | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34618 | 
 |  | 
 |         * wtf/MathExtras.h: Include <cmath> instead of <math.h>. | 
 |         Use "using" as we do elsewhere in WTF for the four functions from <cmath> | 
 |         we want to use without the prefix. Later we could consider making the std | 
 |         explicit at call sites instead. | 
 |  | 
 | 2010-02-04  Tamas Szirbucz  <szirbucz@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Use an easily appendable structure for trampolines instead of pointer parameters. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34424 | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::executableCopy): | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileCTIMachineTrampolines): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiStringLengthTrampoline): | 
 |         (JSC::JITThunks::ctiVirtualCallLink): | 
 |         (JSC::JITThunks::ctiVirtualCall): | 
 |         (JSC::JITThunks::ctiNativeCallThunk): | 
 |  | 
 | 2010-02-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Increase test coverage for the QScriptValue. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34533 | 
 |  | 
 |         * qt/tests/qscriptvalue/qscriptvalue.pro: | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp: | 
 |         (tst_QScriptValue::tst_QScriptValue): | 
 |         (tst_QScriptValue::~tst_QScriptValue): | 
 |         (tst_QScriptValue::dataHelper): | 
 |         (tst_QScriptValue::newRow): | 
 |         (tst_QScriptValue::testHelper): | 
 |         (tst_QScriptValue::ctor): | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.h: Added. | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: Added. | 
 |         (tst_QScriptValue::initScriptValues): | 
 |         (tst_QScriptValue::isValid_initData): | 
 |         (tst_QScriptValue::isValid_makeData): | 
 |         (tst_QScriptValue::isValid_test): | 
 |         (tst_QScriptValue::isBool_initData): | 
 |         (tst_QScriptValue::isBool_makeData): | 
 |         (tst_QScriptValue::isBool_test): | 
 |         (tst_QScriptValue::isBoolean_initData): | 
 |         (tst_QScriptValue::isBoolean_makeData): | 
 |         (tst_QScriptValue::isBoolean_test): | 
 |         (tst_QScriptValue::isFunction_initData): | 
 |         (tst_QScriptValue::isFunction_makeData): | 
 |         (tst_QScriptValue::isFunction_test): | 
 |         (tst_QScriptValue::isNull_initData): | 
 |         (tst_QScriptValue::isNull_makeData): | 
 |         (tst_QScriptValue::isNull_test): | 
 |         (tst_QScriptValue::isString_initData): | 
 |         (tst_QScriptValue::isString_makeData): | 
 |         (tst_QScriptValue::isString_test): | 
 |         (tst_QScriptValue::isUndefined_initData): | 
 |         (tst_QScriptValue::isUndefined_makeData): | 
 |         (tst_QScriptValue::isUndefined_test): | 
 |         (tst_QScriptValue::isObject_initData): | 
 |         (tst_QScriptValue::isObject_makeData): | 
 |         (tst_QScriptValue::isObject_test): | 
 |  | 
 | 2010-02-03  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Define WTF_PLATFORM_BREWMP_SIMULATOR when AEE_SIMULATOR is defined | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34514 | 
 |  | 
 |         PLATFORM(BREWMP_SIMULATOR) guard is needed to make distinction between BREWMP | 
 |         and BREWMP simulator. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-03  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Remove COMPILE_ASSERT conflict with the underlying PLATFORM | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34190 | 
 |  | 
 |         COMPILE_ASSERT conflicts with the underlying PLATFORM because it is defined | 
 |         both in WTF's Assertions.h and BREWMP's AEEClassIDs.h. Include AEEClassIDs.h | 
 |         in Assertions.h and undef COMPILE_ASSERT to avoid redefining COMPILE_ASSERT. | 
 |  | 
 |         * wtf/Assertions.h: | 
 |  | 
 | 2010-02-03  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Implement OwnPtrBrew to make sure BREW instances are freed. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34518 | 
 |  | 
 |         Add OwnPtrBrew to release IFile, IFileMgr and IBitmap instances. | 
 |  | 
 |         * wtf/brew/OwnPtrBrew.cpp: Added. | 
 |         (WTF::IFileMgr): | 
 |         (WTF::IFile): | 
 |         (WTF::IBitmap): | 
 |         (WTF::freeOwnedPtrBrew): | 
 |         * wtf/brew/OwnPtrBrew.h: Added. | 
 |         (WTF::OwnPtrBrew::OwnPtrBrew): | 
 |         (WTF::OwnPtrBrew::~OwnPtrBrew): | 
 |         (WTF::OwnPtrBrew::get): | 
 |         (WTF::OwnPtrBrew::release): | 
 |         (WTF::OwnPtrBrew::outPtr): | 
 |         (WTF::OwnPtrBrew::set): | 
 |         (WTF::OwnPtrBrew::clear): | 
 |         (WTF::OwnPtrBrew::operator*): | 
 |         (WTF::OwnPtrBrew::operator->): | 
 |         (WTF::OwnPtrBrew::operator!): | 
 |         (WTF::OwnPtrBrew::operator UnspecifiedBoolType): | 
 |         (WTF::OwnPtrBrew::swap): | 
 |         (WTF::swap): | 
 |         (WTF::operator==): | 
 |         (WTF::operator!=): | 
 |         (WTF::getPtr): | 
 |  | 
 | 2010-02-03  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Export WTF::fastStrDup symbol | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34526 | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2010-02-03  Kevin Watters  <kevinwatters@gmail.com> | 
 |  | 
 |         Reviewed by Kevin Ollivier. | 
 |  | 
 |         [wx] Enable JIT compilation for wx. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34536 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-02  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Crash in CollectorBitmap::get at nbcolympics.com | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34504 | 
 |  | 
 |         This was caused by the use of m_offset to determine the offset of | 
 |         a new property into the property storage.  This patch corrects | 
 |         the effected cases by incorporating the anonymous slot count. It | 
 |         also removes the duplicate copy of anonymous slot count from the | 
 |         property table as keeping this up to date merely increased the | 
 |         chance of a mismatch.  Finally I've added a large number of | 
 |         assertions in an attempt to prevent such a bug from happening | 
 |         again. | 
 |  | 
 |         With the new assertions in place the existing anonymous slot tests | 
 |         all fail without the m_offset fixes. | 
 |  | 
 |         * runtime/PropertyMapHashTable.h: | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::materializePropertyMap): | 
 |         (JSC::Structure::addPropertyTransitionToExistingStructure): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::removePropertyTransition): | 
 |         (JSC::Structure::flattenDictionaryStructure): | 
 |         (JSC::Structure::addPropertyWithoutTransition): | 
 |         (JSC::Structure::removePropertyWithoutTransition): | 
 |         (JSC::Structure::copyPropertyTable): | 
 |         (JSC::Structure::get): | 
 |         (JSC::Structure::put): | 
 |         (JSC::Structure::remove): | 
 |         (JSC::Structure::insertIntoPropertyMapHashTable): | 
 |         (JSC::Structure::createPropertyMapHashTable): | 
 |         (JSC::Structure::rehashPropertyMapHashTable): | 
 |         (JSC::Structure::checkConsistency): | 
 |  | 
 | 2010-02-02  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Copyright year updating for Windows version resources should be automatic | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34503 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: | 
 |  | 
 | 2010-02-02  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Add dummy main thread functions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33569 | 
 |  | 
 |         Add dummy initializeMainThreadPlatform and | 
 |         scheduleDispatchFunctionsOnMainThread. | 
 |  | 
 |         * wtf/brew/MainThreadBrew.cpp: Added. | 
 |         (WTF::initializeMainThreadPlatform): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): | 
 |  | 
 | 2010-02-02  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Add using WTF::getLocalTime to CurrentTime.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34493 | 
 |  | 
 |         * wtf/CurrentTime.h: | 
 |  | 
 | 2010-02-02  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Add HAVE_XXX definitions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34414 | 
 |  | 
 |         Add HAVE_ERRNO_H=1 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-02  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Don't define HAVE_TM_GMTOFF, HAVE_TM_ZONE and HAVE_TIMEGM | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34388 | 
 |  | 
 |         BREWMP does not have these features. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-02  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Define WTF_PLATFORM_BREWMP=1 when BUILDING_BREWMP is defined | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34386 | 
 |  | 
 |         Define WTF_PLATFORM_BREWMP=1 so that PLATFORM(BREWMP) guard can be used. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-01  Kent Tamura  <tkent@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Date.UTC() should apply TimeClip operation. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34461 | 
 |  | 
 |         ECMAScript 5 15.9.4.3: | 
 |         > 9 Return TimeClip(MakeDate(MakeDay(yr, m, dt), MakeTime(h, min, s, milli))). | 
 |  | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::dateUTC): Calls WTF::timeClip(). | 
 |  | 
 | 2010-02-01  Kent Tamura  <tkent@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix a bug that Math.round() retunrs incorrect results for huge integers | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34462 | 
 |  | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::mathProtoFuncRound): Avoid "arg + 0.5". | 
 |  | 
 | 2010-02-01  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Port WTF's currentTime | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33567 | 
 |  | 
 |         Combine GETUTCSECONDS and GETTIMEMS to calculate the number | 
 |         of milliseconds since 1970/01/01 00:00:00 UTC. | 
 |  | 
 |         * wtf/CurrentTime.cpp: | 
 |         (WTF::currentTime): | 
 |  | 
 | 2010-02-01  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         [Qt] WinCE buildfix after r52729 and fix for Q_BIG_ENDIAN typo. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34378 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-02-01  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Structure not accounting for anonymous slots when computing property storage size | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34441 | 
 |  | 
 |         Previously any Structure with anonymous storage would have a property map, so we | 
 |         were only including anonymous slot size if there was a property map.  Given this | 
 |         is no longer the case we should always include the anonymous slot count in the | 
 |         property storage size. | 
 |  | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::propertyStorageSize): | 
 |  | 
 | 2010-02-01  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix, update exports file (again) | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-02-01  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix, update exports file | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-01-31  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         JSC is failing to propagate anonymous slot count on some transitions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34321 | 
 |  | 
 |         Remove secondary Structure constructor, and make Structure store a copy | 
 |         of the number of anonymous slots directly so saving an immediate allocation | 
 |         of a property map for all structures with anonymous storage, which also | 
 |         avoids the leaked property map on new property transition in the original | 
 |         version of this patch. | 
 |  | 
 |         We need to propagate the the anonymous slot count otherwise we can end up | 
 |         with a structure recording incorrect information about the available and | 
 |         needed space for property storage, or alternatively incorrectly reusing | 
 |         some slots. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): | 
 |         (JSC::Structure::materializePropertyMap): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::changePrototypeTransition): | 
 |         (JSC::Structure::despecifyFunctionTransition): | 
 |         (JSC::Structure::getterSetterTransition): | 
 |         (JSC::Structure::toDictionaryTransition): | 
 |         (JSC::Structure::flattenDictionaryStructure): | 
 |         (JSC::Structure::copyPropertyTable): | 
 |         (JSC::Structure::put): | 
 |         (JSC::Structure::remove): | 
 |         (JSC::Structure::insertIntoPropertyMapHashTable): | 
 |         (JSC::Structure::createPropertyMapHashTable): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::create): | 
 |         (JSC::Structure::hasAnonymousSlots): | 
 |         (JSC::Structure::anonymousSlotCount): | 
 |  | 
 | 2010-01-31  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Buildfix for WinCE + style fixes (TLS_OUT_OF_INDEXES is not defined). | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34380 | 
 |  | 
 |         * wtf/ThreadSpecific.h: | 
 |  | 
 | 2010-01-31  Kent Tamura  <tkent@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         [Windows] Fix a bug of round() with huge integral numbers | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34297 | 
 |  | 
 |         Fix a bug that round() for huge integral numbers returns incorrect | 
 |         results. For example, round(8639999913600001) returns | 
 |         8639999913600002 without this change though the double type can | 
 |         represent 8639999913600001 precisely. | 
 |  | 
 |         Math.round() of JavaScript has a similar problem. But this change | 
 |         doesn't fix it because Math.round() doesn't use round() of | 
 |         MathExtra.h. | 
 |  | 
 |         * wtf/MathExtras.h: | 
 |         (round): Avoid to do "num + 0.5" or "num - 0.5". | 
 |         (roundf): Fixed similarly. | 
 |         (llround): Calls round(). | 
 |         (llroundf): Calls roundf(). | 
 |         (lround): Calls round(). | 
 |         (lroundf): Calls roundf(). | 
 |  | 
 | 2010-01-29  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Sort Xcode projects. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2010-01-29  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Fix the Mac build. | 
 |  | 
 |         Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". | 
 |  | 
 |         As the comment in FeatureDefines.xcconfig notes, the list of feature defines | 
 |         needs to be kept in sync across the various files.  The default values also | 
 |         need to be kept in sync between these files and build-webkit. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-01-29  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Rubber-stamped by Maciej Stachowiak. | 
 |  | 
 |         Fix the ARM build. | 
 |  | 
 |         * runtime/JSNumberCell.h: | 
 |         (JSC::JSNumberCell::createStructure): Call the right Structure::create overload. | 
 |  | 
 | 2010-01-28  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         [wx] Build fix for MSW, use ThreadingWin.cpp as the Windows pthreads implementation | 
 |         implements pthread_t in a way that makes it impossible to check its validity, | 
 |         which is needed by ThreadingPthreads.cpp. | 
 |  | 
 |         * wscript: | 
 |  | 
 | 2010-01-28  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         DOM Objects shouldn't all require custom mark functions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34291 | 
 |  | 
 |         Make getAnonymousValue const-friendly | 
 |  | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::getAnonymousValue): | 
 |  | 
 | 2010-01-28  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Simplify anonymous slot implementation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34282 | 
 |  | 
 |         A class must now specify the number of slots it needs at construction time | 
 |         rather than later on with a transition.  This makes many things simpler, | 
 |         we no longer need to need an additional transition on object creation to | 
 |         add the anonymous slots, and we remove the need for a number of transition | 
 |         type checks.  | 
 |  | 
 |         * API/JSCallbackConstructor.h: | 
 |         (JSC::JSCallbackConstructor::createStructure): | 
 |         * API/JSCallbackFunction.h: | 
 |         (JSC::JSCallbackFunction::createStructure): | 
 |         * API/JSCallbackObject.h: | 
 |         (JSC::JSCallbackObject::createStructure): | 
 |         * JavaScriptCore.exp: | 
 |         * debugger/DebuggerActivation.h: | 
 |         (JSC::DebuggerActivation::createStructure): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::createStructure): | 
 |         * runtime/BooleanObject.h: | 
 |         (JSC::BooleanObject::createStructure): | 
 |         * runtime/DateInstance.h: | 
 |         (JSC::DateInstance::createStructure): | 
 |         * runtime/DatePrototype.h: | 
 |         (JSC::DatePrototype::createStructure): | 
 |         * runtime/FunctionPrototype.h: | 
 |         (JSC::FunctionPrototype::createStructure): | 
 |         * runtime/GetterSetter.h: | 
 |         (JSC::GetterSetter::createStructure): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         (JSC::GlobalEvalFunction::createStructure): | 
 |         * runtime/InternalFunction.h: | 
 |         (JSC::InternalFunction::createStructure): | 
 |         * runtime/JSAPIValueWrapper.h: | 
 |         (JSC::JSAPIValueWrapper::createStructure): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::createStructure): | 
 |         * runtime/JSArray.h: | 
 |         (JSC::JSArray::createStructure): | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::createStructure): | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::createDummyStructure): | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::createStructure): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::createStructure): | 
 |         * runtime/JSNotAnObject.h: | 
 |         (JSC::JSNotAnObject::createStructure): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::createStructure): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::createStructure): | 
 |         (JSC::JSObject::putAnonymousValue): | 
 |         (JSC::JSObject::getAnonymousValue): | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::JSPropertyNameIterator::createStructure): | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         (JSC::JSStaticScopeObject::createStructure): | 
 |         * runtime/JSString.h: | 
 |         (JSC::Fiber::createStructure): | 
 |         * runtime/JSVariableObject.h: | 
 |         (JSC::JSVariableObject::createStructure): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::createStructure): | 
 |         (JSC::JSWrapperObject::JSWrapperObject): | 
 |         * runtime/MathObject.h: | 
 |         (JSC::MathObject::createStructure): | 
 |         * runtime/NumberConstructor.h: | 
 |         (JSC::NumberConstructor::createStructure): | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::createStructure): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::createStructure): | 
 |         * runtime/StringObject.h: | 
 |         (JSC::StringObject::createStructure): | 
 |         * runtime/StringObjectThatMasqueradesAsUndefined.h: | 
 |         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::~Structure): | 
 |         (JSC::Structure::materializePropertyMap): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::create): | 
 |         (JSC::Structure::anonymousSlotCount): | 
 |         * runtime/StructureTransitionTable.h: | 
 |  | 
 | 2010-01-27  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-01-27  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         MessageEvent.data should deserialize in the context of the MessageEvent's global object | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34227 | 
 |  | 
 |         Add logic to allow us to create an Object, Array, or Date instance | 
 |         so we can create them in the context of a specific global object, | 
 |         rather than just using the current lexical global object. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::DateInstance): | 
 |         * runtime/DateInstance.h: | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::constructEmptyObject): | 
 |         (JSC::constructEmptyArray): | 
 |  | 
 | 2010-01-27  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34150 | 
 |         WebKit needs a mechanism to catch stale HashMap entries | 
 |  | 
 |         It is very difficult to catch stale pointers that are HashMap keys - since a pointer's hash | 
 |         is just its value, it is very unlikely that any observable problem is reproducible. | 
 |  | 
 |         This extends hash table consistency checks to check that pointers are referencing allocated | 
 |         memory blocks, and makes it possible to invoke the checks explicitly (it is not feasible | 
 |         to enable CHECK_HASHTABLE_CONSISTENCY by default, because that affects performance too much). | 
 |  | 
 |         * wtf/HashMap.h: (WTF::::checkConsistency): Call through to HashTable implementation. We can | 
 |         add similar calls to HashSet and HashCountedSet, but I haven't seen hard to debug problems | 
 |         with those yet. | 
 |  | 
 |         * wtf/HashSet.h: (WTF::::remove): The version of checkTableConsistency that's guarded by | 
 |         CHECK_HASHTABLE_CONSISTENCY is now called internalCheckTableConsistency(). | 
 |  | 
 |         * wtf/HashTable.h: | 
 |         (WTF::HashTable::internalCheckTableConsistency): | 
 |         (WTF::HashTable::internalCheckTableConsistencyExceptSize): | 
 |         (WTF::HashTable::checkTableConsistencyExceptSize): | 
 |         Expose checkTableConsistency() even if CHECK_HASHTABLE_CONSISTENCY is off. | 
 |         (WTF::::add): Updated for checkTableConsistency renaming. | 
 |         (WTF::::addPassingHashCode): Ditto. | 
 |         (WTF::::removeAndInvalidate): Ditto. | 
 |         (WTF::::remove): Ditto. | 
 |         (WTF::::rehash): Ditto. | 
 |         (WTF::::checkTableConsistency): The assertion for !shouldExpand() was not correct - this | 
 |         function returns true for tables with m_table == 0. | 
 |         (WTF::::checkTableConsistencyExceptSize): Call checkValueConsistency for key. Potentially, | 
 |         we could do the same for values. | 
 |  | 
 |         * wtf/HashTraits.h: | 
 |         (WTF::GenericHashTraits::checkValueConsistency): An empty function that can be overridden | 
 |         to add checks. Currently, the only override is for pointer hashes. | 
 |  | 
 |         * wtf/RefPtrHashMap.h: (WTF::::remove): Updated for checkTableConsistency renaming. | 
 |  | 
 | 2010-01-27  Anton Muhin  <antonm@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Remove trailing \ from inline function code | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34223 | 
 |  | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMThumbImmediate::countLeadingZerosPartial): | 
 |  | 
 | 2010-01-27  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Port WTF's randomNumber | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33566 | 
 |  | 
 |         Use GETRAND to generate 4 byte random byte sequence to implement | 
 |         weakRandomNumber. Create a secure random number generator with | 
 |         AEECLSID_RANDOM to implement randomNumber. | 
 |  | 
 |         * wtf/RandomNumber.cpp: | 
 |         (WTF::weakRandomNumber): | 
 |         (WTF::randomNumber): | 
 |  | 
 | 2010-01-27  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Port getCPUTime | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33572 | 
 |  | 
 |         Use GETUPTIMEMS which returns a continuously and | 
 |         linearly increasing millisecond timer from the time the device | 
 |         was powered on. This function is enough to implement getCPUTime. | 
 |  | 
 |         * runtime/TimeoutChecker.cpp: | 
 |         (JSC::getCPUTime): | 
 |  | 
 | 2010-01-27  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         [BREWMP] Add MarkStack fastMalloc implementation for platforms without VirtualAlloc or mmap. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33582 | 
 |  | 
 |         Use fastMalloc and fastFree to implement MarkStack::allocateStack and | 
 |         MarkStack::releaseStack for platforms without page level allocation. | 
 |  | 
 |         * runtime/MarkStack.h: | 
 |         (JSC::MarkStack::MarkStackArray::shrinkAllocation): | 
 |         * runtime/MarkStackNone.cpp: Added. | 
 |         (JSC::MarkStack::initializePagesize): | 
 |         (JSC::MarkStack::allocateStack): | 
 |         (JSC::MarkStack::releaseStack): | 
 |  | 
 | 2010-01-27  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [BREWMP] Don't use time function | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33577 | 
 |  | 
 |         Calling time(0) in BREW devices causes a crash because time | 
 |         is not properly ported in most devices. Cast currentTime() to | 
 |         time_t to get the same result as time(0). | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::calculateUTCOffset): | 
 |  | 
 | 2010-01-27  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Revert r53899 (HashMap<AtomicStringImpl*, Value> key checks) and subsequent build fixes, | 
 |         because they make SVG tests crash in release builds. | 
 |  | 
 |         * wtf/HashMap.h: | 
 |         (WTF::::remove): | 
 |         * wtf/HashSet.h: | 
 |         (WTF::::remove): | 
 |         * wtf/HashTable.h: | 
 |         (WTF::::add): | 
 |         (WTF::::addPassingHashCode): | 
 |         (WTF::::removeAndInvalidate): | 
 |         (WTF::::remove): | 
 |         (WTF::::rehash): | 
 |         (WTF::::checkTableConsistency): | 
 |         (WTF::::checkTableConsistencyExceptSize): | 
 |         * wtf/HashTraits.h: | 
 |         (WTF::GenericHashTraits::emptyValue): | 
 |         (WTF::): | 
 |         * wtf/RefPtrHashMap.h: | 
 |         (WTF::::remove): | 
 |  | 
 | 2010-01-26  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         More Windows build fixing. | 
 |  | 
 |         * wtf/HashTraits.h: _msize takes void*, remove const qualifier from type. | 
 |  | 
 | 2010-01-26  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * wtf/HashTraits.h: Include malloc.h for _msize(). | 
 |  | 
 | 2010-01-26  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Build fix. | 
 |  | 
 |         * wtf/HashTable.h: (WTF::HashTable::checkTableConsistencyExceptSize): Remove const from a | 
 |         static (empty) version of this function. | 
 |  | 
 | 2010-01-26  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34150 | 
 |         WebKit needs a mechanism to catch stale HashMap entries | 
 |  | 
 |         It is very difficult to catch stale pointers that are HashMap keys - since a pointer's hash | 
 |         is just its value, it is very unlikely that any observable problem is reproducible. | 
 |  | 
 |         This extends hash table consistency checks to check that pointers are referencing allocated | 
 |         memory blocks, and makes it possible to invoke the checks explicitly (it is not feasible | 
 |         to enable CHECK_HASHTABLE_CONSISTENCY by default, because that affects performance too much). | 
 |  | 
 |         * wtf/HashMap.h: (WTF::::checkConsistency): Call through to HashTable implementation. We can | 
 |         add similar calls to HashSet and HashCountedSet, but I haven't seen hard to debug problems | 
 |         with those yet. | 
 |  | 
 |         * wtf/HashSet.h: (WTF::::remove): The version of checkTableConsistency that's guarded by | 
 |         CHECK_HASHTABLE_CONSISTENCY is now called internalCheckTableConsistency(). | 
 |  | 
 |         * wtf/HashTable.h: | 
 |         (WTF::HashTable::internalCheckTableConsistency): | 
 |         (WTF::HashTable::internalCheckTableConsistencyExceptSize): | 
 |         (WTF::HashTable::checkTableConsistencyExceptSize): | 
 |         Expose checkTableConsistency() even if CHECK_HASHTABLE_CONSISTENCY is off. | 
 |         (WTF::::add): Updated for checkTableConsistency renaming. | 
 |         (WTF::::addPassingHashCode): Ditto. | 
 |         (WTF::::removeAndInvalidate): Ditto. | 
 |         (WTF::::remove): Ditto. | 
 |         (WTF::::rehash): Ditto. | 
 |         (WTF::::checkTableConsistency): The assertion for !shouldExpand() was not correct - this | 
 |         function returns true for tables with m_table == 0. | 
 |         (WTF::::checkTableConsistencyExceptSize): Call checkValueConsistency for key. Potentially, | 
 |         we could do the same for values. | 
 |  | 
 |         * wtf/HashTraits.h: | 
 |         (WTF::GenericHashTraits::checkValueConsistency): An empty function that can be overridden | 
 |         to add checks. Currently, the only override is for pointer hashes. | 
 |  | 
 |         * wtf/RefPtrHashMap.h: (WTF::::remove): Updated for checkTableConsistency renaming. | 
 |  | 
 | 2010-01-26  Lyon Chen  <liachen@rim.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Opcode.h use const void* for Opcode cause error #1211 for RVCT compiler | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33902 | 
 |  | 
 |         * bytecode/Opcode.h: | 
 |  | 
 | 2010-01-26  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Windows build references non-existent include paths | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34175 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/testapi/testapi.vcproj: | 
 |         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: | 
 |  | 
 | 2010-01-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Using JavaScriptCore API with a webkit vended context can result in slow script dialog | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34172 | 
 |  | 
 |         Make the APIShim correctly increment and decrement the timeout | 
 |         entry counter. | 
 |  | 
 |         * API/APIShims.h: | 
 |         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): | 
 |         (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): | 
 |         (JSC::APICallbackShim::APICallbackShim): | 
 |         (JSC::APICallbackShim::~APICallbackShim): | 
 |  | 
 | 2010-01-26  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         [Qt] Fix compilation of QtScript with non-gcc compilers | 
 |  | 
 |         Variable length stack arrays are a gcc extension. Use QVarLengthArray | 
 |         as a more portable solution that still tries to allocate on the stack | 
 |         first. | 
 |  | 
 |         * qt/api/qscriptvalue_p.h: | 
 |         (QScriptValuePrivate::call): | 
 |  | 
 | 2010-01-26  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Fix the build on platforms without JIT support. | 
 |  | 
 |         The JIT support should be determined at compile-time via wtf/Platform.h | 
 |  | 
 |         * qt/api/QtScript.pro: | 
 |  | 
 | 2010-01-26  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         First steps of the QtScript API. | 
 |          | 
 |         Two new classes were created; QScriptEngine and QScriptValue. | 
 |         The first should encapsulate a javascript context and the second a script | 
 |         value. | 
 |          | 
 |         This API is still in development, so it isn't compiled by default. | 
 |         To trigger compilation, pass --qmakearg="CONFIG+=build-qtscript" to | 
 |         build-webkit. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32565 | 
 |  | 
 |         * qt/api/QtScript.pro: Added. | 
 |         * qt/api/qscriptconverter_p.h: Added. | 
 |         (QScriptConverter::toString): | 
 |         * qt/api/qscriptengine.cpp: Added. | 
 |         (QScriptEngine::QScriptEngine): | 
 |         (QScriptEngine::~QScriptEngine): | 
 |         (QScriptEngine::evaluate): | 
 |         (QScriptEngine::collectGarbage): | 
 |         * qt/api/qscriptengine.h: Added. | 
 |         * qt/api/qscriptengine_p.cpp: Added. | 
 |         (QScriptEnginePrivate::QScriptEnginePrivate): | 
 |         (QScriptEnginePrivate::~QScriptEnginePrivate): | 
 |         (QScriptEnginePrivate::evaluate): | 
 |         * qt/api/qscriptengine_p.h: Added. | 
 |         (QScriptEnginePrivate::get): | 
 |         (QScriptEnginePrivate::collectGarbage): | 
 |         (QScriptEnginePrivate::makeJSValue): | 
 |         (QScriptEnginePrivate::context): | 
 |         * qt/api/qscriptvalue.cpp: Added. | 
 |         (QScriptValue::QScriptValue): | 
 |         (QScriptValue::~QScriptValue): | 
 |         (QScriptValue::isValid): | 
 |         (QScriptValue::isBool): | 
 |         (QScriptValue::isBoolean): | 
 |         (QScriptValue::isNumber): | 
 |         (QScriptValue::isNull): | 
 |         (QScriptValue::isString): | 
 |         (QScriptValue::isUndefined): | 
 |         (QScriptValue::isError): | 
 |         (QScriptValue::isObject): | 
 |         (QScriptValue::isFunction): | 
 |         (QScriptValue::toString): | 
 |         (QScriptValue::toNumber): | 
 |         (QScriptValue::toBool): | 
 |         (QScriptValue::toBoolean): | 
 |         (QScriptValue::toInteger): | 
 |         (QScriptValue::toInt32): | 
 |         (QScriptValue::toUInt32): | 
 |         (QScriptValue::toUInt16): | 
 |         (QScriptValue::call): | 
 |         (QScriptValue::engine): | 
 |         (QScriptValue::operator=): | 
 |         (QScriptValue::equals): | 
 |         (QScriptValue::strictlyEquals): | 
 |         * qt/api/qscriptvalue.h: Added. | 
 |         (QScriptValue::): | 
 |         * qt/api/qscriptvalue_p.h: Added. | 
 |         (QScriptValuePrivate::): | 
 |         (QScriptValuePrivate::get): | 
 |         (QScriptValuePrivate::QScriptValuePrivate): | 
 |         (QScriptValuePrivate::isValid): | 
 |         (QScriptValuePrivate::isBool): | 
 |         (QScriptValuePrivate::isNumber): | 
 |         (QScriptValuePrivate::isNull): | 
 |         (QScriptValuePrivate::isString): | 
 |         (QScriptValuePrivate::isUndefined): | 
 |         (QScriptValuePrivate::isError): | 
 |         (QScriptValuePrivate::isObject): | 
 |         (QScriptValuePrivate::isFunction): | 
 |         (QScriptValuePrivate::toString): | 
 |         (QScriptValuePrivate::toNumber): | 
 |         (QScriptValuePrivate::toBool): | 
 |         (QScriptValuePrivate::toInteger): | 
 |         (QScriptValuePrivate::toInt32): | 
 |         (QScriptValuePrivate::toUInt32): | 
 |         (QScriptValuePrivate::toUInt16): | 
 |         (QScriptValuePrivate::equals): | 
 |         (QScriptValuePrivate::strictlyEquals): | 
 |         (QScriptValuePrivate::assignEngine): | 
 |         (QScriptValuePrivate::call): | 
 |         (QScriptValuePrivate::engine): | 
 |         (QScriptValuePrivate::context): | 
 |         (QScriptValuePrivate::value): | 
 |         (QScriptValuePrivate::object): | 
 |         (QScriptValuePrivate::inherits): | 
 |         (QScriptValuePrivate::isJSBased): | 
 |         (QScriptValuePrivate::isNumberBased): | 
 |         (QScriptValuePrivate::isStringBased): | 
 |         * qt/api/qtscriptglobal.h: Added. | 
 |         * qt/tests/qscriptengine/qscriptengine.pro: Added. | 
 |         * qt/tests/qscriptengine/tst_qscriptengine.cpp: Added. | 
 |         (tst_QScriptEngine::tst_QScriptEngine): | 
 |         (tst_QScriptEngine::~tst_QScriptEngine): | 
 |         (tst_QScriptEngine::init): | 
 |         (tst_QScriptEngine::cleanup): | 
 |         (tst_QScriptEngine::collectGarbage): | 
 |         (tst_QScriptEngine::evaluate): | 
 |         * qt/tests/qscriptvalue/qscriptvalue.pro: Added. | 
 |         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp: Added. | 
 |         (tst_QScriptValue::tst_QScriptValue): | 
 |         (tst_QScriptValue::~tst_QScriptValue): | 
 |         (tst_QScriptValue::init): | 
 |         (tst_QScriptValue::cleanup): | 
 |         (tst_QScriptValue::ctor): | 
 |         (tst_QScriptValue::toString_data): | 
 |         (tst_QScriptValue::toString): | 
 |         (tst_QScriptValue::copyConstructor_data): | 
 |         (tst_QScriptValue::copyConstructor): | 
 |         (tst_QScriptValue::assignOperator_data): | 
 |         (tst_QScriptValue::assignOperator): | 
 |         (tst_QScriptValue::dataSharing): | 
 |         (tst_QScriptValue::constructors_data): | 
 |         (tst_QScriptValue::constructors): | 
 |         (tst_QScriptValue::call): | 
 |         * qt/tests/tests.pri: Added. | 
 |         * qt/tests/tests.pro: Added. | 
 |  | 
 | 2010-01-25  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Fix Chromium Linux tests: the pthread functions on Linux produce segfault if they receive 0 thread handle. | 
 |         After r53714, we can have 0 thread handles passed to pthread_join and pthread_detach if corresponding threads | 
 |         were already terminated and their threadMap entries cleared. | 
 |         Add a 0 check. | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::waitForThreadCompletion): | 
 |         (WTF::detachThread): | 
 |  | 
 | 2010-01-24  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Refactor JITStubs.cpp so that DEFINE_STUB_FUNCTION is only used once for each function | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33866 | 
 |  | 
 |         Place the guard USE(JSVALUE32_64) inside the body of the DEFINE_STUB_FUNCTION | 
 |         macro for those functions that are always present. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |  | 
 | 2010-01-22  Kevin Watters  <kevinwatters@gmail.com> | 
 |  | 
 |         Reviewed by Kevin Ollivier. | 
 |  | 
 |         [wx] Remove the Bakefile build system, which is no longer being used. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34022 | 
 |  | 
 |         * JavaScriptCoreSources.bkl: Removed. | 
 |         * jscore.bkl: Removed. | 
 |  | 
 | 2010-01-22  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=34025 | 
 |         Enable client-based Geolocation abstraction for Mac, Windows AppleWebKit targets. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-01-22  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Not reviewed, attempted Snow Leopard build fix. | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: Add a forward declaration of a function which is not 'static'. | 
 |  | 
 | 2009-01-22  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Fix the leak of ThreadIdentifiers in threadMap across threads. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32689 | 
 |  | 
 |         Test is added to DumpRenderTree.mm. | 
 |  | 
 |         * Android.mk: Added file ThreadIdentifierDataPthreads.(h|cpp) to build. | 
 |         * Android.v8.wtf.mk: Ditto. | 
 |         * GNUmakefile.am: Ditto. | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: Ditto. | 
 |         * JavaScriptCore.gypi: Ditto. | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. | 
 |  | 
 |         * wtf/ThreadIdentifierDataPthreads.cpp: Added. Contains custom implementation of thread-specific data that uses custom destructor. | 
 |         (WTF::ThreadIdentifierData::~ThreadIdentifierData): Removes the ThreadIdentifier from the threadMap. | 
 |         (WTF::ThreadIdentifierData::identifier): | 
 |         (WTF::ThreadIdentifierData::initialize): | 
 |         (WTF::ThreadIdentifierData::destruct): Custom thread-specific destructor. Resets the value for the key again to cause second invoke. | 
 |         (WTF::ThreadIdentifierData::initializeKeyOnceHelper): | 
 |         (WTF::ThreadIdentifierData::initializeKeyOnce): Need to use pthread_once since initialization may come on any thread(s). | 
 |         * wtf/ThreadIdentifierDataPthreads.h: Added. | 
 |         (WTF::ThreadIdentifierData::ThreadIdentifierData): | 
 |  | 
 |         * wtf/Threading.cpp: | 
 |         (WTF::threadEntryPoint): Move initializeCurrentThreadInternal to after the lock to make | 
 |                                  sure it is invoked when ThreadIdentifier is already established. | 
 |  | 
 |         * wtf/Threading.h: Rename setThreadNameInternal -> initializeCurrentThreadInternal since it does more then only set the name now. | 
 |         * wtf/ThreadingNone.cpp: | 
 |         (WTF::initializeCurrentThreadInternal): Ditto. | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::initializeCurrentThreadInternal): Ditto. | 
 |         (WTF::initializeThreading): Ditto. | 
 |         * wtf/gtk/ThreadingGtk.cpp: | 
 |         (WTF::initializeCurrentThreadInternal): Ditto. | 
 |         * wtf/qt/ThreadingQt.cpp: | 
 |         (WTF::initializeCurrentThreadInternal): Ditto. | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::establishIdentifierForPthreadHandle): | 
 |         (WTF::clearPthreadHandleForIdentifier): Make it not 'static' so the ~ThreadIdentifierData() in another file can call it. | 
 |         (WTF::initializeCurrentThreadInternal): Set the thread-specific data. The ThreadIdentifier is already established by creating thread. | 
 |         (WTF::waitForThreadCompletion): Remove call to clearPthreadHandleForIdentifier(threadID) since it is now done in ~ThreadIdentifierData(). | 
 |         (WTF::detachThread): Ditto. | 
 |         (WTF::currentThread): Use the thread-specific data to get the ThreadIdentifier. It's many times faster then Mutex-protected iteration through the map. | 
 |                               Also, set the thread-specific data if called first time on the thread. | 
 |  | 
 | 2010-01-21  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Add ThreadSpecific for ENABLE(SINGLE_THREADED) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33878 | 
 |  | 
 |         Implement ThreadSpecific with a simple getter/setter | 
 |         when ENABLE(SINGLE_THREADED) is true. | 
 |  | 
 |         Due to the change in https://bugs.webkit.org/show_bug.cgi?id=33236, | 
 |         an implementation of ThreadSpecific must be available to build WebKit. | 
 |         This causes a build failure for platforms without a proper | 
 |         ThreadSpecific implementation. | 
 |  | 
 |         * wtf/ThreadSpecific.h: | 
 |         (WTF::::ThreadSpecific): | 
 |         (WTF::::~ThreadSpecific): | 
 |         (WTF::::get): | 
 |         (WTF::::set): | 
 |         (WTF::::destroy): | 
 |  | 
 | 2010-01-21  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Add fastStrDup to FastMalloc | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33937 | 
 |  | 
 |         The new string returned by fastStrDup is obtained with fastMalloc, | 
 |         and can be freed with fastFree. This makes the memory management  | 
 |         more consistent because we don't need to keep strdup allocated pointers | 
 |         and free them with free(). Instead we can use fastFree everywhere. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::fastStrDup): | 
 |         * wtf/FastMalloc.h: | 
 |  | 
 | 2010-01-21  Brady Eidson  <beidson@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         history.back() for same-document history traversals isn't synchronous as the specification states. | 
 |         <rdar://problem/7535011> and https://bugs.webkit.org/show_bug.cgi?id=33538 | 
 |  | 
 |         * wtf/Platform.h: Add a "HISTORY_ALWAYS_ASYNC" enable and turn it on for Chromium. | 
 |  | 
 | 2010-01-21  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Always create a prototype for automatically managed classes. | 
 |          | 
 |         This fixes some errors where prototype chains were not correctly hooked | 
 |         up, and also ensures that API classes work correctly with features like | 
 |         instanceof. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::create): Cleaned up some of this code. Also changed it | 
 |         to always create a prototype class. | 
 |  | 
 |         * API/tests/testapi.c: | 
 |         (Derived2_class): | 
 |         (main): Fixed a null value crash in the exception checking code. | 
 |         * API/tests/testapi.js: Added some tests for the case where a prototype | 
 |         chain would not be hooked up correctly. | 
 |  | 
 | 2010-01-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Force JSC to create a prototype chain for API classes with a | 
 |         parent class but no static functions. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::create): | 
 |  | 
 | 2010-01-21  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Object.getOwnPropertyDescriptor always returns undefined for JS API objects | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33946 | 
 |  | 
 |         Ideally the getOwnPropertyDescriptor() reimplementation should return an | 
 |         access descriptor that wraps the property getter and setter callbacks, but | 
 |         that approach is much more involved than returning a value descriptor. | 
 |         Keep it simple for now. | 
 |  | 
 |         * API/JSCallbackObject.h: | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::getOwnPropertyDescriptor): | 
 |         * API/tests/testapi.js: | 
 |  | 
 | 2010-01-20  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Build fix. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::initializeScavenger): Remove unnecessary function call. | 
 |  | 
 | 2010-01-20  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Use the inline i386 assembly for x86_64 as well rather than falling back to using pthread mutexes. | 
 |  | 
 |         * wtf/TCSpinLock.h: | 
 |         (TCMalloc_SpinLock::Lock): | 
 |         (TCMalloc_SpinLock::Unlock): | 
 |         (TCMalloc_SlowLock): | 
 |  | 
 | 2010-01-20  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         <rdar://problem/7215063> Use GCD instead of an extra thread for FastMalloc scavenging on platforms where it is supported | 
 |  | 
 |         Abstract the background scavenging slightly so that an alternate implementation that uses GCD can be used on platforms | 
 |         where it is supported. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::init): | 
 |         (WTF::TCMalloc_PageHeap::initializeScavenger): | 
 |         (WTF::TCMalloc_PageHeap::signalScavenger): | 
 |         (WTF::TCMalloc_PageHeap::shouldContinueScavenging): | 
 |         (WTF::TCMalloc_PageHeap::Delete): | 
 |         (WTF::TCMalloc_PageHeap::periodicScavenge): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-01-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         <rdar://problem/7562708> REGRESSION(53460): Heap::destroy may not run | 
 |         all destructors | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::freeBlocks): Instead of fully marking protected objects, | 
 |         just set their mark bits. This prevents protected objects from keeping | 
 |         unprotected objects alive. Destructor order is not guaranteed, so it's | 
 |         OK to destroy objects pointed to by protected objects before destroying | 
 |         protected objects. | 
 |  | 
 | 2010-01-19  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         CrossThreadCopier needs to support ThreadSafeShared better. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33698 | 
 |  | 
 |         * wtf/TypeTraits.cpp: Added tests for the new type traits. | 
 |         * wtf/TypeTraits.h: | 
 |         (WTF::IsSubclass): Determines if a class is a derived from another class. | 
 |         (WTF::IsSubclassOfTemplate): Determines if a class is a derived from a | 
 |         template class (with one parameter that is unknown). | 
 |         (WTF::RemoveTemplate): Reveals the type for a template parameter. | 
 |  | 
 | 2010-01-20  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler and Adam Roben. | 
 |  | 
 |         Feature defines are difficult to maintain on Windows builds | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33883 | 
 |  | 
 |         FeatureDefines.vsprops are now maintained in a way similar to | 
 |         Configurations/FeatureDefines.xcconfig, with the added advantage | 
 |         of having a single FeatureDefines file across all projects. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: Add comments about keeping feature definitions in sync. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Add FeatureDefines.vsprops inherited property sheet. | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Add FeatureDefines.vsprops inherited property sheet. | 
 |  | 
 | 2010-01-20  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         [Qt] Unreviewed buildfix for r53547. | 
 |  | 
 |         * DerivedSources.pro: | 
 |  | 
 | 2010-01-20  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Make extraCompilers for generated sources depend on their scripts | 
 |  | 
 |         * DerivedSources.pro: | 
 |  | 
 | 2010-01-19  Brian Weinstein  <bweinstein@apple.com> | 
 |  | 
 |         Reviewed by Tim Hatcher. | 
 |  | 
 |         When JavaScriptCore calls Debugger::Exception, have it pass a | 
 |         hasHandler variable that represents if exception is being handled | 
 |         in the same function (not in a parent on the call stack). | 
 |          | 
 |         This just adds a new parameter, no behavior is changed. | 
 |  | 
 |         * debugger/Debugger.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::throwException): | 
 |  | 
 | 2010-01-18  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Inline functions that are hot in DOM manipulation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33820 | 
 |          | 
 |         (3% speedup on Dromaeo DOM Core tests) | 
 |  | 
 |         * runtime/WeakGCMap.h: | 
 |         (JSC::::get): inline | 
 |  | 
 | 2010-01-19  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed build fix for JIT with RVCT. | 
 |  | 
 |         Remove IMPORT statement; cti_vm_throw is already defined in JITStubs.h. | 
 |         Remove extra ')'. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::ctiVMThrowTrampoline): | 
 |  | 
 | 2010-01-19  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/ | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33826 | 
 |  | 
 |         This bug was caused by a GC-protected object being destroyed early by | 
 |         Heap::destroy. Clients of the GC protect APIs (reasonably) expect pointers | 
 |         to GC-protected memory to be valid. | 
 |  | 
 |         The solution is to do two passes of tear-down in Heap::destroy. The first | 
 |         pass tears down all unprotected objects. The second pass ASSERTs that all | 
 |         previously protected objects are now unprotected, and then tears down | 
 |         all perviously protected objects. These two passes simulate the two passes | 
 |         that would have been required to free a protected object during normal GC. | 
 |          | 
 |         * API/JSContextRef.cpp: Removed some ASSERTs that have moved into Heap. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::destroy): Moved ASSERTs to here. | 
 |         (JSC::Heap::freeBlock): Tidied up the use of didShrink by moving its | 
 |         setter to the function that does the shrinking. | 
 |         (JSC::Heap::freeBlocks): Implemented above algorithm. | 
 |         (JSC::Heap::shrinkBlocks): Tidied up the use of didShrink. | 
 |  | 
 | 2010-01-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Reverting r53455, breaks 2 javascriptcore tests. | 
 |  | 
 |         * API/JSContextRef.cpp: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::destroy): | 
 |         (JSC::Heap::freeBlock): | 
 |         (JSC::Heap::freeBlocks): | 
 |         (JSC::Heap::shrinkBlocks): | 
 |  | 
 | 2010-01-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Revert r53454, since it causes much sadness in this world. | 
 |  | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::spliceSubstringsWithSeparators): | 
 |         (JSC::UString::replaceRange): | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::baseSharedBuffer): | 
 |         (JSC::UStringImpl::sharedBuffer): | 
 |         (JSC::UStringImpl::~UStringImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UntypedPtrAndBitfield::UntypedPtrAndBitfield): | 
 |         (JSC::UntypedPtrAndBitfield::asPtr): | 
 |         (JSC::UntypedPtrAndBitfield::operator&=): | 
 |         (JSC::UntypedPtrAndBitfield::operator|=): | 
 |         (JSC::UntypedPtrAndBitfield::operator&): | 
 |         (JSC::UStringImpl::create): | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::isIdentifier): | 
 |         (JSC::UStringImpl::setIsIdentifier): | 
 |         (JSC::UStringImpl::ref): | 
 |         (JSC::UStringImpl::deref): | 
 |         (JSC::UStringImpl::checkConsistency): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         (JSC::UStringImpl::bufferOwnerString): | 
 |         (JSC::UStringImpl::bufferOwnership): | 
 |         (JSC::UStringImpl::isStatic): | 
 |         * wtf/StringHashFunctions.h: | 
 |         (WTF::stringHash): | 
 |  | 
 | 2010-01-18  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/ | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33826 | 
 |  | 
 |         This bug was caused by a GC-protected object being destroyed early by | 
 |         Heap::destroy. Clients of the GC protect APIs (reasonably) expect pointers | 
 |         to GC-protected memory to be valid. | 
 |  | 
 |         The solution is to do two passes of tear-down in Heap::destroy. The first | 
 |         pass tears down all unprotected objects. The second pass ASSERTs that all | 
 |         previously protected objects are now unprotected, and then tears down | 
 |         all perviously protected objects. These two passes simulate the two passes | 
 |         that would have been required to free a protected object during normal GC. | 
 |          | 
 |         * API/JSContextRef.cpp: Removed some ASSERTs that have moved into Heap. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::destroy): Moved ASSERTs to here. | 
 |         (JSC::Heap::freeBlock): Tidied up the use of didShrink by moving its | 
 |         setter to the function that does the shrinking. | 
 |         (JSC::Heap::freeBlocks): Implemented above algorithm. | 
 |         (JSC::Heap::shrinkBlocks): Tidied up the use of didShrink. | 
 |  | 
 | 2010-01-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33731 | 
 |         Remove UntypedPtrAndBitfield from UStringImpl (akin to PtrAndFlags). | 
 |  | 
 |         This break the OS X Leaks tool.  Instead, free up some more bits from the refCount. | 
 |  | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::sharedBuffer): | 
 |         (JSC::UStringImpl::~UStringImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::checkConsistency): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         (JSC::UStringImpl::bufferOwnerString): | 
 |         (JSC::UStringImpl::): | 
 |         * wtf/StringHashFunctions.h: | 
 |         (WTF::stringHash): | 
 |  | 
 | 2010-01-18  Kent Tamura  <tkent@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         HTMLInputElement::valueAsDate setter support for type=month. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33021 | 
 |  | 
 |         Expose the following functions to be used by WebCore: | 
 |          - WTF::msToyear() | 
 |          - WTF::dayInYear() | 
 |          - WTF::monthFromDayInYear() | 
 |          - WTF::dayInMonthFromDayInYear() | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::msToYear): Remove "static inline". | 
 |         (WTF::dayInYear): Remove "static inline". | 
 |         (WTF::monthFromDayInYear): Remove "static inline". | 
 |         (WTF::dayInMonthFromDayInYear): Remove "static inline". | 
 |         * wtf/DateMath.h: Declare the above functions. | 
 |  | 
 | 2010-01-18  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Fix build by reverting the previous change. | 
 |  | 
 |         * runtime/UString.h: Rolled out the FastAllocBase base class. | 
 |         It was making UString larger, and therefore JSString larger, | 
 |         and too big for a garbage collection cell. | 
 |  | 
 |         This raises the unpleasant possibility that many classes became | 
 |         larger because we added the FastAllocBase base class. I am | 
 |         worried about this, and it needs to be investigated. | 
 |  | 
 | 2010-01-18  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for UString class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27831 | 
 |  | 
 |         Inherits the following class from FastAllocBase because it is | 
 |         instantiated by 'new' and no need to be copyable: | 
 |  | 
 |         class name     - instantiated at: | 
 |         classs UString - JavaScriptCore/runtime/UString.cpp:160 | 
 |  | 
 |         * runtime/UString.h: | 
 |  | 
 | 2010-01-18  Evan Cheng  <evan.cheng@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Add some ALWAYS_INLINE for key functions not inlined by some versions of GCC. | 
 |         rdar://problem/7553780 | 
 |  | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::getPropertySlot): ALWAYS_INLINE both overloads. | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::JSString): ALWAYS_INLINE the version that takes a UString. | 
 |         * runtime/UString.h: | 
 |         (JSC::operator==): ALWAYS_INLINE the version that compares two UString objects. | 
 |  | 
 | 2010-01-18  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Delete dftables-xxxxxxxx.in files automatically. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33796 | 
 |  | 
 |         * pcre/dftables: unlink unnecessary temporary file. | 
 |  | 
 | 2010-01-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Force qmake to generate a single makefile for DerivedSources.pro | 
 |  | 
 |         * DerivedSources.pro: | 
 |  | 
 | 2010-01-18  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Rubber-stamped by Gustavo Noronha Silva. | 
 |  | 
 |         Rolling out r53391 and r53392 because of random crashes on buildbots. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33731 | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CallLinkInfo::seenOnce): | 
 |         (JSC::CallLinkInfo::setSeen): | 
 |         (JSC::MethodCallLinkInfo::MethodCallLinkInfo): | 
 |         (JSC::MethodCallLinkInfo::seenOnce): | 
 |         (JSC::MethodCallLinkInfo::setSeen): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::unlinkCall): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::patchMethodCallProto): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::spliceSubstringsWithSeparators): | 
 |         (JSC::UString::replaceRange): | 
 |         * runtime/UString.h: | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::baseSharedBuffer): | 
 |         (JSC::UStringImpl::sharedBuffer): | 
 |         (JSC::UStringImpl::~UStringImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UntypedPtrAndBitfield::UntypedPtrAndBitfield): | 
 |         (JSC::UntypedPtrAndBitfield::asPtr): | 
 |         (JSC::UntypedPtrAndBitfield::operator&=): | 
 |         (JSC::UntypedPtrAndBitfield::operator|=): | 
 |         (JSC::UntypedPtrAndBitfield::operator&): | 
 |         (JSC::UStringImpl::create): | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::isIdentifier): | 
 |         (JSC::UStringImpl::setIsIdentifier): | 
 |         (JSC::UStringImpl::ref): | 
 |         (JSC::UStringImpl::deref): | 
 |         (JSC::UStringImpl::checkConsistency): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         (JSC::UStringImpl::bufferOwnerString): | 
 |         (JSC::UStringImpl::bufferOwnership): | 
 |         (JSC::UStringImpl::isStatic): | 
 |         * wtf/StringHashFunctions.h: | 
 |         (WTF::stringHash): | 
 |  | 
 | 2010-01-18  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Fix the build with strict gcc and RVCT versions: It's not legal to cast a | 
 |         pointer to a function to a void* without an intermediate cast to a non-pointer | 
 |         type. A cast to a ptrdiff_t inbetween fixes it. | 
 |  | 
 |         * runtime/JSString.h: | 
 |         (JSC::Fiber::JSString): | 
 |  | 
 | 2010-01-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33731 | 
 |         Remove UntypedPtrAndBitfield from UStringImpl (akin to PtrAndFlags). | 
 |  | 
 |         This break the OS X Leaks tool.  Instead, free up some more bits from the refCount. | 
 |  | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::sharedBuffer): | 
 |         (JSC::UStringImpl::~UStringImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::checkConsistency): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         (JSC::UStringImpl::bufferOwnerString): | 
 |         (JSC::UStringImpl::): | 
 |         * wtf/StringHashFunctions.h: | 
 |         (WTF::stringHash): | 
 |  | 
 | 2010-01-15  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33731 | 
 |         Remove uses of PtrAndFlags from JIT data stuctures. | 
 |  | 
 |         These break the OS X Leaks tool.  Free up a bit in CallLinkInfo, and invalid | 
 |         permutation of pointer states in MethodCallLinkInfo to represent the removed bits. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CallLinkInfo::seenOnce): | 
 |         (JSC::CallLinkInfo::setSeen): | 
 |         (JSC::MethodCallLinkInfo::MethodCallLinkInfo): | 
 |         (JSC::MethodCallLinkInfo::seenOnce): | 
 |         (JSC::MethodCallLinkInfo::setSeen): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::unlinkCall): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::patchMethodCallProto): | 
 |         * runtime/UString.h: | 
 |  | 
 | 2010-01-16  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Cache JS string values made from DOM strings (Dromaeo speedup) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33768 | 
 |         <rdar://problem/7353576> | 
 |  | 
 |         * runtime/JSString.h: | 
 |         (JSC::jsStringWithFinalizer): Added new mechanism for a string to have an optional | 
 |         finalizer callback, for the benefit of weak-referencing caches. | 
 |         (JSC::): | 
 |         (JSC::Fiber::JSString): | 
 |         (JSC::Fiber::~JSString): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): Clear fibers so this doesn't look like a string with a finalizer. | 
 |         * runtime/WeakGCMap.h: Include "Collector.h" to make this header includable by itself. | 
 |  | 
 | 2010-01-15  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Fix for <rdar://problem/7548432> | 
 |         Add ALWAYS_INLINE to jsLess for a 1% speedup on llvm-gcc. | 
 |  | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsLess): | 
 |  | 
 | 2010-01-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         REGRESISON: Google maps buttons not working properly | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31871 | 
 |  | 
 |         REGRESSION(r52948): JavaScript exceptions thrown on Google Maps when | 
 |         getting directions for a second time | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33446 | 
 |          | 
 |         SunSpider and v8 report no change. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCacheGetByID): Update our cached offset in case | 
 |         flattening the dictionary changed any of its offsets. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/Operations.h: | 
 |         (JSC::normalizePrototypeChain): ditto | 
 |  | 
 | 2010-01-14  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33705 | 
 |         UStringImpl::create() should use internal storage | 
 |  | 
 |         When creating a UStringImpl copying of a UChar*, we can use an internal buffer, | 
 |         by calling UStringImpl::tryCreateUninitialized(). | 
 |  | 
 |         Also, remove duplicate of copyChars from JSString, call UStringImpl's version. | 
 |  | 
 |         Small (max 0.5%) progression on Sunspidey. | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::create): | 
 |  | 
 | 2010-01-14  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Make naming & behaviour of UString[Impl] methods more consistent. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33702 | 
 |  | 
 |         UString::create() creates a copy of the UChar* passed, but UStringImpl::create() assumes | 
 |         that it should assume ownership of the provided buffer (with UString::createNonCopying() | 
 |         and UStringImpl::createCopying() providing the alternate behaviours).  Unify on create() | 
 |         taking a copy of the provided buffer.  For non-copying cases, use the name 'adopt', and | 
 |         make this method take a Vector<UChar>&.  For cases where non-copying construction was being | 
 |         used, other than from a Vector<UChar>, change the code to allocate the storage along with | 
 |         the UStringImpl using UStringImpl::createUninitialized().  (The adopt() method also more | 
 |         closely matches that of WebCore::StringImpl). | 
 |  | 
 |         Also, UString::createUninitialized() and UStringImpl::createUninitialized() have incompatible | 
 |         behaviours, in that the UString form sets the provided UChar* to a null or non-null value to | 
 |         indicate success or failure, but UStringImpl uses the returned PassRefPtr<UStringImpl> to | 
 |         indicate when allocation has failed (potentially leaving the output Char* uninitialized). | 
 |         This is also incompatible with WebCore::StringImpl's behaviour, in that | 
 |         StringImpl::createUninitialized() will CRASH() if unable to allocate.  Some uses of | 
 |         createUninitialized() in JSC are unsafe, since they do not test the result for null. | 
 |         UStringImpl's indication is preferable, since we may want a successful call to set the result | 
 |         buffer to 0 (specifically, StringImpl returns 0 for the buffer where createUninitialized() | 
 |         returns the empty string, which seems reasonable to catch bugs early).  UString's method | 
 |         cannot support UStringImpl's behaviour directly, since it returns an object rather than a | 
 |         pointer. | 
 |             - remove UString::createUninitialized(), replace with calls to UStringImpl::createUninitialized() | 
 |             - create a UStringImpl::tryCreateUninitialized() form UStringImpl::createUninitialized(), | 
 |               with current behaviour, make createUninitialized() crash on failure to allocate. | 
 |             - make cases in JSC that do not check the result call createUninitialized(), and cases that do | 
 |               check call tryCreateUninitialized(). | 
 |  | 
 |         Rename computedHash() to existingHash(), to bring this in line wih WebCore::StringImpl. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClassContextData::OpaqueJSClassContextData): | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::CStringTranslator::translate): | 
 |         (JSC::UCharBufferTranslator::translate): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         * runtime/Lookup.cpp: | 
 |         (JSC::HashTable::createTable): | 
 |         * runtime/Lookup.h: | 
 |         (JSC::HashTable::entry): | 
 |         * runtime/StringBuilder.h: | 
 |         (JSC::StringBuilder::release): | 
 |         * runtime/StringConstructor.cpp: | 
 |         (JSC::stringFromCharCodeSlowCase): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::substituteBackreferencesSlow): | 
 |         (JSC::stringProtoFuncToLowerCase): | 
 |         (JSC::stringProtoFuncToUpperCase): | 
 |         (JSC::stringProtoFuncFontsize): | 
 |         (JSC::stringProtoFuncLink): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::despecifyDictionaryFunction): | 
 |         (JSC::Structure::get): | 
 |         (JSC::Structure::despecifyFunction): | 
 |         (JSC::Structure::put): | 
 |         (JSC::Structure::remove): | 
 |         (JSC::Structure::insertIntoPropertyMapHashTable): | 
 |         (JSC::Structure::checkConsistency): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::get): | 
 |         * runtime/StructureTransitionTable.h: | 
 |         (JSC::StructureTransitionTableHash::hash): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::createRep): | 
 |         (JSC::UString::UString): | 
 |         (JSC::UString::spliceSubstringsWithSeparators): | 
 |         (JSC::UString::replaceRange): | 
 |         (JSC::UString::operator=): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::adopt): | 
 |         (JSC::IdentifierRepHash::hash): | 
 |         (JSC::makeString): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::adopt): | 
 |         (JSC::UStringImpl::create): | 
 |         (JSC::UStringImpl::createUninitialized): | 
 |         (JSC::UStringImpl::tryCreateUninitialized): | 
 |         (JSC::UStringImpl::existingHash): | 
 |  | 
 | 2010-01-13  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         JSON.stringify and JSON.parse needlessly process properties in the prototype chain | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33053 | 
 |  | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::Holder::appendNextProperty): | 
 |         (JSC::Walker::walk): | 
 |  | 
 | 2010-01-13  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (buildfix). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-01-13  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33641 | 
 |         Assertion failure in Lexer.cpp if input stream ends while in string escape | 
 |  | 
 |         Test: fast/js/end-in-string-escape.html | 
 |  | 
 |         * parser/Lexer.cpp: (JSC::Lexer::lex): Bail out quickly on end of stream, not giving the | 
 |         assertion a chance to fire. | 
 |  | 
 | 2010-01-13  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (buildfix). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-01-13  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Sam Weinig & Darin Adler. | 
 |  | 
 |         Three quick fixes to UStringImpl. | 
 |             - The destroy() method can be switched back to a normal destructor; since we've switched | 
 |               the way we protect static strings to be using an odd ref-count the destroy() won't abort. | 
 |             - The cost() calculation logic was wrong.  If you have multiple JSStrings wrapping substrings | 
 |               of a base string, they would each report the full cost of the base string to the heap. | 
 |               Instead we should only be reporting once for the base string. | 
 |             - Remove the overloaded new operator calling fastMalloc, replace this with a 'using' to pick | 
 |               up the implementation from the parent class. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::~UStringImpl): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::deref): | 
 |  | 
 | 2010-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Split the build process in two different .pro files. | 
 |         This allows qmake to be run once all source files are available. | 
 |  | 
 |         * DerivedSources.pro: Added. | 
 |         * JavaScriptCore.pri: Moved source generation to DerivedSources.pro | 
 |         * pcre/pcre.pri: Moved source generation to DerivedSources.pro | 
 |  | 
 | 2010-01-12  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         [ES5] Implement Object.getOwnPropertyNames | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32242 | 
 |  | 
 |         Add an extra argument to getPropertyNames() and getOwnPropertyNames() | 
 |         (and all reimplementations thereof) that indicates whether non-enumerable | 
 |         properties should be added. | 
 |  | 
 |         * API/JSCallbackObject.h: | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::getOwnPropertyNames): | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * debugger/DebuggerActivation.cpp: | 
 |         (JSC::DebuggerActivation::getOwnPropertyNames): | 
 |         * debugger/DebuggerActivation.h: | 
 |         * runtime/Arguments.cpp: | 
 |         (JSC::Arguments::getOwnPropertyNames): | 
 |         * runtime/Arguments.h: | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::getOwnPropertyNames): | 
 |         * runtime/JSArray.h: | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::getOwnPropertyNames): | 
 |         * runtime/JSByteArray.h: | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::getOwnPropertyNames): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSNotAnObject.cpp: | 
 |         (JSC::JSNotAnObject::getOwnPropertyNames): | 
 |         * runtime/JSNotAnObject.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::getClassPropertyNames): | 
 |         (JSC::JSObject::getPropertyNames): | 
 |         (JSC::JSObject::getOwnPropertyNames): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSVariableObject.cpp: | 
 |         (JSC::JSVariableObject::getOwnPropertyNames): | 
 |         * runtime/JSVariableObject.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         (JSC::objectConstructorGetOwnPropertyNames): | 
 |         * runtime/RegExpMatchesArray.h: | 
 |         (JSC::RegExpMatchesArray::getOwnPropertyNames): | 
 |         * runtime/StringObject.cpp: | 
 |         (JSC::StringObject::getOwnPropertyNames): | 
 |         * runtime/StringObject.h: | 
 |         * runtime/Structure.cpp: Rename getEnumerablePropertyNames() to getPropertyNames(), which takes an extra argument. | 
 |         (JSC::Structure::getPropertyNames): | 
 |         * runtime/Structure.h: | 
 |         (JSC::): | 
 |  | 
 | 2010-01-12  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33540 | 
 |         Make it possible to build in debug mode with assertions disabled | 
 |  | 
 |         * jit/JITStubs.cpp: (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/Identifier.cpp: (JSC::Identifier::checkSameIdentifierTable): | 
 |         * wtf/FastMalloc.cpp: | 
 |         * wtf/HashTable.h: (WTF::HashTableConstIterator::checkValidity): | 
 |         * yarr/RegexCompiler.cpp: (JSC::Yarr::compileRegex): | 
 |  | 
 | 2009-11-23  Yong Li  <yoli@rim.com> | 
 |  | 
 |         Reviewed by Adam Treat. | 
 |  | 
 |         Make GIF decoder support down-sampling | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31806 | 
 |  | 
 |         * platform/image-decoders/ImageDecoder.cpp: | 
 |         (WebCore::ImageDecoder::upperBoundScaledY): | 
 |         (WebCore::ImageDecoder::lowerBoundScaledY): | 
 |         * platform/image-decoders/ImageDecoder.h: | 
 |         (WebCore::RGBA32Buffer::scaledRect): | 
 |         (WebCore::RGBA32Buffer::setScaledRect): | 
 |         (WebCore::ImageDecoder::scaledSize): | 
 |         * platform/image-decoders/gif/GIFImageDecoder.cpp: | 
 |         (WebCore::GIFImageDecoder::sizeNowAvailable): | 
 |         (WebCore::GIFImageDecoder::initFrameBuffer): | 
 |         (WebCore::copyOnePixel): | 
 |         (WebCore::GIFImageDecoder::haveDecodedRow): | 
 |         (WebCore::GIFImageDecoder::frameComplete): | 
 |  | 
 | 2010-01-12  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         ecma/Date/15.9.5.12-1.js fails every night at midnight | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28041 | 
 |  | 
 |         Change the test to use a concrete time instead of "now". | 
 |  | 
 |         * tests/mozilla/ecma/Date/15.9.5.10-1.js: | 
 |         * tests/mozilla/ecma/Date/15.9.5.12-1.js: | 
 |  | 
 | 2010-01-11  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Reviewed by Ariya Hidayat. | 
 |  | 
 |         [Qt] Enable JIT and YARR_JIT if (CPU(X86_64) && OS(LINUX) && GCC_VERSION >= 40100) | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-01-11  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33481 | 
 |         Uninitialized data members in ArrayStorage | 
 |          | 
 |         SunSpider reports no change. | 
 |  | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): Initialize missing data members in the two cases | 
 |         where we don't use fastZeroedMalloc, so it doesn't happen automatically. | 
 |  | 
 | 2010-01-11  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33480 | 
 |          | 
 |         Improve debugging reliability for WTF on Windows. | 
 |         Store WTF static library's PDB file into a better location. | 
 |  | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |  | 
 | 2010-01-11  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |         Remove extraneous entries from def file causing build warning. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-01-10  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         RegExp.prototype.toString returns "//" for empty regular expressions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33319 | 
 |  | 
 |         "//" starts a single-line comment, hence "/(?:)/" should be used, according to ECMA. | 
 |  | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::regExpProtoFuncToString): | 
 |  | 
 |         * tests/mozilla/ecma_2/RegExp/properties-001.js: | 
 |         (AddRegExpCases): | 
 |         * tests/mozilla/js1_2/regexp/toString.js: | 
 |         Update relevant Mozilla tests (Mozilla has had this behavior since November 2003). | 
 |  | 
 | 2010-01-10  Darin Adler  <darin@apple.com> | 
 |  | 
 |         * tests/mozilla/ecma/Array/15.4.1.1.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.1.2.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.2.1-1.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.2.2-1.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.2.2-2.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.2.3.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.3.2.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.3.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.4.1.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Array/15.4.4.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/LexicalConventions/7.7.4.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Math/15.8.2.13.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Math/15.8.2.16.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Math/15.8.2.18.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Math/15.8.2.2.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Math/15.8.2.4.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Math/15.8.2.5.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/Math/15.8.2.7.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/String/15.5.1.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/String/15.5.2.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/String/15.5.3.1-3.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/String/15.5.3.1-4.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/String/15.5.3.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/TypeConversion/9.5-2.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma/jsref.js: Modified property allow-tabs. | 
 |         * tests/mozilla/ecma/shell.js: Modified property allow-tabs. | 
 |         * tests/mozilla/ecma_2/LexicalConventions/keywords-001.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_2/RegExp/exec-001.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_2/String/match-004.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_2/String/replace-001.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_2/String/split-002.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_2/jsref.js: Modified property allow-tabs. | 
 |         * tests/mozilla/ecma_2/shell.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_3/Date/shell.js: Modified property allow-tabs. | 
 |         * tests/mozilla/ecma_3/Exceptions/regress-181654.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_3/RegExp/regress-209067.js: Added property allow-tabs. | 
 |         * tests/mozilla/ecma_3/RegExp/regress-85721.js: Added property allow-tabs. | 
 |         * tests/mozilla/importList.html: Added property allow-tabs. | 
 |         * tests/mozilla/js1_1/shell.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/Array/general1.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/Array/general2.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/Array/slice.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/Array/splice1.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/Array/splice2.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/Objects/toString-001.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/String/charCodeAt.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/String/concat.js: Modified property allow-tabs. | 
 |         * tests/mozilla/js1_2/String/match.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/String/slice.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/function/Function_object.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/function/Number.js: Modified property allow-tabs. | 
 |         * tests/mozilla/js1_2/function/String.js: Modified property allow-tabs. | 
 |         * tests/mozilla/js1_2/function/nesting.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/function/regexparg-1.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/function/regexparg-2-n.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/jsref.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/operator/equality.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/operator/strictEquality.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_dollar_number.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_input.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_input_as_array.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_lastIndex.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_lastMatch.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_lastMatch_as_array.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_lastParen.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_lastParen_as_array.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_leftContext.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_leftContext_as_array.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_multiline.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_multiline_as_array.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_object.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_rightContext.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/RegExp_rightContext_as_array.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/alphanumeric.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/asterisk.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/backslash.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/backspace.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/beginLine.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/character_class.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/compile.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/control_characters.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/digit.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/dot.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/endLine.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/everything.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/exec.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/flags.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/global.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/hexadecimal.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/ignoreCase.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/interval.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/octal.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/parentheses.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/plus.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/question_mark.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/simple_form.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/source.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/special_characters.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/string_replace.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/string_search.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/string_split.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/test.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/toString.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/vertical_bar.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/whitespace.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/regexp/word_boundary.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/shell.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/statements/break.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/statements/continue.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/statements/do_while.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/statements/switch.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_2/statements/switch2.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_3/shell.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_4/shell.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_5/Regress/regress-111557.js: Added property allow-tabs. | 
 |         * tests/mozilla/js1_5/Regress/regress-216320.js: Added property allow-tabs. | 
 |         * tests/mozilla/menuhead.html: Added property allow-tabs. | 
 |         * tests/mozilla/mklistpage.pl: Added property allow-tabs. | 
 |         * tests/mozilla/runtests.pl: Added property allow-tabs. | 
 |  | 
 | 2010-01-08  Daniel Bates  <dbates@webkit.org> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33417 | 
 |  | 
 |         Cleans up style errors exposed by the patch for bug #33198. | 
 |         Moreover, fixes all "Weird number of spaces at line-start. Are you using a 4-space indent?" | 
 |         errors reported by check-webkit-style. | 
 |  | 
 |         No functionality was changed. So, no new tests. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-01-08  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Don't store RegExp flags string representation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33321 | 
 |  | 
 |         It's unused; the string representation is reconstructed from flags. | 
 |  | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::RegExp): | 
 |         * runtime/RegExp.h: | 
 |  | 
 | 2010-01-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Memory use grows grows possibly unbounded in this JavaScript Array test case | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31675 | 
 |  | 
 |         This fixes one observed bug in this test case, which is that | 
 |         arrays don't report extra cost for the sparse value maps. | 
 |  | 
 |         SunSpider reports a small speedup. | 
 |  | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::putSlowCase): Report extra memory cost for | 
 |         the sparse value map. | 
 |         * runtime/JSArray.h:  | 
 |  | 
 | 2010-01-08  Yong Li  <yoli@rim.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Remove unnecessary #include from FastMalloc.cpp | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33393 | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |  | 
 | 2010-01-08  Eric Seidel  <eric@webkit.org> | 
 |  | 
 |         No review, rolling out r52983. | 
 |         http://trac.webkit.org/changeset/52983 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33321 | 
 |  | 
 |         Broke 59 JavaScriptCore tests.  I don't think Kent knew about | 
 |         run-javascriptcore-tests.  Sadly neither does the commit-bot, | 
 |         yet. | 
 |  | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::RegExp): | 
 |         * runtime/RegExp.h: | 
 |         (JSC::RegExp::flags): | 
 |  | 
 | 2010-01-08  Eric Seidel  <eric@webkit.org> | 
 |  | 
 |         No review, rolling out r52981. | 
 |         http://trac.webkit.org/changeset/52981 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33319 | 
 |  | 
 |         Caused two JS tests to start failing: | 
 |         ecma_2/RegExp/properties-001.js and js1_2/regexp/toString.js | 
 |  | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::regExpProtoFuncToString): | 
 |  | 
 | 2010-01-08  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Don't store RegExp flags string representation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33321 | 
 |  | 
 |         It's unused; the string representation is reconstructed from flags. | 
 |  | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::RegExp): | 
 |         * runtime/RegExp.h: | 
 |  | 
 | 2010-01-08  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         RegExp.prototype.toString returns "//" for empty regular expressions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33319 | 
 |  | 
 |         "//" starts a single-line comment, hence "/(?:)/" should be used, according to ECMA. | 
 |  | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::regExpProtoFuncToString): | 
 |  | 
 | 2010-01-08  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         RVCT compiler with "-Otime -O3" optimization tries to optimize out  | 
 |         inline new'ed pointers that are passed as arguments. | 
 |         Proposed patch assigns new'ed pointer explicitly outside function call. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33084 | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::OpaqueJSClass): | 
 |         (OpaqueJSClassContextData::OpaqueJSClassContextData): | 
 |  | 
 | 2010-01-08  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Remove an unnecessary cacheFlush from ARM_TRADITIONAL JIT | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33203 | 
 |  | 
 |         * assembler/ARMAssembler.cpp: Remove obsolete linkBranch function. | 
 |         (JSC::ARMAssembler::executableCopy): Inline a clean linkBranch code. | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::getLdrImmAddress): Use inline function. | 
 |         (JSC::ARMAssembler::getLdrImmAddressOnPool): Ditto. | 
 |         (JSC::ARMAssembler::patchPointerInternal): Remove an unnecessary cacheFlush. | 
 |         (JSC::ARMAssembler::linkJump): Use patchPointerInternal instead of linkBranch. | 
 |         (JSC::ARMAssembler::linkCall): Ditto. | 
 |         (JSC::ARMAssembler::relinkCall): Ditto. | 
 |  | 
 | 2010-01-07  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Build fix for JSVALUE32 when ENABLE_JIT_OPTIMIZE* are disabled | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33311 | 
 |  | 
 |         Move compileGetDirectOffset function to common part of JSVALUE32 | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::compileGetDirectOffset): | 
 |  | 
 | 2010-01-07  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Allow call sites to determine if ASSERT_* and LOG_* macros are operational | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33020 | 
 |  | 
 |         * wtf/Assertions.h: Set ASSERT_MSG_DISABLED, FATAL_DISABLED, | 
 |         ERROR_DISABLED, LOG_DISABLED to 1 if the compiler does not support | 
 |         variadic macros. Refactor for better readibility. | 
 |  | 
 | 2010-01-07  Daniel Bates  <dbates@rim.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32987 | 
 |  | 
 |         Added ENABLE_XHTMLMP flag. Disabled by default. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2010-01-07  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         [Symbian] Port ARM traditional JIT Trampolines to RVCT | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30552 | 
 |  | 
 |         Take the GCC implementation and mechanically convert | 
 |         it to RVCT syntax. | 
 |  | 
 |         Use 'bx rX' instead of 'mov pc, rX' when it is available. | 
 |  | 
 |         Developed in cooperation with Iain Campbell and Gabor Loki. | 
 |  | 
 |         * JavaScriptCore.pri: Extra step to generate RVCT stubs. The  | 
 |         script generation intentionally executed all the time not just | 
 |         for RVCT targets. | 
 |  | 
 |         * create_rvct_stubs: Added. Perl script to expand precompiler macros | 
 |         for RVCT assembler - the template is defined in JITStubs.cpp. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::ctiTrampoline): | 
 |         (JSC::ctiVMThrowTrampoline): | 
 |         (JSC::ctiOpThrowNotCaught): | 
 |  | 
 | 2010-01-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Fix a crash seen on the buildbots. | 
 |  | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::init): Disable specific function tracking here, | 
 |         instead of in WebCore, to ensure that the disabling happens before a | 
 |         specific function can be registered. | 
 |  | 
 | 2010-01-07  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Mac build fix. | 
 |  | 
 |         * JavaScriptCore.exp: Export new JSGlobalData static data members. | 
 |  | 
 | 2010-01-07  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33057 | 
 |         REGRESSION(r49365): typeof(xhr.responseText) != "string" in Windows | 
 |  | 
 |         <rdar://problem/7296920> REGRESSION: WebKit fails to start PeaceKeeper benchmark | 
 |  | 
 |         Test: fast/js/webcore-string-comparison.html | 
 |  | 
 |         In r49365, some code was moved from JSString.cpp to JSString.h, and as a result, WebCore | 
 |         got a way to directly instantiate JSStrings over DLL borders. Since vftable for JSString was | 
 |         not exported, objects created from WebCore got a different vptr, and JavaScriptCore | 
 |         optimizations that relied on vptr of all JSString objects being equal failed. | 
 |  | 
 |         * config.h: Added a JS_EXPORTCLASS macro for exporting classes. It's currently the same as | 
 |         JS_EXPORTDATA, but it clearly needed a new name. | 
 |  | 
 |         * runtime/InitializeThreading.cpp: | 
 |         (JSC::initializeThreadingOnce): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::storeVPtrs): | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         (JSC::JSGlobalData::createNonDefault): | 
 |         (JSC::JSGlobalData::create): | 
 |         (JSC::JSGlobalData::sharedInstance): | 
 |         * runtime/JSGlobalData.h: | 
 |         Store vptrs just once, no need to repeatedly pick and copy them. This makes it possible to | 
 |         assert vptr correctness in object destructors (which don't have access to JSGlobalData, | 
 |         and even Heap::heap(this) will fail for fake objects created from storeVPtrs()). | 
 |  | 
 |         * runtime/JSArray.cpp: (JSC::JSArray::~JSArray): Assert that vptr is what we expect it to be. | 
 |         It's important to assert in destructor, because MSVC changes the vptr after constructor | 
 |         is invoked. | 
 |         * runtime/JSByteArray.cpp: (JSC::JSByteArray::~JSByteArray): Ditto. | 
 |         * runtime/JSByteArray.h: Ditto. | 
 |         * runtime/JSFunction.h: Ditto. | 
 |         * runtime/JSFunction.cpp: (JSC::JSFunction::~JSFunction): Ditto. | 
 |  | 
 |         * runtime/JSCell.h: (JSC::JSCell::setVPtr): Added a method to substitute vptr for another | 
 |         one. | 
 |  | 
 |         * runtime/JSString.h: Export JSString class together with its vftable, and tell other | 
 |         libraries tp import it. This is needed on platforms that have a separate JavaScriptCore | 
 |         dynamic library - and on Mac, we already did the export via JavaScriptCore.exp. | 
 |         (JSC::JSString::~JSString): Assert tha vptr is what we expect it to be. | 
 |         (JSC::fixupVPtr): Store a previously saved primary vftable pointer (do nothing if building | 
 |         JavaScriptCore itself). | 
 |         (JSC::jsSingleCharacterString): Call fixupVPtr in case this is call across DLL boundary. | 
 |         (JSC::jsSingleCharacterSubstring): Ditto. | 
 |         (JSC::jsNontrivialString): Ditto. | 
 |         (JSC::jsString): Ditto. | 
 |         (JSC::jsSubstring): Ditto. | 
 |         (JSC::jsOwnedString): Ditto. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export the new static | 
 |         JSGlobalData members that are used in WebCore via inline functions. | 
 |  | 
 | 2010-01-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Safari memory usage skyrockets using new Google AdWords interface | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33343 | 
 |  | 
 |         The memory use was caused by the global object creating too many structures | 
 |         as it thrashed between different specific functions. | 
 |  | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::changePrototypeTransition): | 
 |         (JSC::Structure::despecifyFunctionTransition): | 
 |         (JSC::Structure::addAnonymousSlotsTransition): | 
 |         (JSC::Structure::getterSetterTransition): | 
 |         (JSC::Structure::toDictionaryTransition): | 
 |         (JSC::Structure::addPropertyWithoutTransition): | 
 |         (JSC::Structure::despecifyAllFunctions): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::disableSpecificFunctionTracking): Track a thrash count | 
 |         for specific functions. Disable specific function tracking once the | 
 |         thrash count has been hit. | 
 |  | 
 | 2010-01-07  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Enable JIT in debug mode on win32 after r51141 fixed the crashes. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2010-01-07  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Holger Freyther. | 
 |  | 
 |         [Mac] Build fix when FAST_MALLOC_MATCH_VALIDATION=1 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33312 | 
 |  | 
 |         Using of operator += cause compile error on Mac, so it is changed to | 
 |         "= static_cast<AllocAlignmentInteger*>(old_ptr) + 1". | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMallocStats::realloc): | 
 |  | 
 | 2010-01-07  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Holger Freyther. | 
 |  | 
 |         [Qt] Build fix when FAST_MALLOC_MATCH_VALIDATION=1 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33312 | 
 |  | 
 |         Remove pByte (committed in r42344 from #20422), because pByte doesn't | 
 |         exist and it is unnecessary. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMallocStats::realloc): | 
 |  | 
 | 2010-01-06  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         QT build fix. | 
 |  | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::createIdentifierTableSpecific): | 
 |  | 
 | 2010-01-06  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Windows build fix part I. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2010-01-06  Dan Bernstein  <mitz@apple.com> | 
 |  | 
 |         Build fix | 
 |  | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::createIdentifierTableSpecificCallback): | 
 |  | 
 | 2010-01-05  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33236 | 
 |         Remove m_identifierTable pointer from UString | 
 |  | 
 |         Currently every string holds a pointer so that during destruction, | 
 |         if a string has been used as an identifier, it can remove itself | 
 |         from the table.  By instead accessing the identifierTable via a | 
 |         thread specific tracking the table associated with the current | 
 |         globaldata, we can save the memory cost of this pointer. | 
 |  | 
 |         * API/APIShims.h: | 
 |         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): | 
 |         (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): | 
 |         (JSC::APICallbackShim::APICallbackShim): | 
 |         (JSC::APICallbackShim::~APICallbackShim): | 
 |  | 
 |             - change the API shims to track the identifierTable of the current JSGlobalData. | 
 |  | 
 |         * API/JSContextRef.cpp: | 
 |         (JSContextGroupCreate): | 
 |  | 
 |             - update creation of JSGlobalData for API usage to use new create method. | 
 |             - fix shim instanciation bug in JSGlobalContextCreateInGroup. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |  | 
 |             - add asserts to check the identifierTable is being tracked correctly. | 
 |  | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::IdentifierTable::~IdentifierTable): | 
 |         (JSC::IdentifierTable::add): | 
 |         (JSC::Identifier::remove): | 
 |         (JSC::Identifier::checkSameIdentifierTable): | 
 |         (JSC::createIdentifierTableSpecificCallback): | 
 |         (JSC::createIdentifierTableSpecific): | 
 |         (JSC::createDefaultDataSpecific): | 
 |  | 
 |             - Use currentIdentifierTable() instead of UStringImpl::m_identifierTable. | 
 |             - Define methods to access the thread specific identifier tables. | 
 |  | 
 |         * runtime/Identifier.h: | 
 |         (JSC::ThreadIdentifierTableData::ThreadIdentifierTableData): | 
 |         (JSC::defaultIdentifierTable): | 
 |         (JSC::setDefaultIdentifierTable): | 
 |         (JSC::currentIdentifierTable): | 
 |         (JSC::setCurrentIdentifierTable): | 
 |         (JSC::resetCurrentIdentifierTable): | 
 |  | 
 |             - Declare methods to access the thread specific identifier tables. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::createNonDefault): | 
 |         (JSC::JSGlobalData::create): | 
 |         (JSC::JSGlobalData::sharedInstance): | 
 |  | 
 |             - creation of JSGlobalData objects, other than for API usage, associate themselves with the current thread. | 
 |  | 
 |         * runtime/JSGlobalData.h: | 
 |         * runtime/UStringImpl.cpp: | 
 |         (JSC::UStringImpl::destroy): | 
 |  | 
 |             - destroy() method should be using isIdentifier(). | 
 |  | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::isIdentifier): | 
 |         (JSC::UStringImpl::setIsIdentifier): | 
 |         (JSC::UStringImpl::checkConsistency): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |  | 
 |             - replace m_identifierTable with a single m_isIdentifier bit. | 
 |  | 
 |         * wtf/StringHashFunctions.h: | 
 |         (WTF::stringHash): | 
 |  | 
 |             - change string hash result from 32-bit to 31-bit, to free a bit in UStringImpl for m_isIdentifier. | 
 |  | 
 | 2009-12-25 Patrick Gansterer <paroga@paroga.com> | 
 |   | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Buildfix for WinCE + style fixes. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32939 | 
 |  | 
 |         * jsc.cpp: | 
 |         (functionPrint): | 
 |         (functionQuit): | 
 |         (parseArguments): | 
 |         (fillBufferWithContentsOfFile): | 
 |   | 
 | 2010-01-05  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         WinCE buildfix after r52791 (renamed PLATFORM(WINCE) to OS(WINCE)). | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33205 | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |  | 
 | 2010-01-05  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Added compiler error for unsupported platforms. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33112 | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |  | 
 | 2010-01-05  Gabor Loki  <loki@webkit.org> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Follow r52729 in ARMAssembler. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33208 | 
 |  | 
 |         Use WTF_ARM_ARCH_AT_LEAST instead of ARM_ARCH_VERSION | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::encodeComplexImm): Move tmp declaration to ARMv7 | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::bkpt): | 
 |  | 
 | 2010-01-05  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Unreviewed build fix for Gtk+ | 
 |  | 
 |         Don't use // comments in Platform.h, at least some of them seem to make the version of GCC | 
 |         used on the Gtk buildbot unhappy. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-01-04  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Darin Fisher. | 
 |  | 
 |         Reorganize, document and rename OS() platform macros. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33198 | 
 |  | 
 |         * wtf/Platform.h: Rename, reorganize and document OS() macros. | 
 |  | 
 |         Adapt to name changes. Also fixed a few incorrect OS checks. | 
 |  | 
 |         * API/JSContextRef.cpp: | 
 |         * assembler/MacroAssemblerARM.cpp: | 
 |         (JSC::isVFPPresent): | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         * bytecode/SamplingTool.cpp: | 
 |         * config.h: | 
 |         * interpreter/RegisterFile.cpp: | 
 |         (JSC::RegisterFile::~RegisterFile): | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::RegisterFile): | 
 |         (JSC::RegisterFile::grow): | 
 |         * jit/ExecutableAllocator.h: | 
 |         * jit/ExecutableAllocatorFixedVMPool.cpp: | 
 |         * jit/ExecutableAllocatorPosix.cpp: | 
 |         * jit/ExecutableAllocatorSymbian.cpp: | 
 |         * jit/ExecutableAllocatorWin.cpp: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITStubs.cpp: | 
 |         * jsc.cpp: | 
 |         (main): | 
 |         * parser/Grammar.y: | 
 |         * profiler/ProfileNode.cpp: | 
 |         (JSC::getCount): | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::Heap): | 
 |         (JSC::Heap::allocateBlock): | 
 |         (JSC::Heap::freeBlockPtr): | 
 |         (JSC::currentThreadStackBase): | 
 |         (JSC::getCurrentPlatformThread): | 
 |         (JSC::suspendThread): | 
 |         (JSC::resumeThread): | 
 |         (JSC::getPlatformThreadRegisters): | 
 |         (JSC::otherThreadStackPointer): | 
 |         * runtime/Collector.h: | 
 |         * runtime/DateConstructor.cpp: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |         * runtime/InitializeThreading.cpp: | 
 |         (JSC::initializeThreading): | 
 |         * runtime/MarkStack.h: | 
 |         (JSC::MarkStack::MarkStackArray::shrinkAllocation): | 
 |         * runtime/MarkStackPosix.cpp: | 
 |         * runtime/MarkStackSymbian.cpp: | 
 |         * runtime/MarkStackWin.cpp: | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncLastIndexOf): | 
 |         * runtime/TimeoutChecker.cpp: | 
 |         (JSC::getCPUTime): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::from): | 
 |         * wtf/Assertions.cpp: | 
 |         * wtf/Assertions.h: | 
 |         * wtf/CurrentTime.cpp: | 
 |         (WTF::lowResUTCTime): | 
 |         * wtf/CurrentTime.h: | 
 |         (WTF::getLocalTime): | 
 |         * wtf/DateMath.cpp: | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_ThreadCache::InitModule): | 
 |         (WTF::TCMallocStats::): | 
 |         * wtf/FastMalloc.h: | 
 |         * wtf/MathExtras.h: | 
 |         * wtf/RandomNumber.cpp: | 
 |         (WTF::randomNumber): | 
 |         * wtf/RandomNumberSeed.h: | 
 |         (WTF::initializeRandomNumberGenerator): | 
 |         * wtf/StringExtras.h: | 
 |         * wtf/TCSpinLock.h: | 
 |         (TCMalloc_SpinLock::Unlock): | 
 |         (TCMalloc_SlowLock): | 
 |         * wtf/TCSystemAlloc.cpp: | 
 |         * wtf/ThreadSpecific.h: | 
 |         (WTF::::destroy): | 
 |         * wtf/Threading.h: | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::initializeThreading): | 
 |         (WTF::isMainThread): | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::wtfThreadEntryPoint): | 
 |         (WTF::createThreadInternal): | 
 |         * wtf/VMTags.h: | 
 |         * wtf/unicode/icu/CollatorICU.cpp: | 
 |         (WTF::Collator::userDefault): | 
 |         * wtf/win/MainThreadWin.cpp: | 
 |         (WTF::initializeMainThreadPlatform): | 
 |  | 
 | 2010-01-04  Gustavo Noronha Silva  <gns@gnome.org> | 
 |  | 
 |         Add missing files to the build system - make distcheck build fix. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2010-01-04  Gavin Barraclough <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig, additional coding by Mark Rowe. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33163 | 
 |         Add string hashing functions to WTF. | 
 |         Use WTF's string hashing functions from UStringImpl. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/UStringImpl.cpp: | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::computeHash): | 
 |         * wtf/HashFunctions.h: | 
 |         * wtf/StringHashFunctions.h: Added. | 
 |         (WTF::stringHash): | 
 |  | 
 | 2010-01-04  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Not reviewed, attempt to fix ARM bulid. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-01-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Geoff Garen. | 
 |  | 
 |         Add an 'isIdentifier' to UStringImpl, use this where appropriate | 
 |         (where previously 'identifierTable' was being tested). | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::~OpaqueJSClass): | 
 |         (OpaqueJSClassContextData::OpaqueJSClassContextData): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::addSlowCase): | 
 |         * runtime/Identifier.h: | 
 |         (JSC::Identifier::add): | 
 |         * runtime/PropertyNameArray.cpp: | 
 |         (JSC::PropertyNameArray::add): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UStringImpl::isIdentifier): | 
 |  | 
 | 2010-01-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam "Shimmey Shimmey" Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33158 | 
 |         Refactor JSC API entry/exit to use RAII instead of copy/pasting code. | 
 |         Make it easier to change set of actions taken when passing across the API boundary. | 
 |  | 
 |         * API/APIShims.h: Added. | 
 |         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): | 
 |         (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): | 
 |         (JSC::APIEntryShim::APIEntryShim): | 
 |         (JSC::APICallbackShim::APICallbackShim): | 
 |         (JSC::APICallbackShim::~APICallbackShim): | 
 |         * API/JSBase.cpp: | 
 |         (JSEvaluateScript): | 
 |         (JSCheckScriptSyntax): | 
 |         (JSGarbageCollect): | 
 |         (JSReportExtraMemoryCost): | 
 |         * API/JSCallbackConstructor.cpp: | 
 |         (JSC::constructJSCallback): | 
 |         * API/JSCallbackFunction.cpp: | 
 |         (JSC::JSCallbackFunction::call): | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::init): | 
 |         (JSC::::getOwnPropertySlot): | 
 |         (JSC::::put): | 
 |         (JSC::::deleteProperty): | 
 |         (JSC::::construct): | 
 |         (JSC::::hasInstance): | 
 |         (JSC::::call): | 
 |         (JSC::::getOwnPropertyNames): | 
 |         (JSC::::toNumber): | 
 |         (JSC::::toString): | 
 |         (JSC::::staticValueGetter): | 
 |         (JSC::::callbackGetter): | 
 |         * API/JSContextRef.cpp: | 
 |         * API/JSObjectRef.cpp: | 
 |         (JSObjectMake): | 
 |         (JSObjectMakeFunctionWithCallback): | 
 |         (JSObjectMakeConstructor): | 
 |         (JSObjectMakeFunction): | 
 |         (JSObjectMakeArray): | 
 |         (JSObjectMakeDate): | 
 |         (JSObjectMakeError): | 
 |         (JSObjectMakeRegExp): | 
 |         (JSObjectGetPrototype): | 
 |         (JSObjectSetPrototype): | 
 |         (JSObjectHasProperty): | 
 |         (JSObjectGetProperty): | 
 |         (JSObjectSetProperty): | 
 |         (JSObjectGetPropertyAtIndex): | 
 |         (JSObjectSetPropertyAtIndex): | 
 |         (JSObjectDeleteProperty): | 
 |         (JSObjectCallAsFunction): | 
 |         (JSObjectCallAsConstructor): | 
 |         (JSObjectCopyPropertyNames): | 
 |         (JSPropertyNameArrayRelease): | 
 |         (JSPropertyNameAccumulatorAddName): | 
 |         * API/JSValueRef.cpp: | 
 |         (JSValueGetType): | 
 |         (JSValueIsUndefined): | 
 |         (JSValueIsNull): | 
 |         (JSValueIsBoolean): | 
 |         (JSValueIsNumber): | 
 |         (JSValueIsString): | 
 |         (JSValueIsObject): | 
 |         (JSValueIsObjectOfClass): | 
 |         (JSValueIsEqual): | 
 |         (JSValueIsStrictEqual): | 
 |         (JSValueIsInstanceOfConstructor): | 
 |         (JSValueMakeUndefined): | 
 |         (JSValueMakeNull): | 
 |         (JSValueMakeBoolean): | 
 |         (JSValueMakeNumber): | 
 |         (JSValueMakeString): | 
 |         (JSValueToBoolean): | 
 |         (JSValueToNumber): | 
 |         (JSValueToStringCopy): | 
 |         (JSValueToObject): | 
 |         (JSValueProtect): | 
 |         (JSValueUnprotect): | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2010-01-04  Dan Bernstein  <mitz@apple.com> | 
 |  | 
 |         Reviewed by Ada Chan and Mark Rowe. | 
 |  | 
 |         Updated copyright string | 
 |  | 
 |         * Info.plist: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore.resources/Info.plist: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: | 
 |  | 
 | 2010-01-04  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         No review, rolling out r52741. | 
 |         http://trac.webkit.org/changeset/52741 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33056 | 
 |  | 
 |         * wtf/AlwaysInline.h: | 
 |  | 
 | 2010-01-04  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Add cacheFlush support for WinCE | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33110 | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |  | 
 | 2010-01-04  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         Implement NO_RETURN for COMPILER(MSVC). | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33056 | 
 |  | 
 |         * wtf/AlwaysInline.h: | 
 |  | 
 | 2010-01-04  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix some PLATFORM(*_ENDIAN) uses to CPU() | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33148 | 
 |  | 
 |         * runtime/JSCell.cpp: | 
 |         (JSC::): | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::): | 
 |  | 
 | 2010-01-04  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Document CPU() macros in comments. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33147 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-01-04  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Reorganize, document and rename CPU() platform macros. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33145 | 
 |         ExecutableAllocatorSymbian appears to have buggy ARM version check | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33138 | 
 |          | 
 |         * wtf/Platform.h: | 
 |         Rename all macros related to detection of particular CPUs or | 
 |         classes of CPUs to CPU(), reorganize and document them. | 
 |  | 
 |         All remaining changes are adapting to the renames, plus fixing the | 
 |         second bug cited above. | 
 |          | 
 |         * assembler/ARMAssembler.cpp: | 
 |         * assembler/ARMAssembler.h: | 
 |         * assembler/ARMv7Assembler.h: | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::Imm32::Imm32): | 
 |         * assembler/MacroAssembler.h: | 
 |         * assembler/MacroAssemblerARM.cpp: | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         * assembler/MacroAssemblerCodeRef.h: | 
 |         (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): | 
 |         * assembler/MacroAssemblerX86.h: | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Registers::): | 
 |         (JSC::X86Assembler::): | 
 |         (JSC::X86Assembler::movl_mEAX): | 
 |         (JSC::X86Assembler::movl_EAXm): | 
 |         (JSC::X86Assembler::repatchLoadPtrToLEA): | 
 |         (JSC::X86Assembler::X86InstructionFormatter::memoryModRM): | 
 |         * jit/ExecutableAllocator.h: | 
 |         * jit/ExecutableAllocatorFixedVMPool.cpp: | 
 |         * jit/ExecutableAllocatorPosix.cpp: | 
 |         * jit/ExecutableAllocatorSymbian.cpp: | 
 |         (JSC::ExecutableAllocator::intializePageSize): | 
 |         * jit/JIT.cpp: | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::beginUninterruptedSequence): | 
 |         (JSC::JIT::restoreArgumentReferenceForTrampoline): | 
 |         (JSC::JIT::emitCount): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |         * jit/JITStubs.h: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::currentThreadStackBase): | 
 |         (JSC::getPlatformThreadRegisters): | 
 |         (JSC::otherThreadStackPointer): | 
 |         * wrec/WREC.h: | 
 |         * wrec/WRECGenerator.cpp: | 
 |         (JSC::WREC::Generator::generateEnter): | 
 |         (JSC::WREC::Generator::generateReturnSuccess): | 
 |         (JSC::WREC::Generator::generateReturnFailure): | 
 |         * wrec/WRECGenerator.h: | 
 |         * wtf/FastMalloc.cpp: | 
 |         * wtf/TCSpinLock.h: | 
 |         (TCMalloc_SpinLock::Lock): | 
 |         (TCMalloc_SpinLock::Unlock): | 
 |         (TCMalloc_SlowLock): | 
 |         * wtf/Threading.h: | 
 |         * wtf/dtoa.cpp: | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateEnter): | 
 |         (JSC::Yarr::RegexGenerator::generateReturn): | 
 |         * yarr/RegexJIT.h: | 
 |  | 
 | 2010-01-04  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Clean up COMPILER macros and remove unused ones. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33132 | 
 |          | 
 |         Removed values are COMPILER(BORLAND) and COMPILER(CYGWIN) - they were | 
 |         not used anywhere. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2010-01-03  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Update wtf/Platform.h to document the new system for porting macros. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=33130 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         PLATFORM(CAIRO) should be defined by WIN_CAIRO define | 
 |         https://bugs.webkit.org/show_bug.cgi?id=22250 | 
 |  | 
 |         * wtf/Platform.h: Define WTF_PLATFORM_CAIRO for GTK port only | 
 |         For the WinCairo port WTF_PLATFORM_CAIRO is already defined in config.h | 
 |  | 
 | 2009-12-28  Shu Chang  <Chang.Shu@nokia.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [Qt] Delete ThreadPrivate instance after it is finished. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32614 | 
 |  | 
 |         * wtf/qt/ThreadingQt.cpp: | 
 |         (WTF::ThreadMonitor::instance): | 
 |         (WTF::ThreadMonitor::threadFinished): | 
 |         (WTF::createThreadInternal): | 
 |         (WTF::detachThread): | 
 |  | 
 | 2009-12-28  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Cleanup of #define JS_EXPORT. | 
 |  | 
 |         * API/JSBase.h: | 
 |  | 
 | 2009-12-27  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         WinCE buildfix (HWND_MESSAGE isn't supported there) | 
 |  | 
 |         * wtf/win/MainThreadWin.cpp: | 
 |         (WTF::initializeMainThreadPlatform): | 
 |  | 
 | 2009-12-27  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Added a file with WinMain function to link agains in WinCE. | 
 |  | 
 |         * os-win32/WinMain.cpp: Added. | 
 |         (convertToUtf8): | 
 |         (WinMain): | 
 |  | 
 | 2009-12-24  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed; revert of r52550. | 
 |  | 
 |         The change regressed the following LayoutTests for QtWebKit. | 
 |  | 
 |         fast/workers/worker-call.html -> crashed | 
 |         fast/workers/worker-close.html -> crashed | 
 |  | 
 |         * wtf/qt/ThreadingQt.cpp: | 
 |         (WTF::waitForThreadCompletion): | 
 |         (WTF::detachThread): | 
 |  | 
 | 2009-12-24  Shu Chang  <Chang.Shu@nokia.com> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         [Qt] Fix memory leak by deleting instance of ThreadPrivate | 
 |         in function waitForThreadCompletion(), synchronously, or in | 
 |         detachThread(), asynchronously. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32614  | 
 |  | 
 |         * wtf/qt/ThreadingQt.cpp: | 
 |         (WTF::waitForThreadCompletion): | 
 |         (WTF::detachThread): | 
 |  | 
 | 2009-12-23  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Laszlo Gombos. | 
 |  | 
 |         Include stddef.h for ptrdiff_t | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32891 | 
 |  | 
 |         ptrdiff_t is typedef-ed in stddef.h. | 
 |         Include stddef.h in jit/ExecutableAllocator.h. | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |  | 
 | 2009-12-23  Patrick Gansterer  <paroga@paroga.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Buildfix after r47092. | 
 |  | 
 |         * wtf/wince/MemoryManager.cpp: | 
 |         (WTF::tryFastMalloc): | 
 |         (WTF::tryFastZeroedMalloc): | 
 |         (WTF::tryFastCalloc): | 
 |         (WTF::tryFastRealloc): | 
 |  | 
 | 2009-12-23  Kent Tamura  <tkent@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         HTMLInputElement::valueAsDate getter support. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32876 | 
 |  | 
 |         Expose dateToDaysFrom1970(). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::dateToDaysFrom1970): | 
 |         * wtf/DateMath.h: | 
 |  | 
 | 2009-12-22  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Turn off datagrid by default, at least for all platforms Apple ships. | 
 |         The datagrid implementation isn't ready for general web use yet. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: Turn off datagrid by default. | 
 |  | 
 | 2009-12-22  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Updates Android's scheduleDispatchFunctionsOnMainThread() to use new | 
 |         AndroidThreading class, rather than using JavaSharedClient directly. | 
 |         This fixes the current layering violation. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32651 | 
 |  | 
 |         The pattern is copied from Chromium, which uses the ChromiumThreading | 
 |         class. This patch also fixes the style in ChromiumThreading.h. | 
 |  | 
 |         * wtf/android/AndroidThreading.h: Added. Declares AndroidThreading. | 
 |         * wtf/android/MainThreadAndroid.cpp: Modified | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): Uses AndroidThreading. | 
 |         * wtf/chromium/ChromiumThreading.h: Modified. Fixes style. | 
 |  | 
 | 2009-12-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Fix a couple of problems with UntypedPtrAndBitfield. | 
 |  | 
 |         Add a m_leaksPtr to reduce false positives from leaks in debug builds | 
 |         (this isn't perfect because we'd like a solution for release builds, | 
 |         but this is now at least as good as a PtrAndFlags would be). | 
 |  | 
 |         Switch SmallStringsto use a regular string for the base, rather than | 
 |         a static one.  UntypedPtrAndBitfield assumes all strings are at least | 
 |         8 byte aligned; this migt not be true of static strings.  Shared buffers | 
 |         are heap allocated, as are all UStringImpls other than static strings. | 
 |         Static strings cannot end up being the owner string of substrings, | 
 |         since the only static strings are length 0. | 
 |  | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::SmallStringsStorage::SmallStringsStorage): | 
 |         * runtime/UStringImpl.h: | 
 |         (JSC::UntypedPtrAndBitfield::UntypedPtrAndBitfield): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |  | 
 | 2009-12-22  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         RVCT (__ARMCC_VERSION < 400000) does not provide strcasecmp and strncasecmp | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32857 | 
 |  | 
 |         Add implementation of strcasecmp and strncasecmp for RVCT < 4.0 | 
 |         because earlier versions of RVCT 4.0 does not provide these functions. | 
 |  | 
 |         * wtf/StringExtras.cpp: Added. | 
 |         (strcasecmp): | 
 |         (strncasecmp): | 
 |         * wtf/StringExtras.h: | 
 |  | 
 | 2009-12-22  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Define ALWAYS_INLINE and WTF_PRIVATE_INLINE to __forceinline for RVCT | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32853 | 
 |  | 
 |         Use __forceinline forces RVCT to compile a C or C++ function | 
 |         inline. The compiler attempts to inline the function, regardless of | 
 |         the characteristics of the function. | 
 |  | 
 |         * wtf/AlwaysInline.h: | 
 |         * wtf/FastMalloc.h: | 
 |  | 
 | 2009-12-21  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Prospective GTK build fix: Add UStringImpl.cpp/h to the build. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-12-21  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Fix the Qt build, add UStringImpl.cpp to the build. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-12-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Windows Build fix part 5. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |  | 
 | 2009-12-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |         Fix breakage of world introduced in build fix to r52463. | 
 |  | 
 |         * runtime/UStringImpl.h: | 
 |  | 
 | 2009-12-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32831 | 
 |         Replace UString::Rep implementation, following introduction of ropes to JSC. | 
 |  | 
 |             * Remove redundant overcapacity mechanisms. | 
 |             * Reduce memory cost of Rep's. | 
 |             * Add an inline storage mechanism akin to that in WebCore's StringImpl. | 
 |  | 
 |         ~1% Sunspider progression. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::SmallStringsStorage::SmallStringsStorage): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::initializeUString): | 
 |         (JSC::createRep): | 
 |         (JSC::UString::createFromUTF8): | 
 |         (JSC::UString::createUninitialized): | 
 |         (JSC::UString::spliceSubstringsWithSeparators): | 
 |         (JSC::UString::replaceRange): | 
 |         (JSC::UString::ascii): | 
 |         (JSC::UString::operator=): | 
 |         (JSC::UString::toStrictUInt32): | 
 |         (JSC::equal): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::isEmpty): | 
 |         (JSC::UString::cost): | 
 |         (JSC::makeString): | 
 |         * runtime/UStringImpl.cpp: Added. | 
 |         (JSC::UStringImpl::baseSharedBuffer): | 
 |         (JSC::UStringImpl::sharedBuffer): | 
 |         (JSC::UStringImpl::destroy): | 
 |         (JSC::UStringImpl::computeHash): | 
 |         * runtime/UStringImpl.h: Added. | 
 |         (JSC::UntypedPtrAndBitfield::UntypedPtrAndBitfield): | 
 |         (JSC::UntypedPtrAndBitfield::asPtr): | 
 |         (JSC::UntypedPtrAndBitfield::operator&=): | 
 |         (JSC::UntypedPtrAndBitfield::operator|=): | 
 |         (JSC::UntypedPtrAndBitfield::operator&): | 
 |         (JSC::UStringImpl::create): | 
 |         (JSC::UStringImpl::createCopying): | 
 |         (JSC::UStringImpl::createUninitialized): | 
 |         (JSC::UStringImpl::data): | 
 |         (JSC::UStringImpl::size): | 
 |         (JSC::UStringImpl::cost): | 
 |         (JSC::UStringImpl::hash): | 
 |         (JSC::UStringImpl::computedHash): | 
 |         (JSC::UStringImpl::setHash): | 
 |         (JSC::UStringImpl::identifierTable): | 
 |         (JSC::UStringImpl::setIdentifierTable): | 
 |         (JSC::UStringImpl::ref): | 
 |         (JSC::UStringImpl::deref): | 
 |         (JSC::UStringImpl::allocChars): | 
 |         (JSC::UStringImpl::copyChars): | 
 |         (JSC::UStringImpl::computeHash): | 
 |         (JSC::UStringImpl::null): | 
 |         (JSC::UStringImpl::empty): | 
 |         (JSC::UStringImpl::checkConsistency): | 
 |         (JSC::UStringImpl::): | 
 |         (JSC::UStringImpl::UStringImpl): | 
 |         (JSC::UStringImpl::operator new): | 
 |         (JSC::UStringImpl::bufferOwnerString): | 
 |         (JSC::UStringImpl::bufferOwnership): | 
 |         (JSC::UStringImpl::isStatic): | 
 |  | 
 | 2009-12-18  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Move some build decisions from Qt build system into source files | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31956 | 
 |  | 
 |         * JavaScriptCore.pri: Compile files unconditionally | 
 |         * jit/ExecutableAllocatorPosix.cpp: Guard with PLATFORM(UNIX) && !PLATFORM(SYMBIAN) | 
 |         * jit/ExecutableAllocatorWin.cpp: Guard with PLATFORM(WIN_OS) | 
 |         * runtime/MarkStackPosix.cpp: Guard with PLATFORM(UNIX) && !PLATFORM(SYMBIAN) | 
 |         * runtime/MarkStackSymbian.cpp: Guard with PLATFORM(SYMBIAN) | 
 |         * runtime/MarkStackWin.cpp: Guard with PLATFORM(WIN_OS) | 
 |         * wtf/Platform.h: Guard ENABLE_JSC_MULTIPLE_THREADS with ENABLE_SINGLE_THREADED for the Qt port | 
 |         * wtf/ThreadingNone.cpp: Guard with ENABLE(SINGLE_THREADED) | 
 |         * wtf/qt/ThreadingQt.cpp: Guard with !ENABLE(SINGLE_THREADED) | 
 |  | 
 | 2009-12-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Add createNonCopying method to UString to make replace constructor passed bool, | 
 |         to make behaviour more explicit.  Add createFromUTF8 to UString (wrapping method | 
 |         on UString::Rep), since other cases of transliteration (e.g.  from ascii) are | 
 |         performed in UString constructors.  Add/use setHash & size() accessors on Rep, | 
 |         rather than accessing _hash/len directly. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClass::OpaqueJSClass): | 
 |         * API/OpaqueJSString.cpp: | 
 |         (OpaqueJSString::ustring): | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |         * runtime/Identifier.cpp: | 
 |         (JSC::Identifier::equal): | 
 |         (JSC::CStringTranslator::translate): | 
 |         (JSC::UCharBufferTranslator::translate): | 
 |         (JSC::Identifier::addSlowCase): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::Rope::Fiber::refAndGetLength): | 
 |         (JSC::JSString::Rope::append): | 
 |         * runtime/StringBuilder.h: | 
 |         (JSC::StringBuilder::release): | 
 |         * runtime/StringConstructor.cpp: | 
 |         (JSC::stringFromCharCodeSlowCase): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::substituteBackreferencesSlow): | 
 |         (JSC::stringProtoFuncToLowerCase): | 
 |         (JSC::stringProtoFuncToUpperCase): | 
 |         (JSC::stringProtoFuncFontsize): | 
 |         (JSC::stringProtoFuncLink): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::UString): | 
 |         (JSC::UString::createNonCopying): | 
 |         (JSC::UString::createFromUTF8): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::Rep::setHash): | 
 |         (JSC::UString::~UString): | 
 |         (JSC::makeString): | 
 |  | 
 | 2009-12-18  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Cameron Zwarich and Gavin Barraclough. | 
 |          | 
 |         Changed Register constructors to assignment operators, to streamline | 
 |         moving values into registers. (In theory, there's no difference between | 
 |         the two, since the constructor should just inline away, but there seems | 
 |         to be a big difference in the addled mind of the GCC optimizer.) | 
 |  | 
 |         In the interpreter, this is a 3.5% SunSpider speedup and a 1K-2K | 
 |         reduction in stack usage per privateExecute stack frame. | 
 |  | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::setCalleeArguments): | 
 |         (JSC::ExecState::setCallerFrame): | 
 |         (JSC::ExecState::setScopeChain): | 
 |         (JSC::ExecState::init): | 
 |         (JSC::ExecState::setArgumentCount): | 
 |         (JSC::ExecState::setCallee): | 
 |         (JSC::ExecState::setCodeBlock): Added a little bit of casting so these | 
 |         functions could use the new Register assignment operators. | 
 |  | 
 |         * interpreter/Register.h: | 
 |         (JSC::Register::withInt): | 
 |         (JSC::Register::Register): | 
 |         (JSC::Register::operator=): Swapped in assignment operators for constructors. | 
 |  | 
 | 2009-12-18  Yongjun Zhang  <yongjun.zhang@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32713 | 
 |         [Qt] make wtf/Assertions.h compile in winscw compiler. | 
 |  | 
 |         Add string arg before ellipsis to help winscw compiler resolve variadic | 
 |         macro definitions in wtf/Assertions.h.  | 
 |  | 
 |         * wtf/Assertions.h: | 
 |  | 
 | 2009-12-18  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         Fixed intermittent failure seen on Windows buildbot, and in other JSC | 
 |         API clients. | 
 |          | 
 |         Added a WeakGCPtr class and changed OpaqueJSClass::cachedPrototype to | 
 |         use it, to avoid vending a stale object as a prototype. | 
 |  | 
 |         * API/JSClassRef.cpp: | 
 |         (OpaqueJSClassContextData::OpaqueJSClassContextData): | 
 |         (OpaqueJSClass::prototype): | 
 |         * API/JSClassRef.h: Use WeakGCPtr. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/WeakGCPtr.h: Added. | 
 |         (JSC::WeakGCPtr::WeakGCPtr): | 
 |         (JSC::WeakGCPtr::get): | 
 |         (JSC::WeakGCPtr::clear): | 
 |         (JSC::WeakGCPtr::operator*): | 
 |         (JSC::WeakGCPtr::operator->): | 
 |         (JSC::WeakGCPtr::operator!): | 
 |         (JSC::WeakGCPtr::operator bool): | 
 |         (JSC::WeakGCPtr::operator UnspecifiedBoolType): | 
 |         (JSC::WeakGCPtr::assign): | 
 |         (JSC::::operator): | 
 |         (JSC::operator==): | 
 |         (JSC::operator!=): | 
 |         (JSC::static_pointer_cast): | 
 |         (JSC::const_pointer_cast): | 
 |         (JSC::getPtr): Added WeakGCPtr to the project. | 
 |  | 
 | 2009-12-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32720 | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |             - Remove exports for UString::append | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |             - Make StringBuilder a private header (was project). | 
 |  | 
 | 2009-12-18  Martin Robinson  <martin.james.robinson@gmail.com> | 
 |  | 
 |         Reviewed by Gustavo Noronha Silva. | 
 |  | 
 |         [GTK] GRefPtr does not take a reference when assigned a raw pointer | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32709 | 
 |  | 
 |         Ensure that when assigning a raw pointer to a GRefPtr, the reference | 
 |         count is incremented. Also remove the GRefPtr conversion overload as | 
 |         GRefPtr types have necessarily incompatible reference counting. | 
 |  | 
 |         * wtf/gtk/GRefPtr.h: | 
 |         (WTF::GRefPtr::operator=): | 
 |  | 
 | 2009-12-18  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Clean up the qmake build system to distinguish between trunk builds and package builds | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32716 | 
 |  | 
 |         * pcre/pcre.pri: Use standalone_package instead of QTDIR_build | 
 |  | 
 | 2009-12-18  Martin Robinson  <martin.james.robinson@gmail.com> | 
 |  | 
 |         Reviewed by Gustavo Noronha Silva. | 
 |  | 
 |         [GTK] Compile warning from line 29 of GRefPtr.cpp | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32703 | 
 |  | 
 |         Fix memory leak and compiler warning in GRefPtr GHashTable template | 
 |         specialization. | 
 |  | 
 |         * wtf/gtk/GRefPtr.cpp: | 
 |         (WTF::refGPtr): | 
 |  | 
 | 2009-12-17  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Add BUILDING_ON_SNOW_LEOPARD and TARGETING_SNOW_LEOPARD #defines. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-17  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Sync JavaScriptCore.vcproj with JavaScriptCore.xcodeproj and the | 
 |         source tree | 
 |  | 
 |         Fixes <http://webkit.org/b/32665>. | 
 |  | 
 |         Reviewed by Ada Chan. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Moved | 
 |         around files and filters so that the structure matches | 
 |         JavaScriptCore.xcodeproj and the source tree. A few headers that were | 
 |         previously omitted have been added, as well as JSZombie.{cpp,h}. | 
 |  | 
 | 2009-12-17  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Remove HeavyProfile and TreeProfile completely | 
 |  | 
 |         These were mostly removed in r42808, but the empty files were left in | 
 |         place. | 
 |  | 
 |         Fixes <http://webkit.org/b/32664>. | 
 |  | 
 |         Reviewed by John Sullivan. | 
 |  | 
 |         * Android.mk: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCoreSources.bkl: | 
 |         Removed HeavyProfile/TreeProfile source files. | 
 |  | 
 |         * profiler/HeavyProfile.cpp: Removed. | 
 |         * profiler/HeavyProfile.h: Removed. | 
 |         * profiler/TreeProfile.cpp: Removed. | 
 |         * profiler/TreeProfile.h: Removed. | 
 |  | 
 | 2009-12-17  Martin Robinson  <martin.james.robinson@gmail.com> | 
 |  | 
 |         Reviewed by Gustavo Noronha Silva. | 
 |  | 
 |         [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs | 
 |         https://bugs.webkit.org/show_bug.cgi?id=21599 | 
 |  | 
 |         Implement GRefPtr, a smart pointer for reference counted GObject types. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * wtf/gtk/GOwnPtr.cpp: | 
 |         (WTF::GDir): | 
 |         * wtf/gtk/GRefPtr.h: Added. | 
 |         (WTF::): | 
 |         (WTF::GRefPtr::GRefPtr): | 
 |         (WTF::GRefPtr::~GRefPtr): | 
 |         (WTF::GRefPtr::clear): | 
 |         (WTF::GRefPtr::get): | 
 |         (WTF::GRefPtr::operator*): | 
 |         (WTF::GRefPtr::operator->): | 
 |         (WTF::GRefPtr::operator!): | 
 |         (WTF::GRefPtr::operator UnspecifiedBoolType): | 
 |         (WTF::GRefPtr::hashTableDeletedValue): | 
 |         (WTF::::operator): | 
 |         (WTF::::swap): | 
 |         (WTF::swap): | 
 |         (WTF::operator==): | 
 |         (WTF::operator!=): | 
 |         (WTF::static_pointer_cast): | 
 |         (WTF::const_pointer_cast): | 
 |         (WTF::getPtr): | 
 |         (WTF::adoptGRef): | 
 |         (WTF::refGPtr): | 
 |         (WTF::derefGPtr): | 
 |  | 
 | 2009-12-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Unreviewed. Build fixes for make distcheck. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-12-16  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fixed <rdar://problem/7355025> Interpreter::privateExecute macro generates | 
 |         bloated code | 
 |          | 
 |         This patch cuts Interpreter stack use by about a third. | 
 |  | 
 |         * bytecode/Opcode.h: Changed Opcode to const void* to work with the | 
 |         const static initiliazation we want to do in Interpreter::privateExecute. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::Interpreter): Moved hashtable initialization here to | 
 |         avoid polluting Interpreter::privateExecute's stack, and changed it from a | 
 |         series of add() calls to one add() call in a loop, to cut down on code size. | 
 |  | 
 |         (JSC::Interpreter::privateExecute): Changed a series of label computations | 
 |         to a copy of a compile-time constant array to cut down on code size. | 
 |  | 
 | 2009-12-16  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Build fix.  Disable debug variants of WebKit frameworks. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-12-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam "r=me" Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32498 | 
 |         <rdar://problem/7471495> | 
 |         REGRESSION(r51978-r52039): AJAX "Mark This Forum Read" function no longer | 
 |         works | 
 |          | 
 |         Fixed a tyop. | 
 |  | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsAdd): Use the '&&' operator, not the ',' operator. | 
 |  | 
 | 2009-12-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Try to fix the windows build: don't export this inlined function. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-12-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Beth Dakin. | 
 |  | 
 |         Inlined JSCell's operator new. | 
 |          | 
 |         3.7% speedup on bench-allocate-nonretained.js. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSCell.cpp: | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::operator new): | 
 |  | 
 | 2009-12-15  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Removed the number heap, replacing it with a one-item free list for | 
 |         numbers, taking advantage of the fact that two number cells fit inside | 
 |         the space for one regular cell, and number cells don't require destruction. | 
 |          | 
 |         SunSpider says 1.6% faster in JSVALUE32 mode (the only mode that | 
 |         heap-allocates numbers). | 
 |          | 
 |         SunSpider says 1.1% faster in JSVALUE32_64 mode. v8 says 0.8% faster | 
 |         in JSVALUE32_64 mode. 10% speedup on bench-alloc-nonretained.js. 6% | 
 |         speedup on bench-alloc-retained.js. | 
 |          | 
 |         There's a lot of formulaic change in this patch, but not much substance. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::Heap): | 
 |         (JSC::Heap::destroy): | 
 |         (JSC::Heap::allocateBlock): | 
 |         (JSC::Heap::freeBlock): | 
 |         (JSC::Heap::freeBlockPtr): | 
 |         (JSC::Heap::freeBlocks): | 
 |         (JSC::Heap::recordExtraCost): | 
 |         (JSC::Heap::allocate): | 
 |         (JSC::Heap::resizeBlocks): | 
 |         (JSC::Heap::growBlocks): | 
 |         (JSC::Heap::shrinkBlocks): | 
 |         (JSC::Heap::markConservatively): | 
 |         (JSC::Heap::clearMarkBits): | 
 |         (JSC::Heap::markedCells): | 
 |         (JSC::Heap::sweep): | 
 |         (JSC::Heap::markRoots): | 
 |         (JSC::Heap::objectCount): | 
 |         (JSC::Heap::addToStatistics): | 
 |         (JSC::Heap::statistics): | 
 |         (JSC::Heap::isBusy): | 
 |         (JSC::Heap::reset): | 
 |         (JSC::Heap::collectAllGarbage): | 
 |         (JSC::Heap::primaryHeapBegin): | 
 |         (JSC::Heap::primaryHeapEnd): | 
 |         * runtime/Collector.h: | 
 |         (JSC::): Removed all code pertaining to the number heap, and changed all | 
 |         heap template functions and classes to non-template functions and classes. | 
 |  | 
 |         (JSC::Heap::allocateNumber): A new optimization to replace the number | 
 |         heap: allocate half-sized number cells in pairs, returning the first | 
 |         cell and caching the second cell for the next allocation. | 
 |  | 
 |         * runtime/CollectorHeapIterator.h: | 
 |         (JSC::LiveObjectIterator::LiveObjectIterator): | 
 |         (JSC::LiveObjectIterator::operator++): | 
 |         (JSC::DeadObjectIterator::DeadObjectIterator): | 
 |         (JSC::DeadObjectIterator::operator++): | 
 |         (JSC::ObjectIterator::ObjectIterator): | 
 |         (JSC::ObjectIterator::operator++): | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::isNumber): Removed all code pertaining to the number heap, | 
 |         and changed all heap template functions and classes to non-template functions | 
 |         and classes. | 
 |  | 
 | 2009-12-15  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for WeakGCMap class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32547 | 
 |  | 
 |         Inherits WeakGCMap from FastAllocBase because it is instantiated by | 
 |         'new' at: WebCore/dom/Document.cpp:512. | 
 |  | 
 |         * runtime/WeakGCMap.h: | 
 |  | 
 | 2009-12-15  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for dtoa's P5Node struct | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32544 | 
 |  | 
 |         Inherits P5Node struct from Noncopyable because it is instantiated by | 
 |         'new' at wtf/dtoa.cpp:588 and don't need to be copyable. | 
 |  | 
 |         * wtf/dtoa.cpp: | 
 |  | 
 | 2009-12-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Simon Fraser. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32524 | 
 |         REGRESSION(52084): fast/dom/prototypes.html failing two CSS tests | 
 |  | 
 |         * wtf/StdLibExtras.h: | 
 |         (WTF::bitCount): The original patch put the parentheses in the wrong | 
 |         place, completely changing the calculation and making it almost always | 
 |         wrong. Moved the parentheses around the '+' operation, like the original | 
 |         compiler warning suggested. | 
 |  | 
 | 2009-12-14  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Unreviewed trivial buildfix. | 
 |  | 
 |         Fix crosses initialization of usedPrimaryBlocks for JSValue32 | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::markConservatively): | 
 |  | 
 | 2009-12-14  Csaba Osztrogonác  <ossy@webkit.org> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         GCC 4.3.x warning fixed. Suggested parantheses added. | 
 |         warning: ../../../JavaScriptCore/wtf/StdLibExtras.h:77: warning: suggest parentheses around + or - in operand of & | 
 |  | 
 |         * wtf/StdLibExtras.h: | 
 |         (WTF::bitCount): | 
 |  | 
 | 2009-12-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Changed GC from mark-sweep to mark-allocate. | 
 |          | 
 |         Added WeakGCMap to keep WebCore blissfully ignorant about objects that | 
 |         have become garbage but haven't run their destructors yet. | 
 |          | 
 |         1% SunSpider speedup. | 
 |         7.6% v8 speedup (37% splay speedup). | 
 |         17% speedup on bench-alloc-nonretained.js. | 
 |         18% speedup on bench-alloc-retained.js. | 
 |  | 
 |         * API/JSBase.cpp: | 
 |         (JSGarbageCollect): | 
 |         * API/JSContextRef.cpp: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Updated for renames and new | 
 |         files. | 
 |  | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): Updated to use the Collector | 
 |         iterator abstraction. | 
 |  | 
 |         * jsc.cpp: | 
 |         (functionGC): Updated for rename. | 
 |  | 
 |         * runtime/Collector.cpp: Slightly reduced the number of allocations per | 
 |         collection, so that small workloads only allocate on collector block, | 
 |         rather than two. | 
 |  | 
 |         (JSC::Heap::Heap): Updated to use the new allocateBlock function. | 
 |  | 
 |         (JSC::Heap::destroy): Updated to use the new freeBlocks function. | 
 |  | 
 |         (JSC::Heap::allocateBlock): New function to initialize a block when | 
 |         allocating it. | 
 |  | 
 |         (JSC::Heap::freeBlock): Consolidated the responsibility for running | 
 |         destructors into this function. | 
 |  | 
 |         (JSC::Heap::freeBlocks): Updated to use freeBlock. | 
 |  | 
 |         (JSC::Heap::recordExtraCost): Sweep the heap in this reporting function, | 
 |         so that allocation, which is more common, doesn't have to check extraCost. | 
 |  | 
 |         (JSC::Heap::heapAllocate): Run destructors right before recycling a | 
 |         garbage cell. This has better cache utilization than a separate sweep phase. | 
 |  | 
 |         (JSC::Heap::resizeBlocks): | 
 |         (JSC::Heap::growBlocks): | 
 |         (JSC::Heap::shrinkBlocks): New set of functions for managing the size of | 
 |         the heap, now that the heap doesn't maintain any information about its | 
 |         size. | 
 |  | 
 |         (JSC::isPointerAligned): | 
 |         (JSC::isHalfCellAligned): | 
 |         (JSC::isPossibleCell): | 
 |         (JSC::isCellAligned): | 
 |         (JSC::Heap::markConservatively): Cleaned up this code a bit. | 
 |  | 
 |         (JSC::Heap::clearMarkBits): | 
 |         (JSC::Heap::markedCells): Some helper functions for examining the the mark | 
 |         bitmap. | 
 |  | 
 |         (JSC::Heap::sweep): Simplified this function by using a DeadObjectIterator. | 
 |  | 
 |         (JSC::Heap::markRoots): Reordered some operations for clarity. | 
 |  | 
 |         (JSC::Heap::objectCount): | 
 |         (JSC::Heap::addToStatistics): | 
 |         (JSC::Heap::statistics): Rewrote these functions to calculate an object | 
 |         count on demand, since the heap doesn't maintain this information by  | 
 |         itself. | 
 |  | 
 |         (JSC::Heap::reset): New function for resetting the heap once we've | 
 |         exhausted heap space. | 
 |  | 
 |         (JSC::Heap::collectAllGarbage): This function matches the old collect() | 
 |         behavior, but it's now an uncommon function used only by API. | 
 |  | 
 |         * runtime/Collector.h: | 
 |         (JSC::CollectorBitmap::count): | 
 |         (JSC::CollectorBitmap::isEmpty): Added some helper functions for managing | 
 |         the collector mark bitmap. | 
 |  | 
 |         (JSC::Heap::reportExtraMemoryCost): Changed reporting from cell equivalents | 
 |         to bytes, so it's easier to understand. | 
 |          | 
 |         * runtime/CollectorHeapIterator.h: | 
 |         (JSC::CollectorHeapIterator::CollectorHeapIterator): | 
 |         (JSC::CollectorHeapIterator::operator!=): | 
 |         (JSC::CollectorHeapIterator::operator*): | 
 |         (JSC::CollectorHeapIterator::advance): | 
 |         (JSC::::LiveObjectIterator): | 
 |         (JSC::::operator): | 
 |         (JSC::::DeadObjectIterator): | 
 |         (JSC::::ObjectIterator): New iterators for encapsulating details about | 
 |         heap layout, and what's live and dead on the heap. | 
 |  | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::putSlowCase): | 
 |         (JSC::JSArray::increaseVectorLength): Delay reporting extra cost until | 
 |         we're fully constructed, so the heap mark phase won't visit us in an | 
 |         invalid state. | 
 |  | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::): | 
 |         (JSC::JSCell::createDummyStructure): | 
 |         (JSC::JSCell::JSCell): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         * runtime/JSGlobalData.h: Added a dummy cell to simplify allocation logic. | 
 |  | 
 |         * runtime/JSString.h: | 
 |         (JSC::jsSubstring): Don't report extra cost for substrings, since they | 
 |         share a buffer that's already reported extra cost. | 
 |  | 
 |         * runtime/Tracing.d: | 
 |         * runtime/Tracing.h: Changed these dtrace hooks not to report object | 
 |         counts, since they're no longer cheap to compute. | 
 |  | 
 |         * runtime/UString.h: Updated for renames. | 
 |  | 
 |         * runtime/WeakGCMap.h: Added. | 
 |         (JSC::WeakGCMap::isEmpty): | 
 |         (JSC::WeakGCMap::uncheckedGet): | 
 |         (JSC::WeakGCMap::uncheckedBegin): | 
 |         (JSC::WeakGCMap::uncheckedEnd): | 
 |         (JSC::::get): | 
 |         (JSC::::take): | 
 |         (JSC::::set): | 
 |         (JSC::::uncheckedRemove): Mentioned above. | 
 |  | 
 |         * wtf/StdLibExtras.h: | 
 |         (WTF::bitCount): Added a bit population count function, so the heap can | 
 |         count live objects to fulfill statistics questions. | 
 |  | 
 | The very last cell in the block is not allocated -- should not be marked. | 
 |  | 
 | 2009-12-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: Export some new symbols. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-12-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: Removed some old exports. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-12-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: Use unsigned instead of uint32_t to avoid dependencies. | 
 |  | 
 |         * wtf/StdLibExtras.h: | 
 |         (WTF::bitCount): | 
 |  | 
 | 2009-12-13  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (speculative Windows build fix). | 
 |  | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |  | 
 | 2009-12-13  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32496 | 
 |         Switch remaining cases of string construction to use StringBuilder. | 
 |         Builds strings using a vector rather than using string append / addition. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::paramString): | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::constructFunction): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::encode): | 
 |         (JSC::decode): | 
 |         (JSC::globalFuncEscape): | 
 |         (JSC::globalFuncUnescape): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::stringify): | 
 |         (JSC::Stringifier::indent): | 
 |         * runtime/JSString.h: | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::LiteralParser::Lexer::lexString): | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::integerPartNoExp): | 
 |         (JSC::numberProtoFuncToFixed): | 
 |         (JSC::numberProtoFuncToPrecision): | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsString): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::substituteBackreferencesSlow): | 
 |         (JSC::substituteBackreferences): | 
 |         (JSC::stringProtoFuncConcat): | 
 |  | 
 | 2009-12-08  Jeremy Moskovich  <jeremy@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Add code to allow toggling ATSUI/Core Text rendering at runtime in ComplexTextController. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31802 | 
 |  | 
 |         The goal here is to allow for a zero runtime hit for ports that decide to select | 
 |         the API at compile time. | 
 |         When both USE(ATSUI) and USE(CORE_TEXT) are true, the API is toggled | 
 |         at runtime.  Core Text is used for OS Versions >= 10.6. | 
 |  | 
 |         * wtf/Platform.h: #define USE_CORE_TEXT and USE_ATSUI on Chrome/Mac. | 
 |  | 
 | 2009-12-11  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Unify codegen for forward and backward variants of branches | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32463 | 
 |  | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::emit_op_loop): Implemented in terms of forward variant. | 
 |         (JSC::JIT::emit_op_loop_if_true): ditto | 
 |         (JSC::JIT::emitSlow_op_loop_if_true): ditto | 
 |         (JSC::JIT::emit_op_loop_if_false): ditto | 
 |         (JSC::JIT::emitSlow_op_loop_if_false): ditto | 
 |         (JSC::JIT::emit_op_loop_if_less): ditto | 
 |         (JSC::JIT::emitSlow_op_loop_if_less): ditto | 
 |         * jit/JITOpcodes.cpp: | 
 |  | 
 | 2009-12-11  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Anders Carlsson. | 
 |  | 
 |         Allow WTFs concept of the main thread to differ from pthreads when necessary. | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::initializeThreading): | 
 |         (WTF::isMainThread): | 
 |         * wtf/mac/MainThreadMac.mm: | 
 |         (WTF::initializeMainThreadPlatform): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): | 
 |  | 
 | 2009-12-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32454 | 
 |         Refactor construction of simple strings to avoid string concatenation. | 
 |  | 
 |         Building strings through concatenation has a memory and performance cost - | 
 |         a memory cost since we must over-allocate the buffer to leave space to append | 
 |         into, and performance in that the string may still require reallocation (and | 
 |         thus copying during construction).  Instead move the full construction to | 
 |         within a single function call (makeString), so that the arguments' lengths | 
 |         can be calculated and an appropriate sized buffer allocated before copying | 
 |         any characters. | 
 |  | 
 |         ~No performance change (~2% progression on date tests). | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::escapeQuotes): | 
 |         (JSC::valueToSourceString): | 
 |         (JSC::constantName): | 
 |         (JSC::idName): | 
 |         (JSC::CodeBlock::registerName): | 
 |         (JSC::regexpToSourceString): | 
 |         (JSC::regexpName): | 
 |         * bytecompiler/NodesCodegen.cpp: | 
 |         (JSC::substitute): | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::Profiler::createCallIdentifier): | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::callDate): | 
 |         * runtime/DateConversion.cpp: | 
 |         (JSC::formatDate): | 
 |         (JSC::formatDateUTCVariant): | 
 |         (JSC::formatTime): | 
 |         (JSC::formatTimeUTC): | 
 |         * runtime/DateConversion.h: | 
 |         (JSC::): | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::dateProtoFuncToString): | 
 |         (JSC::dateProtoFuncToUTCString): | 
 |         (JSC::dateProtoFuncToDateString): | 
 |         (JSC::dateProtoFuncToTimeString): | 
 |         (JSC::dateProtoFuncToGMTString): | 
 |         * runtime/ErrorPrototype.cpp: | 
 |         (JSC::errorProtoFuncToString): | 
 |         * runtime/ExceptionHelpers.cpp: | 
 |         (JSC::createUndefinedVariableError): | 
 |         (JSC::createErrorMessage): | 
 |         (JSC::createInvalidParamError): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::insertSemicolonIfNeeded): | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::objectProtoFuncToString): | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::constructRegExp): | 
 |         * runtime/RegExpObject.cpp: | 
 |         (JSC::RegExpObject::match): | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::regExpProtoFuncCompile): | 
 |         (JSC::regExpProtoFuncToString): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncBig): | 
 |         (JSC::stringProtoFuncSmall): | 
 |         (JSC::stringProtoFuncBlink): | 
 |         (JSC::stringProtoFuncBold): | 
 |         (JSC::stringProtoFuncFixed): | 
 |         (JSC::stringProtoFuncItalics): | 
 |         (JSC::stringProtoFuncStrike): | 
 |         (JSC::stringProtoFuncSub): | 
 |         (JSC::stringProtoFuncSup): | 
 |         (JSC::stringProtoFuncFontcolor): | 
 |         (JSC::stringProtoFuncFontsize): | 
 |         (JSC::stringProtoFuncAnchor): | 
 |         * runtime/UString.h: | 
 |         (JSC::): | 
 |         (JSC::makeString): | 
 |  | 
 | 2009-12-10  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32400 | 
 |         Switch remaining cases of string addition to use ropes. | 
 |  | 
 |         Re-landing r51975 - added toPrimitiveString method, | 
 |         performs toPrimitive then subsequent toString operations. | 
 |  | 
 |         ~1% progression on Sunspidey. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::JSString): | 
 |         (JSC::JSString::appendStringInConstruct): | 
 |         * runtime/Operations.cpp: | 
 |         (JSC::jsAddSlowCase): | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsString): | 
 |         (JSC::jsAdd): | 
 |  | 
 | 2009-12-11  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Windows build fix | 
 |  | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Added | 
 |         $(WebKitOutputDir)/include/private to the include path. | 
 |  | 
 | 2009-12-11  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Move QuartzCorePresent.h to include/private | 
 |  | 
 |         This fixes other projects that use wtf/Platform.h | 
 |  | 
 |         Rubber-stamped by Steve Falkenburg. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Let VS do its thang. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Write | 
 |         QuartzCorePresent.h to $(WebKitOutputDir)/include/private. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: | 
 |         Added $(WebKitOutputDir)/include/private to the include path. | 
 |  | 
 | 2009-12-11  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Fix clean builds and everything rebuilding on every build | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Don't | 
 |         write out QuartzCorePresent.h if it exists but is older than | 
 |         QuartzCore.h. Also, create the directory we write QuartzCorePresent.h | 
 |         into first. | 
 |  | 
 | 2009-12-11  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Windows build fix for systems with spaces in their paths | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Quote some paths. | 
 |  | 
 | 2009-12-11  Chris Marrin  <cmarrin@apple.com> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         Add check for presence of QuartzCore headers | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31856 | 
 |          | 
 |         The script now checks for the presence of QuartzCore.h. If present | 
 |         it will turn on ACCELERATED_COMPOSITING and 3D_RENDERING to enable | 
 |         HW compositing on Windows. The script writes QuartzCorePresent.h to | 
 |         the build directory which has a define telling whether QuartzCore is  | 
 |         present. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-11  Kent Tamura  <tkent@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix a problem that JSC::gregorianDateTimeToMS() returns a negative | 
 |         value for a huge year value. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32304 | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::dateToDaysFrom1970): Renamed from dateToDayInYear, and changed the return type to double. | 
 |         (WTF::calculateDSTOffset): Follow the dateToDaysFrom1970() change. | 
 |         (WTF::timeClip): Use maxECMAScriptTime. | 
 |         (JSC::gregorianDateTimeToMS): Follow the dateToDaysFrom1970() change. | 
 |  | 
 | 2009-12-10  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         No review, rolling out r51975. | 
 |         http://trac.webkit.org/changeset/51975 | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::JSString): | 
 |         (JSC::JSString::appendStringInConstruct): | 
 |         * runtime/Operations.cpp: | 
 |         (JSC::jsAddSlowCase): | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsString): | 
 |         (JSC::jsAdd): | 
 |  | 
 | 2009-12-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Incorrect caching of prototype lookup with dictionary base | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32402 | 
 |  | 
 |         Make sure we don't add cached prototype lookup to the proto_list | 
 |         lookup chain if the top level object is a dictionary. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |  | 
 | 2009-12-10  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32400 | 
 |         Switch remaining cases of string addition to use ropes. | 
 |  | 
 |         ~1% progression on Sunspidey. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::JSString): | 
 |         (JSC::JSString::appendStringInConstruct): | 
 |         * runtime/Operations.cpp: | 
 |         (JSC::jsAddSlowCase): | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsString): | 
 |         (JSC::jsAdd): | 
 |  | 
 | 2009-12-10  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Remove JSObject::getPropertyAttributes() and all usage of it. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31933 | 
 |  | 
 |         getOwnPropertyDescriptor() should be used instead. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.order: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * debugger/DebuggerActivation.cpp: | 
 |         (JSC::DebuggerActivation::getOwnPropertyDescriptor): | 
 |         * debugger/DebuggerActivation.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::propertyIsEnumerable): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSVariableObject.cpp: | 
 |         * runtime/JSVariableObject.h: | 
 |  | 
 | 2009-12-10  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt & Mark Rowe. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32367 | 
 |         Add support for short Ropes (up to 3 entries) inline within JSString. | 
 |         (rather than externally allocating an object to hold the rope). | 
 |         Switch jsAdd of (JSString* + JSString*) to now make use of Ropes. | 
 |  | 
 |         ~1% progression on Sunspidey. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::resolveRope): | 
 |         (JSC::JSString::toBoolean): | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::Rope::Fiber::deref): | 
 |         (JSC::JSString::Rope::Fiber::ref): | 
 |         (JSC::JSString::Rope::Fiber::refAndGetLength): | 
 |         (JSC::JSString::Rope::append): | 
 |         (JSC::JSString::JSString): | 
 |         (JSC::JSString::~JSString): | 
 |         (JSC::JSString::value): | 
 |         (JSC::JSString::tryGetValue): | 
 |         (JSC::JSString::length): | 
 |         (JSC::JSString::canGetIndex): | 
 |         (JSC::JSString::appendStringInConstruct): | 
 |         (JSC::JSString::appendValueInConstructAndIncrementLength): | 
 |         (JSC::JSString::isRope): | 
 |         (JSC::JSString::string): | 
 |         (JSC::JSString::ropeLength): | 
 |         (JSC::JSString::getStringPropertySlot): | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsString): | 
 |         (JSC::jsAdd): | 
 |         (JSC::resolveBase): | 
 |  | 
 | 2009-12-09  Anders Carlsson  <andersca@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Fix three more things found by compiling with clang++. | 
 |          | 
 |         * runtime/Structure.h: | 
 |         (JSC::StructureTransitionTable::reifySingleTransition): | 
 |         Add the 'std' qualifier to the call to make_pair. | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::initializeDates): | 
 |         Incrementing a bool is deprecated according to the C++ specification. | 
 |          | 
 |         * wtf/PtrAndFlags.h: | 
 |         (WTF::PtrAndFlags::PtrAndFlags): | 
 |         Name lookup should not be done in dependent bases, so explicitly qualify the call to set. | 
 |  | 
 | 2009-12-09  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Google reader gets stuck in the "Loading..." state and does not complete | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32256 | 
 |         <rdar://problem/7456388> | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_jless): Fix some backward branches. | 
 |  | 
 | 2009-12-09  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32228 | 
 |         Make destruction of ropes non-recursive to prevent stack exhaustion. | 
 |         Also, pass a UString& into initializeFiber rather than a Ustring::Rep*, | 
 |         since the Rep is not being ref counted this could result in usage of a | 
 |         Rep with refcount zero (where the Rep comes from a temporary UString | 
 |         returned from a function). | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::Rope::destructNonRecursive): | 
 |         (JSC::JSString::Rope::~Rope): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::Rope::initializeFiber): | 
 |         * runtime/Operations.h: | 
 |         (JSC::concatenateStrings): | 
 |  | 
 | 2009-12-09  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31930 | 
 |  | 
 |         Update to r51457. ASSERTs changed to COMPILE_ASSERTs. | 
 |         The speedup is 25%. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::VPtrSet::VPtrSet): | 
 |  | 
 | 2009-12-09  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Updates Android Makefiles with latest additions. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32278 | 
 |  | 
 |         * Android.mk: Modified. | 
 |         * Android.v8.wtf.mk: Modified. | 
 |  | 
 | 2009-12-09  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix a bug found while trying to compile JavaScriptCore with clang++. | 
 |  | 
 |         * yarr/RegexPattern.h: | 
 |         (JSC::Yarr::PatternTerm::PatternTerm): Don't self assign here.  Use false instead. | 
 |  | 
 | 2009-12-09  Anders Carlsson  <andersca@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Attempt to fix the Windows build. | 
 |          | 
 |         * wtf/FastMalloc.h: | 
 |  | 
 | 2009-12-09  Anders Carlsson  <andersca@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Fix some things found while trying to compile JavaScriptCore with clang++. | 
 |  | 
 |         * wtf/FastMalloc.h: | 
 |         Add correct exception specifications for the allocation/deallocation operators. | 
 |          | 
 |         * wtf/Vector.h: | 
 |         * wtf/VectorTraits.h: | 
 |         Fix a bunch of struct/class mismatches. | 
 |  | 
 | 2009-12-08  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         move code generation portions of Nodes.cpp to bytecompiler directory | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32284 | 
 |  | 
 |         * bytecompiler/NodesCodegen.cpp: Copied from parser/Nodes.cpp. Removed parts that | 
 |         are not about codegen. | 
 |         * parser/Nodes.cpp: Removed everything that is about codegen. | 
 |  | 
 |         Update build systems: | 
 |          | 
 |         * Android.mk: | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * JavaScriptCoreSources.bkl: | 
 |  | 
 | 2009-12-08  Kevin Watters  <kevinwatters@gmail.com> | 
 |  | 
 |         Reviewed by Kevin Ollivier. | 
 |  | 
 |         [wx] Mac plugins support. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32236 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-08  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Rubber-stamped by David Levin. | 
 |  | 
 |         Revert and reopen "Add asserts to RefCounted to make sure ref/deref happens on the right thread." | 
 |         It may have caused massive increase of reported leaks on the bots. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31639 | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): | 
 |         * wtf/RefCounted.h: | 
 |         (WTF::RefCountedBase::ref): | 
 |         (WTF::RefCountedBase::hasOneRef): | 
 |         (WTF::RefCountedBase::refCount): | 
 |         (WTF::RefCountedBase::derefBase): | 
 |         * wtf/ThreadVerifier.h: Removed. | 
 |  | 
 | 2009-12-08  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Make WebKit build correctly on FreeBSD, IA64, and Alpha. | 
 |         Based on work by Petr Salinger <Petr.Salinger@seznam.cz>, | 
 |         and Colin Watson <cjwatson@ubuntu.com>. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-08  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Add asserts to RefCounted to make sure ref/deref happens on the right thread. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31639 | 
 |  | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): Disable thread verification on this class since it uses addressOfCount(). | 
 |         * wtf/RefCounted.h: | 
 |         (WTF::RefCountedBase::ref): Add ASSERT. | 
 |         (WTF::RefCountedBase::hasOneRef): Ditto. | 
 |         (WTF::RefCountedBase::refCount): Ditto. | 
 |         (WTF::RefCountedBase::derefBase): Ditto. | 
 |         (WTF::RefCountedBase::disableThreadVerification): delegate to ThreadVerifier method. | 
 |         * wtf/ThreadVerifier.h: Added. | 
 |         (WTF::ThreadVerifier::ThreadVerifier): New Debug-only class to verify that ref/deref of RefCounted is done on the same thread. | 
 |         (WTF::ThreadVerifier::activate): Activates checks. Called when ref count becomes above 2. | 
 |         (WTF::ThreadVerifier::deactivate): Deactivates checks. Called when ref count drops below 2. | 
 |         (WTF::ThreadVerifier::disableThreadVerification): used on objects that should not be checked (StringImpl etc) | 
 |         (WTF::ThreadVerifier::verifyThread): | 
 |         * GNUmakefile.am: Add ThreadVerifier.h to the build file. | 
 |         * JavaScriptCore.gypi: Ditto. | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto. | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. | 
 |  | 
 | 2009-12-08  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         [Android] Adds Makefiles for Android port. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31325 | 
 |  | 
 |         * Android.mk: Added. | 
 |         * Android.v8.wtf.mk: Added. | 
 |  | 
 | 2009-12-07  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Rubber-stamped by Darin Adler. | 
 |  | 
 |         Remove ENABLE_SHARED_SCRIPT flags | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32245 | 
 |         This patch was obtained by "git revert" command and then un-reverting of ChangeLog files. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-07  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Windows build fixage part I). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-12-05  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32184 | 
 |         Handle out-of-memory conditions with JSC Ropes with a JS exception, rather than crashing. | 
 |         Switch from using fastMalloc to tryFastMalloc, pass an ExecState to record the exception on. | 
 |  | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::toString): | 
 |         * API/JSValueRef.cpp: | 
 |         (JSValueIsStrictEqual): | 
 |         * JavaScriptCore.exp: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitEqualityOp): | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::functionName): | 
 |         (JSC::DebuggerCallFrame::calculatedFunctionName): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::callEval): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * profiler/ProfileGenerator.cpp: | 
 |         (JSC::ProfileGenerator::addParentForConsoleStart): | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::Profiler::willExecute): | 
 |         (JSC::Profiler::didExecute): | 
 |         (JSC::Profiler::createCallIdentifier): | 
 |         (JSC::createCallIdentifierFromFunctionImp): | 
 |         * profiler/Profiler.h: | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncIndexOf): | 
 |         (JSC::arrayProtoFuncLastIndexOf): | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::constructDate): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/InternalFunction.cpp: | 
 |         (JSC::InternalFunction::name): | 
 |         (JSC::InternalFunction::displayName): | 
 |         (JSC::InternalFunction::calculatedDisplayName): | 
 |         * runtime/InternalFunction.h: | 
 |         * runtime/JSCell.cpp: | 
 |         (JSC::JSCell::getString): | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSValue::getString): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::gap): | 
 |         (JSC::Stringifier::Stringifier): | 
 |         (JSC::Stringifier::appendStringifiedValue): | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::putDirectFunction): | 
 |         (JSC::JSObject::putDirectFunctionWithoutTransition): | 
 |         (JSC::JSObject::defineOwnProperty): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::get): | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::Rope::~Rope): | 
 |         (JSC::JSString::resolveRope): | 
 |         (JSC::JSString::getPrimitiveNumber): | 
 |         (JSC::JSString::toNumber): | 
 |         (JSC::JSString::toString): | 
 |         (JSC::JSString::toThisString): | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::Rope::createOrNull): | 
 |         (JSC::JSString::Rope::operator new): | 
 |         (JSC::JSString::value): | 
 |         (JSC::JSString::tryGetValue): | 
 |         (JSC::JSString::getIndex): | 
 |         (JSC::JSString::getStringPropertySlot): | 
 |         (JSC::JSValue::toString): | 
 |         * runtime/JSValue.h: | 
 |         * runtime/NativeErrorConstructor.cpp: | 
 |         (JSC::NativeErrorConstructor::NativeErrorConstructor): | 
 |         * runtime/Operations.cpp: | 
 |         (JSC::JSValue::strictEqualSlowCase): | 
 |         * runtime/Operations.h: | 
 |         (JSC::JSValue::equalSlowCaseInline): | 
 |         (JSC::JSValue::strictEqualSlowCaseInline): | 
 |         (JSC::JSValue::strictEqual): | 
 |         (JSC::jsLess): | 
 |         (JSC::jsLessEq): | 
 |         (JSC::jsAdd): | 
 |         (JSC::concatenateStrings): | 
 |         * runtime/PropertyDescriptor.cpp: | 
 |         (JSC::PropertyDescriptor::equalTo): | 
 |         * runtime/PropertyDescriptor.h: | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncReplace): | 
 |         (JSC::stringProtoFuncToLowerCase): | 
 |         (JSC::stringProtoFuncToUpperCase): | 
 |  | 
 | 2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com> | 
 |  | 
 |         Reviewed by Holger Freyther. | 
 |  | 
 |         Turn on (SVG) Filters support, by default. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32224 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: Enable FILTERS build flag. | 
 |  | 
 | 2009-12-07  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Build fix. Be flexible about which version of ICU is used on Windows. | 
 |  | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Add optional xcopy commands to copy ICU 4.2. | 
 |  | 
 | 2009-12-07  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         op_loop_if_less JIT codegen is broken for 64-bit | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32221 | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_false): Fix codegen in this version - test was backwards. | 
 |  | 
 | 2009-12-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Object.create fails if properties on the descriptor are getters | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32219 | 
 |  | 
 |         Correctly initialise the PropertySlots with the descriptor object. | 
 |  | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::toPropertyDescriptor): | 
 |  | 
 | 2009-12-06  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Not reviewed, build fix. | 
 |  | 
 |         Actually tested 64-bit *and* 32-bit build this time. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_false): | 
 |  | 
 | 2009-12-06  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Not reviewed, build fix. | 
 |  | 
 |         Really really fix 64-bit build for prior patch (actually tested this time). | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_false): | 
 |         (JSC::JIT::emitSlow_op_loop_if_false): | 
 |  | 
 | 2009-12-06  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Not reviewed, build fix. | 
 |  | 
 |         Really fix 64-bit build for prior patch. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_jless): | 
 |  | 
 | 2009-12-06  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Not reviewed, build fix. | 
 |  | 
 |         Fix 64-bit build for prior patch. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emitSlow_op_loop_if_less): | 
 |  | 
 | 2009-12-05  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         conway benchmark spends half it's time in op_less (jump fusion fails) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32190 | 
 |  | 
 |         <1% speedup on SunSpider and V8 | 
 |         2x speedup on "conway" benchmark | 
 |          | 
 |         Two optimizations: | 
 |         1) Improve codegen for logical operators &&, || and ! in a condition context | 
 |          | 
 |         When generating code for combinations of &&, || and !, in a | 
 |         condition context (i.e. in an if statement or loop condition), we | 
 |         used to produce a value, and then separately jump based on its | 
 |         truthiness. Now we pass the false and true targets in, and let the | 
 |         logical operators generate jumps directly. This helps in four | 
 |         ways: | 
 |  | 
 |         a) Individual clauses of a short-circuit logical operator can now | 
 |         jump directly to the then or else clause of an if statement (or to | 
 |         the top or exit of a loop) instead of jumping to a jump. | 
 |          | 
 |         b) It used to be that jump fusion with the condition of the first | 
 |         clause of a logical operator was inhibited, because the register | 
 |         was ref'd to be used later, in the actual condition jump; this no | 
 |         longer happens since a jump straight to the final target is | 
 |         generated directly. | 
 |  | 
 |         c) It used to be that jump fusion with the condition of the second | 
 |         clause of a logical operator was inhibited, because there was a | 
 |         jump target right after the second clause and before the actual | 
 |         condition jump. But now it's no longer necessary for the first | 
 |         clause to jump there so jump fusion is not blocked. | 
 |  | 
 |         d) We avoid generating excess mov statements in some cases. | 
 |          | 
 |         As a concrete example this source: | 
 |          | 
 |         if (!((x < q && y < q) || (t < q && z < q))) { | 
 |             // ... | 
 |         } | 
 |          | 
 |         Used to generate this bytecode: | 
 |          | 
 |         [  34] less              r1, r-15, r-19 | 
 |         [  38] jfalse            r1, 7(->45) | 
 |         [  41] less              r1, r-16, r-19 | 
 |         [  45] jtrue             r1, 14(->59) | 
 |         [  48] less              r1, r-17, r-19 | 
 |         [  52] jfalse            r1, 7(->59) | 
 |         [  55] less              r1, r-18, r-19 | 
 |         [  59] jtrue             r1, 17(->76) | 
 |          | 
 |         And now generates this bytecode (also taking advantage of the second optimization below): | 
 |          | 
 |         [  34] jnless            r-15, r-19, 8(->42) | 
 |         [  38] jless             r-16, r-19, 26(->64) | 
 |         [  42] jnless            r-17, r-19, 8(->50) | 
 |         [  46] jless             r-18, r-19, 18(->64) | 
 |          | 
 |         Note the jump fusion and the fact that there's less jump | 
 |         indirection - three of the four jumps go straight to the target | 
 |         clause instead of indirecting through another jump. | 
 |          | 
 |         2) Implement jless opcode to take advantage of the above, since we'll now often generate | 
 |         a less followed by a jtrue where fusion is not forbidden. | 
 |         | 
 |         * parser/Nodes.h: | 
 |         (JSC::ExpressionNode::hasConditionContextCodegen): Helper function to determine | 
 |         whether a node supports special conditional codegen. Return false as this is the default. | 
 |         (JSC::ExpressionNode::emitBytecodeInConditionContext): Assert not reached - only really | 
 |         defined for nodes that do have conditional codegen. | 
 |         (JSC::UnaryOpNode::expr): Add const version. | 
 |         (JSC::LogicalNotNode::hasConditionContextCodegen): Returne true only if subexpression | 
 |         supports it. | 
 |         (JSC::LogicalOpNode::hasConditionContextCodegen): Return true. | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::LogicalNotNode::emitBytecodeInConditionContext): Implemented - just swap | 
 |         the true and false targets for the child node. | 
 |         (JSC::LogicalOpNode::emitBytecodeInConditionContext): Implemented - handle jumps | 
 |         directly, improving codegen quality. Also handles further nested conditional codegen. | 
 |         (JSC::ConditionalNode::emitBytecode): Use condition context codegen when available. | 
 |         (JSC::IfNode::emitBytecode): ditto | 
 |         (JSC::IfElseNode::emitBytecode): ditto | 
 |         (JSC::DoWhileNode::emitBytecode): ditto | 
 |         (JSC::WhileNode::emitBytecode): ditto | 
 |         (JSC::ForNode::emitBytecode): ditto | 
 |  | 
 |         * bytecode/Opcode.h:  | 
 |         - Added loop_if_false opcode - needed now that falsey jumps can be backwards. | 
 |         - Added jless opcode to take advantage of new fusion opportunities. | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): Handle above. | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitJumpIfTrue): Add peephole for less + jtrue ==> jless. | 
 |         (JSC::BytecodeGenerator::emitJumpIfFalse): Add handling of backwrds falsey jumps. | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::emitNodeInConditionContext): Wrapper to handle tracking of | 
 |         overly deep expressions etc. | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): Implement the two new opcodes (loop_if_false, jless). | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): Implement JIT support for the two new opcodes. | 
 |         (JSC::JIT::privateCompileSlowCases): ditto | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jless): | 
 |         (JSC::JIT::emitSlow_op_jless): ditto | 
 |         (JSC::JIT::emitBinaryDoubleOp): ditto | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emitSlow_op_loop_if_less): ditto | 
 |         (JSC::JIT::emit_op_loop_if_false): ditto | 
 |         (JSC::JIT::emitSlow_op_loop_if_false): ditto | 
 |         * jit/JITStubs.cpp: | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |  | 
 | 2009-12-04  Kent Hansen  <kent.hansen@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         JavaScript delete operator should return false for string properties | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32012 | 
 |  | 
 |         * runtime/StringObject.cpp: | 
 |         (JSC::StringObject::deleteProperty): | 
 |  | 
 | 2009-12-03  Drew Wilson  <atwilson@chromium.org> | 
 |  | 
 |         Rolled back r51633 because it causes a perf regression in Chromium. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-03  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Try and fix the Windows build. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:  Export a symbol that should be exported. | 
 |  | 
 | 2009-12-03  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Try and fix the Mac build. | 
 |  | 
 |         * JavaScriptCore.exp:  Export a symbol that should be exported. | 
 |  | 
 | 2009-12-03  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         REGRESSION(4.0.3-48777): Crash in JSC::ExecState::propertyNames() (Debug-only?) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32133 | 
 |  | 
 |         Work around odd GCC-ism and correct the scopechain for use by | 
 |         calls made while a cachedcall is active on the callstack. | 
 |  | 
 |         * interpreter/CachedCall.h: | 
 |         (JSC::CachedCall::newCallFrame): | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::AVLTreeAbstractorForArrayCompare::compare_key_key): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncReplace): | 
 |  | 
 | 2009-12-03  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver "Brraaaaiiiinnnnnzzzzzzzz" Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32136 | 
 |         Add a rope representation to JSString.  Presently JSString always holds its data in UString form. | 
 |         Instead, allow the result of a string concatenation to be represented in a tree form - with a | 
 |         variable sized, reference-counted rope node retaining a set of UString::Reps (or other rope nopes). | 
 |  | 
 |         Strings must still currently be resolved down to a flat UString representation before being used, | 
 |         but by holding the string in a rope representation during construction we can avoid copying data | 
 |         until we know the final size of the string. | 
 |  | 
 |         ~2% progression on SunSpider (~25% on date-format-xparb, ~20% on string-validate-input). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 |             - Update exports. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 |             - Make use of new JSString::length() method to avoid prematurely resolving ropes. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |  | 
 |             - Switch the string length trampoline to read the length directly from JSString::m_length, | 
 |               rather than from the JSString's UString::Rep's 'len' property. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |  | 
 |             - Modify op_add such that addition of two strings, where either or both strings are already | 
 |               in rope representation, produces a rope as a result. | 
 |  | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::Rope::~Rope): | 
 |         (JSC::copyChars): | 
 |         (JSC::JSString::resolveRope): | 
 |         (JSC::JSString::getPrimitiveNumber): | 
 |         (JSC::JSString::toBoolean): | 
 |         (JSC::JSString::toNumber): | 
 |         (JSC::JSString::toString): | 
 |         (JSC::JSString::toThisString): | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::Rope::Fiber::Fiber): | 
 |         (JSC::JSString::Rope::Fiber::destroy): | 
 |         (JSC::JSString::Rope::Fiber::isRope): | 
 |         (JSC::JSString::Rope::Fiber::rope): | 
 |         (JSC::JSString::Rope::Fiber::string): | 
 |         (JSC::JSString::Rope::create): | 
 |         (JSC::JSString::Rope::initializeFiber): | 
 |         (JSC::JSString::Rope::ropeLength): | 
 |         (JSC::JSString::Rope::stringLength): | 
 |         (JSC::JSString::Rope::fibers): | 
 |         (JSC::JSString::Rope::Rope): | 
 |         (JSC::JSString::Rope::operator new): | 
 |         (JSC::JSString::JSString): | 
 |         (JSC::JSString::value): | 
 |         (JSC::JSString::length): | 
 |         (JSC::JSString::isRope): | 
 |         (JSC::JSString::rope): | 
 |         (JSC::JSString::string): | 
 |         (JSC::JSString::canGetIndex): | 
 |         (JSC::jsSingleCharacterSubstring): | 
 |         (JSC::JSString::getIndex): | 
 |         (JSC::jsSubstring): | 
 |         (JSC::JSString::getStringPropertySlot): | 
 |  | 
 |             - Add rope form. | 
 |  | 
 |         * runtime/Operations.h: | 
 |         (JSC::jsAdd): | 
 |         (JSC::concatenateStrings): | 
 |  | 
 |             - Update string concatenation, and addition of ropes, to produce ropes. | 
 |  | 
 |         * runtime/StringObject.cpp: | 
 |         (JSC::StringObject::getOwnPropertyNames): | 
 |  | 
 |             - Make use of new JSString::length() method to avoid prematurely resolving ropes. | 
 |  | 
 | 2009-11-23  Jeremy Moskovich  <jeremy@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Switch Chrome/Mac to use Core Text APIs rather than ATSUI APIs. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31802 | 
 |  | 
 |         No test since this is already covered by existing pixel tests. | 
 |  | 
 |         * wtf/Platform.h: #define USE_CORE_TEXT for Chrome/Mac. | 
 |  | 
 | 2009-12-02  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add files missed in prior patch. | 
 |  | 
 |         * runtime/JSZombie.cpp: | 
 |         (JSC::): | 
 |         (JSC::JSZombie::leakedZombieStructure): | 
 |         * runtime/JSZombie.h: Added. | 
 |         (JSC::JSZombie::JSZombie): | 
 |         (JSC::JSZombie::isZombie): | 
 |         (JSC::JSZombie::classInfo): | 
 |         (JSC::JSZombie::isGetterSetter): | 
 |         (JSC::JSZombie::isAPIValueWrapper): | 
 |         (JSC::JSZombie::isPropertyNameIterator): | 
 |         (JSC::JSZombie::getCallData): | 
 |         (JSC::JSZombie::getConstructData): | 
 |         (JSC::JSZombie::getUInt32): | 
 |         (JSC::JSZombie::toPrimitive): | 
 |         (JSC::JSZombie::getPrimitiveNumber): | 
 |         (JSC::JSZombie::toBoolean): | 
 |         (JSC::JSZombie::toNumber): | 
 |         (JSC::JSZombie::toString): | 
 |         (JSC::JSZombie::toObject): | 
 |         (JSC::JSZombie::markChildren): | 
 |         (JSC::JSZombie::put): | 
 |         (JSC::JSZombie::deleteProperty): | 
 |         (JSC::JSZombie::toThisObject): | 
 |         (JSC::JSZombie::toThisString): | 
 |         (JSC::JSZombie::toThisJSString): | 
 |         (JSC::JSZombie::getJSNumber): | 
 |         (JSC::JSZombie::getOwnPropertySlot): | 
 |  | 
 | 2009-12-02  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add zombies to JSC | 
 |         https://bugs.webkit.org/show_bug.cgi?id=32103 | 
 |  | 
 |         Add a compile time flag to make the JSC collector replace "unreachable" | 
 |         objects with zombie objects.  The zombie object is a JSCell subclass that | 
 |         ASSERTs on any attempt to use the JSCell methods.  In addition there are | 
 |         a number of additional assertions in bottleneck code to catch zombie usage | 
 |         as quickly as possible. | 
 |  | 
 |         Grrr. Argh. Brains. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * interpreter/Register.h: | 
 |         (JSC::Register::Register): | 
 |         * runtime/ArgList.h: | 
 |         (JSC::MarkedArgumentBuffer::append): | 
 |         (JSC::ArgList::ArgList): | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::destroy): | 
 |         (JSC::Heap::sweep): | 
 |         * runtime/Collector.h: | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::isZombie): | 
 |         (JSC::JSValue::isZombie): | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::decode): | 
 |         (JSC::JSValue::JSValue): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-12-01  Jens Alfke  <snej@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Added variants of find/contains/add that allow a foreign key type to be used. | 
 |         This will allow AtomicString-keyed maps to be queried by C string without | 
 |         having to create a temporary AtomicString (see HTTPHeaderMap.) | 
 |         The code for this is adapted from the equivalent in HashSet.h. | 
 |  | 
 |         * wtf/HashMap.h: | 
 |         (WTF::HashMap::find): | 
 |         (WTF::HashMap::contains): | 
 |         (WTF::HashMap::add): | 
 |         * wtf/HashSet.h: Changed "method" to "function member" in a comment. | 
 |  | 
 | 2009-12-01  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Revert 51551 because it broke GTK+. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-30  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Windows Build fix.  Reviewed by NOBODY. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-11-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Bug 31859 - Make world selection for JSC IsolatedWorlds automagical. | 
 |  | 
 |         WebCore presently has to explicitly specify the world before entering into JSC, | 
 |         which is a little fragile (particularly since property access via a | 
 |         getter/setter might invoke execution). Instead derive the current world from | 
 |         the lexical global object. | 
 |          | 
 |         Remove the temporary duct tape of willExecute/didExecute virtual hooks on the JSGlobalData::ClientData - these are no longer necessary. | 
 |  | 
 |         * API/JSBase.cpp: | 
 |         (JSEvaluateScript): | 
 |         * API/JSObjectRef.cpp: | 
 |         (JSObjectCallAsFunction): | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSGlobalData.cpp: | 
 |         * runtime/JSGlobalData.h: | 
 |  | 
 | 2009-11-30  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Remove obsolete PLATFORM(KDE) code | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31958 | 
 |  | 
 |         KDE is now using unpatched QtWebKit. | 
 |  | 
 |         * parser/Lexer.cpp: Remove obsolete KDE_USE_FINAL guard | 
 |         * wtf/Platform.h: Remove PLATFORM(KDE) definition and code  | 
 |         section that is guarded with it. | 
 |  | 
 | 2009-11-30  Jan-Arve Sæther  <jan-arve.saether@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Fix compilation with win32-icc | 
 |  | 
 |         The Intel compiler does not support the __has_trivial_constructor type | 
 |         trait.  The Intel Compiler can report itself as _MSC_VER >= 1400. The | 
 |         reason for that is that the Intel Compiler depends on the Microsoft | 
 |         Platform SDK, and in order to try to be "fully" MS compatible it will | 
 |         "pretend" to be the same MS compiler as was shipped with the MS PSDK. | 
 |         (Thus, compiling with win32-icc with VC8 SDK will make the source code | 
 |         "think" the compiler at hand supports this type trait). | 
 |  | 
 |         * wtf/TypeTraits.h: | 
 |  | 
 | 2009-11-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [Qt] Mac build has JIT disabled | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31828 | 
 |  | 
 |         * wtf/Platform.h: Enable JIT for Qt Mac builds | 
 |  | 
 | 2009-11-28  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Apply workaround for the limitation of VirtualFree with MEM_RELEASE to all ports running on Windows | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31943 | 
 |  | 
 |         * runtime/MarkStack.h: | 
 |         (JSC::MarkStack::MarkStackArray::shrinkAllocation): | 
 |  | 
 | 2009-11-28  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31930 | 
 |  | 
 |         Seems a typo. We don't need ~270k memory to determine the vptrs. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::VPtrSet::VPtrSet): | 
 |  | 
 | 2009-11-27  Shinichiro Hamaji  <hamaji@chromium.org> | 
 |  | 
 |         Unreviewed.  | 
 |  | 
 |         Move GOwnPtr* from wtf to wtf/gtk | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31793 | 
 |  | 
 |         Build fix for chromium after r51423. | 
 |         Exclude gtk directory from chromium build. | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: | 
 |  | 
 | 2009-11-25  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Incorrect behaviour of jneq_null in the interpreter | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31901 | 
 |  | 
 |         Correct the logic of jneq_null.  This is already covered by existing tests. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2009-11-26  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Move GOwnPtr* from wtf to wtf/gtk | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31793 | 
 |  | 
 |         * GNUmakefile.am: Change the path for GOwnPtr.*. | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: Remove | 
 |           GOwnPtr.cpp from the exclude list. | 
 |         * JavaScriptCore.gypi: Change the path for GOwnPtr.*. | 
 |         * wscript: Remove GOwnPtr.cpp from the exclude list. | 
 |         * wtf/GOwnPtr.cpp: Removed. | 
 |         * wtf/GOwnPtr.h: Removed. | 
 |         * wtf/Threading.h: Change the path for GOwnPtr.h. | 
 |         * wtf/gtk/GOwnPtr.cpp: Copied from JavaScriptCore/wtf/GOwnPtr.cpp. | 
 |         * wtf/gtk/GOwnPtr.h: Copied from JavaScriptCore/wtf/GOwnPtr.h. | 
 |         * wtf/unicode/glib/UnicodeGLib.h: Change the path for GOwnPtr.h. | 
 |  | 
 | 2009-11-24  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Add ENABLE_SHARED_SCRIPT feature define and flag for build-webkit | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31444 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-24  Chris Marrin  <cmarrin@apple.com> | 
 |  | 
 |         Reviewed by Simon Fraser. | 
 |  | 
 |         Add ability to enable ACCELERATED_COMPOSITING on Windows (currently disabled) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27314 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-24  Jason Smith  <dark.panda@gmail.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         RegExp#exec's returned Array-like object behaves differently from | 
 |         regular Arrays | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31689 | 
 |  | 
 |         * JavaScriptCore/runtime/RegExpConstructor.cpp: ensure that undefined | 
 |         values are added to the returned RegExpMatchesArray | 
 |  | 
 | 2009-11-24  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         JSON.stringify performance on undefined is very poor | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31839 | 
 |  | 
 |         Switch from a UString to a Vector<UChar> when building | 
 |         the JSON string, allowing us to safely remove the substr-copy | 
 |         we otherwise did when unwinding an undefined property. | 
 |  | 
 |         Also turns out to be a ~5% speedup on stringification. | 
 |  | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::StringBuilder::append): | 
 |         (JSC::Stringifier::stringify): | 
 |         (JSC::Stringifier::Holder::appendNextProperty): | 
 |  | 
 | 2009-11-24  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Fix production builds where the source tree may be read-only. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-11-23  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Include "config.h" to meet Coding Style Guidelines | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31792 | 
 |  | 
 |         * wtf/unicode/UTF8.cpp: | 
 |         * wtf/unicode/glib/UnicodeGLib.cpp: | 
 |         * wtf/unicode/wince/UnicodeWince.cpp: | 
 |  | 
 | 2009-11-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Streamlined some Math functions where we expect or know the result not | 
 |         to be representable as an int. | 
 |          | 
 |         SunSpider says 0.6% faster. | 
 |  | 
 |         * runtime/JSNumberCell.h: | 
 |         (JSC::JSValue::JSValue): | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::): | 
 |         (JSC::jsDoubleNumber): | 
 |         (JSC::JSValue::JSValue): Added a function for making a numeric JSValue | 
 |         and skipping the "can I encode this as an int?" check, avoiding the | 
 |         overhead of int <-> double roundtripping and double <-> double comparison | 
 |         and branching. | 
 |  | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::mathProtoFuncACos): | 
 |         (JSC::mathProtoFuncASin): | 
 |         (JSC::mathProtoFuncATan): | 
 |         (JSC::mathProtoFuncATan2): | 
 |         (JSC::mathProtoFuncCos): | 
 |         (JSC::mathProtoFuncExp): | 
 |         (JSC::mathProtoFuncLog): | 
 |         (JSC::mathProtoFuncRandom): | 
 |         (JSC::mathProtoFuncSin): | 
 |         (JSC::mathProtoFuncSqrt): | 
 |         (JSC::mathProtoFuncTan): For these functions, which we expect or know | 
 |         to produce results not representable as ints, call jsDoubleNumber instead | 
 |         of jsNumber. | 
 |  | 
 | 2009-11-23  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Unreviewed. Unbreak the regression tests after r51329. | 
 |  | 
 |         * API/JSBase.cpp: | 
 |         (JSEvaluateScript): Null-check clientData before dereferencing it. | 
 |         * API/JSObjectRef.cpp: | 
 |         (JSObjectCallAsFunction): Ditto. | 
 |  | 
 | 2009-11-23  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Part 1/3 of <rdar://problem/7377477> REGRESSION: Many web pages fail to render after interesting script runs in isolated world | 
 |  | 
 |         Some clients of the JavaScriptCore API expect to be able to make callbacks over the JSC API, | 
 |         and for this to automagically cause execution to take place in the world associated with the | 
 |         global object associated with the ExecState (JSContextRef) passed.  However this is not how | 
 |         things work - the world must be explicitly set within WebCore. | 
 |  | 
 |         Making this work just for API calls to evaluate & call will be a far from perfect solution, | 
 |         since direct (non-API) use of JSC still relies on WebCore setting the current world correctly. | 
 |         A better solution would be to make this all work automagically all throughout WebCore, but this | 
 |         will require more refactoring. | 
 |  | 
 |         Since the API is in JSC but worlds only exist in WebCore, add callbacks on the JSGlobalData::ClientData | 
 |         to allow it to update the current world on entry/exit via the JSC API.  This is temporary duck | 
 |         tape, and should be removed once the current world no longer needs to be explicitly tracked. | 
 |  | 
 |         * API/JSBase.cpp: | 
 |         (JSEvaluateScript): | 
 |         * API/JSObjectRef.cpp: | 
 |         (JSObjectCallAsFunction): | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::ClientData::beginningExecution): | 
 |         (JSC::JSGlobalData::ClientData::completedExecution): | 
 |         * runtime/JSGlobalData.h: | 
 |  | 
 | 2009-11-23  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Dmitry Titov. | 
 |  | 
 |         Adds MainThreadAndroid.cpp with Android-specific WTF threading functions. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31807 | 
 |  | 
 |         * wtf/android: Added. | 
 |         * wtf/android/MainThreadAndroid.cpp: Added. | 
 |         (WTF::timeoutFired): | 
 |         (WTF::initializeMainThreadPlatform): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): | 
 |  | 
 | 2009-11-23  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Brady Eidson. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31748 | 
 |         Make WebSocketHandleCFNet respect proxy auto-configuration files via CFProxySupport | 
 |  | 
 |         * JavaScriptCore.exp: Export callOnMainThreadAndWait. | 
 |  | 
 | 2009-11-23  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Symbian] Fix lastIndexOf() for Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31773 | 
 |  | 
 |         Symbian soft floating point library has problems with operators | 
 |         comparing NaN to numbers. Without a workaround lastIndexOf()  | 
 |         function does not work. | 
 |  | 
 |         Patch developed by David Leong. | 
 |  | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncLastIndexOf):Add an extra test  | 
 |         to check for NaN for Symbian. | 
 |  | 
 | 2009-11-23  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Android port lacks implementation of atomicIncrement and atomicDecrement. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31715 | 
 |  | 
 |         * wtf/Threading.h: Modified. | 
 |         (WTF::atomicIncrement): Added Android implementation. | 
 |         (WTF::atomicDecrement): Added Android implementation. | 
 |  | 
 | 2009-11-22  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Unreviewed. | 
 |  | 
 |         [Qt] Sort source lists and remove obsolete comments  | 
 |         from the build system. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-11-21  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [Qt][Mac] Turn on multiple JavaScript threads for QtWebkit on Mac | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31753 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-19  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Android port lacks configuration in Platform.h and config.h. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31671 | 
 |  | 
 |         * wtf/Platform.h: Modified. Added Android-specific configuration. | 
 |  | 
 | 2009-11-19  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31690 | 
 |         Make SocketStreamHandleCFNet work on Windows | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * wtf/MainThread.cpp: | 
 |         (WTF::FunctionWithContext::FunctionWithContext): | 
 |         (WTF::dispatchFunctionsFromMainThread): | 
 |         (WTF::callOnMainThreadAndWait): | 
 |         * wtf/MainThread.h: | 
 |         Re-add callOnMainThreadAndWait(), which was removed in bug 23926. | 
 |  | 
 | 2009-11-19  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         isMainThread() on Chromium (Mac and Linux) is so slow it timeouts LayoutTests.. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31693 | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::initializeThreading): grab and use the pthread_t of the main thread instead of ThreadIdentifier. | 
 |         (WTF::isMainThread): Ditto. | 
 |  | 
 | 2009-11-19  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Remove HAVE(STRING_H) guard from JavaScriptCore | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31668 | 
 |  | 
 |         * config.h: | 
 |         * runtime/UString.cpp: | 
 |  | 
 | 2009-11-19  Dumitru Daniliuc  <dumi@chromium.org> | 
 |  | 
 |         Reviewed by Dmitry Titov. | 
 |  | 
 |         Fixing a bug in MessageQueue::removeIf() that leads to an | 
 |         assertion failure. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31657 | 
 |  | 
 |         * wtf/MessageQueue.h: | 
 |         (WTF::MessageQueue::removeIf): | 
 |  | 
 | 2009-11-19  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Remove HAVE(FLOAT_H) guard | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31661 | 
 |  | 
 |         JavaScriptCore has a dependency on float.h, there is | 
 |         no need to guard float.h. | 
 |  | 
 |         * runtime/DatePrototype.cpp: Remove include directive  | 
 |         for float.h as it is included in MathExtras.h already. | 
 |         * runtime/Operations.cpp: Ditto. | 
 |         * runtime/UString.cpp: Ditto. | 
 |         * wtf/dtoa.cpp: Ditto. | 
 |         * wtf/MathExtras.h: Remove HAVE(FLOAT_H) guard. | 
 |         * wtf/Platform.h: Ditto. | 
 |  | 
 | 2009-11-19  Thiago Macieira <thiago.macieira@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Build fix for 32-bit Sparc machines: these machines are big-endian. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-18  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Remove support for Qt v4.3 or older versions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29469 | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |         * jsc.pro: | 
 |         * wtf/unicode/qt4/UnicodeQt4.h: | 
 |  | 
 | 2009-11-18  Kent Tamura  <tkent@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Move UString::from(double) implementation to new | 
 |         WTF::doubleToStringInJavaScriptFormat(), and expose it because WebCore | 
 |         code will use it. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31330 | 
 |  | 
 |         - Introduce new function createRep(const char*, unsigned) and | 
 |           UString::UString(const char*, unsigned) to reduce 2 calls to strlen(). | 
 |         - Fix a bug that dtoa() doesn't update *rve if the input value is NaN | 
 |           or Infinity. | 
 |  | 
 |         No new tests because this doesn't change the behavior. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * runtime/UString.cpp: | 
 |         (JSC::createRep): | 
 |         (JSC::UString::UString): | 
 |         (JSC::UString::from): Move the code to doubleToStringInJavaScriptFormat(). | 
 |         * runtime/UString.h: | 
 |         * wtf/dtoa.cpp: | 
 |         (WTF::dtoa): Fix a bug about rve. | 
 |         (WTF::append): A helper for doubleToStringInJavaScriptFormat(). | 
 |         (WTF::doubleToStringInJavaScriptFormat): Move the code from UString::from(double). | 
 |         * wtf/dtoa.h: | 
 |  | 
 | 2009-11-18  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Remove WTF_USE_JAVASCRIPTCORE_BINDINGS as it is no longer used | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31643 | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2009-11-18  Nate Chapin  <japhet@chromium.org> | 
 |  | 
 |         Reviewed by Darin Fisher. | 
 |  | 
 |         Remove Chromium's unnecessary dependency on wtf's tcmalloc files. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31648 | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: | 
 |  | 
 | 2009-11-18  Thiago Macieira <thiago.macieira@nokia.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         [Qt] Implement symbol hiding for JSC's JIT functions. | 
 |  | 
 |         These functions are implemented directly in assembly, so they need the | 
 |         proper directives to enable/disable visibility. On ELF systems, it's | 
 |         .hidden, whereas on Mach-O systems (Mac) it's .private_extern. On | 
 |         Windows, it's not necessary since you have to explicitly export. I | 
 |         also implemented the AIX idiom, though it's unlikely anyone will | 
 |         implement AIX/POWER JIT. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30864 | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |  | 
 | 2009-11-18  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Interpreter may do an out of range access when throwing an exception in the profiler. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31635 | 
 |  | 
 |         Add bounds check. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::throwException): | 
 |  | 
 | 2009-11-18  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix the clobber list of cacheFlush for ARM and Thumb2 on Linux | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31631 | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |  | 
 | 2009-11-18  Harald Fernengel  <harald.fernengel@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Fix detection of linux-g++ | 
 |  | 
 |         Never use "linux-g++*" to check for linux-g++, since this will break embedded | 
 |         builds which use linux-arm-g++ and friends. Use 'linux*-g++*' to check for any | 
 |         g++ on linux mkspec. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-11-17  Jon Honeycutt  <jhoneycutt@apple.com> | 
 |  | 
 |         Add JSContextRefPrivate.h to list of copied files. | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: | 
 |  | 
 | 2009-11-17  Martin Robinson  <martin.james.robinson@gmail.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         [GTK] Style cleanup for GOwnPtr | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31506 | 
 |  | 
 |         Remove forward declaration in GOwnPtr and do some style cleanup. | 
 |  | 
 |         * wtf/GOwnPtr.cpp: | 
 |         * wtf/GOwnPtr.h: | 
 |         (WTF::GOwnPtr::GOwnPtr): | 
 |         (WTF::GOwnPtr::~GOwnPtr): | 
 |         (WTF::GOwnPtr::get): | 
 |         (WTF::GOwnPtr::release): | 
 |         (WTF::GOwnPtr::outPtr): | 
 |         (WTF::GOwnPtr::set): | 
 |         (WTF::GOwnPtr::clear): | 
 |         (WTF::GOwnPtr::operator*): | 
 |         (WTF::GOwnPtr::operator->): | 
 |         (WTF::GOwnPtr::operator!): | 
 |         (WTF::GOwnPtr::operator UnspecifiedBoolType): | 
 |         (WTF::GOwnPtr::swap): | 
 |         (WTF::swap): | 
 |         (WTF::operator==): | 
 |         (WTF::operator!=): | 
 |         (WTF::getPtr): | 
 |         (WTF::freeOwnedGPtr): | 
 |  | 
 | 2009-11-17  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Incorrect use of JavaScriptCore API in DumpRenderTree | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31577 | 
 |  | 
 |         Add assertions to the 'toJS' functions to catch mistakes like | 
 |         this early.  Restructure existing code which blindly passed potentially | 
 |         null values to toJS when forwarding exceptions so that a null check is | 
 |         performed first. | 
 |  | 
 |         * API/APICast.h: | 
 |         (toJS): | 
 |         (toJSForGC): | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::getOwnPropertySlot): | 
 |         (JSC::::put): | 
 |         (JSC::::deleteProperty): | 
 |         (JSC::::construct): | 
 |         (JSC::::hasInstance): | 
 |         (JSC::::call): | 
 |         (JSC::::toNumber): | 
 |         (JSC::::toString): | 
 |         (JSC::::staticValueGetter): | 
 |         (JSC::::callbackGetter): | 
 |         * API/tests/testapi.c: Fix errors in the API tester. | 
 |         (MyObject_getProperty): | 
 |         (MyObject_convertToType): | 
 |         (EvilExceptionObject_convertToType): | 
 |  | 
 | 2009-11-16  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31050 | 
 |  | 
 |         Minor fixes for JSVALUE32_64: branchConvertDoubleToInt32 | 
 |         failed on a CortexA8 CPU, but not on a simulator; and | 
 |         JITCall.cpp modifications was somehow not committed to mainline. | 
 |  | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::fmrs_r): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::branchConvertDoubleToInt32): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |  | 
 | 2009-11-16  Joerg Bornemann  <joerg.bornemann@trolltech.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix Qt build on Windows CE 6. | 
 |  | 
 |         * JavaScriptCore.pri: Add missing include path. | 
 |         * wtf/Platform.h: Include ce_time.h for Windows CE 6. | 
 |  | 
 | 2009-11-13  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31050 | 
 |  | 
 |         Adding optimization support for mode JSVALUE32_64 | 
 |         on ARM systems. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::compileGetByIdSlowCase): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |  | 
 | 2009-11-14  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31050 | 
 |  | 
 |         Adding JSVALUE32_64 support for ARM (but not turning it | 
 |         on by default). All optimizations must be disabled, since | 
 |         this patch is only the first of a series of patches. | 
 |  | 
 |         During the work, a lot of x86 specific code revealed and | 
 |         made platform independent. | 
 |         See revisions: 50531 50541 50593 50594 50595 | 
 |  | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::fdivd_r): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::lshift32): | 
 |         (JSC::MacroAssemblerARM::neg32): | 
 |         (JSC::MacroAssemblerARM::rshift32): | 
 |         (JSC::MacroAssemblerARM::branchOr32): | 
 |         (JSC::MacroAssemblerARM::set8): | 
 |         (JSC::MacroAssemblerARM::setTest8): | 
 |         (JSC::MacroAssemblerARM::loadDouble): | 
 |         (JSC::MacroAssemblerARM::divDouble): | 
 |         (JSC::MacroAssemblerARM::convertInt32ToDouble): | 
 |         (JSC::MacroAssemblerARM::zeroDouble): | 
 |         * jit/JIT.cpp: | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITStubs.cpp: | 
 |         * wtf/StdLibExtras.h: | 
 |  | 
 | 2009-11-13  Dominik Röttsches  <dominik.roettsches@access-company.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Unify TextBoundaries implementations by only relying on WTF Unicode abstractions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31468 | 
 |  | 
 |         Adding isAlphanumeric abstraction, required | 
 |         by TextBoundaries.cpp. | 
 |  | 
 |         * wtf/unicode/glib/UnicodeGLib.h: | 
 |         (WTF::Unicode::isAlphanumeric): | 
 |         * wtf/unicode/icu/UnicodeIcu.h: | 
 |         (WTF::Unicode::isAlphanumeric): | 
 |  | 
 | 2009-11-13  Norbert Leser  <norbert.leser&nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Added macros for USERINCLUDE paths within symbian blocks | 
 |         to guarantee inclusion of respective header files from local path | 
 |         first (to avoid clashes with same names of header files in system include path). | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-11-13  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         JSValueProtect and JSValueUnprotect don't protect API wrapper values | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31485 | 
 |  | 
 |         Make JSValueProtect/Unprotect use a new 'toJS' function, 'toJSForGC' that | 
 |         does not attempt to to strip out API wrapper objects. | 
 |  | 
 |         * API/APICast.h: | 
 |         (toJSForGC): | 
 |         * API/JSValueRef.cpp: | 
 |         (JSValueProtect): | 
 |         (JSValueUnprotect): | 
 |         * API/tests/testapi.c: | 
 |         (makeGlobalNumberValue): | 
 |         (main): | 
 |  | 
 | 2009-11-13  İsmail Dönmez  <ismail@namtrac.org> | 
 |  | 
 |         Reviewed by Antti Koivisto. | 
 |  | 
 |         Fix typo, ce_time.cpp should be ce_time.c | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-11-12  Steve VanDeBogart  <vandebo@chromium.org> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Calculate the time offset only if we were able to parse | 
 |         the date string. This saves an IPC in Chromium for | 
 |         invalid date strings. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31416 | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::parseDateFromNullTerminatedCharacters): | 
 |         (JSC::parseDateFromNullTerminatedCharacters): | 
 |  | 
 | 2009-11-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Rollout r50896 until i can work out why it causes failures. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitReturn): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::execute): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::EvalNode::emitBytecode): | 
 |  | 
 | 2009-11-12  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Stephanie Lewis. | 
 |  | 
 |         Remove LIBRARY directive from def file to fix Debug_All target. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-11-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Rubber-stamped by Holger Freyther. | 
 |  | 
 |         Revert r50204, since it makes DRT crash on 32 bits release builds | 
 |         for GTK+. | 
 |  | 
 |         * wtf/FastMalloc.h: | 
 |  | 
 | 2009-11-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Start unifying entry logic for function and eval code. | 
 |  | 
 |         Eval now uses a ret instruction to end execution, and sets up | 
 |         a callframe more in line with what we do for function entry. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitReturn): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::execute): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::EvalNode::emitBytecode): | 
 |  | 
 | 2009-11-12  Richard Moe Gustavsen  <richard.gustavsen@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Disable pthread_setname_np. | 
 |  | 
 |         This allows Qt builds on Mac from 10.6 to run on earlier version | 
 |         where this symbol is not present. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31403 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-12  Thiago Macieira <thiago.macieira@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         [Qt] Fix linking on Linux 32-bit. | 
 |  | 
 |         It was missing the ".text" directive at the top of the file, | 
 |         indicating that code would follow. Without it, the assembler created | 
 |         "NOTYPE" symbols, which would result in linker errors. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30863 | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |  | 
 | 2009-11-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Refactor multiple JavaScriptCore threads | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31328 | 
 |  | 
 |         Remove the id field from the PlatformThread structure  | 
 |         as it is not used. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::getCurrentPlatformThread): | 
 |         (JSC::suspendThread): | 
 |         (JSC::resumeThread): | 
 |         (JSC::getPlatformThreadRegisters): | 
 |  | 
 | 2009-11-10  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Linux build fix: Added an #include for UINT_MAX. | 
 |  | 
 |         * runtime/WeakRandom.h: | 
 |  | 
 | 2009-11-10  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         JavaScriptGlue build fix: Marked a file 'private' instead of 'project'. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-11-10  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin "avGni arBalroguch" Barraclough. | 
 |  | 
 |         Faster Math.random, based on GameRand. | 
 |          | 
 |         SunSpider says 1.4% faster. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Added the header to the project. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         * runtime/JSGlobalData.h: Use an object to track random number generation | 
 |         state, initialized to the current time. | 
 |  | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::MathObject::MathObject): | 
 |         (JSC::mathProtoFuncRandom): Use the new hotness. | 
 |  | 
 |         * runtime/WeakRandom.h: Added. | 
 |         (JSC::WeakRandom::WeakRandom): | 
 |         (JSC::WeakRandom::get): | 
 |         (JSC::WeakRandom::advance): The new hotness. | 
 |  | 
 | 2009-11-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Imported the v8 DST cache. | 
 |          | 
 |         SunSpider says 1.5% faster. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::resetDateCache): Reset the DST cache when resetting | 
 |         other date data. | 
 |  | 
 |         * runtime/JSGlobalData.h: | 
 |         (JSC::DSTOffsetCache::DSTOffsetCache): | 
 |         (JSC::DSTOffsetCache::reset): Added a struct for the DST cache. | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::calculateDSTOffsetSimple): | 
 |         (WTF::calculateDSTOffset): | 
 |         (WTF::parseDateFromNullTerminatedCharacters): | 
 |         (JSC::getDSTOffset): | 
 |         (JSC::gregorianDateTimeToMS): | 
 |         (JSC::msToGregorianDateTime): | 
 |         (JSC::parseDateFromNullTerminatedCharacters): | 
 |         * wtf/DateMath.h: The imported code for probing and updating the cache. | 
 |  | 
 | 2009-11-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fixed an edge case that could cause the engine not to notice a timezone | 
 |         change. | 
 |          | 
 |         No test because this case would require manual intervention to change | 
 |         the timezone during the test. | 
 |          | 
 |         SunSpider reports no change. | 
 |  | 
 |         * runtime/DateInstanceCache.h: | 
 |         (JSC::DateInstanceCache::DateInstanceCache): | 
 |         (JSC::DateInstanceCache::reset): Added a helper function for resetting | 
 |         this cache. Also, shrank the cache, since we'll be resetting it often. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::resetDateCache): Include resetting the DateInstanceCache | 
 |         in resetting Date data. (Otherwise, a cache hit could bypass a necessary | 
 |         timezone update check.) | 
 |  | 
 | 2009-11-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Some manual inlining and constant propogation in Date code. | 
 |          | 
 |         SunSpider reports a 0.4% speedup on date-*, no overall speedup. Shark | 
 |         says some previously evident stalls are now gone. | 
 |  | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::callDate): | 
 |         * runtime/DateConversion.cpp: | 
 |         (JSC::formatTime): | 
 |         (JSC::formatTimeUTC): Split formatTime into UTC and non-UTC variants. | 
 |  | 
 |         * runtime/DateConversion.h: | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::calculateGregorianDateTime): | 
 |         (JSC::DateInstance::calculateGregorianDateTimeUTC): | 
 |         * runtime/DateInstance.h: | 
 |         (JSC::DateInstance::gregorianDateTime): | 
 |         (JSC::DateInstance::gregorianDateTimeUTC): Split gregorianDateTime into | 
 |         a UTC and non-UTC variant, and split each variant into a fast inline | 
 |         case and a slow out-of-line case. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |         (JSC::dateProtoFuncToString): | 
 |         (JSC::dateProtoFuncToUTCString): | 
 |         (JSC::dateProtoFuncToISOString): | 
 |         (JSC::dateProtoFuncToDateString): | 
 |         (JSC::dateProtoFuncToTimeString): | 
 |         (JSC::dateProtoFuncGetFullYear): | 
 |         (JSC::dateProtoFuncGetUTCFullYear): | 
 |         (JSC::dateProtoFuncToGMTString): | 
 |         (JSC::dateProtoFuncGetMonth): | 
 |         (JSC::dateProtoFuncGetUTCMonth): | 
 |         (JSC::dateProtoFuncGetDate): | 
 |         (JSC::dateProtoFuncGetUTCDate): | 
 |         (JSC::dateProtoFuncGetDay): | 
 |         (JSC::dateProtoFuncGetUTCDay): | 
 |         (JSC::dateProtoFuncGetHours): | 
 |         (JSC::dateProtoFuncGetUTCHours): | 
 |         (JSC::dateProtoFuncGetMinutes): | 
 |         (JSC::dateProtoFuncGetUTCMinutes): | 
 |         (JSC::dateProtoFuncGetSeconds): | 
 |         (JSC::dateProtoFuncGetUTCSeconds): | 
 |         (JSC::dateProtoFuncGetTimezoneOffset): | 
 |         (JSC::setNewValueFromTimeArgs): | 
 |         (JSC::setNewValueFromDateArgs): | 
 |         (JSC::dateProtoFuncSetYear): | 
 |         (JSC::dateProtoFuncGetYear): Updated for the gregorianDateTime change above. | 
 |  | 
 | 2009-11-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: export a new symbol. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-11-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam "Home Wrecker" Weinig. | 
 |  | 
 |         Added a tiny cache for Date parsing. | 
 |          | 
 |         SunSpider says 1.2% faster. | 
 |  | 
 |         * runtime/DateConversion.cpp: | 
 |         (JSC::parseDate): Try to reuse the last parsed Date, if present. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::resetDateCache): | 
 |         * runtime/JSGlobalData.h: Added storage for last parsed Date. Refactored | 
 |         this code to make resetting the date cache easier. | 
 |  | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): Updated for | 
 |         refactoring. | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (JSC::parseDateFromNullTerminatedCharacters): | 
 |         * wtf/DateMath.h: Changed ExecState to be first parameter, as is the JSC custom. | 
 |  | 
 | 2009-11-09  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Can cache prototype lookups on uncacheable dictionaries. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31198 | 
 |  | 
 |         Replace fromDictionaryTransition with flattenDictionaryObject and | 
 |         flattenDictionaryStructure.  This change is necessary as we need to | 
 |         guarantee that our attempt to convert away from a dictionary structure | 
 |         will definitely succeed, and in some cases this requires mutating the | 
 |         object storage itself. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/BatchedTransitionOptimizer.h: | 
 |         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::flattenDictionaryObject): | 
 |         * runtime/Operations.h: | 
 |         (JSC::normalizePrototypeChain): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::flattenDictionaryStructure): | 
 |         (JSC::comparePropertyMapEntryIndices): | 
 |         * runtime/Structure.h: | 
 |  | 
 | 2009-11-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Not reviewed, build fix. | 
 |  | 
 |         Remove extra character from r50701. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-11-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Not reviewed, build fix. | 
 |  | 
 |         Revert r50695 because it broke QtWebKit (clean builds). | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-11-09  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Prepended $$PWD to GENERATED_SOURCES_DIR to avoid potential ambiguities when included from WebCore.pro. | 
 |         Some preprocessors consider this GENERATED_SOURCES_DIR relative to current invoking dir (e.g., ./WebCore), | 
 |         and not the working dir of JavaCriptCore.pri (i.e., ../JavaScriptCore/). | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-11-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Kenneth Rohde Christiansen. | 
 |  | 
 |         Use explicit parentheses to silence gcc 4.4 -Wparentheses warnings | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31040 | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2009-11-08  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by NOBODY (speculative snow leopard and windows build fixes). | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::parseDateFromNullTerminatedCharacters): | 
 |         (JSC::gregorianDateTimeToMS): | 
 |         (JSC::msToGregorianDateTime): | 
 |         (JSC::parseDateFromNullTerminatedCharacters): | 
 |         * wtf/DateMath.h: | 
 |         (JSC::GregorianDateTime::GregorianDateTime): | 
 |  | 
 | 2009-11-08  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by NOBODY (chromium build fix). | 
 |          | 
 |         Hopefully, the last build fix. | 
 |  | 
 |         Create better separation in DateMath about the JSC | 
 |         and non-JSC portions. Also, only expose the non-JSC | 
 |         version in the exports. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::parseDateFromNullTerminatedCharacters): | 
 |         (JSC::getUTCOffset): | 
 |         (JSC::gregorianDateTimeToMS): | 
 |         (JSC::msToGregorianDateTime): | 
 |         (JSC::parseDateFromNullTerminatedCharacters): | 
 |         * wtf/DateMath.h: | 
 |         (JSC::gmtoffset): | 
 |  | 
 | 2009-11-08  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by NOBODY (chromium build fix). | 
 |  | 
 |         For the change in DateMath. | 
 |  | 
 |         * config.h: | 
 |         * wtf/DateMath.cpp: | 
 |  | 
 | 2009-11-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: export some symbols. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-11-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: updated export file. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |  | 
 | 2009-11-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: added some #includes. | 
 |  | 
 |         * wtf/CurrentTime.h: | 
 |         * wtf/DateMath.h: | 
 |  | 
 | 2009-11-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31197 | 
 |         Implemented a timezone cache not based on Mac OS X's notify_check API. | 
 |          | 
 |         If the VM calculates the local timezone offset from UTC, it caches the | 
 |         result until the end of the current VM invocation. (We don't want to cache | 
 |         forever, because the user's timezone may change over time.) | 
 |          | 
 |         This removes notify_* overhead on Mac, and, more significantly, removes | 
 |         OS time and date call overhead on non-Mac platforms. | 
 |  | 
 |         ~8% speedup on Date microbenchmark on Mac. SunSpider reports maybe a tiny | 
 |         speedup on Mac. (Speedup on non-Mac platforms should be even more noticeable.) | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 |         * interpreter/CachedCall.h: | 
 |         (JSC::CachedCall::CachedCall): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::execute): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): Made the  | 
 |         DynamicGlobalObjectScope constructor responsible for checking whether a | 
 |         dynamicGlobalObject has already been set. This eliminated some duplicate | 
 |         client code, and allowed me to avoid adding even more duplicate client | 
 |         code. Made DynamicGlobalObjectScope responsible for resetting the | 
 |         local timezone cache upon first entry to the VM. | 
 |  | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::constructDate): | 
 |         (JSC::callDate): | 
 |         (JSC::dateParse): | 
 |         (JSC::dateUTC): | 
 |         * runtime/DateConversion.cpp: | 
 |         (JSC::parseDate): | 
 |         * runtime/DateConversion.h: | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::gregorianDateTime): | 
 |         * runtime/DateInstance.h: | 
 |         * runtime/DateInstanceCache.h: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::setNewValueFromTimeArgs): | 
 |         (JSC::setNewValueFromDateArgs): | 
 |         (JSC::dateProtoFuncSetYear): | 
 |         * runtime/InitializeThreading.cpp: | 
 |         (JSC::initializeThreadingOnce): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         * runtime/JSGlobalData.h: | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::getCurrentUTCTime): | 
 |         (WTF::getCurrentUTCTimeWithMicroseconds): | 
 |         (WTF::getLocalTime): | 
 |         (JSC::getUTCOffset): Use the new cache. Also, see below. | 
 |         (JSC::gregorianDateTimeToMS): | 
 |         (JSC::msToGregorianDateTime): | 
 |         (JSC::initializeDates): | 
 |         (JSC::parseDateFromNullTerminatedCharacters): Simplified the way this function | 
 |         accounts for the local timezone offset, to accomodate our new caching API, | 
 |         and a (possibly misguided) caller in WebCore. Also, see below. | 
 |         * wtf/DateMath.h: | 
 |         (JSC::GregorianDateTime::GregorianDateTime): Moved most of the code in | 
 |         DateMath.* into the JSC namespace. The code needed to move so it could | 
 |         naturally interact with ExecState and JSGlobalData to support caching. | 
 |         Logically, it seemed right to move it, too, since this code is not really | 
 |         as low-level as the WTF namespace might imply -- it implements a set of | 
 |         date parsing and conversion quirks that are finely tuned to the JavaScript | 
 |         language. Also removed the Mac OS X notify_* infrastructure. | 
 |          | 
 |         * wtf/CurrentTime.h: | 
 |         (WTF::currentTimeMS): | 
 |         (WTF::getLocalTime): Moved the rest of the DateMath code here, and renamed | 
 |         it to make it consistent with WTF's currentTime function. | 
 |  | 
 | 2009-11-06  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Unreviewed trivial buildfix after r50595. | 
 |  | 
 |         Rename the remaining rshiftPtr calls to rshift32 | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitFastArithImmToInt): | 
 |  | 
 | 2009-11-06  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Tidy up the shift methods on the macro-assembler interface. | 
 |  | 
 |         Currently behaviour of shifts of a magnitude > 0x1f is undefined. | 
 |         Instead defined that all shifts are masked to this range.  This makes a lot of | 
 |         practical sense, both since having undefined behaviour is not particularly | 
 |         desirable, and because this behaviour is commonly required (particularly since | 
 |         it is required bt ECMA-262 for shifts). | 
 |  | 
 |         Update the ARM assemblers to provide this behaviour.  Remove (now) redundant | 
 |         masks from JITArithmetic, and remove rshiftPtr (this was used in case that | 
 |         could be rewritten in a simpler form using rshift32, only optimized JSVALUE32 | 
 |         on x86-64, which uses JSVALUE64!) | 
 |  | 
 |         * assembler/MacroAssembler.h: | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::lshift32): | 
 |         (JSC::MacroAssemblerARM::rshift32): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::lshift32): | 
 |         (JSC::MacroAssemblerARMv7::rshift32): | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_lshift): | 
 |         (JSC::JIT::emit_op_rshift): | 
 |  | 
 | 2009-11-05  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Oliver Hunt. | 
 |  | 
 |         Remove a magic number (1) from the JIT, instead compute the value with OBJECT_OFFSET. | 
 |  | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitPutJITStubArg): | 
 |         (JSC::JIT::emitPutJITStubArgConstant): | 
 |         (JSC::JIT::emitGetJITStubArg): | 
 |         (JSC::JIT::emitPutJITStubArgFromVirtualRegister): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::JITStubCall): | 
 |         (JSC::JITStubCall::getArgument): | 
 |         * jit/JITStubs.h: | 
 |  | 
 | 2009-11-05  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31159 | 
 |         Fix branchDouble behaviour on ARM THUMB2 JIT. | 
 |  | 
 |         The x86 branchDouble behaviour is reworked, and all JIT | 
 |         ports should follow the x86 port. See bug 31104 and 31151 | 
 |  | 
 |         This patch contains a fix for the traditional ARM port | 
 |  | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::fmrs_r): | 
 |         (JSC::ARMAssembler::ftosid_r): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::): | 
 |         (JSC::MacroAssemblerARM::branchDouble): | 
 |         (JSC::MacroAssemblerARM::branchConvertDoubleToInt32): | 
 |  | 
 | 2009-11-05  Chris Jerdonek  <chris.jerdonek@gmail.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Removed the "this is part of the KDE project" comments from  | 
 |         all *.h, *.cpp, *.idl, and *.pm files. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31167 | 
 |          | 
 |         The maintenance and architecture page in the project wiki lists | 
 |         this as a task. | 
 |          | 
 |         This change includes no changes or additions to test cases  | 
 |         since the change affects only comments. | 
 |          | 
 |         * wtf/wince/FastMallocWince.h: | 
 |  | 
 | 2009-11-05  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Use ARMv7 specific encoding for immediate constants on ARMv7 target | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31060 | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::getOp2): Use INVALID_IMM | 
 |         (JSC::ARMAssembler::getImm): Use encodeComplexImm for complex immediate | 
 |         (JSC::ARMAssembler::moveImm): Ditto. | 
 |         (JSC::ARMAssembler::encodeComplexImm): Encode a constant by one or two | 
 |         instructions or a PC relative load. | 
 |         * assembler/ARMAssembler.h: Use INVALID_IMM if a constant cannot be | 
 |         encoded as an immediate constant. | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::movw_r): 16-bit immediate load | 
 |         (JSC::ARMAssembler::movt_r): High halfword 16-bit immediate load | 
 |         (JSC::ARMAssembler::getImm16Op2): Encode immediate constant for | 
 |         movw_r and mowt_r | 
 |  | 
 | 2009-11-04  Mark Mentovai  <mark@chromium.org> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Provide TARGETING_TIGER and TARGETING_LEOPARD as analogues to | 
 |         BUILDING_ON_TIGER and BUILDING_ON_LEOPARD.  The TARGETING_ macros | 
 |         consider the deployment target; the BUILDING_ON_ macros consider the | 
 |         headers being built against. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31151 | 
 |         Fix branchDouble behaviour on ARM THUMB2 JIT. | 
 |  | 
 |         The ARMv7 JIT is currently using ARMv7Assembler::ConditionEQ to branch | 
 |         for DoubleEqualOrUnordered, however this is incorrect - ConditionEQ won't | 
 |         branch on unordered operands.  Similarly, DoubleLessThanOrUnordered & | 
 |         DoubleLessThanOrEqualOrUnordered use ARMv7Assembler::ConditionLO & | 
 |         ARMv7Assembler::ConditionLS, whereas they should be using | 
 |         ARMv7Assembler::ConditionLT & ARMv7Assembler::ConditionLE. | 
 |  | 
 |         Fix these, and fill out the missing DoubleConditions. | 
 |  | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::): | 
 |         (JSC::MacroAssemblerARMv7::branchDouble): | 
 |  | 
 | 2009-11-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Oliver Hunt. | 
 |  | 
 |         Enable native call optimizations on ARMv7.  (Existing ARM_TRADITIONAL | 
 |         implementation was generic, worked perfectly, just needed turning on). | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-11-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Mark Rowe, Oliver Hunt, and Sam Weinig. | 
 |  | 
 |         Add a missing assert to the ARMv7 JIT. | 
 |  | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMThumbImmediate::ARMThumbImmediate): | 
 |  | 
 | 2009-11-04  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Rubber-stamped by Oliver Hunt. | 
 |  | 
 |         Remove bogus op_ prefix on dumped version of three opcodes. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |  | 
 | 2009-11-04  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Fix dumping of constants in bytecode so that they aren't printed as large positive register numbers. | 
 |  | 
 |         We do this by having the registerName function return information about the constant if the register | 
 |         number corresponds to a constant.  This requires that registerName, and several functions that call it, | 
 |         be converted to member functions of CodeBlock so that the constant value can be retrieved.  The | 
 |         ExecState also needs to be threaded down through these functions so that it can be passed on to | 
 |         constantName when needed. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::constantName): | 
 |         (JSC::CodeBlock::registerName): | 
 |         (JSC::CodeBlock::printUnaryOp): | 
 |         (JSC::CodeBlock::printBinaryOp): | 
 |         (JSC::CodeBlock::printConditionalJump): | 
 |         (JSC::CodeBlock::printGetByIdOp): | 
 |         (JSC::CodeBlock::printPutByIdOp): | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::isConstantRegisterIndex): | 
 |  | 
 | 2009-11-04  Pavel Heimlich  <tropikhajma@gmail.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30647 | 
 |         Solaris build failure due to strnstr. | 
 |  | 
 |         * wtf/StringExtras.h: Enable strnstr on Solaris, too. | 
 |  | 
 | 2009-11-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31104 | 
 |         Refactor x86-specific behaviour out of the JIT. | 
 |  | 
 |         - Add explicit double branch conditions for ordered and unordered comparisons (presently the brehaviour is a mix). | 
 |         - Refactor double to int conversion out into the MacroAssembler. | 
 |         - Remove broken double to int conversion for !JSVALUE32_64 builds - this code was broken and slowing us down, fixing it showed it not to be an improvement. | 
 |         - Remove exclusion of double to int conversion from (1 % X) cases in JSVALUE32_64 builds - if this was of benefit this is no longer the case; simplify. | 
 |  | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::): | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::): | 
 |         (JSC::MacroAssemblerX86Common::convertInt32ToDouble): | 
 |         (JSC::MacroAssemblerX86Common::branchDouble): | 
 |         (JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32): | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_div): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |  | 
 | 2009-11-04  Mark Mentovai  <mark@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Remove BUILDING_ON_LEOPARD from JavaScriptCore.gyp.  This is supposed | 
 |         to be set as needed only in wtf/Platform.h. | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: | 
 |  | 
 | 2009-11-02  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         REGRESSION (r48573): JSC may incorrectly cache chain lookups with a dictionary at the head of the chain | 
 |         https://bugs.webkit.org/show_bug.cgi?id=31045 | 
 |  | 
 |         Add guards to prevent caching of prototype chain lookups with dictionaries at the | 
 |         head of the chain.  Also add a few tighter assertions to cached prototype lookups | 
 |         to catch this in future. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |  | 
 | 2009-11-02  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         PLATFORM(CF) should be set when building for Qt on Darwin | 
 |         https://bugs.webkit.org/show_bug.cgi?id=23671 | 
 |  | 
 |         * wtf/Platform.h: Turn on CF support if both QT and DARWIN | 
 |         platforms are defined. | 
 |  | 
 | 2009-11-02  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Remove threadsafe refcounting from tasks used with WTF::MessageQueue. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30612 | 
 |  | 
 |         * wtf/MessageQueue.h: | 
 |         (WTF::MessageQueue::alwaysTruePredicate): | 
 |         (WTF::MessageQueue::~MessageQueue): | 
 |         (WTF::MessageQueue::append): | 
 |         (WTF::MessageQueue::appendAndCheckEmpty): | 
 |         (WTF::MessageQueue::prepend): | 
 |         (WTF::MessageQueue::waitForMessage): | 
 |         (WTF::MessageQueue::waitForMessageFilteredWithTimeout): | 
 |         (WTF::MessageQueue::tryGetMessage): | 
 |         (WTF::MessageQueue::removeIf): | 
 |         The MessageQueue is changed to act as a queue of OwnPtr<DataType>. It takes ownership | 
 |         of posted tasks and passes it to the new owner (in another thread) when the task is fetched. | 
 |         All methods have arguments of type PassOwnPtr<DataType> and return the same type. | 
 |  | 
 |         * wtf/Threading.cpp: | 
 |         (WTF::createThread): | 
 |         Superficial change to trigger rebuild of JSC project on Windows, | 
 |         workaround for https://bugs.webkit.org/show_bug.cgi?id=30890 | 
 |  | 
 | 2009-10-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fixed failing layout test: restore a special case I accidentally deleted. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::setNewValueFromDateArgs): In the case of applying a change to a date | 
 |         that is NaN, reset the date to 0 *and* then apply the change; don't just | 
 |         reset the date to 0. | 
 |  | 
 | 2009-10-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: update for object-to-pointer change. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |  | 
 | 2009-10-29  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30942 | 
 |         Use pointers instead of copies to pass GregorianDateTime objects around. | 
 |          | 
 |         SunSpider reports a shocking 4.5% speedup on date-format-xparb, and 1.3% | 
 |         speedup on date-format-tofte. | 
 |  | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::gregorianDateTime): | 
 |         * runtime/DateInstance.h: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |         (JSC::dateProtoFuncToString): | 
 |         (JSC::dateProtoFuncToUTCString): | 
 |         (JSC::dateProtoFuncToISOString): | 
 |         (JSC::dateProtoFuncToDateString): | 
 |         (JSC::dateProtoFuncToTimeString): | 
 |         (JSC::dateProtoFuncGetFullYear): | 
 |         (JSC::dateProtoFuncGetUTCFullYear): | 
 |         (JSC::dateProtoFuncToGMTString): | 
 |         (JSC::dateProtoFuncGetMonth): | 
 |         (JSC::dateProtoFuncGetUTCMonth): | 
 |         (JSC::dateProtoFuncGetDate): | 
 |         (JSC::dateProtoFuncGetUTCDate): | 
 |         (JSC::dateProtoFuncGetDay): | 
 |         (JSC::dateProtoFuncGetUTCDay): | 
 |         (JSC::dateProtoFuncGetHours): | 
 |         (JSC::dateProtoFuncGetUTCHours): | 
 |         (JSC::dateProtoFuncGetMinutes): | 
 |         (JSC::dateProtoFuncGetUTCMinutes): | 
 |         (JSC::dateProtoFuncGetSeconds): | 
 |         (JSC::dateProtoFuncGetUTCSeconds): | 
 |         (JSC::dateProtoFuncGetTimezoneOffset): | 
 |         (JSC::setNewValueFromTimeArgs): | 
 |         (JSC::setNewValueFromDateArgs): | 
 |         (JSC::dateProtoFuncSetYear): | 
 |         (JSC::dateProtoFuncGetYear): Renamed getGregorianDateTime to gregorianDateTime, | 
 |         since it no longer has an out parameter. Uses 0 to indicate invalid dates. | 
 |  | 
 | 2009-10-30  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's ListHashSet | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30853 | 
 |  | 
 |         Inherits ListHashSet class from FastAllocBase because it is | 
 |         instantiated by 'new' in WebCore/rendering/RenderBlock.cpp:1813. | 
 |  | 
 |         * wtf/ListHashSet.h: | 
 |  | 
 | 2009-10-30  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Regression: crash enumerating properties of an object with getters or setters | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30948 | 
 |  | 
 |         Add a guard to prevent us trying to cache property enumeration on | 
 |         objects with getters or setters. | 
 |  | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::create): | 
 |  | 
 | 2009-10-30  Roland Steiner  <rolandsteiner@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Remove ENABLE_RUBY guards as discussed with Dave Hyatt and Maciej Stachowiak. | 
 |  | 
 |         Bug 28420 -  Implement HTML5 <ruby> rendering | 
 |         (https://bugs.webkit.org/show_bug.cgi?id=28420) | 
 |   | 
 |         No new tests (no functional change). | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-10-29  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         REGRESSION (r50218-r50262): E*TRADE accounts page is missing content | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30947 | 
 |         <rdar://problem/7348833> | 
 |  | 
 |         The logic for flagging that a structure has non-enumerable properties | 
 |         was in addPropertyWithoutTransition, rather than in the core Structure::put | 
 |         method.  Despite this I was unable to produce a testcase that caused | 
 |         the failure that etrade was experiencing, but the new assertion in | 
 |         getEnumerablePropertyNames triggers on numerous layout tests without | 
 |         the fix, so in effecti all for..in enumeration in any test ends up | 
 |         doing the required consistency check. | 
 |  | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::addPropertyWithoutTransition): | 
 |         (JSC::Structure::put): | 
 |         (JSC::Structure::getEnumerablePropertyNames): | 
 |         (JSC::Structure::checkConsistency): | 
 |  | 
 | 2009-10-29  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add cacheFlush support for Thumb-2 on Linux | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30865 | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |  | 
 | 2009-10-28  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         JSC JIT on ARMv7 cannot link jumps >16Mb range | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30891 | 
 |  | 
 |         Start planing all relative jumps as move-32-bit-immediate-to-register-BX. | 
 |         In the cases where the jump would fall within a relative jump range, use a relative jump. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMv7Assembler::~ARMv7Assembler): | 
 |         (JSC::ARMv7Assembler::LinkRecord::LinkRecord): | 
 |         (JSC::ARMv7Assembler::): | 
 |         (JSC::ARMv7Assembler::executableCopy): | 
 |         (JSC::ARMv7Assembler::linkJump): | 
 |         (JSC::ARMv7Assembler::relinkJump): | 
 |         (JSC::ARMv7Assembler::setInt32): | 
 |         (JSC::ARMv7Assembler::isB): | 
 |         (JSC::ARMv7Assembler::isBX): | 
 |         (JSC::ARMv7Assembler::isMOV_imm_T3): | 
 |         (JSC::ARMv7Assembler::isMOVT): | 
 |         (JSC::ARMv7Assembler::isNOP_T1): | 
 |         (JSC::ARMv7Assembler::isNOP_T2): | 
 |         (JSC::ARMv7Assembler::linkJumpAbsolute): | 
 |         (JSC::ARMv7Assembler::twoWordOp5i6Imm4Reg4EncodedImmFirst): | 
 |         (JSC::ARMv7Assembler::twoWordOp5i6Imm4Reg4EncodedImmSecond): | 
 |         (JSC::ARMv7Assembler::ARMInstructionFormatter::twoWordOp5i6Imm4Reg4EncodedImm): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::makeJump): | 
 |         (JSC::MacroAssemblerARMv7::makeBranch): | 
 |         * jit/JIT.h: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-10-28  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Improve for..in enumeration performance | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30887 | 
 |  | 
 |         Improve indexing of an object with a for..in iterator by | 
 |         identifying cases where get_by_val is being used with a iterator | 
 |         as the subscript and replace it with a new get_by_pname | 
 |         bytecode.  get_by_pname then optimizes lookups that directly access | 
 |         the base object. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitGetByVal): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::pushOptimisedForIn): | 
 |         (JSC::BytecodeGenerator::popOptimisedForIn): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::compileGetDirectOffset): | 
 |         (JSC::JIT::emit_op_get_by_pname): | 
 |         (JSC::JIT::emitSlow_op_get_by_pname): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ForInNode::emitBytecode): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::create): | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::JSPropertyNameIterator::getOffset): | 
 |         (JSC::JSPropertyNameIterator::JSPropertyNameIterator): | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::changePrototypeTransition): | 
 |         (JSC::Structure::despecifyFunctionTransition): | 
 |         (JSC::Structure::addAnonymousSlotsTransition): | 
 |         (JSC::Structure::getterSetterTransition): | 
 |         (JSC::Structure::toDictionaryTransition): | 
 |         (JSC::Structure::addPropertyWithoutTransition): | 
 |           Track the existence (or not) of non-enumerable properties. | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::propertyStorageCapacity): | 
 |         (JSC::Structure::propertyStorageSize): | 
 |         (JSC::Structure::hasNonEnumerableProperties): | 
 |         (JSC::Structure::hasAnonymousSlots): | 
 |  | 
 | 2009-10-28  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Not reviewed, attemp to fix Windows build. | 
 |  | 
 |         Touch the cpp file to cause recompile. | 
 |  | 
 |         * wtf/Threading.cpp: | 
 |         (WTF::threadEntryPoint): | 
 |  | 
 | 2009-10-28  Dmitry Titov  <dimich@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30805 | 
 |         Add MessageQueue::removeIf(Predicate&) to remove certain tasks without pulling them from the queue. | 
 |         Existing Database tests cover this since Database removes tasks when it is stopped. | 
 |  | 
 |         * wtf/MessageQueue.h: | 
 |         (WTF::::removeIf): | 
 |  | 
 | 2009-10-28  Afonso R. Costa Jr.  <afonso.costa@openbossa.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         [Qt] Enable YARR when YARR_JIT is enabled | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30730 | 
 |  | 
 |         When enabling or disabling JIT using JAVASCRIPTCORE_JIT, the ENABLE_YARR should | 
 |         be toggled also. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-10-24  Martin Robinson  <martin.james.robinson@gmail.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fix strict aliasing warning by switching reinterpret_cast to bitwise_cast. | 
 |  | 
 |         strict-aliasing warnings in JSFunction.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27869 | 
 |  | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::nativeFunction): | 
 |         (JSC::JSFunction::scopeChain): | 
 |         (JSC::JSFunction::setScopeChain): | 
 |         (JSC::JSFunction::setNativeFunction): | 
 |  | 
 | 2009-10-28  Jan-Arve Sæther <jan-arve.saether@nokia.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         Build-fix for 64-bit Windows | 
 |  | 
 |         * wtf/Platform.h: Make sure to use WTF_USE_JSVALUE64 | 
 |  | 
 | 2009-10-28  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix!). | 
 |  | 
 |         * jit/JIT.h: | 
 |  | 
 | 2009-10-26  Holger Hans Peter Freyther  <zecke@selfish.org> | 
 |  | 
 |         Rubber-stamped by Darin Adler. | 
 |  | 
 |         Export fastMalloc, fastCalloc, fastRealloc and fastFree on GCC/Unix | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30769 | 
 |  | 
 |         When using -fvisibility=hidden to hide all internal symbols by default | 
 |         the malloc symbols will be hidden as well. For memory instrumentation | 
 |         it is needed to provide an instrumented version of these symbols and | 
 |         override the normal routines and by changing the visibility back to | 
 |         default this becomes possible. | 
 |  | 
 |         The only other solution would be to use system malloc instead of the | 
 |         TCmalloc implementation but this will not allow to analyze memory | 
 |         behavior with the default allocator. | 
 |  | 
 |         * wtf/FastMalloc.h: Define WTF_FAST_MALLOC_EXPORT for GCC and !darwin | 
 |  | 
 | 2009-10-27  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Samuel Q. Weinig. | 
 |  | 
 |         Make the asserts protecting the offsets in the JIT more descriptive. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::compileGetByIdSlowCase): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |  | 
 | 2009-10-27  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         A little bit of refactoring in the date code. | 
 |  | 
 |         * JavaScriptCore.exp: Don't export this unused symbol. | 
 |  | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::constructDate): | 
 |  | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::DateInstance): | 
 |         * runtime/DateInstance.h: Removed some unused functions. Changed the default | 
 |         constructor to ensure that a DateInstance is always initialized. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::DatePrototype::DatePrototype): Pass an initializer to our constructor, | 
 |         since it now requires one. | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::msToGregorianDateTime): Only compute our offset from UTC if our | 
 |         output will require it. Otherwise, our offset is 0. | 
 |  | 
 | 2009-10-27  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: Mark DateInstaceCache.h private, so other frameworks can see it. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-10-27  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: re-readded this file. | 
 |  | 
 |         * runtime/DateInstanceCache.h: Added. | 
 |         (JSC::DateInstanceData::create): | 
 |         (JSC::DateInstanceData::DateInstanceData): | 
 |         (JSC::DateInstanceCache::DateInstanceCache): | 
 |         (JSC::DateInstanceCache::add): | 
 |         (JSC::DateInstanceCache::lookup): | 
 |  | 
 | 2009-10-27  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler and Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30800 | 
 |         Cache recently computed date data. | 
 |          | 
 |         SunSpider reports a ~0.5% speedup, mostly from date-format-tofte.js. | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Added new file. | 
 |  | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::DateInstance): | 
 |         (JSC::DateInstance::getGregorianDateTime): Use the shared cache. | 
 |  | 
 |         * runtime/DateInstance.h: Renamed m_cache to m_data, to avoid the confusion | 
 |         of a "cache cache". | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |         (JSC::dateProtoFuncToString): | 
 |         (JSC::dateProtoFuncToUTCString): | 
 |         (JSC::dateProtoFuncToISOString): | 
 |         (JSC::dateProtoFuncToDateString): | 
 |         (JSC::dateProtoFuncToTimeString): | 
 |         (JSC::dateProtoFuncGetFullYear): | 
 |         (JSC::dateProtoFuncGetUTCFullYear): | 
 |         (JSC::dateProtoFuncToGMTString): | 
 |         (JSC::dateProtoFuncGetMonth): | 
 |         (JSC::dateProtoFuncGetUTCMonth): | 
 |         (JSC::dateProtoFuncGetDate): | 
 |         (JSC::dateProtoFuncGetUTCDate): | 
 |         (JSC::dateProtoFuncGetDay): | 
 |         (JSC::dateProtoFuncGetUTCDay): | 
 |         (JSC::dateProtoFuncGetHours): | 
 |         (JSC::dateProtoFuncGetUTCHours): | 
 |         (JSC::dateProtoFuncGetMinutes): | 
 |         (JSC::dateProtoFuncGetUTCMinutes): | 
 |         (JSC::dateProtoFuncGetSeconds): | 
 |         (JSC::dateProtoFuncGetUTCSeconds): | 
 |         (JSC::dateProtoFuncGetTimezoneOffset): | 
 |         (JSC::setNewValueFromTimeArgs): | 
 |         (JSC::setNewValueFromDateArgs): | 
 |         (JSC::dateProtoFuncSetYear): | 
 |         (JSC::dateProtoFuncGetYear): Pass an ExecState to these functions, so they | 
 |         can access the DateInstanceCache. | 
 |  | 
 |         * runtime/JSGlobalData.h: Keep a DateInstanceCache. | 
 |  | 
 | 2009-10-27  James Robinson  <jamesr@chromium.org> | 
 |  | 
 |         Reviewed by Darin Fisher. | 
 |  | 
 |         Ensures that JavaScriptCore/wtf/CurrentTime.cpp is not built in PLATFORM(CHROMIUM) builds. | 
 |  | 
 |         Chromium uses a different method to calculate the current time than is used in | 
 |         JavaScriptCore/wtf/CurrentTime.cpp. This can lead to time skew when calls to currentTime() and Chromium's time | 
 |         function are mixed.  In particular, timers can get scheduled in the past which leads to 100% CPU use. | 
 |         See http://code.google.com/p/chromium/issues/detail?id=25892 for an example. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30833 | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: | 
 |         * wtf/CurrentTime.cpp: | 
 |  | 
 | 2009-10-27  Peter Varga  <pvarga@inf.u-szeged.hu> | 
 |  | 
 |         Rubber-stamped by Tor Arne Vestbø. | 
 |  | 
 |         Fix typo in RegexInterpreter.cpp and RegexJIT.cpp alterantive to | 
 |         alternative. | 
 |  | 
 |         * yarr/RegexInterpreter.cpp: | 
 |         (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction): | 
 |         (JSC::Yarr::ByteCompiler::alternativeDisjunction): | 
 |         (JSC::Yarr::ByteCompiler::emitDisjunction): | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateDisjunction): | 
 |  | 
 | 2009-10-26  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Make .rc files compile on Windows without depending on MFC headers | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30750 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: Use | 
 |         winresrc.h because it exists even when MFC is not installed, and is | 
 |         all that's needed here. | 
 |  | 
 | 2009-10-26  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         The thunkReturnAddress is on JITStackFrame on ARM JIT as well | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30782 | 
 |  | 
 |         Move the thunkReturnAddress from top of the stack into the JITStackFrame | 
 |         structure. This is a requirement for JSValue32_64 support on ARM. | 
 |  | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::ret): Return with link register | 
 |         (JSC::MacroAssemblerARM::prepareCall): Store the return address in link register | 
 |         * jit/JIT.h: Remove unused ctiReturnRegister | 
 |         * jit/JITInlineMethods.h: Same as ARMv7 | 
 |         (JSC::JIT::restoreArgumentReference): Ditto. | 
 |         (JSC::JIT::restoreArgumentReferenceForTrampoline): Ditto. | 
 |         * jit/JITOpcodes.cpp: Remove ctiReturnRegister related instruction | 
 |         * jit/JITStubs.cpp: Store thunkReturnAddress on JITStackFrame. Use | 
 |         small trampoline functions which handle return addresses for each | 
 |         CTI_STUB_FUNCTION. | 
 |         * jit/JITStubs.h: Store thunkReturnAddress on JITStackFrame | 
 |         (JSC::JITStackFrame::returnAddressSlot): Return with the address of thunkReturnAddress | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateEnter): Remove the unnecessary instruction | 
 |  | 
 | 2009-10-26  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Adds ability to disable ReadWriteLock on platforms (eg Android) that use pthreads but do not support pthread_rwlock. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30713 | 
 |  | 
 |         * wtf/Platform.h: Modified. Defines HAVE_PTHREAD_RWLOCK for all platforms currently using pthreads. | 
 |         * wtf/Threading.h: Modified. Use pthread_rwlock_t only when HAVE_PTHREAD_RWLOCK is defined. | 
 |         * wtf/ThreadingPthreads.cpp: Modified. Build ReadWriteLock methods only when HAVE_PTHREAD_RWLOCK is defined. | 
 |  | 
 | 2009-10-24  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Holger Freyther. | 
 |  | 
 |         [Qt] [Symbian] Set the capability and memory required to run QtWebKit for Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30476 | 
 |  | 
 |         Assign ReadUserData WriteUserData NetworkServices Symbian capabilities | 
 |         to jsc.exe. | 
 |  | 
 |         * jsc.pro: | 
 |  | 
 | 2009-10-23  Steve Block  <steveblock@google.com> | 
 |  | 
 |         Reviewed by Dmitry Titov. | 
 |  | 
 |         Fixes a leak in createThreadInternal on Android. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30698 | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: Modified. | 
 |         (WTF::createThreadInternal): Avoid leaking a ThreadData object on failure. | 
 |  | 
 | 2009-10-22  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Fixed ASSERT when opening Safari's Caches window while the Web Inspector | 
 |         is open. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::typeName): Added two new types to the type name list in the Collector. | 
 |         These types have been around for a while, but nobody remembered to consider them here. | 
 |  | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::isPropertyNameIterator): | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::JSPropertyNameIterator::isPropertyNameIterator): Give the Collector | 
 |         a way to tell if a cell is a JSPropertyNameIterator. | 
 |  | 
 | 2009-10-22  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Jon Honeycutt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30686 | 
 |         Remove debug-specific def file. | 
 |         Only Debug_All target uses JavaScriptCore_debug.dll naming, and since | 
 |         that target is only used internally, maintaining two files just to | 
 |         suppress a single link warning isn't worthwhile. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Removed. | 
 |  | 
 | 2009-10-21  Jon Honeycutt  <jhoneycutt@apple.com> | 
 |  | 
 |         <rdar://problem/7270320> Screenshots of off-screen plug-ins are blank | 
 |         <rdar://problem/7270314> After halting a transparent PluginView on | 
 |         Windows, the transparency is applied twice | 
 |  | 
 |         Reviewed by Dan Bernstein. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         Export WTF::deleteOwnedPtr(HDC). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |         Ditto. | 
 |  | 
 | 2009-10-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: updated variable name. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |  | 
 | 2009-10-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_next_pname): Slightly tweaked this #ifdef to match the | 
 |         size of a JSValue because m_jsStrings is an array of JSValues. | 
 |  | 
 | 2009-10-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Fixed a 64-bit regression caused by the fix for | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30570. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_next_pname): Use TimesEight stepping on 64-bit, since | 
 |         64-bit pointers are eight bytes long. | 
 |  | 
 | 2009-10-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Refactored DateInstance::msToGregorianDateTime so that a DateInstance's | 
 |         caller doesn't need to supply the DateInstance's own internal value to | 
 |         the DateInstance. | 
 |  | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::getGregorianDateTime): Renamed from "msToGregorianDateTime". | 
 |  | 
 |         * runtime/DateInstance.h: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |         (JSC::dateProtoFuncToString): | 
 |         (JSC::dateProtoFuncToUTCString): | 
 |         (JSC::dateProtoFuncToISOString): | 
 |         (JSC::dateProtoFuncToDateString): | 
 |         (JSC::dateProtoFuncToTimeString): | 
 |         (JSC::dateProtoFuncToLocaleString): | 
 |         (JSC::dateProtoFuncToLocaleDateString): | 
 |         (JSC::dateProtoFuncToLocaleTimeString): | 
 |         (JSC::dateProtoFuncGetTime): | 
 |         (JSC::dateProtoFuncGetFullYear): | 
 |         (JSC::dateProtoFuncGetUTCFullYear): | 
 |         (JSC::dateProtoFuncToGMTString): | 
 |         (JSC::dateProtoFuncGetMonth): | 
 |         (JSC::dateProtoFuncGetUTCMonth): | 
 |         (JSC::dateProtoFuncGetDate): | 
 |         (JSC::dateProtoFuncGetUTCDate): | 
 |         (JSC::dateProtoFuncGetDay): | 
 |         (JSC::dateProtoFuncGetUTCDay): | 
 |         (JSC::dateProtoFuncGetHours): | 
 |         (JSC::dateProtoFuncGetUTCHours): | 
 |         (JSC::dateProtoFuncGetMinutes): | 
 |         (JSC::dateProtoFuncGetUTCMinutes): | 
 |         (JSC::dateProtoFuncGetSeconds): | 
 |         (JSC::dateProtoFuncGetUTCSeconds): | 
 |         (JSC::dateProtoFuncGetTimezoneOffset): | 
 |         (JSC::setNewValueFromTimeArgs): | 
 |         (JSC::setNewValueFromDateArgs): | 
 |         (JSC::dateProtoFuncSetYear): | 
 |         (JSC::dateProtoFuncGetYear): Also renamed "utc" to "outputIsUTC", for clarity. | 
 |  | 
 | 2009-10-20  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         The op_next_pname should use 4 bytes addressing mode in case of JSValue32 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30570 | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_next_pname): | 
 |  | 
 | 2009-10-20  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Move OverridesMarkChildren flag from DatePrototype to its parent class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30372 | 
 |  | 
 |         * runtime/DateInstance.h: | 
 |         (JSC::DateInstance::createStructure): | 
 |         * runtime/DatePrototype.h: | 
 |  | 
 | 2009-10-19  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Tightened up some put_by_id_transition code generation. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30539 | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::testPrototype): | 
 |         (JSC::JIT::privateCompilePutByIdTransition): No need to do object type | 
 |         checks or read Structures and prototypes from objects: they're all known | 
 |         constants at compile time. | 
 |  | 
 | 2009-10-19  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Added a private API for getting a global context from a context, for | 
 |         clients who want to preserve a context for a later callback. | 
 |  | 
 |         * API/APICast.h: | 
 |         (toGlobalRef): Added an ASSERT, since this function is used more often | 
 |         than before. | 
 |  | 
 |         * API/JSContextRef.cpp: | 
 |         * API/JSContextRefPrivate.h: Added. The new API. | 
 |  | 
 |         * API/tests/testapi.c: | 
 |         (print_callAsFunction): | 
 |         (main): Test the new API. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Build and export the new API. | 
 |  | 
 | 2009-10-17  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |          | 
 |         Tightened up some instanceof code generation. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30488 | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emitSlow_op_instanceof): No need to do object type checks -  | 
 |         cell type checks and ImplementsDefaultHasIntance checks implicitly | 
 |         supersede object type checks. | 
 |  | 
 | 2009-10-18  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Use _stricmp and _strnicmp instead of deprecated stricmp and strnicmp. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30474 | 
 |  | 
 |         stricmp and strnicmp are deprecated beginning in Visual | 
 |         C++ 2005. Use _stricmp and _strnicmp instead in StringExtras.h. | 
 |  | 
 |         * wtf/StringExtras.h: | 
 |         (strncasecmp): | 
 |         (strcasecmp): | 
 |  | 
 | 2009-10-16  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: apparently we shouldn't export those symbols? | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-10-16  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: export some symbols. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-10-16  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         structure typeinfo flags should be inherited. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30468 | 
 |  | 
 |         Add StructureFlag constant to the various JSC classes and use | 
 |         it for the TypeInfo construction.  This allows us to simply | 
 |         accumulate flags by basing each classes StructureInfo on its parents. | 
 |  | 
 |         * API/JSCallbackConstructor.h: | 
 |         (JSC::JSCallbackConstructor::createStructure): | 
 |         * API/JSCallbackFunction.h: | 
 |         (JSC::JSCallbackFunction::createStructure): | 
 |         * API/JSCallbackObject.h: | 
 |         (JSC::JSCallbackObject::createStructure): | 
 |         * debugger/DebuggerActivation.h: | 
 |         (JSC::DebuggerActivation::createStructure): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::createStructure): | 
 |         * runtime/BooleanObject.h: | 
 |         (JSC::BooleanObject::createStructure): | 
 |         * runtime/DatePrototype.h: | 
 |         (JSC::DatePrototype::createStructure): | 
 |         * runtime/FunctionPrototype.h: | 
 |         (JSC::FunctionPrototype::createStructure): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         (JSC::GlobalEvalFunction::createStructure): | 
 |         * runtime/InternalFunction.h: | 
 |         (JSC::InternalFunction::createStructure): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::createStructure): | 
 |         * runtime/JSArray.h: | 
 |         (JSC::JSArray::createStructure): | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::createStructure): | 
 |         * runtime/JSByteArray.h: | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::createStructure): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::createStructure): | 
 |         * runtime/JSNotAnObject.h: | 
 |         (JSC::JSNotAnObject::createStructure): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::createStructure): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::createStructure): | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         (JSC::JSStaticScopeObject::createStructure): | 
 |         * runtime/JSVariableObject.h: | 
 |         (JSC::JSVariableObject::createStructure): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::createStructure): | 
 |         * runtime/MathObject.h: | 
 |         (JSC::MathObject::createStructure): | 
 |         * runtime/NumberConstructor.h: | 
 |         (JSC::NumberConstructor::createStructure): | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::createStructure): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::createStructure): | 
 |         * runtime/StringObject.h: | 
 |         (JSC::StringObject::createStructure): | 
 |         * runtime/StringObjectThatMasqueradesAsUndefined.h: | 
 |         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): | 
 |  | 
 | 2009-10-16  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |          | 
 |         Fast for-in enumeration: Cache JSPropertyNameIterator; cache JSStrings | 
 |         in JSPropertyNameIterator; inline more code. | 
 |  | 
 |         1.024x as fast on SunSpider (fasta: 1.43x as fast). | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitGetPropertyNames): | 
 |         (JSC::BytecodeGenerator::emitNextPropertyName): | 
 |         * bytecompiler/BytecodeGenerator.h: Added a few extra operands to | 
 |         op_get_pnames and op_next_pname so that we can track iteration state | 
 |         in the register file instead of in the JSPropertyNameIterator. (To be | 
 |         cacheable, the JSPropertyNameIterator must be stateless.) | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCachePutByID): | 
 |         (JSC::Interpreter::tryCacheGetByID): Updated for rename to | 
 |         "normalizePrototypeChain" and removal of "isCacheable".  | 
 |  | 
 |         (JSC::Interpreter::privateExecute): Updated for in-RegisterFile | 
 |         iteration state tracking. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_get_pnames): Updated for in-RegisterFile | 
 |         iteration state tracking. | 
 |  | 
 |         (JSC::JIT::emit_op_next_pname): Inlined code generation for op_next_pname. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |         (JSC::JITThunks::tryCacheGetByID): Updated for rename to | 
 |         "normalizePrototypeChain" and removal of "isCacheable".  | 
 |  | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): Added has_property and to_object stubs. Removed op_next_pname | 
 |         stub, since has_property is all we need anymore. | 
 |  | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ForInNode::emitBytecode): Updated for in-RegisterFile | 
 |         iteration state tracking. | 
 |  | 
 |         * runtime/JSCell.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::getPropertyNames): Don't do caching at this layer | 
 |         anymore, since we don't create a JSPropertyNameIterator at this layer. | 
 |  | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::create): Do do caching at this layer. | 
 |         (JSC::JSPropertyNameIterator::get):  Updated for in-RegisterFile | 
 |         iteration state tracking. | 
 |         (JSC::JSPropertyNameIterator::markChildren): Mark our JSStrings. | 
 |  | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::JSPropertyNameIterator::size): | 
 |         (JSC::JSPropertyNameIterator::setCachedStructure): | 
 |         (JSC::JSPropertyNameIterator::cachedStructure): | 
 |         (JSC::JSPropertyNameIterator::setCachedPrototypeChain): | 
 |         (JSC::JSPropertyNameIterator::cachedPrototypeChain): | 
 |         (JSC::JSPropertyNameIterator::JSPropertyNameIterator): | 
 |         (JSC::Structure::setEnumerationCache): Don't store iteration state in | 
 |         a JSPropertyNameIterator. Do cache a JSPropertyNameIterator in a | 
 |         Structure. | 
 |  | 
 |         * runtime/JSValue.h: | 
 |         (JSC::asCell): | 
 |         * runtime/MarkStack.h: Make those mischievous #include gods happy. | 
 |  | 
 |         * runtime/ObjectConstructor.cpp: | 
 |  | 
 |         * runtime/Operations.h: | 
 |         (JSC::normalizePrototypeChain): Renamed countPrototypeChainEntriesAndCheckForProxies | 
 |         to normalizePrototypeChain, since it changes dictionary prototypes to | 
 |         non-dictionary objects. | 
 |  | 
 |         * runtime/PropertyNameArray.cpp: | 
 |         (JSC::PropertyNameArray::add): | 
 |         * runtime/PropertyNameArray.h: | 
 |         (JSC::PropertyNameArrayData::PropertyNameArrayData): | 
 |         (JSC::PropertyNameArray::data): | 
 |         (JSC::PropertyNameArray::size): | 
 |         (JSC::PropertyNameArray::begin): | 
 |         (JSC::PropertyNameArray::end): Simplified some code here to help with | 
 |         current and future refactoring. | 
 |  | 
 |         * runtime/Protect.h: | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::~Structure): | 
 |         (JSC::Structure::addPropertyWithoutTransition): | 
 |         (JSC::Structure::removePropertyWithoutTransition): No need to clear | 
 |         the enumeration cache with adding / removing properties without | 
 |         transition. It is an error to add / remove properties without transition | 
 |         once an object has been observed, and we can ASSERT to catch that. | 
 |  | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::enumerationCache): Changed the enumeration cache to | 
 |         hold a JSPropertyNameIterator. | 
 |  | 
 |         * runtime/StructureChain.cpp: | 
 |         * runtime/StructureChain.h: | 
 |         (JSC::StructureChain::head): Removed StructureChain::isCacheable because | 
 |         it was wrong-headed in two ways: (1) It gave up when a prototype was a | 
 |         dictionary, but instead we want un-dictionary heavily accessed | 
 |         prototypes; (2) It folded a test for hasDefaultGetPropertyNames() into | 
 |         a generic test for "cacheable-ness", but hasDefaultGetPropertyNames() | 
 |         is only releavant to for-in caching. | 
 |  | 
 | 2009-10-16  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         Add a Debug_All configuration to build entire stack as debug. | 
 |         Change Debug_Internal to: | 
 |         - stop using _debug suffix for all WebKit/Safari binaries | 
 |         - not use _debug as a DLL naming suffix | 
 |         - use non-debug C runtime lib. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore.make: Debug build in makefile should build Debug_All. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore.sln: Add Debug_All configuration. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Add Debug_All configuration. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Renamed single configuration from "Release" to "all". | 
 |         * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: Add Debug_All configuration. | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Add Debug_All configuration. | 
 |         * JavaScriptCore.vcproj/jsc/jsc.vcproj: Add Debug_All configuration. | 
 |         * JavaScriptCore.vcproj/testapi/testapi.vcproj: Add Debug_All configuration. | 
 |  | 
 | 2009-10-16  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Make typeinfo flags default to false | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30372 | 
 |  | 
 |         Last part -- replace HasDefaultGetPropertyNames with OverridesGetPropertyNames | 
 |         flag. | 
 |  | 
 |         * API/JSCallbackConstructor.h: | 
 |         (JSC::JSCallbackConstructor::createStructure): | 
 |         * API/JSCallbackObject.h: | 
 |         (JSC::JSCallbackObject::createStructure): | 
 |         * debugger/DebuggerActivation.h: | 
 |         (JSC::DebuggerActivation::createStructure): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::createStructure): | 
 |         * runtime/BooleanObject.h: | 
 |         (JSC::BooleanObject::createStructure): | 
 |         * runtime/DatePrototype.h: | 
 |         (JSC::DatePrototype::createStructure): | 
 |         * runtime/FunctionPrototype.h: | 
 |         (JSC::FunctionPrototype::createStructure): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         (JSC::GlobalEvalFunction::createStructure): | 
 |         * runtime/JSAPIValueWrapper.h: | 
 |         (JSC::JSAPIValueWrapper::createStructure): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::createStructure): | 
 |         * runtime/JSArray.h: | 
 |         (JSC::JSArray::createStructure): | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::createStructure): | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::createStructure): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::createStructure): | 
 |         * runtime/JSNotAnObject.h: | 
 |         (JSC::JSNotAnObject::createStructure): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::createStructure): | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::getPropertyNames): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::createStructure): | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         (JSC::JSStaticScopeObject::createStructure): | 
 |         * runtime/JSTypeInfo.h: | 
 |         (JSC::TypeInfo::overridesGetPropertyNames): | 
 |         * runtime/JSVariableObject.h: | 
 |         (JSC::JSVariableObject::createStructure): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::createStructure): | 
 |         * runtime/MathObject.h: | 
 |         (JSC::MathObject::createStructure): | 
 |         * runtime/NumberConstructor.h: | 
 |         (JSC::NumberConstructor::createStructure): | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::createStructure): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::createStructure): | 
 |         * runtime/StringObject.h: | 
 |         (JSC::StringObject::createStructure): | 
 |         * runtime/StringObjectThatMasqueradesAsUndefined.h: | 
 |         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): | 
 |         * runtime/StructureChain.cpp: | 
 |         (JSC::StructureChain::isCacheable): | 
 |  | 
 | 2009-10-16  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         wxMSW build fix, we can't use the simple hash there because the PlatformModuleVersion  | 
 |         structure differs. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-10-16  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Implement ExecutableAllocator for Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29946 | 
 |  | 
 |         Tested with YARR JIT enabled for Symbian;  | 
 |         This patch does not (yet) enable YARR JIT by default. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * jit/ExecutableAllocator.h: | 
 |         * jit/ExecutableAllocatorSymbian.cpp: Added. | 
 |         (JSC::ExecutableAllocator::intializePageSize): | 
 |         (JSC::ExecutablePool::systemAlloc): | 
 |         (JSC::ExecutablePool::systemRelease): | 
 |  | 
 | 2009-10-15  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Make typeinfo flags default to false | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30372 | 
 |  | 
 |         Part 2 -- Reverse the TypeInfo HasDefaultMark flag to OverridesMarkChildren, etc | 
 |  | 
 |         * API/JSCallbackConstructor.h: | 
 |         (JSC::JSCallbackConstructor::createStructure): | 
 |         * API/JSCallbackFunction.h: | 
 |         (JSC::JSCallbackFunction::createStructure): | 
 |         * API/JSCallbackObject.h: | 
 |         (JSC::JSCallbackObject::createStructure): | 
 |         * debugger/DebuggerActivation.h: | 
 |         (JSC::DebuggerActivation::createStructure): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::createStructure): | 
 |         * runtime/BooleanObject.h: | 
 |         (JSC::BooleanObject::createStructure): | 
 |         * runtime/DatePrototype.h: | 
 |         (JSC::DatePrototype::createStructure): | 
 |         * runtime/FunctionPrototype.h: | 
 |         (JSC::FunctionPrototype::createStructure): | 
 |         * runtime/GetterSetter.h: | 
 |         (JSC::GetterSetter::createStructure): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         (JSC::GlobalEvalFunction::createStructure): | 
 |         * runtime/InternalFunction.h: | 
 |         (JSC::InternalFunction::createStructure): | 
 |         * runtime/JSAPIValueWrapper.h: | 
 |         (JSC::JSAPIValueWrapper::createStructure): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::createStructure): | 
 |         * runtime/JSArray.h: | 
 |         (JSC::JSArray::createStructure): | 
 |         (JSC::MarkStack::markChildren): | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::createStructure): | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::createStructure): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::createStructure): | 
 |         * runtime/JSNotAnObject.h: | 
 |         (JSC::JSNotAnObject::createStructure): | 
 |         * runtime/JSNumberCell.h: | 
 |         (JSC::JSNumberCell::createStructure): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::createStructure): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::createStructure): | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::JSPropertyNameIterator::createStructure): | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         (JSC::JSStaticScopeObject::createStructure): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::createStructure): | 
 |         * runtime/JSTypeInfo.h: | 
 |         (JSC::TypeInfo::overridesMarkChildren): | 
 |         * runtime/JSVariableObject.h: | 
 |         (JSC::JSVariableObject::createStructure): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::createStructure): | 
 |         * runtime/MathObject.h: | 
 |         (JSC::MathObject::createStructure): | 
 |         * runtime/NumberConstructor.h: | 
 |         (JSC::NumberConstructor::createStructure): | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::createStructure): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::createStructure): | 
 |         * runtime/StringObject.h: | 
 |         (JSC::StringObject::createStructure): | 
 |         * runtime/StringObjectThatMasqueradesAsUndefined.h: | 
 |         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): | 
 |  | 
 | 2009-10-14  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Make typeinfo flags default to false | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30372 | 
 |          | 
 |         Part 1. Reverse the HasStandardGetOwnPropertySlot flag. | 
 |  | 
 |         * API/JSCallbackConstructor.h: | 
 |         (JSC::JSCallbackConstructor::createStructure): | 
 |         * API/JSCallbackFunction.h: | 
 |         (JSC::JSCallbackFunction::createStructure): | 
 |         * API/JSCallbackObject.h: | 
 |         (JSC::JSCallbackObject::createStructure): | 
 |         * debugger/DebuggerActivation.h: | 
 |         (JSC::DebuggerActivation::createStructure): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::createStructure): | 
 |         * runtime/BooleanObject.h: | 
 |         (JSC::BooleanObject::createStructure): | 
 |         * runtime/DatePrototype.h: | 
 |         (JSC::DatePrototype::createStructure): | 
 |         * runtime/FunctionPrototype.h: | 
 |         (JSC::FunctionPrototype::createStructure): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         (JSC::GlobalEvalFunction::createStructure): | 
 |         * runtime/InternalFunction.h: | 
 |         (JSC::InternalFunction::createStructure): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::createStructure): | 
 |         * runtime/JSArray.h: | 
 |         (JSC::JSArray::createStructure): | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::createStructure): | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::createStructure): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::createStructure): | 
 |         * runtime/JSNumberCell.h: | 
 |         (JSC::JSNumberCell::createStructure): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::createStructure): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::createStructure): | 
 |         (JSC::JSCell::fastGetOwnPropertySlot): | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         (JSC::JSStaticScopeObject::createStructure): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::createStructure): | 
 |         * runtime/JSTypeInfo.h: | 
 |         (JSC::TypeInfo::overridesGetOwnPropertySlot): | 
 |         * runtime/JSVariableObject.h: | 
 |         (JSC::JSVariableObject::createStructure): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::createStructure): | 
 |         * runtime/MathObject.h: | 
 |         (JSC::MathObject::createStructure): | 
 |         * runtime/NumberConstructor.h: | 
 |         (JSC::NumberConstructor::createStructure): | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::createStructure): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::createStructure): | 
 |         * runtime/StringObject.h: | 
 |         (JSC::StringObject::createStructure): | 
 |         * runtime/StringObjectThatMasqueradesAsUndefined.h: | 
 |         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): | 
 |  | 
 | 2009-10-14  Kevin Ollivier  <kevino@theolliviers.com> | 
 | 2009-10-14  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Additions so fix for https://bugs.webkit.org/show_bug.cgi?id=18994 | 
 |         can build on Windows. | 
 |  | 
 |         * wtf/MathExtras.h: Added llround and llroundf for Windows. | 
 |  | 
 | 2009-10-14  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         wx build fix. Set ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH for plugins while we're still building stubs. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-10-13  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Refactor ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30278 | 
 |  | 
 |         Move the definition of ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH | 
 |         from the make system into common code. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-10-13  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         ARM compiler does not understand reinterpret_cast<void*> | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29034 | 
 |  | 
 |         Change reinterpret_cast<void*> to regular C style (void*) cast  | 
 |         for the ARM RVCT compiler. | 
 |  | 
 |         * assembler/MacroAssemblerCodeRef.h: | 
 |         (JSC::FunctionPtr::FunctionPtr):  | 
 |         * jit/JITOpcodes.cpp: Cast to FunctionPtr first  | 
 |            instead of directly casting to reinterpret_cast | 
 |         * jit/JITStubCall.h: Ditto + change the type of m_stub | 
 |           from void* to FunctionPtr. | 
 |         (JSC::JITStubCall::JITStubCall):  | 
 |         (JSC::JITStubCall::call): | 
 |         * jit/JITStubs.cpp: Ditto. | 
 |         (JSC::DEFINE_STUB_FUNCTION(EncodedJSValue, op_throw)): | 
 |  | 
 | 2009-10-11  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Re-enable the JIT. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-10-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Support for String.trim(), String.trimLeft() and String.trimRight() methods | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26590 | 
 |  | 
 |         Implement trim, trimLeft, and trimRight | 
 |  | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::isTrimWhitespace): | 
 |            Our normal string whitespace function does not include U+200B which | 
 |            is needed for compatibility with mozilla's implementation of trim. | 
 |            U+200B does not appear to be expected according to spec, however I am | 
 |            choosing to be lax, and match mozilla behavior so have added this | 
 |            exception. | 
 |         (JSC::trimString): | 
 |  | 
 | 2009-10-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Eliminated some legacy bytecode weirdness. | 
 |          | 
 |         Use vPC[x] subscripting instead of ++vPC to access instruction operands. | 
 |         This is simpler, and often more efficient. | 
 |  | 
 |         To support this, and to remove use of hard-coded offsets in bytecode and | 
 |         JIT code generation and dumping, calculate jump offsets from the beginning | 
 |         of an instruction, rather than the middle or end. | 
 |          | 
 |         Also, use OPCODE_LENGTH instead of hard-coded constants for the sizes of | 
 |         opcodes. | 
 |          | 
 |         SunSpider reports no change in JIT mode, and a 1.01x speedup in Interpreter | 
 |         mode. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::printConditionalJump): | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitJump): | 
 |         (JSC::BytecodeGenerator::emitJumpIfTrue): | 
 |         (JSC::BytecodeGenerator::emitJumpIfFalse): | 
 |         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): | 
 |         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): | 
 |         (JSC::BytecodeGenerator::emitComplexJumpScopes): | 
 |         (JSC::BytecodeGenerator::emitJumpScopes): | 
 |         (JSC::BytecodeGenerator::emitNextPropertyName): | 
 |         (JSC::BytecodeGenerator::emitCatch): | 
 |         (JSC::BytecodeGenerator::emitJumpSubroutine): | 
 |         (JSC::prepareJumpTableForImmediateSwitch): | 
 |         (JSC::prepareJumpTableForCharacterSwitch): | 
 |         (JSC::prepareJumpTableForStringSwitch): | 
 |         (JSC::BytecodeGenerator::endSwitch): | 
 |         * bytecompiler/Label.h: | 
 |         (JSC::Label::setLocation): | 
 |         (JSC::Label::bind): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::resolve): | 
 |         (JSC::Interpreter::resolveSkip): | 
 |         (JSC::Interpreter::resolveGlobal): | 
 |         (JSC::Interpreter::resolveBase): | 
 |         (JSC::Interpreter::resolveBaseAndProperty): | 
 |         (JSC::Interpreter::createExceptionScope): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * interpreter/Interpreter.h: | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompile): | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jmp): | 
 |         (JSC::JIT::emit_op_loop): | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emitSlow_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emitSlow_op_loop_if_lesseq): | 
 |         (JSC::JIT::emit_op_loop_if_true): | 
 |         (JSC::JIT::emitSlow_op_loop_if_true): | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emitSlow_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |         (JSC::JIT::emitSlow_op_jtrue): | 
 |         (JSC::JIT::emit_op_jeq_null): | 
 |         (JSC::JIT::emit_op_jneq_null): | 
 |         (JSC::JIT::emit_op_jneq_ptr): | 
 |         (JSC::JIT::emit_op_jsr): | 
 |         (JSC::JIT::emit_op_next_pname): | 
 |         (JSC::JIT::emit_op_jmp_scopes): | 
 |  | 
 | 2009-10-09  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Migrated some code that didn't belong out of Structure. | 
 |          | 
 |         SunSpider says maybe 1.03x faster. | 
 |  | 
 |         * runtime/JSCell.h: Nixed Structure::markAggregate, and made marking of | 
 |         a Structure's prototype the direct responsility of the object using it. | 
 |         (Giving Structure a mark function was misleading because it implied that | 
 |         all live structures get marked during GC, when they don't.) | 
 |          | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::markIfNeeded): | 
 |         (JSC::JSGlobalObject::markChildren): Added code to mark prototypes stored | 
 |         on the global object. Maybe this wasn't necessary, but now we don't have | 
 |         to wonder. | 
 |  | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::getPropertyNames): | 
 |         (JSC::JSObject::getOwnPropertyNames): | 
 |         (JSC::JSObject::getEnumerableNamesFromClassInfoTable): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::markChildrenDirect): | 
 |         * runtime/PropertyNameArray.h: | 
 |         * runtime/Structure.cpp: | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::setEnumerationCache): | 
 |         (JSC::Structure::enumerationCache): Moved property name gathering code | 
 |         from Structure to JSObject because having a Structure iterate its JSObject | 
 |         was a layering violation. A JSObject is implemented using a Structure; not | 
 |         the other way around. | 
 |  | 
 | 2009-10-09  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Attempt to fix the GTK release build. | 
 |  | 
 |         * GNUmakefile.am: Include Grammar.cpp in release builds now that | 
 |         AllInOneFile.cpp is gone. | 
 |  | 
 | 2009-10-09  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Rubber-stamped by Eric Seidel. | 
 |  | 
 |         Add ARM JIT support for Gtk port (disabled by default) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30228 | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-10-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Tiger build fix: added a few more variable initializations. | 
 |  | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncReplace): | 
 |         (JSC::stringProtoFuncSearch): | 
 |  | 
 | 2009-10-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Qt build fix: added missing #include. | 
 |  | 
 |         * jsc.cpp: | 
 |  | 
 | 2009-10-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Tiger build fix: initialize variable whose initialization the compiler | 
 |         can't otherwise figure out. | 
 |  | 
 |         * runtime/RegExpObject.cpp: | 
 |         (JSC::RegExpObject::match): | 
 |  | 
 | 2009-10-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: updated exports. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-10-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Tiger build fix: fixed file name case. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-10-08  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         At long last, I pronounce the death of AllInOneFile.cpp. | 
 |          | 
 |         SunSpider reports a 1.01x speedup. | 
 |  | 
 |         * AllInOneFile.cpp: Removed. | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Added missing project files | 
 |         to compilation stages. | 
 |  | 
 |         * parser/Grammar.y: | 
 |         * parser/Lexer.cpp: | 
 |         * parser/Lexer.h: | 
 |         (JSC::jscyylex): | 
 |         * runtime/ArrayConstructor.cpp: | 
 |         (JSC::constructArrayWithSizeQuirk): | 
 |         * runtime/Collector.h: | 
 |         * runtime/JSCell.cpp: | 
 |         (JSC::JSCell::operator new): | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::operator new): | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::operator new): | 
 |         * runtime/JSNumberCell.h: | 
 |         (JSC::JSNumberCell::operator new): | 
 |         * runtime/JSString.cpp: | 
 |         * runtime/JSString.h: | 
 |         (JSC::jsString): | 
 |         (JSC::jsSubstring): | 
 |         (JSC::jsOwnedString): | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructorPrivate::RegExpConstructorPrivate): | 
 |         (JSC::RegExpConstructorPrivate::lastOvector): | 
 |         (JSC::RegExpConstructorPrivate::tempOvector): | 
 |         (JSC::RegExpConstructorPrivate::changeLastOvector): | 
 |         (JSC::RegExpConstructor::performMatch): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncMatch): | 
 |         * yarr/RegexJIT.cpp: | 
 |         * yarr/RegexJIT.h: | 
 |         (JSC::Yarr::executeRegex): Inlined a few things that Shark said | 
 |         were hot, on the presumption that AllInOneFile.cpp used to inline them | 
 |         automatically. | 
 |  | 
 | 2009-10-08  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix for JIT'ed op_call instructions (evals, constructs, etc.) | 
 |         when !ENABLE(JIT_OPTIMIZE_CALL) && USE(JSVALUE32_64) | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30201 | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |  | 
 | 2009-10-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: removed no longer exported symbol. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-10-07  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fixed <rdar://problem/5751979> Database code takes JSLock on secondary | 
 |         thread, permanently slowing down JavaScript | 
 |          | 
 |         Removed the optional lock from Heap::protect, Heap::unprotect, and friends, | 
 |         since WebCore no longer uses it. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::protect): | 
 |         (JSC::Heap::unprotect): | 
 |         (JSC::Heap::markProtectedObjects): | 
 |         (JSC::Heap::protectedGlobalObjectCount): | 
 |         (JSC::Heap::protectedObjectCount): | 
 |         (JSC::Heap::protectedObjectTypeCounts): | 
 |         * runtime/Collector.h: | 
 |  | 
 | 2009-10-07  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's IdentifierArena | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30158 | 
 |  | 
 |         Inherits IdentifierArena class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/parser/ParserArena.cpp:36. | 
 |  | 
 |         * parser/ParserArena.h: | 
 |  | 
 | 2009-10-07  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Export DateInstance::info in a way that works on Windows | 
 |  | 
 |         Fixes <http://webkit.org/b/30171> | 
 |         fast/dom/Window/window-postmessage-clone.html fails on Windows | 
 |  | 
 |         Reviewed by Anders Carlsson. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |         Removed the export of DateInstance::info from here. | 
 |  | 
 |         * runtime/DateInstance.h: Use JS_EXPORTDATA to export | 
 |         DateInstance::info, which is the required way of exporting data on | 
 |         Windows. | 
 |  | 
 | 2009-10-07  Jørgen Lind  <jorgen.lind@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         When enabling or disabling the JIT through .qmake.cache, make sure | 
 |         to also toggle ENABLE_YARR_JIT. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-10-06  Priit Laes  <plaes@plaes.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Linking fails with "relocation R_X86_64_PC32 against symbol | 
 |         `cti_vm_throw'" | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28422 | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         Mark cti_vm_throw symbol as PLT-indirect symbol, so it doesn't end up | 
 |         in text segment causing relocation errors on amd64 architecture. | 
 |         Introduced new define SYMBOL_STRING_RELOCATION for such symbols. | 
 |  | 
 | 2009-10-06  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Windows linking fix | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-10-06  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix). | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * runtime/DateInstance.cpp: | 
 |  | 
 | 2009-10-05  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         It should be possible to post (clone) built-in JS objects to Workers | 
 |         https://bugs.webkit.org/show_bug.cgi?id=22878 | 
 |  | 
 |         Expose helpers to throw correct exceptions during object graph walk | 
 |         used for cloning and add a helper function to create Date instances | 
 |         without going through the JS Date constructor function. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::DateInstance): | 
 |         * runtime/DateInstance.h: | 
 |         * runtime/ExceptionHelpers.cpp: | 
 |         (JSC::createTypeError): | 
 |         * runtime/ExceptionHelpers.h: | 
 |  | 
 | 2009-10-06  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         StringImpl needs a method to get an instance for another thread which doesn't copy the underlying buffer. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30095 | 
 |  | 
 |         * wtf/CrossThreadRefCounted.h: | 
 |         Removed an unused function and assert improvement. | 
 |         (WTF::CrossThreadRefCounted::isOwnedByCurrentThread): Moved out common code from asserts. | 
 |         (WTF::CrossThreadRefCounted::ref): Changed assert to use the common method. | 
 |         (WTF::CrossThreadRefCounted::deref): Changed assert to use the common method. | 
 |         (WTF::CrossThreadRefCounted::crossThreadCopy): Since this includes a potentially | 
 |         non-threadsafe operation, add an assert that the class is owned by the current thread. | 
 |  | 
 | 2009-10-05  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         wx build fix. Add Symbian files to the list of excludes. | 
 |  | 
 |         * wscript: | 
 |  | 
 | 2009-10-05  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Remove precompiled header from JavaScriptCore compilation to | 
 |         prevent qmake warning during autonomous compilation. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=30069 | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2009-10-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Removed the concept of a "fast access cutoff" in arrays, because it | 
 |         punished some patterns of array access too much, and made things too | 
 |         complex for inlining in some cases. | 
 |          | 
 |         1.3% speedup on SunSpider. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |         * jit/JITStubs.cpp: | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): Check m_vectorLength instead of m_fastAccessCutoff when | 
 |         getting / putting from / to an array. Inline putting past the end of | 
 |         the array. | 
 |  | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): | 
 |         (JSC::JSArray::getOwnPropertySlot): | 
 |         (JSC::JSArray::getOwnPropertyDescriptor): | 
 |         (JSC::JSArray::put): | 
 |         (JSC::JSArray::putSlowCase): | 
 |         (JSC::JSArray::deleteProperty): | 
 |         (JSC::JSArray::getOwnPropertyNames): | 
 |         (JSC::JSArray::increaseVectorLength): | 
 |         (JSC::JSArray::setLength): | 
 |         (JSC::JSArray::pop): | 
 |         (JSC::JSArray::push): | 
 |         (JSC::JSArray::sort): | 
 |         (JSC::JSArray::fillArgList): | 
 |         (JSC::JSArray::copyToRegisters): | 
 |         (JSC::JSArray::compactForSorting): | 
 |         (JSC::JSArray::checkConsistency): | 
 |         * runtime/JSArray.h: | 
 |         (JSC::JSArray::canGetIndex): | 
 |         (JSC::JSArray::canSetIndex): | 
 |         (JSC::JSArray::setIndex): | 
 |         (JSC::JSArray::markChildrenDirect): Removed m_fastAccessCutoff, and | 
 |         replaced with checks for JSValue() to detect reads and writes from / to | 
 |         uninitialized parts of the array. | 
 |  | 
 | 2009-10-02  Jonni Rainisto  <jonni.rainisto@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Math.random() gives too low values on Win32 when _CRT_RAND_S is not defined | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29956 | 
 |  | 
 |         * wtf/RandomNumber.cpp: | 
 |         (WTF::randomNumber): Added PLATFORM(WIN_OS) to handle 15bit rand() | 
 |  | 
 | 2009-10-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Take one branch instead of two to test for JSValue(). | 
 |          | 
 |         1.1% SunSpider speedup. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_create_arguments): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): Test for the empty value tag, instead | 
 |         of testing for the cell tag with a 0 payload. | 
 |  | 
 |         * runtime/JSValue.cpp: | 
 |         (JSC::JSValue::description): Added support for dumping the new empty value, | 
 |         and deleted values, in debug builds. | 
 |  | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::JSValue()): Construct JSValue() with the empty value tag. | 
 |  | 
 |         (JSC::JSValue::JSValue(JSCell*)): Convert null pointer to the empty value | 
 |         tag, to avoid having two different c++ versions of null / empty. | 
 |  | 
 |         (JSC::JSValue::operator bool): Test for the empty value tag, instead | 
 |         of testing for the cell tag with a 0 payload. | 
 |  | 
 | 2009-10-02  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=29989> | 
 |         Safari version number shouldn't be exposed in WebKit code | 
 |          | 
 |         For a WebKit version of 532.3.4: | 
 |         Product version is: 5.32.3.4 (was 4.0.3.0) | 
 |         File version is: 5.32.3.4 (was 4.532.3.4) | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: | 
 |  | 
 | 2009-10-02  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com> | 
 |  | 
 |         Rubber-stamped by Simon Hausmann. | 
 |  | 
 |         Fix the Qt on Mac OS X build. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |  | 
 | 2009-10-02  Jørgen Lind  <jorgen.lind@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Allow enabling and disabling of the JIT through a qmake variable. | 
 |  | 
 |         Qt's configure may set this variable through .qmake.cache if a | 
 |         commandline option is given and/or the compile test for hwcap.h | 
 |         failed/succeeded. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-10-01  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Fix the Tiger build.  Don't unconditionally enable 3D canvas as it is not supported on Tiger. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-10-01  Yongjun Zhang  <yongjun.zhang@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29187 | 
 |  | 
 |         Don't inline ~ListRefPtr() to work around winscw compiler forward declaration | 
 |         bug regarding templated classes. | 
 |  | 
 |         The compiler bug is reported at: | 
 |         https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812 | 
 |  | 
 |         The change will be reverted when the above bug is fixed in winscw compiler. | 
 |  | 
 |         * wtf/ListRefPtr.h: | 
 |         (WTF::::~ListRefPtr): | 
 |  | 
 | 2009-10-01  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Allow custom memory allocation control for the whole JavaScriptCore | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27029 | 
 |  | 
 |         Since in JavaScriptCore almost every class which has been instantiated by operator new is | 
 |         inherited from FastAllocBase (bug #20422), we disable customizing global operator new for the Qt-port | 
 |         when USE_SYSTEM_MALLOC=0. | 
 |  | 
 |         Add #include <unistd.h> to FastMalloc.cpp because it's used by TCMalloc_PageHeap::scavengerThread(). | 
 |         (It's needed for the functionality of TCmalloc.) | 
 |  | 
 |         Add TCSystemAlloc.cpp to JavaScriptCore.pri if USE_SYSTEM_MALLOC is disabled. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::sleep): | 
 |         * wtf/FastMalloc.h: | 
 |  | 
 | 2009-09-30  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Defines two pseudo-platforms for ARM and Thumb-2 instruction set. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29122 | 
 |  | 
 |         Introduces WTF_PLATFORM_ARM_TRADITIONAL and WTF_PLATFORM_ARM_THUMB2 | 
 |         macros on ARM platforms. The PLATFORM(ARM_THUMB2) should be used | 
 |         when Thumb-2 instruction set is the required target. The | 
 |         PLATFORM(ARM_TRADITIONAL) is for generic ARM instruction set. In | 
 |         case where the code is common the PLATFORM(ARM) have to be used. | 
 |  | 
 |         Modified by George Wright  <gwright@rim.com> to correctly work | 
 |         with the RVCT-defined __TARGET_ARCH_ARM and __TARGET_ARCH_THUMB | 
 |         compiler macros, as well as adding readability changes. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-30  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Devirtualise array toString conversion | 
 |  | 
 |         Tweak the implementation of Array.prototype.toString to have a fast path | 
 |         when acting on a true JSArray. | 
 |  | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |  | 
 | 2009-09-30  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Buildfix for platforms using JSVALUE32. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29915 | 
 |  | 
 |         After http://trac.webkit.org/changeset/48905 the build broke in JSVALUE32 case. | 
 |         Also removed unreachable code. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_add): | 
 |          - Declaration of "OperandTypes types" moved before first use. | 
 |          - Typos fixed: dst modified to result, regT2 added. | 
 |          - Unreachable code removed. | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |          - Missing declaration of "OperandTypes types" added. | 
 |  | 
 | 2009-09-30  Janne Koskinen  <janne.p.koskinen@digia.com>  | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Reduce heap size on Symbian from 64MB to 8MB. | 
 |  | 
 |         This is not a perfect fix, it requires more fine tuning. | 
 |         But this makes it possible again to debug in the emulator, | 
 |         which is more important in order to be able to fix other | 
 |         run-time issues. | 
 |  | 
 |         * runtime/Collector.h: | 
 |  | 
 | 2009-09-30  Janne Koskinen  <janne.p.koskinen@digia.com>  | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix CRASH() macro for Symbian build. | 
 |  | 
 |         * wtf/Assertions.h: Added missing } | 
 |  | 
 | 2009-09-29  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Inlined a few math operations. | 
 |          | 
 |         ~1% SunSpider speedup. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::compileBinaryArithOpSlowCase): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitSlow_op_sub): Don't take a stub call when operating on | 
 |         a constant int and a double. | 
 |  | 
 | 2009-09-28  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Tidy up codeblock sampler | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29836 | 
 |  | 
 |         Some rather simple refactoring of codeblock sampler so that | 
 |         it's easier for us to use it to find problems in non-jsc | 
 |         environments | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * bytecode/SamplingTool.h: | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::evaluateInGlobalCallFrame): | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::evaluate): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::Interpreter): | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         (JSC::Interpreter::enableSampler): | 
 |         (JSC::Interpreter::dumpSampleData): | 
 |         (JSC::Interpreter::startSampling): | 
 |         (JSC::Interpreter::stopSampling): | 
 |         * interpreter/Interpreter.h: | 
 |         (JSC::Interpreter::sampler): | 
 |         * jit/JIT.h: | 
 |         * jsc.cpp: | 
 |         (runWithScripts): | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |         * runtime/Executable.h: | 
 |         (JSC::EvalExecutable::EvalExecutable): | 
 |         (JSC::ProgramExecutable::create): | 
 |         (JSC::ProgramExecutable::ProgramExecutable): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::startSampling): | 
 |         (JSC::JSGlobalData::stopSampling): | 
 |         (JSC::JSGlobalData::dumpSampleData): | 
 |         * runtime/JSGlobalData.h: | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::globalFuncEval): | 
 |  | 
 | 2009-09-29  Jeremy Orlow  <jorlow@chromium.org> | 
 |  | 
 |         Reviewed by Dimitri Glazkov. | 
 |  | 
 |         Add GYP generated files to svn:ignore | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29895 | 
 |  | 
 |         The following files are generated by JavaScriptCore's GYP file and should be ignored: | 
 |  | 
 |         pcre.mk | 
 |         wtf.scons | 
 |         wtf.mk | 
 |         SConstruct | 
 |         wtf_config.scons | 
 |         wtf_config.mk | 
 |         pcre.scons | 
 |  | 
 |         * JavaScriptCore.gyp: Changed property svn:ignore. | 
 |  | 
 | 2009-09-29  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Standardized an optimization for adding non-numbers. | 
 |          | 
 |         SunSpider says maybe a tiny speedup. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |  | 
 | 2009-09-29  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: export a new symbol. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-28  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Removed virtual destructor from JSGlobalObjectData to eliminate pointer | 
 |         fix-ups when accessing JSGlobalObject::d. | 
 |          | 
 |         Replaced with an explicit destructor function pointer. | 
 |          | 
 |         6% speedup on bench-alloc-nonretained.js. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::~JSGlobalObject): | 
 |         (JSC::JSGlobalObject::destroyJSGlobalObjectData): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): | 
 |         (JSC::JSGlobalObject::JSGlobalObject): | 
 |  | 
 | 2009-09-29  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by David Kilzer. | 
 |  | 
 |         [Qt] Assert messages prints visible in Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29808 | 
 |  | 
 |         Asserts use vprintf to print the messages to stderr. | 
 |         In Symbian Open C it is not possible to see stderr so | 
 |         I routed the messages to stdout instead. | 
 |  | 
 |         * wtf/Assertions.cpp: | 
 |  | 
 | 2009-09-29  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         [Qt] Symbian CRASH macro implementation | 
 |  | 
 |         Added Symbian specific crash macro that | 
 |         stops to crash line if JIT debugging is used. | 
 |         Additional differentiation of access violation | 
 |         (KERN-EXEC 3) and CRASH panic. | 
 |  | 
 |         * wtf/Assertions.h: | 
 |  | 
 | 2009-09-28  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Fix the PowerPC build. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-09-28  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         <rdar://problem/7195704> JavaScriptCore fails to mark registers when built for x86_64 using LLVM GCC. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::markCurrentThreadConservatively): Force jmp_buf to use the appropriate alignment for a pointer | 
 |         to ensure that we correctly interpret the contents of registers during marking. | 
 |  | 
 | 2009-09-28  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: added new exports. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-28  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: removed exports that no longer exist. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-28  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         NotNullPassRefPtr: smart pointer optimized for passing references that are not null | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29822 | 
 |          | 
 |         Added NotNullPassRefPtr, and deployed it in all places that initialize | 
 |         JavaScript objects. | 
 |          | 
 |         2.2% speedup on bench-allocate-nonretained.js. | 
 |  | 
 |         * API/JSCallbackConstructor.cpp: | 
 |         (JSC::JSCallbackConstructor::JSCallbackConstructor): | 
 |         * API/JSCallbackConstructor.h: | 
 |         * API/JSCallbackObject.h: | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::JSCallbackObject::JSCallbackObject): | 
 |         * JavaScriptCore.exp: | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::addFunctionDecl): | 
 |         (JSC::CodeBlock::addFunctionExpr): | 
 |         * runtime/ArrayConstructor.cpp: | 
 |         (JSC::ArrayConstructor::ArrayConstructor): | 
 |         * runtime/ArrayConstructor.h: | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::ArrayPrototype::ArrayPrototype): | 
 |         * runtime/ArrayPrototype.h: | 
 |         * runtime/BooleanConstructor.cpp: | 
 |         (JSC::BooleanConstructor::BooleanConstructor): | 
 |         * runtime/BooleanConstructor.h: | 
 |         * runtime/BooleanObject.cpp: | 
 |         (JSC::BooleanObject::BooleanObject): | 
 |         * runtime/BooleanObject.h: | 
 |         * runtime/BooleanPrototype.cpp: | 
 |         (JSC::BooleanPrototype::BooleanPrototype): | 
 |         * runtime/BooleanPrototype.h: | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::DateConstructor::DateConstructor): | 
 |         * runtime/DateConstructor.h: | 
 |         * runtime/DateInstance.cpp: | 
 |         (JSC::DateInstance::DateInstance): | 
 |         * runtime/DateInstance.h: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::DatePrototype::DatePrototype): | 
 |         * runtime/DatePrototype.h: | 
 |         * runtime/ErrorConstructor.cpp: | 
 |         (JSC::ErrorConstructor::ErrorConstructor): | 
 |         * runtime/ErrorConstructor.h: | 
 |         * runtime/ErrorInstance.cpp: | 
 |         (JSC::ErrorInstance::ErrorInstance): | 
 |         * runtime/ErrorInstance.h: | 
 |         * runtime/ErrorPrototype.cpp: | 
 |         (JSC::ErrorPrototype::ErrorPrototype): | 
 |         * runtime/ErrorPrototype.h: | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::FunctionConstructor::FunctionConstructor): | 
 |         * runtime/FunctionConstructor.h: | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::FunctionPrototype::FunctionPrototype): | 
 |         * runtime/FunctionPrototype.h: | 
 |         * runtime/GlobalEvalFunction.cpp: | 
 |         (JSC::GlobalEvalFunction::GlobalEvalFunction): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         * runtime/InternalFunction.cpp: | 
 |         (JSC::InternalFunction::InternalFunction): | 
 |         * runtime/InternalFunction.h: | 
 |         (JSC::InternalFunction::InternalFunction): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::JSActivation): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::JSActivationData::JSActivationData): | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): | 
 |         * runtime/JSArray.h: | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::JSByteArray): | 
 |         * runtime/JSByteArray.h: | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::JSGlobalObject): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::JSONObject): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::JSObject): | 
 |         (JSC::JSObject::setStructure): | 
 |         * runtime/JSVariableObject.h: | 
 |         (JSC::JSVariableObject::JSVariableObject): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::JSWrapperObject): | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::MathObject::MathObject): | 
 |         * runtime/MathObject.h: | 
 |         * runtime/NativeErrorConstructor.cpp: | 
 |         (JSC::NativeErrorConstructor::NativeErrorConstructor): | 
 |         * runtime/NativeErrorConstructor.h: | 
 |         * runtime/NativeErrorPrototype.cpp: | 
 |         (JSC::NativeErrorPrototype::NativeErrorPrototype): | 
 |         * runtime/NativeErrorPrototype.h: | 
 |         * runtime/NumberConstructor.cpp: | 
 |         (JSC::NumberConstructor::NumberConstructor): | 
 |         * runtime/NumberConstructor.h: | 
 |         * runtime/NumberObject.cpp: | 
 |         (JSC::NumberObject::NumberObject): | 
 |         * runtime/NumberObject.h: | 
 |         * runtime/NumberPrototype.cpp: | 
 |         (JSC::NumberPrototype::NumberPrototype): | 
 |         * runtime/NumberPrototype.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         * runtime/ObjectConstructor.h: | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::ObjectPrototype::ObjectPrototype): | 
 |         * runtime/ObjectPrototype.h: | 
 |         * runtime/PropertyNameArray.h: | 
 |         (JSC::PropertyNameArrayData::setCachedPrototypeChain): | 
 |         * runtime/PrototypeFunction.cpp: | 
 |         (JSC::PrototypeFunction::PrototypeFunction): | 
 |         * runtime/PrototypeFunction.h: | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::RegExpConstructor::RegExpConstructor): | 
 |         * runtime/RegExpConstructor.h: | 
 |         * runtime/RegExpObject.cpp: | 
 |         (JSC::RegExpObject::RegExpObject): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::RegExpObjectData::RegExpObjectData): | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::RegExpPrototype::RegExpPrototype): | 
 |         * runtime/RegExpPrototype.h: | 
 |         * runtime/StringConstructor.cpp: | 
 |         (JSC::StringConstructor::StringConstructor): | 
 |         * runtime/StringConstructor.h: | 
 |         * runtime/StringObject.cpp: | 
 |         (JSC::StringObject::StringObject): | 
 |         * runtime/StringObject.h: | 
 |         * runtime/StringObjectThatMasqueradesAsUndefined.h: | 
 |         (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::StringPrototype::StringPrototype): | 
 |         * runtime/StringPrototype.h: | 
 |         * wtf/PassRefPtr.h: | 
 |         (WTF::NotNullPassRefPtr::NotNullPassRefPtr): | 
 |         (WTF::NotNullPassRefPtr::~NotNullPassRefPtr): | 
 |         (WTF::NotNullPassRefPtr::get): | 
 |         (WTF::NotNullPassRefPtr::clear): | 
 |         (WTF::NotNullPassRefPtr::releaseRef): | 
 |         (WTF::NotNullPassRefPtr::operator*): | 
 |         (WTF::NotNullPassRefPtr::operator->): | 
 |         (WTF::NotNullPassRefPtr::operator!): | 
 |         (WTF::NotNullPassRefPtr::operator UnspecifiedBoolType): | 
 |         * wtf/RefPtr.h: | 
 |         (WTF::RefPtr::RefPtr): | 
 |         (WTF::operator==): | 
 |  | 
 | 2009-09-28  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Hard dependency on SSE2 instruction set with JIT | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29779 | 
 |  | 
 |         Add floating point support checks to op_jfalse and op_jtrue, and | 
 |         fix the logic for the slow case of op_add | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |  | 
 | 2009-09-28  Yaar Schnitman  <yaar@chromium.org> | 
 |  | 
 |         Reviewed by Dimitri Glazkov. | 
 |  | 
 |         Chromium port - recognize we are being built independently | 
 |         of chromium and look for dependencies under webkit/chromium rather | 
 |         than chromium/src. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29722 | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: | 
 |  | 
 | 2009-09-28  Jakub Wieczorek  <faw217@gmail.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Implement XSLT support with QtXmlPatterns. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28303 | 
 |  | 
 |         * wtf/Platform.h: Add a WTF_USE_QXMLQUERY #define. | 
 |  | 
 | 2009-09-28  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Remove __clear_cache which is an internal function of GCC | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28886 | 
 |  | 
 |         Although __clear_cache is exported from GCC, this is an internal | 
 |         function. GCC makes no promises about it. | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |  | 
 | 2009-09-28  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fix an absolute path to somewhere in Oliver's machine to a relative path | 
 |         for derived JSONObject.lut.h. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-09-28  Joerg Bornemann  <joerg.bornemann@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Add ARM version detection for Windows CE. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-26  Yongjun Zhang  <yongjun.zhang@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Add MarkStackSymbian.cpp to build JavascriptCore for Symbian. | 
 |  | 
 |         Re-use Windows shrinkAllocation implementation because Symbian doesn't | 
 |         support releasing part of memory region. | 
 |          | 
 |         Use fastMalloc and fastFree to implement allocateStack and releaseStack | 
 |         for Symbian port. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * runtime/MarkStack.h: | 
 |         (JSC::MarkStack::MarkStackArray::shrinkAllocation): | 
 |         * runtime/MarkStackSymbian.cpp: Added. | 
 |         (JSC::MarkStack::initializePagesize): | 
 |         (JSC::MarkStack::allocateStack): | 
 |         (JSC::MarkStack::releaseStack): | 
 |  | 
 | 2009-09-25  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix unaligned data access in YARR_JIT on ARMv5 and below. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29695 | 
 |  | 
 |         On ARMv5 and below all data access should be naturally aligned. | 
 |         In the YARR_JIT there is a case when character pairs are | 
 |         loaded from the input string, but this data access is not | 
 |         naturally aligned. This fix introduces load32WithUnalignedHalfWords | 
 |         and branch32WithUnalignedHalfWords functions which contain | 
 |         naturally aligned memory loads - half word loads - on ARMv5 and below. | 
 |  | 
 |         * assembler/MacroAssemblerARM.cpp: | 
 |         (JSC::MacroAssemblerARM::load32WithUnalignedHalfWords): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::load32WithUnalignedHalfWords): | 
 |         (JSC::MacroAssemblerARM::branch32WithUnalignedHalfWords): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::load32WithUnalignedHalfWords): | 
 |         (JSC::MacroAssemblerARMv7::branch32): | 
 |         (JSC::MacroAssemblerARMv7::branch32WithUnalignedHalfWords): | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::load32WithUnalignedHalfWords): | 
 |         (JSC::MacroAssemblerX86Common::branch32WithUnalignedHalfWords): | 
 |         * wtf/Platform.h: | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generatePatternCharacterPair): | 
 |  | 
 | 2009-09-25  Jeremy Orlow  <jorlow@chromium.org> | 
 |  | 
 |         This is breaking Chromium try bots, so I'm counting this as a build fix. | 
 |  | 
 |         Add more svn:ignore exceptions.  On different platforms, these files are | 
 |         generated with different case for JavaScriptCore.  Also there are some | 
 |         wtf project files that get built apparently. | 
 |  | 
 |         * JavaScriptCore.gyp: Changed property svn:ignore. | 
 |  | 
 | 2009-09-25  Ada Chan  <adachan@apple.com> | 
 |  | 
 |         Build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Inlined some object creation code, including lexicalGlobalObject access | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29750 | 
 |          | 
 |         SunSpider says 0.5% faster. | 
 |          | 
 |         0.8% speedup on bench-alloc-nonretained.js. | 
 |         2.5% speedup on v8-splay.js. | 
 |  | 
 |         * interpreter/CachedCall.h: | 
 |         (JSC::CachedCall::CachedCall): | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::lexicalGlobalObject): | 
 |         (JSC::ExecState::globalThisValue): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::dumpRegisters): | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::constructFunction): | 
 |         * runtime/ScopeChain.cpp: | 
 |         (JSC::ScopeChainNode::print): | 
 |         * runtime/ScopeChain.h: | 
 |         (JSC::ScopeChainNode::ScopeChainNode): | 
 |         (JSC::ScopeChainNode::~ScopeChainNode): | 
 |         (JSC::ScopeChainNode::push): | 
 |         (JSC::ScopeChain::ScopeChain): | 
 |         (JSC::ScopeChain::globalObject): Added a globalObject data member to ScopeChainNode. | 
 |         Replaced accessor function for globalObject() with data member. Replaced | 
 |         globalThisObject() accessor with direct access to globalThis, to match. | 
 |  | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::init): | 
 |         * runtime/JSGlobalObject.h: Inlined array and object construction. | 
 |  | 
 | 2009-09-25  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add ARM version detection rules for Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29715 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-24  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Reviewed by Mark "Do It!" Rowe. | 
 |  | 
 |         Some GCC versions don't like C++-style comments in preprocessor | 
 |         directives, change to C-style to shut them up. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-24  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Division is needlessly slow in 64-bit | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29723 | 
 |  | 
 |         Add codegen for op_div on x86-64 | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::compileBinaryArithOpSlowCase): | 
 |         (JSC::JIT::emit_op_div): | 
 |         (JSC::JIT::emitSlow_op_div): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::isOperandConstantImmediateDouble): | 
 |         (JSC::JIT::addressFor): | 
 |         (JSC::JIT::emitLoadDouble): | 
 |         (JSC::JIT::emitLoadInt32ToDouble): | 
 |         (JSC::JIT::emitJumpSlowCaseIfNotImmediateNumber): | 
 |  | 
 | 2009-09-24  Jeremy Orlow  <jorlow@chromium.org> | 
 |  | 
 |         Reviewed by Dimitri Glazkov. | 
 |  | 
 |         Add GYP generated files to svn:ignore | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29724 | 
 |  | 
 |         Adding the following files to the svn:ignore list (all in the | 
 |         JavaScriptCore/JavaScriptCore.gyp directory) | 
 |  | 
 |         JavaScriptCore.xcodeproj | 
 |         JavaScriptCore.sln | 
 |         JavaScriptCore.vcproj | 
 |         JavaScriptCore_Debug.rules | 
 |         JavaScriptCore_Release.rules | 
 |         JavaScriptCore_Release - no tcmalloc.rules | 
 |         JavaScriptCore_Purify.rules | 
 |         JavaScriptCore.mk | 
 |         JavaScriptCore_Debug_rules.mk | 
 |         JavaScriptCore_Release_rules.mk | 
 |         JavaScriptCore_Release - no tcmalloc_rules.mk | 
 |         JavaScriptCore_Purify_rules.mk | 
 |         JavaScriptCore.scons | 
 |         JavaScriptCore_main.scons | 
 |  | 
 |         * JavaScriptCore.gyp: Changed property svn:ignore. | 
 |  | 
 | 2009-09-24  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Replace platform-dependent code with WTF::currentTime() | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29148 | 
 |  | 
 |         * jsc.cpp: | 
 |         (StopWatch::start): | 
 |         (StopWatch::stop): | 
 |         (StopWatch::getElapsedMS): | 
 |         * runtime/TimeoutChecker.cpp: | 
 |         (JSC::getCPUTime): | 
 |  | 
 | 2009-09-24  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         <rdar://problem/7215058> FastMalloc scavenging thread should be named | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::scavengerThread): Set the thread name. | 
 |         * wtf/Platform.h: Move the knowledge of whether pthread_setname_np exists to here as HAVE(PTHREAD_SETNAME_NP). | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |         (WTF::setThreadNameInternal): Use HAVE(PTHREAD_SETNAME_NP). | 
 |  | 
 | 2009-09-24  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Renamed clear to removeAll, as suggested by Darin Adler. | 
 |  | 
 |         * wtf/HashCountedSet.h: | 
 |         (WTF::::removeAll): | 
 |  | 
 | 2009-09-24  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix FastMalloc to build with assertions enabled. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans): | 
 |         * wtf/TCSpinLock.h: | 
 |         (TCMalloc_SpinLock::IsHeld): | 
 |  | 
 | 2009-09-24  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Suggested by Darin Adler. | 
 |  | 
 |         Removed some unnecessary parameter names. | 
 |  | 
 |         * wtf/HashCountedSet.h: | 
 |  | 
 | 2009-09-24  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         On Windows JSChar is typedef'ed to wchar_t. | 
 |  | 
 |         When building with WINSCW for Symbian we need to do the | 
 |         same typedef. | 
 |  | 
 |         * API/JSStringRef.h: | 
 |  | 
 | 2009-09-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         A piece of my last patch that I forgot. | 
 |  | 
 |         * wtf/HashCountedSet.h: | 
 |         (WTF::::clear): Added HashCountedSet::clear. | 
 |  | 
 | 2009-09-24  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Avoid __clear_cache built-in function if DISABLE_BUILTIN_CLEAR_CACHE define is set | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28886 | 
 |  | 
 |         There are some GCC packages (for example GCC-2006q3 from CodeSourcery) | 
 |         which contain __clear_cache built-in function only for C while the C++ | 
 |         version of __clear_cache is missing on ARM architectures. | 
 |  | 
 |         Fixed a small bug in the inline assembly of cacheFlush function on | 
 |         ARM_TRADITIONAL. | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |  | 
 | 2009-09-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Added the ability to swap vectors with inline capacities, so you can | 
 |         store a vector with inline capacity in a hash table. | 
 |  | 
 |         * wtf/Vector.h: | 
 |         (WTF::swap): | 
 |         (WTF::VectorBuffer::swap): | 
 |  | 
 | 2009-09-23  David Kilzer  <ddkilzer@apple.com> | 
 |  | 
 |         Move definition of USE(PLUGIN_HOST_PROCESS) from WebKitPrefix.h to Platform.h | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         * wtf/Platform.h: Define WTF_USE_PLUGIN_HOST_PROCESS to 1 when | 
 |         building on 64-bit SnowLeopard.  Define to 0 elsewhere. | 
 |  | 
 | 2009-09-22  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Code sampling builds are broken. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29662 | 
 |  | 
 |         Fix build. | 
 |  | 
 |         * bytecode/EvalCodeCache.h: | 
 |         (JSC::EvalCodeCache::get): | 
 |         * bytecode/SamplingTool.cpp: | 
 |         (JSC::ScriptSampleRecord::sample): | 
 |         (JSC::SamplingTool::doRun): | 
 |         (JSC::SamplingTool::notifyOfScope): | 
 |         (JSC::compareScriptSampleRecords): | 
 |         (JSC::SamplingTool::dump): | 
 |         * bytecode/SamplingTool.h: | 
 |         (JSC::ScriptSampleRecord::ScriptSampleRecord): | 
 |         (JSC::ScriptSampleRecord::~ScriptSampleRecord): | 
 |         (JSC::SamplingTool::SamplingTool): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         (JSC::BytecodeGenerator::emitNewFunction): | 
 |         (JSC::BytecodeGenerator::emitNewFunctionExpression): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::makeFunction): | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::evaluateInGlobalCallFrame): | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::evaluate): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ScopeNode::ScopeNode): | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::fromGlobalCode): | 
 |         * runtime/Executable.h: | 
 |         (JSC::ScriptExecutable::ScriptExecutable): | 
 |         (JSC::EvalExecutable::EvalExecutable): | 
 |         (JSC::EvalExecutable::create): | 
 |         (JSC::ProgramExecutable::ProgramExecutable): | 
 |         (JSC::FunctionExecutable::create): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::globalFuncEval): | 
 |  | 
 | 2009-09-22  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         * wtf/Forward.h: Added PassOwnPtr. | 
 |  | 
 | 2009-09-22  Yaar Schnitman  <yaar@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Ported chromium.org's javascriptcore.gyp for the webkit chromium port. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29617 | 
 |  | 
 |         * JavaScriptCore.gyp/JavaScriptCore.gyp: Added. | 
 |  | 
 | 2009-09-22  Thiago Macieira  <thiago.macieira@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix compilation with WINSCW: no varargs macros | 
 |  | 
 |         Disable variadic arguments for WINSCW just like we do | 
 |         for MSVC7. | 
 |  | 
 |         * wtf/Assertions.h: | 
 |  | 
 | 2009-09-22  Kent Hansen  <khansen@trolltech.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Disable variadic macros on MSVC7. | 
 |  | 
 |         This was originally added in r26589 but not extended | 
 |         when LOG_DISABLED/ASSERT_DISABLED was introduced. | 
 |  | 
 |         * wtf/Assertions.h: | 
 |  | 
 | 2009-09-22  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Unreviewed build fix for Windows CE < 5 | 
 |  | 
 |         Define WINCEBASIC to disable the IsDebuggerPresent() code in | 
 |         wtf/Assertions.cpp. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-09-22  Joerg Bornemann  <joerg.bornemann@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix major memory leak in JavaScriptCore RegisterFile on Windows CE | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29367 | 
 |  | 
 |         On Widows CE we must decommit all committed pages before we release | 
 |         them. See VirtualFree documentation. | 
 |         Desktop Windows behaves much smoother in this situation. | 
 |  | 
 |         * interpreter/RegisterFile.cpp: | 
 |         (JSC::RegisterFile::~RegisterFile): | 
 |  | 
 | 2009-09-21  Greg Bolsinga  <bolsinga@apple.com> | 
 |  | 
 |         Reviewed by Simon Fraser & Sam Weinig. | 
 |  | 
 |         Add ENABLE(ORIENTATION_EVENTS) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29508 | 
 |  | 
 |         * wtf/Platform.h: Also sort PLATFORM(IPHONE) #defines. | 
 |  | 
 | 2009-09-21  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [Fix] SourceCode's uninitialized member | 
 |          | 
 |         Potential source of crashes and bugs was fixed. Default constructor | 
 |         didn't initialized m_provider member. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29364 | 
 |  | 
 |         * parser/SourceCode.h: | 
 |         (JSC::SourceCode::SourceCode): | 
 |  | 
 | 2009-09-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         REGRESSION (r48582): Crash in StructureStubInfo::initPutByIdTransition when reloading trac.webkit.org | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29599 | 
 |  | 
 |         It is unsafe to attempt to cache new property transitions on | 
 |         dictionaries of any type. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCachePutByID): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |  | 
 | 2009-09-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         RS=Maciej Stachowiak. | 
 |  | 
 |         Re-land SNES fix with corrected assertion. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::resolveGlobal): | 
 |         (JSC::Interpreter::tryCachePutByID): | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/BatchedTransitionOptimizer.h: | 
 |         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::removeDirect): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): | 
 |         (JSC::Structure::getEnumerablePropertyNames): | 
 |         (JSC::Structure::despecifyDictionaryFunction): | 
 |         (JSC::Structure::addPropertyTransitionToExistingStructure): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::removePropertyTransition): | 
 |         (JSC::Structure::toDictionaryTransition): | 
 |         (JSC::Structure::toCacheableDictionaryTransition): | 
 |         (JSC::Structure::toUncacheableDictionaryTransition): | 
 |         (JSC::Structure::fromDictionaryTransition): | 
 |         (JSC::Structure::removePropertyWithoutTransition): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::isDictionary): | 
 |         (JSC::Structure::isUncacheableDictionary): | 
 |         (JSC::Structure::): | 
 |         * runtime/StructureChain.cpp: | 
 |         (JSC::StructureChain::isCacheable): | 
 |  | 
 | 2009-09-21  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Revert r48573, as it caused many assertion failures | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         * jit/JITStubs.cpp: | 
 |         * runtime/BatchedTransitionOptimizer.h: | 
 |         * runtime/JSObject.cpp: | 
 |         * runtime/Structure.cpp: | 
 |         * runtime/Structure.h: | 
 |         * runtime/StructureChain.cpp: | 
 |  | 
 | 2009-09-21  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Unreviewed make dist build fix. Missing files. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-09-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam 'Cabin Boy' Weinig. | 
 |  | 
 |         Fix stack alignment with ARM THUMB2 JIT. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29526 | 
 |          | 
 |         Stack is currently being decremented by 0x3c, bump this to 0x40 to make this a | 
 |         multiple of 16 bytes. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |         * jit/JITStubs.h: | 
 |  | 
 | 2009-09-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         SNES is too slow | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29534 | 
 |  | 
 |         The problem was that the emulator used multiple classes with | 
 |         more properties than our dictionary cutoff allowed, this resulted | 
 |         in more or less all critical logic inside the emulator requiring | 
 |         uncached property access. | 
 |  | 
 |         Rather than simply bumping the dictionary cutoff, this patch | 
 |         recognises that there are two ways to create a "dictionary" | 
 |         structure.  Either by adding a large number of properties, or | 
 |         by removing a property.  In the case of adding properties we | 
 |         know all the existing properties will maintain their existing | 
 |         offsets, so we could cache access to those properties, if we | 
 |         know they won't be removed. | 
 |  | 
 |         To make this possible, this patch adds the logic required to | 
 |         distinguish a dictionary created by addition from one created | 
 |         by removal.  With this logic in place we can now cache access | 
 |         to objects with large numbers of properties. | 
 |  | 
 |         SNES performance improved by more than 6x. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::resolveGlobal): | 
 |         (JSC::Interpreter::tryCachePutByID): | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * runtime/BatchedTransitionOptimizer.h: | 
 |         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::removeDirect): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): | 
 |         (JSC::Structure::getEnumerablePropertyNames): | 
 |         (JSC::Structure::despecifyDictionaryFunction): | 
 |         (JSC::Structure::addPropertyTransitionToExistingStructure): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::removePropertyTransition): | 
 |         (JSC::Structure::toDictionaryTransition): | 
 |         (JSC::Structure::toCacheableDictionaryTransition): | 
 |         (JSC::Structure::toUncacheableDictionaryTransition): | 
 |         (JSC::Structure::fromDictionaryTransition): | 
 |         (JSC::Structure::removePropertyWithoutTransition): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::isDictionary): | 
 |         (JSC::Structure::isUncacheableDictionary): | 
 |         (JSC::Structure::): | 
 |         * runtime/StructureChain.cpp: | 
 |         (JSC::StructureChain::isCacheable): | 
 |  | 
 | 2009-09-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Implement ES5 Object.create function | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29524 | 
 |  | 
 |         Implement Object.create.  Very simple patch, effectively Object.defineProperties | 
 |         only creating the target object itself. | 
 |  | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         (JSC::objectConstructorCreate): | 
 |  | 
 | 2009-09-19  Dan Bernstein  <mitz@apple.com> | 
 |  | 
 |         Fix clean debug builds. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-19  Joerg Bornemann  <joerg.bornemann@nokia.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         QtWebKit Windows CE compile fix | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29379 | 
 |  | 
 |         There is no _aligned_alloc or _aligned_free on Windows CE. | 
 |         We just use the Windows code that was there before and use VirtualAlloc. | 
 |         But that also means that the BLOCK_SIZE must be 64K as this function | 
 |         allocates on 64K boundaries. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::allocateBlock): | 
 |         (JSC::Heap::freeBlock): | 
 |         * runtime/Collector.h: | 
 |  | 
 | 2009-09-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Implement ES5 Object.defineProperties function | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29522 | 
 |  | 
 |         Implement Object.defineProperties.  Fairly simple patch, simply makes use of | 
 |         existing functionality used for defineProperty. | 
 |  | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         (JSC::defineProperties): | 
 |         (JSC::objectConstructorDefineProperties): | 
 |  | 
 | 2009-09-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Windows build fix part2 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Buildfix). | 
 |  | 
 |         Windows build fix part 1. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-18  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Implement ES5 Object.defineProperty function | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29503 | 
 |  | 
 |         Implement Object.defineProperty.  This requires adding the API to | 
 |         ObjectConstructor, along with a helper function that implements the | 
 |         ES5 internal [[ToPropertyDescriptor]] function.  It then adds | 
 |         JSObject::defineOwnProperty that implements the appropriate ES5 semantics. | 
 |         Currently defineOwnProperty uses a delete followed by a put to redefine | 
 |         attributes of a property, clearly this is less efficient than it could be | 
 |         but we can improve this if it needs to be possible in future. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * debugger/DebuggerActivation.cpp: | 
 |         (JSC::DebuggerActivation::defineGetter): | 
 |         (JSC::DebuggerActivation::defineSetter): | 
 |         * debugger/DebuggerActivation.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |           Update defineGetter/Setter calls | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::getOwnPropertySlot): | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::defineGetter): | 
 |         (JSC::JSGlobalObject::defineSetter): | 
 |         * runtime/JSGlobalObject.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::defineGetter): | 
 |         (JSC::JSObject::defineSetter): | 
 |         (JSC::putDescriptor): | 
 |         (JSC::JSObject::defineOwnProperty): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         (JSC::objectConstructorGetOwnPropertyDescriptor): | 
 |         (JSC::toPropertyDescriptor): | 
 |         (JSC::objectConstructorDefineProperty): | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::objectProtoFuncDefineGetter): | 
 |         (JSC::objectProtoFuncDefineSetter): | 
 |         * runtime/PropertyDescriptor.cpp: | 
 |         (JSC::PropertyDescriptor::writable): | 
 |         (JSC::PropertyDescriptor::enumerable): | 
 |         (JSC::PropertyDescriptor::configurable): | 
 |         (JSC::PropertyDescriptor::isDataDescriptor): | 
 |         (JSC::PropertyDescriptor::isGenericDescriptor): | 
 |         (JSC::PropertyDescriptor::isAccessorDescriptor): | 
 |         (JSC::PropertyDescriptor::getter): | 
 |         (JSC::PropertyDescriptor::setter): | 
 |         (JSC::PropertyDescriptor::setDescriptor): | 
 |         (JSC::PropertyDescriptor::setAccessorDescriptor): | 
 |         (JSC::PropertyDescriptor::setWritable): | 
 |         (JSC::PropertyDescriptor::setEnumerable): | 
 |         (JSC::PropertyDescriptor::setConfigurable): | 
 |         (JSC::PropertyDescriptor::setSetter): | 
 |         (JSC::PropertyDescriptor::setGetter): | 
 |         (JSC::PropertyDescriptor::equalTo): | 
 |         (JSC::PropertyDescriptor::attributesEqual): | 
 |         (JSC::PropertyDescriptor::attributesWithOverride): | 
 |         * runtime/PropertyDescriptor.h: | 
 |         (JSC::PropertyDescriptor::PropertyDescriptor): | 
 |         (JSC::PropertyDescriptor::value): | 
 |         (JSC::PropertyDescriptor::setValue): | 
 |         (JSC::PropertyDescriptor::isEmpty): | 
 |         (JSC::PropertyDescriptor::writablePresent): | 
 |         (JSC::PropertyDescriptor::enumerablePresent): | 
 |         (JSC::PropertyDescriptor::configurablePresent): | 
 |         (JSC::PropertyDescriptor::setterPresent): | 
 |         (JSC::PropertyDescriptor::getterPresent): | 
 |         (JSC::PropertyDescriptor::operator==): | 
 |         (JSC::PropertyDescriptor::): | 
 |  | 
 | 2009-09-18  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Build fix to enable ARM_THUMB2 on Linux | 
 |         https://bugs.webkit.org/show_bug.cgi?id= | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |         * jit/JITStubs.cpp: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-18  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Defines two pseudo-platforms for ARM and Thumb-2 instruction set. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29122 | 
 |  | 
 |         Introduces WTF_PLATFORM_ARM_TRADITIONAL and WTF_PLATFORM_ARM_THUMB2 | 
 |         macros on ARM platforms. The PLATFORM(ARM_THUMB2) should be used | 
 |         when Thumb-2 instruction set is the required target. The | 
 |         PLATFORM(ARM_TRADITIONAL) is for generic ARM instruction set. In | 
 |         case where the code is common the PLATFORM(ARM) have to be used. | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         * assembler/ARMAssembler.h: | 
 |         * assembler/ARMv7Assembler.h: | 
 |         * assembler/MacroAssembler.h: | 
 |         * assembler/MacroAssemblerARM.cpp: | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         * assembler/MacroAssemblerCodeRef.h: | 
 |         (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): | 
 |         * jit/ExecutableAllocator.h: | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::beginUninterruptedSequence): | 
 |         (JSC::JIT::preserveReturnAddressAfterCall): | 
 |         (JSC::JIT::restoreReturnAddressBeforeReturn): | 
 |         (JSC::JIT::restoreArgumentReference): | 
 |         (JSC::JIT::restoreArgumentReferenceForTrampoline): | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |         * jit/JITStubs.h: | 
 |         * wtf/Platform.h: | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateEnter): | 
 |  | 
 | 2009-09-18  Joerg Bornemann  <joerg.bornemann@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix the Qt/Windows CE build. | 
 |  | 
 |         * JavaScriptCore.pri: Build the ce_time.cpp functions from | 
 |         within Qt externally. | 
 |         * wtf/DateMath.cpp: Removed unnecessary Qt #ifdef, for the | 
 |         Qt build these functions are no external, too. | 
 |  | 
 | 2009-09-17  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Symbian/WINSCW build fox. | 
 |  | 
 |         Repeat Q_OS_WIN wchar_t hack for WINSCW, similar to | 
 |         revision 24774. | 
 |  | 
 |         WINSCW defines wchar_t, thus UChar has to be wchar_t | 
 |  | 
 |         * wtf/unicode/qt4/UnicodeQt4.h: | 
 |  | 
 | 2009-09-17  Janne Koskinen  <janne.p.koskinen@digia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Symbian/WINSCW build fix. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29186 | 
 |  | 
 |         WINSCW Template specialisation name in declaration must the be the same as in implementation. | 
 |  | 
 |         * runtime/LiteralParser.h: | 
 |  | 
 | 2009-09-15  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27060 | 
 |  | 
 |         Symbian compiler for emulator target (WINSCW) fails with | 
 |         "illegal operand" for m_attributesInPrevious in structure.ccp | 
 |         (when calling make_pair functions). | 
 |         This error is apparently due to the compiler not properly | 
 |         resolving the unsigned type of the declared bitfield. | 
 |  | 
 |         Initial patch explicitly casted m_attributesInPrevious | 
 |         to unsigned, but since bitfield optimization is not critical for | 
 |         the emulator target, this conditional change in header file | 
 |         appears to be least intrusive. | 
 |  | 
 |         * runtime/Structure.h: | 
 |  | 
 | 2009-09-16  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix GCC warnings on ARM_THUMB2 platform | 
 |  | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMThumbImmediate::countLeadingZerosPartial): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::branchTruncateDoubleToInt32): | 
 |         (JSC::MacroAssemblerARMv7::moveFixedWidthEncoding): | 
 |  | 
 | 2009-09-16  Greg Bolsinga  <bolsinga@apple.com> | 
 |  | 
 |         Add ENABLE(INSPECTOR) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29260 | 
 |  | 
 |         Reviewed by David Kilzer. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-16  Greg Bolsinga  <bolsinga@apple.com> | 
 |  | 
 |         Add ENABLE(CONTEXT_MENUS) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29225 | 
 |  | 
 |         Reviewed by David Kilzer. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-16  Benjamin C Meyer  <benjamin.meyer@torchmobile.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         The webkit stdint and stdbool headers exists because | 
 |         the compiler MSVC doesn't include them.  The check | 
 |         should not check for PLATFORM(WIN_OS) but for MSVC. | 
 |  | 
 |         * os-win32/stdbool.h: | 
 |         * os-win32/stdint.h: | 
 |  | 
 | 2009-09-16  Greg Bolsinga  <bolsinga@apple.com> | 
 |  | 
 |         Add ENABLE(DRAG_SUPPORT) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29233 | 
 |  | 
 |         Reviewed by David Kilzer. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-16  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         waf build fix after flag was moved to correct place. | 
 |  | 
 |         * wscript: | 
 |  | 
 | 2009-09-16  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Build fix for 64-bit Qt on Mac OS X | 
 |  | 
 |         * wtf/Platform.h: Use JSVALUE64 on DARWIN, not only on MAC | 
 |  | 
 | 2009-09-16  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Fix wtf/ThreadSpecific.h under Qt to free thread local objects. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29295 | 
 |  | 
 |         This is an important fix when JavaScript workers are in use, since | 
 |         unfreed ThreadGlobalDatas leak a big amount of memory (50-100k each). | 
 |         QThreadStorage calls the destructor of a given object, which is the | 
 |         ThreadSpecific::Data. Unlike pthread, Qt is object oriented, and does | 
 |         not support the calling of a static utility function when the thread | 
 |         is about to close. In this patch we call the ThreadSpecific::destroy() | 
 |         utility function from the destructor of ThreadSpecific::Data. Moreover, | 
 |         since Qt resets all thread local values to 0 before the calling of the | 
 |         appropriate destructors, we set back the pointer to its original value. | 
 |         This is necessary because the get() method of the ThreadSpecific | 
 |         object may be called during the exuction of the destructor. | 
 |  | 
 |         * wtf/ThreadSpecific.h: | 
 |         (WTF::ThreadSpecific::Data::~Data): | 
 |         (WTF::::~ThreadSpecific): | 
 |         (WTF::::set): | 
 |         (WTF::::destroy): | 
 |  | 
 | 2009-09-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Allow anonymous storage inside JSObject | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29168 | 
 |  | 
 |         Add the concept of anonymous slots to Structures so that it is | 
 |         possible to store references to values that need marking in the | 
 |         standard JSObject storage buffer.  This allows us to reduce the | 
 |         malloc overhead of some objects (by allowing them to store JS | 
 |         values in the inline storage of the object) and reduce the  | 
 |         dependence of custom mark functions (if all an objects children | 
 |         are in the standard object property storage there's no need to | 
 |         mark them manually). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::putAnonymousValue): | 
 |         (JSC::JSObject::getAnonymousValue): | 
 |         (JSC::JSObject::addAnonymousSlots): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::createStructure): | 
 |         (JSC::JSWrapperObject::JSWrapperObject): | 
 |         (JSC::JSWrapperObject::setInternalValue): | 
 |         * runtime/PropertyMapHashTable.h: | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::~Structure): | 
 |         (JSC::Structure::materializePropertyMap): | 
 |         (JSC::Structure::addAnonymousSlotsTransition): | 
 |         (JSC::Structure::copyPropertyTable): | 
 |         (JSC::Structure::put): | 
 |         (JSC::Structure::rehashPropertyMapHashTable): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::propertyStorageSize): | 
 |         (JSC::StructureTransitionTable::reifySingleTransition): | 
 |         * runtime/StructureTransitionTable.h: | 
 |         (JSC::StructureTransitionTable::TransitionTable::addSlotTransition): | 
 |         (JSC::StructureTransitionTable::TransitionTable::removeSlotTransition): | 
 |         (JSC::StructureTransitionTable::TransitionTable::getSlotTransition): | 
 |         (JSC::StructureTransitionTable::getAnonymousSlotTransition): | 
 |         (JSC::StructureTransitionTable::addAnonymousSlotTransition): | 
 |         (JSC::StructureTransitionTable::removeAnonymousSlotTransition): | 
 |  | 
 | 2009-09-15  Alex Milowski  <alex@milowski.com> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         Added the ENABLE_MATHML define to the features | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-09-15 Csaba Osztrogonac <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Build fix for windows. | 
 |  | 
 |         After http://trac.webkit.org/changeset/47795 the MinGW build broke, | 
 |         because MinGW has __mingw_aligned_malloc instead of _aligned_malloc. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::allocateBlock): MinGW case added. | 
 |         (JSC::Heap::freeBlock): MinGW case added. | 
 |  | 
 | 2009-09-15  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Build fix for Windows/MinGW | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29268 | 
 |  | 
 |         * wtf/Platform.h: JSVALUE32_64 temporarily disabled on PLATFORM(WIN_OS) with COMPILER(MINGW) | 
 |  | 
 | 2009-09-14  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Detect VFP at runtime in generic ARM port on Linux platform. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29076 | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * assembler/MacroAssemblerARM.cpp: Added. | 
 |         (JSC::isVFPPresent): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::supportsFloatingPoint): | 
 |  | 
 | 2009-09-14  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         [Qt] Build fix for windows build. | 
 |  | 
 |         * JavaScriptCore.pri: Correct a logic error. | 
 |         * pcre/dftables: Add missing paranthesis for tmpdir function. | 
 |  | 
 | 2009-09-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Build fix for windows exports (again). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Build fix for windows exports. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Correct fix for non-allinonefile builds | 
 |  | 
 |         * runtime/ObjectConstructor.cpp: | 
 |  | 
 | 2009-09-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Fix non-allinonefile builds | 
 |  | 
 |         * runtime/ObjectConstructor.cpp: | 
 |  | 
 | 2009-09-12  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         [ES5] Implement Object.keys | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29170 | 
 |  | 
 |         This patch basically requires two separate steps, the first is to split getPropertyNames | 
 |         into two functions -- getOwnPropertyNames and getPropertyNames, basically making them behave | 
 |         in the same way as getOwnPropertySlot and getPropertySlot.  In essence getOwnPropertyNames | 
 |         produces the list of properties on an object excluding its prototype chain and getPropertyNames | 
 |         just iterates the the object and its prototype chain calling getOwnPropertyNames at each level. | 
 |  | 
 |         * API/JSCallbackObject.h: | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::getOwnPropertyNames): | 
 |         * JavaScriptCore.exp: | 
 |         * debugger/DebuggerActivation.cpp: | 
 |         (JSC::DebuggerActivation::getOwnPropertyNames): | 
 |         * debugger/DebuggerActivation.h: | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::getOwnPropertyNames): | 
 |         * runtime/JSArray.h: | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::getOwnPropertyNames): | 
 |         * runtime/JSByteArray.h: | 
 |         * runtime/JSNotAnObject.cpp: | 
 |         (JSC::JSNotAnObject::getOwnPropertyNames): | 
 |         * runtime/JSNotAnObject.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::getOwnPropertyNames): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSVariableObject.cpp: | 
 |         (JSC::JSVariableObject::getOwnPropertyNames): | 
 |         * runtime/JSVariableObject.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         (JSC::objectConstructorKeys): | 
 |         * runtime/RegExpMatchesArray.h: | 
 |         (JSC::RegExpMatchesArray::getOwnPropertyNames): | 
 |         * runtime/StringObject.cpp: | 
 |         (JSC::StringObject::getOwnPropertyNames): | 
 |         * runtime/StringObject.h: | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::getOwnEnumerablePropertyNames): | 
 |         (JSC::Structure::getEnumerablePropertyNames): | 
 |         * runtime/Structure.h: | 
 |  | 
 | 2009-09-11  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         getPropertyNames caching is invalid when the prototype chain contains objects with custom getPropertyNames | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29214 | 
 |  | 
 |         Add a flag to TypeInfo to indicate whether a type overrides getPropertyNames. | 
 |         This flag is used to make sure that caching of the property name data is safe. | 
 |  | 
 |         * API/JSCallbackConstructor.h: | 
 |         (JSC::JSCallbackConstructor::createStructure): | 
 |         * debugger/DebuggerActivation.h: | 
 |         (JSC::DebuggerActivation::createStructure): | 
 |         * runtime/BooleanObject.h: | 
 |         (JSC::BooleanObject::createStructure): | 
 |         * runtime/DatePrototype.h: | 
 |         (JSC::DatePrototype::createStructure): | 
 |         * runtime/FunctionPrototype.h: | 
 |         (JSC::FunctionPrototype::createStructure): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::createStructure): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::createStructure): | 
 |         * runtime/JSTypeInfo.h: | 
 |         (JSC::TypeInfo::hasDefaultGetPropertyNames): | 
 |         * runtime/JSVariableObject.h: | 
 |         (JSC::JSVariableObject::createStructure): | 
 |         * runtime/JSWrapperObject.h: | 
 |         (JSC::JSWrapperObject::createStructure): | 
 |         * runtime/MathObject.h: | 
 |         (JSC::MathObject::createStructure): | 
 |         * runtime/NumberConstructor.h: | 
 |         (JSC::NumberConstructor::createStructure): | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::createStructure): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::createStructure): | 
 |         * runtime/StructureChain.cpp: | 
 |         (JSC::StructureChain::isCacheable): | 
 |  | 
 | 2009-09-11  Alexey Proskuryakov  <ap@webkit.org> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29207 | 
 |         Add checks for using WebCore JS context on secondary threads | 
 |  | 
 |         * runtime/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData): | 
 |         * runtime/JSGlobalData.h: | 
 |         Added a new mainThreadOnly flag that WebCore would set. | 
 |  | 
 |         * runtime/Collector.cpp: (JSC::Heap::registerThread): JSC API methods always call this, | 
 |         so this is a good place to check that the API isn't used form a wrong thread. | 
 |  | 
 | 2009-09-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Compiling JavaScriptCore on sparc 64 with gcc fails. | 
 |  | 
 |         ThreadSafeShared uses the atomic __gnu_cxx::__exchange_and_add with an int, | 
 |         however on sparc 64 the _Atomic_word argument is typedefed to long (8 bytes). | 
 |  | 
 |         The patch disables WTF_USE_LOCKFREE_THREADSAFESHARED in ThreadSafeShared to use | 
 |         a mutex instead when compiling for sparc 64 with gcc. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29175 | 
 |  | 
 |         * wtf/Platform.h: | 
 |         __sparc64__ is not defined on all OS. | 
 |         Uses instead: __sparc__ && __arch64__ || __sparcv9 | 
 |         * wtf/Threading.h: | 
 |  | 
 | 2009-09-11  Prasanth Ullattil  <prasanth.ullattil@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix compile error on Windows7(64Bit) with latest SDK. | 
 |  | 
 |         Added the missing include file. | 
 |  | 
 |         * runtime/UString.cpp: | 
 |  | 
 | 2009-09-11  Joerg Bornemann  <joerg.bornemann@trolltech.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Qt/Windows CE compile fix, include the executable allocator and | 
 |         markstack implementation in the windows build. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-09-08  John Abd-El-Malek  <jam@chromium.org> | 
 |  | 
 |         Reviewed by Dimitri Glazkov. | 
 |  | 
 |         Remove unneeded define for ActiveX. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29054 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-10  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Rubber-stamped by Sam Weinig. | 
 |  | 
 |         Update JavaScriptCore and WebKit's FeatureDefines.xcconfig so that they are in sync with WebCore as they need to be. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-09-10  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Export WTF::tryFastMalloc used in WebSocketChannel. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28038 | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Make StructureTransitionTable use an enum for the PtrAndFlags member | 
 |         used for the single transition slot optimisation. | 
 |  | 
 |         * runtime/StructureTransitionTable.h: | 
 |         (JSC::StructureTransitionTable::StructureTransitionTable): | 
 |         (JSC::StructureTransitionTable::usingSingleTransitionSlot): | 
 |         (JSC::StructureTransitionTable::): | 
 |  | 
 | 2009-09-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Refactor StructureTransitionTable and Structure to unify handling of the single slot optimization | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29141 | 
 |  | 
 |         Make StructureTransitionTable encapsulate the single transition slot optimization. | 
 |  | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::Structure): | 
 |         (JSC::Structure::~Structure): | 
 |         (JSC::Structure::addPropertyTransitionToExistingStructure): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::addPropertyWithoutTransition): | 
 |         (JSC::Structure::removePropertyWithoutTransition): | 
 |         (JSC::Structure::hasTransition): | 
 |         * runtime/Structure.h: | 
 |         (JSC::StructureTransitionTable::contains): | 
 |         (JSC::StructureTransitionTable::get): | 
 |         (JSC::StructureTransitionTable::hasTransition): | 
 |         (JSC::StructureTransitionTable::reifySingleTransition): | 
 |         * runtime/StructureTransitionTable.h: | 
 |         (JSC::StructureTransitionTable::StructureTransitionTable): | 
 |         (JSC::StructureTransitionTable::~StructureTransitionTable): | 
 |         (JSC::StructureTransitionTable::remove): | 
 |         (JSC::StructureTransitionTable::add): | 
 |         (JSC::StructureTransitionTable::table): | 
 |         (JSC::StructureTransitionTable::singleTransition): | 
 |         (JSC::StructureTransitionTable::usingSingleTransitionSlot): | 
 |         (JSC::StructureTransitionTable::setSingleTransition): | 
 |         (JSC::StructureTransitionTable::setTransitionTable): | 
 |         (JSC::StructureTransitionTable::): | 
 |         * wtf/PtrAndFlags.h: | 
 |         (WTF::PtrAndFlags::PtrAndFlags): | 
 |  | 
 | 2009-09-10  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Implement fastDeleteSkippingDestructor for FastAllocBase and fastDeleteAllValues for HashSet | 
 |         https://bugs.webkit.org/show_bug.cgi?id=25930 | 
 |  | 
 |         FastAllocBase has been extended with fastDeleteSkippingDestructor function which | 
 |         releases memory without destructor call. fastDeleteAllValues has been implemented  | 
 |         similar as deleteAllValues but it uses fastDelete function to release memory. | 
 |  | 
 |         * wtf/FastAllocBase.h: | 
 |         (WTF::fastDeleteSkippingDestructor): | 
 |         * wtf/HashSet.h: | 
 |         (WTF::fastDeleteAllValues): | 
 |  | 
 | 2009-09-10  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         ARM compiler does not understand GCC visibility attribute | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29079 | 
 |  | 
 |         * API/JSBase.h: Make the test more specific to hit only | 
 |         the GCC compiler | 
 |  | 
 | 2009-09-10  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Unreviewed revert of the previous change.  It broke the tests. | 
 |  | 
 |         * wtf/dtoa.cpp: | 
 |         (WTF::dtoa): | 
 |  | 
 | 2009-09-10  Ben Laurie  <benl@google.com> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26836> | 
 |  | 
 |         If dtoa was given a small buffer and the number was either infinite or | 
 |         NaN, then the buffer would be overflowed. | 
 |  | 
 |         * wtf/dtoa.cpp: | 
 |  | 
 | 2009-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Change reinterpret_cast to static_cast in r48212. | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |  | 
 | 2009-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Remove WTF_PLATFORM_FORCE_PACK as it is no longer used | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29066 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Ariya Hidayat. | 
 |  | 
 |         Implement flushing the instruction cache for Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29075 | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): Call IMB_Range to flush | 
 |         the instruction cache on Symbian | 
 |  | 
 | 2009-09-09  Kent Hansen  <khansen@trolltech.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29024 | 
 |         Make JavaScriptCore compile on platforms with case-insensitive file systems and typeinfo.h in STL | 
 |  | 
 |         These platforms include Microsoft Visual Studio 2003, and Symbian with Metrowerks compiler. | 
 |  | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSTypeInfo.h: Copied from JavaScriptCore/runtime/TypeInfo.h. | 
 |         * runtime/Structure.h: | 
 |         * runtime/TypeInfo.h: Removed. | 
 |  | 
 | 2009-09-08  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         JSON.stringify(Date) loses the milliseconds information | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29063 | 
 |  | 
 |         Make sure we include milliseconds in the output of toISOString. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::dateProtoFuncToISOString): | 
 |  | 
 | 2009-09-08  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         wx build fix, generate derived sources earlier in order to make sure | 
 |         they're found by the build system when generating the list of sources to build. | 
 |  | 
 |         * wscript: | 
 |  | 
 | 2009-09-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Build fix when USE(LOCKFREE_THREADSAFESHARED) is not defined | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29011 | 
 |  | 
 |         * wtf/Threading.h: Use LOCKFREE_THREADSAFESHARED guard for  | 
 |         atomicIncrement and atomicDecrement | 
 |  | 
 | 2009-09-07  Zoltan Horvath  <zoltan@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control in Yarr's RegexInterpreter | 
 |         https://bugs.webkit.org/show_bug.cgi?id=29025 | 
 |  | 
 |         Inherits RegexInterpreter classes from FastAllocBase (bug #20422), which has | 
 |         been instantiated by 'new': | 
 |  | 
 |         class ByteDisjunction | 
 |         -> instantiated in JavaScriptCore/yarr/RegexInterpreter.cpp:1462 | 
 |  | 
 |         struct BytecodePattern | 
 |         -> instantiated in JavaScriptCore/yarr/RegexInterpreter.cpp:1279 | 
 |  | 
 |         * yarr/RegexInterpreter.h: | 
 |  | 
 | 2009-09-07  Drew Wilson  <atwilson@google.com> | 
 |  | 
 |         Reverting r48121 to fix Windows build errors. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-09-07  Drew Wilson  <atwilson@google.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Enable SHARED_WORKERS by default | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28959 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-09-07  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Export WTF::tryFastMalloc used in WebSocketChannel. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28038 | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-09-04  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Fix windows export files | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-09-04  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         [[ToString]] conversion should use the actual toString function for String objects. | 
 |  | 
 |         Remove incorrect specialisations of toString conversions on StringObject. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/StringObject.cpp: | 
 |         * runtime/StringObject.h: | 
 |  | 
 | 2009-09-04  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Add new export. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Add new export. | 
 |  | 
 | 2009-09-04  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Remove unneeded export. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Remove unneeded export. | 
 |  | 
 | 2009-09-04  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         DateInstance object collected on ARM JIT (JSValue: WTF_USE_JSVALUE32) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28909 | 
 |  | 
 |         Part two. | 
 |  | 
 |         Make some improvements to garbage collection code: | 
 |  | 
 |             1) Create a runtime assertion that catches any classes that | 
 |                override markChildren but have the HasDefaultMark bit set. | 
 |             2) Remove checks of the mark bit outside the MarkStack::append | 
 |                function; they are redundant. | 
 |             3) Improve the efficiency of the asObject and asArray functions | 
 |                when called on JSCell* to avoid a round trip to JSValue. | 
 |             4) Make more callers use the checked asCell and asObject | 
 |                casting functions rather than unchecked casts. | 
 |             5) Removed the JSCell::marked function and other GC-related | 
 |                functions because these operations are no longer things that | 
 |                code other than the core GC code needs to do directly. Fixed | 
 |                callers that were calling them. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::markConservatively): Removed unneeded call to MarkStack::drain. | 
 |         (JSC::Heap::markProtectedObjects): Removed unneeded check of the mark | 
 |         bit and call to MarkStack::drain. | 
 |         (JSC::Heap::collect): Removed unneeded checks of the mark bit and also | 
 |         changed call to SmallStrings::mark to call markChildren instead to match | 
 |         the rest of the objects. | 
 |         (JSC::typeName): Removed unneeded cast to JSObject*. | 
 |  | 
 |         * runtime/JSArray.h: | 
 |         (JSC::asArray): Added an overload for JSCell* and changed the JSValue | 
 |         version to call it. Removed some unneeded casts. | 
 |         (JSC::JSArray::markChildrenDirect): Marked this function inline. It's in | 
 |         a header, and if not marked inline this could lead to linking problems. | 
 |         (JSC::MarkStack::markChildren): Added. This helper function is used by | 
 |         the drain function to avoid repating code. Also added the code here to | 
 |         check fro default mark violations in debug code. If a markChildren | 
 |         function adds something to the mark stack, but the type info claimed | 
 |         hasDefaultMark was true, then we will get an assertion now. Also fixed | 
 |         the assertion about the mark bit to use the Heap function directly | 
 |         because we don't have a JSCell::marked function any more. | 
 |         (JSC::MarkStack::drain): Changed a local variable from "v" to "value", | 
 |         and from "currentCell" to "cell". Changed to call markChildren in two | 
 |         places instead of repeating a chain of if statements twice. Changed | 
 |         code that reads and writes the mark bit to use Heap::isCellMarked and | 
 |         Heap::markCell so we can eliminate the JSCell::marked and | 
 |         JSCell::markCellDirect functions. | 
 |  | 
 |         * runtime/JSCell.h: Removed JSCell's markCellDirect and marked member | 
 |         functions. Added a comment explaining that asCell should be deprecated | 
 |         in favor of the JSValue asCell member function. | 
 |         (JSC::MarkStack::append): Added the assertion that catches callers | 
 |         that have set the HasDefaultMark bit incorrectly. Changed | 
 |         code that reads and writes the mark bit to use Heap::isCellMarked and | 
 |         Heap::markCell so we can eliminate the JSCell::marked and | 
 |         JSCell::markCellDirect functions. Moved the overload of | 
 |         MarkStack::append for JSValue here so it can call through to the cell | 
 |         version. The old version had a copy of all the code instead, but that | 
 |         repeated the conversion from JSValue to JSCell* and the check for | 
 |         whether a value is a cell multiple times. | 
 |         (JSC::Structure::markAggregate): Moved this function here to avoid | 
 |         dependencies for Structure.h, since this calls MarkStack::append. | 
 |  | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::markChildren): Added code to clear | 
 |         m_isCheckingForDefaultMarkViolation so the marking done by JSObject | 
 |         doesn't trigger the assertion. | 
 |  | 
 |         * runtime/JSValue.h: Moved some stray includes that were outside the | 
 |         header guard inside it. Not sure how that happened! Removed the | 
 |         GC-related member functions markChildren, hasChildren, marked, and | 
 |         markDirect. | 
 |  | 
 |         * runtime/JSWrapperObject.h: Made markChildren private. | 
 |         (JSC::JSWrapperObject::createStructure): Added. Fixes a bug where the | 
 |         HasDefaultMark bit was set. | 
 |  | 
 |         * runtime/MarkStack.h: Added m_isCheckingForDefaultMarkViolation and | 
 |         initialized it to false. Moved the append function body from here to | 
 |         JSCell.h. Added a declaration of a private markChildren function used | 
 |         inside the drain function. | 
 |  | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::SmallStrings::markChildren): Changed the name and style of this | 
 |         function to match other functions. This allows us to share the normal | 
 |         mark stack code path. | 
 |  | 
 |         * runtime/SmallStrings.h: Changed the name and interface of mark to | 
 |         the more-normal markChildren style. | 
 |  | 
 |         * runtime/Structure.h: Moved the body of markAggregate into the | 
 |         JSCell.h to avoid a circular dependency with JSCell.h. | 
 |  | 
 | 2009-09-04  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         DateInstance object collected on ARM JIT (JSValue: WTF_USE_JSVALUE32) | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28909 | 
 |  | 
 |         Part one. | 
 |  | 
 |         Make some improvements to garbage collection code: | 
 |  | 
 |             1) Fix the two classes that had the default mark bit set but | 
 |                should not. | 
 |             2) Remove checks of the mark bit outside the MarkStack::append | 
 |                function; they are redundant. | 
 |             3) Make more callers use the checked asCell and asObject | 
 |                casting functions rather than unchecked casts. | 
 |             4) Removed some GC-related functions because these operations are | 
 |                no longer things that code other than the core GC code needs | 
 |                to do directly. Fixed callers that were calling them. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::markAggregate): Removed unneeded check of the mark | 
 |         bit before calling MarkStack::append. | 
 |  | 
 |         * interpreter/Register.h: Removed unneeded marked and markChildren | 
 |         functions. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (op_eq): Removed unneeded assertions, instead using checked casting | 
 |         functions such as asObject. | 
 |  | 
 |         * runtime/ArgList.h: Added now-needed forward declaration of MarkStack. | 
 |  | 
 |         * runtime/GetterSetter.cpp: | 
 |         (JSC::GetterSetter::markChildren): Remmoved unneeded check of the mark bit. | 
 |  | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         (JSC::GlobalEvalFunction::createStructure): Added. Fixes a bug where the | 
 |         HasDefaultMark bit was set. | 
 |  | 
 |         * runtime/JSCell.cpp: | 
 |         (JSC::JSCell::getObject): Use asObject to avoid a direct static_cast. | 
 |  | 
 |         * runtime/JSObject.h: | 
 |         (JSC::asObject): Added an overload for JSCell* and changed the JSValue | 
 |         version to call it. | 
 |         (JSC::JSValue::get): Use asObject to avoid a direct static_cast. | 
 |  | 
 |         * runtime/JSWrapperObject.h: Made markChildren private. | 
 |         (JSC::JSWrapperObject::createStructure): Added. Fixes a bug where the | 
 |         HasDefaultMark bit was set. Later we may want to optimize this for | 
 |         wrapper types that never have cells in their internal values, but there | 
 |         is no measured performance regression in SunSpider or V8 doing this | 
 |         all the time. | 
 |  | 
 |         * runtime/MarkStack.cpp: Tweaked formatting. | 
 |  | 
 | 2009-09-04  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         wx build fix. Switch USE_ defines over to the compiler so that they can be | 
 |         checked by files not including config.h (like WebCorePrefix.h). | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-09-03  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Remove unnecessary dependency on unistd.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28962 | 
 |  | 
 |         * runtime/Completion.cpp: | 
 |  | 
 | 2009-09-03  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Add strnstr for Linux and Windows in StringExtras.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28901 | 
 |  | 
 |         * wtf/StringExtras.h: | 
 |         (strnstr): | 
 |  | 
 | 2009-09-03  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's HashEntry class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27830 | 
 |  | 
 |         Inherits HashEntry class from FastAllocBase because it has been | 
 |         instantiated by 'new' JavaScriptCore/runtime/Lookup.cpp:32. | 
 |  | 
 |         * runtime/Lookup.h: | 
 |  | 
 | 2009-09-02  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Should crash if JIT code buffer allocation fails. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28926 | 
 |         <rdar://problem/7031922> | 
 |  | 
 |         * jit/ExecutableAllocatorPosix.cpp: | 
 |         (JSC::ExecutablePool::systemAlloc): | 
 |         * jit/ExecutableAllocatorWin.cpp: | 
 |         (JSC::ExecutablePool::systemAlloc): | 
 |  | 
 | 2009-09-02  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         waf build fixes for Windows/MSVC. | 
 |  | 
 |         * wscript: | 
 |  | 
 | 2009-09-02  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         Build fix for building on Windows. | 
 |  | 
 |         * wtf/ThreadingPthreads.cpp: | 
 |  | 
 | 2009-09-02  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Use fastMalloc when neither MMAP nor VIRTUALALLOC are enabled | 
 |          | 
 |         RegisterFile constructor currently throws #error when both | 
 |         MMAP and VIRTUALALLOC conditions fail. | 
 |         On any platform that does not provide these features | 
 |         (for instance, Symbian), | 
 |         the fallback should be regular malloc (or fastMalloc). | 
 |         It is functionally equivalent in this case, even though it may | 
 |         have certain drawbacks such as lack of dynamic pre-allocation. | 
 |  | 
 |         * interpreter/RegisterFile.cpp: | 
 |         (JSC::RegisterFile::~RegisterFile): | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::RegisterFile): | 
 |  | 
 | 2009-08-31  Robert Agoston  <Agoston.Robert@stud.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fixed typo. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28691 | 
 |  | 
 |         * parser/Parser.h: | 
 |         (JSC::Parser::parse): | 
 |  | 
 | 2009-08-27  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         JSON Stringifier does not follow ES5 spec for handling of Number, String and Boolean objects | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28797 | 
 |  | 
 |         Fixed unwrapBoxedPrimitive to do the right thing, which necessitated a couple of new exception | 
 |         checks, and corrected the logic in gap to correctly convert Number and String objects. | 
 |  | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::unwrapBoxedPrimitive): | 
 |         (JSC::gap): | 
 |         (JSC::Stringifier::Stringifier): | 
 |         (JSC::Stringifier::appendStringifiedValue): | 
 |  | 
 | 2009-08-27  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         JSON.stringify replacer array does not accept values that are not string primitives. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28788 | 
 |  | 
 |         Update the JSON stringifier to initialise its replacer array according to the most | 
 |         recent version of the spec. | 
 |  | 
 |         * runtime/Identifier.h: | 
 |         (JSC::Identifier::from): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::Stringifier): | 
 |  | 
 | 2009-08-27  Alexey Proskuryakov  <ap@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28753 | 
 |         <rdar://problem/7173448> Excessive number of threads (and a crash) | 
 |  | 
 |         * wtf/Threading.h: (WTF::atomicIncrement): Changed atomicIncrement to match decrement | 
 |         and return the new value. Also added using directives for these functions, to match | 
 |         te rest of WTF. | 
 |  | 
 | 2009-08-27  Brent Fulgham  <bfulgham@webkit.org> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         Link the testapi against CFLite when building the WinCairo port. | 
 |  | 
 |         * JavaScriptCore.vcproj/testapi/testapi.vcproj: Add new Release_CFLite | 
 |           target.  Update all targets to inherit from either the | 
 |           JavaScriptCF.vsprops (Apple target) or the JavaScriptCFLite.vsprops | 
 |           file (WinCairo target). | 
 |         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Remove | 
 |           input file CoreFoundation.lib. This is provided by either the | 
 |           JavaScriptCF.vsprops or JavaScriptCFLite.vsprops file. | 
 |  | 
 | 2009-08-27  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |          | 
 |         Fix Windows-specific crash due to missing memory clearing call. | 
 |          | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::allocateBlock): | 
 |  | 
 | 2009-08-27  Brent Fulgham  <bfulgham@webkit.org> | 
 |  | 
 |         Build fix: JavaScriptCore_debug.def missing some exports.  Apple | 
 |         Windows build does not use this file, so it was not noticed previously. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-27  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         x86-64 GTK broken due to code offsets changing, pointers sometimes packed into immediates. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28317 | 
 |  | 
 |         Missed one, fix part II. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::move): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::CAN_SIGN_EXTEND_8_32): | 
 |  | 
 | 2009-08-27  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         JSON.stringify replacer array does not accept values that are not string primitives. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28788 | 
 |  | 
 |         Update the JSON stringifier to initialise its replacer array according to the most | 
 |         recent version of the spec. | 
 |  | 
 |         * runtime/Identifier.h: | 
 |         (JSC::Identifier::from): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::Stringifier): | 
 |  | 
 | 2009-08-27  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         JSON parser accepts trailing comma in array literals | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28779 | 
 |  | 
 |         Update parser to correctly fail if there's a trailing comma. | 
 |  | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::LiteralParser::parse): | 
 |  | 
 | 2009-08-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         'this' in JSON.parse reviver is the global object | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28752 | 
 |  | 
 |         This is a technically simple change, we merely update the code for calling | 
 |         the reviver function to pass the correct this object.  Doing so however | 
 |         exposes the holder to arbitrary mutation by the reviver function so it is | 
 |         necessary for us to now guard all property accesses against the possibility | 
 |         of failure. | 
 |  | 
 |         * runtime/JSArray.h: | 
 |           JSON needs to delete a property from the array, so we friend its  | 
 |           Walker class so that we can make a non-virtual call to the arrays | 
 |           delete and getOwnPropertySlot methods. | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Walker::callReviver): | 
 |           We need to pass the correct this object | 
 |         (JSC::Walker::walk): | 
 |           Update calls to callReviver, and update property logic logic | 
 |           to correctly handle the holder being mutated by the reviver | 
 |           function. | 
 |  | 
 | 2009-08-26  Alice Liu  <alice.liu@apple.com> | 
 |  | 
 |         Windows build fix: added some exported symbols | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-26  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: Removed some exported symbols that no longer exist. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-26  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Olliejver Hunt. | 
 |  | 
 |         x86-64 GTK broken due to code offsets changing, pointers sometimes packed into immediates. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28317 | 
 |  | 
 |         We rely on a slightly OS X specific behaviour, that x86-64 applications have a 4Gb zero page, | 
 |         so pointers are never representable as a 32-bit integer, and always have to be represented by | 
 |         a separate immediate load instruction, rather than within the immediate field of an arithmetic | 
 |         or memory operation. | 
 |  | 
 |         We explicitly check for a couple of cases where a value might be representable in 32-bit, but | 
 |         these probably never kick in on Mac OS, and only kick in to hose GTK.  Deleting these does not | 
 |         show a performance degradation on SunSpider.  Remove. | 
 |  | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         (JSC::MacroAssemblerX86_64::storePtr): | 
 |         (JSC::MacroAssemblerX86_64::branchPtr): | 
 |  | 
 | 2009-08-26  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         A bit of Collector refatoring. | 
 |          | 
 |         SunSpider says no change. v8 says 1.003x faster (1.02x faster on splay). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 |         * runtime/JSCell.cpp: | 
 |         (JSC::JSCell::toPrimitive): | 
 |         (JSC::JSCell::getPrimitiveNumber): | 
 |         (JSC::JSCell::toBoolean): | 
 |         (JSC::JSCell::toNumber): | 
 |         (JSC::JSCell::toString): | 
 |         (JSC::JSCell::toObject): Removed pure virtual functions from | 
 |         JSCell, so the collector can construct one. This allowed | 
 |         me to remove a bunch of ASSERT_NOT_REACHED throughout the | 
 |         code, too. | 
 |  | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::JSCell): ditto | 
 |         (JSC::Heap::heap): Inlined this function because it's trivial. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::destroy): | 
 |         (JSC::Heap::allocateBlock): | 
 |         (JSC::Heap::freeBlock): | 
 |         (JSC::Heap::freeBlocks): Renamed freeHeap to freeBlocks, since | 
 |         it doesn't actually free the Heap object. | 
 |         (JSC::Heap::heapAllocate): | 
 |         (JSC::Heap::sweep): | 
 |         * runtime/Collector.h: Refactored block allocation and destruction | 
 |         into helper functions. | 
 |          | 
 |         * runtime/GetterSetter.cpp: | 
 |         * runtime/JSAPIValueWrapper.cpp: | 
 |         * runtime/JSPropertyNameIterator.cpp: Removed dummy implementations | 
 |         of pure virtual functions. (See above.) | 
 |  | 
 | === End re-roll-in of r47738:47740 with Windows crash fixed === | 
 |  | 
 | 2009-08-26  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Build fix: start out with a 32-bit value to avoid a shortening warning. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::sweep): | 
 |  | 
 | 2009-08-24  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Substantially reduced VM thrash in the GC heap. | 
 |          | 
 |         1.08x faster on v8 (1.60x faster on v8-splay). | 
 |          | 
 |         1.40x faster on bench-alloc-nonretained. | 
 |          | 
 |         1.90x faster on bench-alloc-retained. | 
 |          | 
 |         SunSpider says no change. | 
 |          | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::heapAllocate): Fixed a long-standing bug: update a few local | 
 |         variables unconditionally after calling collect(), since they may be used | 
 |         even if we don't "goto scan". (In the bug I saw, usedBlocks got out of | 
 |         sync with heap.usedBlocks). | 
 |         (JSC::Heap::sweep): Keep enough free heap space to accomodate  | 
 |         the number of objects we'll allocate before the next GC, plus 25%, for | 
 |         good measure. | 
 |         * runtime/Collector.h: Bumped the block size to 256k. This seems to give | 
 |         the best cache performance, and it prevents us from initiating lots of | 
 |         VM traffic to recover very small chunks of memory. | 
 |  | 
 | === Begin re-roll-in of r47738:47740 with Windows crash fixed === | 
 |  | 
 | 2009-08-25  Drew Wilson  <atwilson@google.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         postMessage() spec now supports sending arrays of ports | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26902 | 
 |  | 
 |         Added OwnPtr to VectorTraits so we can store OwnPtrs in Vectors. | 
 |  | 
 |         * wtf/VectorTraits.h: | 
 |  | 
 | 2009-08-26  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Rubber-stamped by Gustavo Noronha. | 
 |  | 
 |         Remove duplicated files from file list. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-08-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         More export fixes. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fix). | 
 |  | 
 |         Hopefully fix all the exports from JSC on windows | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Build fixes). | 
 |  | 
 |         Forgot I added files to JavaScriptCore.  | 
 |  | 
 |         * GNUmakefile.am: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCoreSources.bkl: | 
 |  | 
 | 2009-08-25  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         [ES5] Implement getOwnPropertyDescriptor | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28724 | 
 |  | 
 |         Implement the core runtime support for getOwnPropertyDescriptor. | 
 |         This adds a virtual getOwnPropertyDescriptor method to every class | 
 |         that implements getOwnPropertySlot that shadows the behaviour of | 
 |         getOwnPropertySlot.  The alternative would be to make getOwnPropertySlot | 
 |         (or PropertySlots in general) provide property attribute information, | 
 |         but quick testing showed this to be a regression. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/Arguments.cpp: | 
 |         (JSC::Arguments::getOwnPropertyDescriptor): | 
 |         * runtime/Arguments.h: | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::ArrayPrototype::getOwnPropertyDescriptor): | 
 |         * runtime/ArrayPrototype.h: | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::DatePrototype::getOwnPropertyDescriptor): | 
 |         * runtime/DatePrototype.h: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::getOwnPropertyDescriptor): | 
 |         * runtime/JSArray.h: | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::getOwnPropertyDescriptor): | 
 |         * runtime/JSByteArray.h: | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::getOwnPropertyDescriptor): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::getOwnPropertyDescriptor): | 
 |         * runtime/JSNotAnObject.cpp: | 
 |         (JSC::JSNotAnObject::getOwnPropertyDescriptor): | 
 |         * runtime/JSNotAnObject.h: | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::JSONObject::getOwnPropertySlot): | 
 |         (JSC::JSONObject::getOwnPropertyDescriptor): | 
 |         * runtime/JSONObject.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::getOwnPropertyDescriptor): | 
 |         (JSC::JSObject::getPropertyDescriptor): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSString.cpp: | 
 |         (JSC::JSString::getStringPropertyDescriptor): | 
 |         (JSC::JSString::getOwnPropertyDescriptor): | 
 |         * runtime/JSString.h: | 
 |         * runtime/JSVariableObject.cpp: | 
 |         (JSC::JSVariableObject::symbolTableGet): | 
 |         * runtime/JSVariableObject.h: | 
 |         * runtime/Lookup.h: | 
 |         (JSC::getStaticPropertyDescriptor): | 
 |         (JSC::getStaticFunctionDescriptor): | 
 |         (JSC::getStaticValueDescriptor): | 
 |           Add property descriptor equivalents of the lookup | 
 |           table access functions | 
 |  | 
 |         * runtime/MathObject.cpp: | 
 |         (JSC::MathObject::getOwnPropertySlot): | 
 |         (JSC::MathObject::getOwnPropertyDescriptor): | 
 |         * runtime/MathObject.h: | 
 |         * runtime/NumberConstructor.cpp: | 
 |         (JSC::NumberConstructor::getOwnPropertyDescriptor): | 
 |         * runtime/NumberConstructor.h: | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         (JSC::objectConstructorGetOwnPropertyDescriptor): | 
 |         * runtime/PropertyDescriptor.cpp: Added. | 
 |         (JSC::PropertyDescriptor::writable): | 
 |         (JSC::PropertyDescriptor::enumerable): | 
 |         (JSC::PropertyDescriptor::configurable): | 
 |         (JSC::PropertyDescriptor::hasAccessors): | 
 |         (JSC::PropertyDescriptor::setUndefined): | 
 |         (JSC::PropertyDescriptor::getter): | 
 |         (JSC::PropertyDescriptor::setter): | 
 |         (JSC::PropertyDescriptor::setDescriptor): | 
 |         (JSC::PropertyDescriptor::setAccessorDescriptor): | 
 |         * runtime/PropertyDescriptor.h: Added. | 
 |         (JSC::PropertyDescriptor::PropertyDescriptor): | 
 |         (JSC::PropertyDescriptor::attributes): | 
 |         (JSC::PropertyDescriptor::isValid): | 
 |         (JSC::PropertyDescriptor::value): | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::RegExpConstructor::getOwnPropertyDescriptor): | 
 |         * runtime/RegExpConstructor.h: | 
 |         * runtime/RegExpMatchesArray.h: | 
 |         (JSC::RegExpMatchesArray::getOwnPropertyDescriptor): | 
 |         * runtime/RegExpObject.cpp: | 
 |         (JSC::RegExpObject::getOwnPropertyDescriptor): | 
 |         * runtime/RegExpObject.h: | 
 |         * runtime/StringObject.cpp: | 
 |         (JSC::StringObject::getOwnPropertyDescriptor): | 
 |         * runtime/StringObject.h: | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::StringPrototype::getOwnPropertyDescriptor): | 
 |         * runtime/StringPrototype.h: | 
 |  | 
 | 2009-08-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         How many copies of the parameters do you need? | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28701 | 
 |  | 
 |         The function parameters in JSC get copied a lot - and unnecessarily so. | 
 |  | 
 |         Originally this happened due to duplicating FunctionBodyNodes on recompilation, | 
 |         though the problem has been exacerbated by copying the parameters from the | 
 |         original function body onto the executable, then back onto the real body that | 
 |         will be generated (this happens on every function).  And this is all made worse | 
 |         since the data structures in question are a little ugly - C style arrays of C++ | 
 |         objects containing ref counts, so they need a full copy-construct (rather than | 
 |         a simple memcpy). | 
 |  | 
 |         This can all be greatly simplified by just punting the parameters off into | 
 |         their own ref-counted object, and forgoing all the copying. | 
 |  | 
 |         ~no performance change, possible slight progression. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::makeFunction): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::FunctionParameters::FunctionParameters): | 
 |         (JSC::FunctionBodyNode::FunctionBodyNode): | 
 |         (JSC::FunctionBodyNode::finishParsing): | 
 |         * parser/Nodes.h: | 
 |         (JSC::FunctionBodyNode::parameters): | 
 |         (JSC::FunctionBodyNode::parameterCount): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::~FunctionExecutable): | 
 |         (JSC::FunctionExecutable::compile): | 
 |         (JSC::FunctionExecutable::reparseExceptionInfo): | 
 |         (JSC::FunctionExecutable::fromGlobalCode): | 
 |         (JSC::FunctionExecutable::paramString): | 
 |         * runtime/Executable.h: | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         (JSC::FunctionExecutable::parameterCount): | 
 |  | 
 | 2009-08-25  Brent Fulgham  <bfulgham@webkit.org> | 
 |  | 
 |         Reviewed by NOBODY (Buildfix). | 
 |  | 
 |         * JavaScriptCore.vcproj/jsc/jsc.vcproj: Add Debug_CFLite target | 
 |           that inherits from the debug_wincairo property sheet and therefore | 
 |           links to the proper debug library. | 
 |         * JavaScriptCore.vcproj/testapi/testapi.vcproj: Add Debug_CFLite target | 
 |           that inherits from the debug_wincairo property sheet and therefore | 
 |           links to the proper debug library. | 
 |  | 
 | 2009-08-25  Chris Marrin  <cmarrin@apple.com> | 
 |  | 
 |         Reviewed by Simon Fraser. | 
 |  | 
 |         Export tryFastMalloc for Canvas3D work | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28018 | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-08-25  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         PLATFORM(CFNETWORK) should be USE(CFNETWORK). | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28713 | 
 |  | 
 |         * wtf/Platform.h: Added a #define to catch this issue in the | 
 |         future. The define would generate an error on gcc without the | 
 |         space in the expansion, but Visual C++ needs the space to cause an error. | 
 |  | 
 | 2009-08-24  Brent Fulgham  <bfulgham@webkit.org> | 
 |  | 
 |         Reviewed by Steve Falkenburg. | 
 |  | 
 |         Revise CFLite Debug build to emit DLL's with _debug label. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28695. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Modify | 
 |           Cairo debug build to inherit from new debug_cairo property sheet. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCFLite.vsprops: | 
 |           Modify to look for debug CFLite when in debug build. | 
 |  | 
 | 2009-08-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Adler & Darin Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28691 | 
 |         Do not retain ScopeNodes outside of parsing | 
 |          | 
 |         There is now no need for these to exist outside of parsing - their use in the runtime is replaced by Executable types. | 
 |  | 
 |         * bytecode/EvalCodeCache.h: | 
 |         (JSC::EvalCodeCache::get): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         (JSC::BytecodeGenerator::emitNewFunction): | 
 |         (JSC::BytecodeGenerator::emitNewFunctionExpression): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::makeFunction): | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): | 
 |         (JSC::evaluateInGlobalCallFrame): | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::evaluate): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::prepareForRepeatCall): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ScopeNodeData::ScopeNodeData): | 
 |         (JSC::ProgramNode::create): | 
 |         (JSC::EvalNode::create): | 
 |         (JSC::FunctionBodyNode::create): | 
 |         * parser/Nodes.h: | 
 |         (JSC::ScopeNode::adoptData): | 
 |         (JSC::FunctionBodyNode::parameterCount): | 
 |         * parser/Parser.cpp: | 
 |         * parser/Parser.h: | 
 |         (JSC::Parser::arena): | 
 |         (JSC::Parser::Parser): | 
 |         (JSC::Parser::parse): | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::isNumericCompareFunction): | 
 |         (JSC::arrayProtoFuncSort): | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::~FunctionExecutable): | 
 |         (JSC::EvalExecutable::compile): | 
 |         (JSC::ProgramExecutable::checkSyntax): | 
 |         (JSC::ProgramExecutable::compile): | 
 |         (JSC::FunctionExecutable::compile): | 
 |         (JSC::EvalExecutable::generateJITCode): | 
 |         (JSC::ProgramExecutable::generateJITCode): | 
 |         (JSC::FunctionExecutable::generateJITCode): | 
 |         (JSC::FunctionExecutable::reparseExceptionInfo): | 
 |         (JSC::EvalExecutable::reparseExceptionInfo): | 
 |         (JSC::FunctionExecutable::recompile): | 
 |         (JSC::FunctionExecutable::fromGlobalCode): | 
 |         (JSC::FunctionExecutable::copyParameters): | 
 |         (JSC::FunctionExecutable::paramString): | 
 |         * runtime/Executable.h: | 
 |         (JSC::ScriptExecutable::ScriptExecutable): | 
 |         (JSC::ScriptExecutable::sourceID): | 
 |         (JSC::ScriptExecutable::sourceURL): | 
 |         (JSC::ScriptExecutable::lineNo): | 
 |         (JSC::ScriptExecutable::lastLine): | 
 |         (JSC::ScriptExecutable::usesEval): | 
 |         (JSC::ScriptExecutable::usesArguments): | 
 |         (JSC::ScriptExecutable::needsActivation): | 
 |         (JSC::ScriptExecutable::recordParse): | 
 |         (JSC::EvalExecutable::bytecode): | 
 |         (JSC::EvalExecutable::jitCode): | 
 |         (JSC::ProgramExecutable::bytecode): | 
 |         (JSC::ProgramExecutable::reparseExceptionInfo): | 
 |         (JSC::ProgramExecutable::jitCode): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         (JSC::FunctionExecutable::make): | 
 |         (JSC::FunctionExecutable::bytecode): | 
 |         (JSC::FunctionExecutable::isGenerated): | 
 |         (JSC::FunctionExecutable::name): | 
 |         (JSC::FunctionExecutable::parameterCount): | 
 |         (JSC::FunctionExecutable::jitCode): | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::constructFunction): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::numericCompareFunction): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::globalFuncEval): | 
 |  | 
 | 2009-08-24  Darin Adler  <darin@apple.com> | 
 |  | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::ObjectPrototype::put): Landed revised version I had tested but forgot | 
 |         to land. Leave out the branch, since we don't need one. | 
 |  | 
 | 2009-08-24  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Array index miss case creates a string every time | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28664 | 
 |  | 
 |         SunSpider test results I saw: | 
 |  | 
 |             0.5% faster overall | 
 |             1% faster on crypto-aes | 
 |             20% faster on crypto-md5 | 
 |             13% faster on crypto-sha1 | 
 |  | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::ObjectPrototype::ObjectPrototype): Initialize m_hasNoPropertiesWithUInt32Names | 
 |         to true. | 
 |         (JSC::ObjectPrototype::put): Clearly m_hasNoPropertiesWithUInt32Names if the new | 
 |         property has a name that is the string form of a UInt32. | 
 |         (JSC::ObjectPrototype::getOwnPropertySlot): Don't call JSObject::getOwnPropertySlot | 
 |         if m_hasNoPropertiesWithUInt32Names is true, and it is highly likely to be true. | 
 |  | 
 |         * runtime/ObjectPrototype.h: Added declarations for the above. | 
 |  | 
 | 2009-08-24  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Unreviewed. Fix a typo in my distcheck build fix. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-08-23  Gustavo Noronha Silva  <gns@gnome.org> | 
 |  | 
 |         Unreviewed build fix for make distcheck. | 
 |  | 
 |         * GNUmakefile.am: Added files required for the build. | 
 |  | 
 | 2009-08-22  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         REGRESSION(r47639-r47660): Webkit crashes on launch on PowerPC | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28655 | 
 |  | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): Initialize properly with a VPtrHackExecutable. | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-22  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Fix storage leak from syntax tree arena allocation patch. | 
 |  | 
 |         * parser/Nodes.h: CommaNode needs to inherit from ParserArenaDeletable | 
 |         because it has a vector. | 
 |  | 
 | 2009-08-21  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Fix Qt build. | 
 |  | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ScopeNodeData::ScopeNodeData): Made non-inline again. | 
 |         This is used outside Nodes.cpp so can't be inline unless | 
 |         it is in the header. | 
 |  | 
 | 2009-08-21  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Two loose ends from the last commit. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Made ParserArena.h | 
 |         and create_hash_table project-internal instead of "private". | 
 |         * runtime/Executable.h: Removed accidentally-added constructor. | 
 |  | 
 | 2009-08-21  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Syntax tree nodes should use arena allocation | 
 |         https://bugs.webkit.org/show_bug.cgi?id=25674 | 
 |  | 
 |         Use an actual arena now. 0.6% speedup on SunSpider. | 
 |  | 
 |         New and improved with 100% less leaking of the universe. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |         Removed all exports involving the class FunctionBodyNode, which no | 
 |         longer needs to be used outside JavaScriptCore. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Made Nodes.h and | 
 |         Executable.h project-internal instead of "private". | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): Updated since VarStack | 
 |         contains const Identifier* now. | 
 |  | 
 |         * parser/Grammar.y: Made identifiers from the lexer be const | 
 |         Identifier* and updated since VarStack contains const Identifier* now. | 
 |  | 
 |         * parser/Lexer.cpp: | 
 |         (JSC::Lexer::setCode): Pass in ParserArena, used for identifiers. | 
 |         (JSC::Lexer::makeIdentifier): Changed return type to const Identifier* | 
 |         and changed to call ParserArena. | 
 |         (JSC::Lexer::clear): Removed the code to manage m_identifiers and | 
 |         added code to set m_arena to 0. | 
 |         * parser/Lexer.h: Updated for changes above. | 
 |  | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::ParserArenaFreeable::operator new): Added. Calls allocateFreeable | 
 |         on the arena. | 
 |         (JSC::ParserArenaDeletable::operator new): Changed to call the | 
 |         allocateDeletable function on the arena instead of deleteWithArena. | 
 |         (JSC::PropertyNode::PropertyNode): Added new constructor that makes | 
 |         numeric identifiers. Some day we might want to optimize this for | 
 |         integers so it doesn't create a string for each one. | 
 |         (JSC::ContinueNode::ContinueNode): Initialize m_ident to nullIdentifier | 
 |         since it's now a const Identifier& so it can't be left uninitialized. | 
 |         (JSC::BreakNode::BreakNode): Ditto. | 
 |         (JSC::CaseClauseNode::CaseClauseNode): Updated to use SourceElements* | 
 |         to keep track of the statements rather than a separate statement vector. | 
 |         (JSC::BlockNode::BlockNode): Ditto. | 
 |         (JSC::ForInNode::ForInNode): Initialize m_ident to nullIdentifier. | 
 |  | 
 |         * parser/Nodes.cpp: Moved the comment explaining emitBytecode in here. | 
 |         It seemed strangely out of place in the header. | 
 |         (JSC::ThrowableExpressionData::emitThrowError): Added an overload for | 
 |         UString as well as Identifier. | 
 |         (JSC::SourceElements::singleStatement): Added. | 
 |         (JSC::SourceElements::lastStatement): Added. | 
 |         (JSC::RegExpNode::emitBytecode): Changed the throwError code to use | 
 |         the substitution mechanism instead of doing a string append. | 
 |         (JSC::SourceElements::emitBytecode): Added. Replaces the old | 
 |         statementListEmitCode function, since we now keep the SourceElements | 
 |         objects around. | 
 |         (JSC::BlockNode::lastStatement): Added. | 
 |         (JSC::BlockNode::emitBytecode): Changed to use emitBytecode instead of | 
 |         statementListEmitCode. | 
 |         (JSC::CaseClauseNode::emitBytecode): Added. | 
 |         (JSC::CaseBlockNode::emitBytecodeForBlock): Changed to use emitBytecode | 
 |         instead of statementListEmitCode. | 
 |         (JSC::ScopeNodeData::ScopeNodeData): Changed to store the | 
 |         SourceElements* instead of using releaseContentsIntoVector. | 
 |         (JSC::ScopeNode::emitStatementsBytecode): Added. | 
 |         (JSC::ScopeNode::singleStatement): Added. | 
 |         (JSC::ProgramNode::emitBytecode): Call emitStatementsBytecode instead | 
 |         of statementListEmitCode. | 
 |         (JSC::EvalNode::emitBytecode): Ditto. | 
 |         (JSC::FunctionBodyNode::emitBytecode): Call emitStatementsBytecode | 
 |         insetad of statementListEmitCode and check for the return node using | 
 |         the new functions. | 
 |  | 
 |         * parser/Nodes.h: Changed VarStack to store const Identifier* instead | 
 |         of Identifier and rely on the arena to control lifetime. Added a new | 
 |         ParserArenaFreeable class. Made ParserArenaDeletable inherit from | 
 |         FastAllocBase instead of having its own operator new. Base the Node | 
 |         class on ParserArenaFreeable. Changed the various Node classes | 
 |         to use const Identifier& instead of Identifier to avoid the need to | 
 |         call their destructors and allow them to function as "freeable" in the | 
 |         arena. Removed extraneous JSC_FAST_CALL on definitions of inline functions. | 
 |         Changed ElementNode, PropertyNode, ArgumentsNode, ParameterNode, | 
 |         CaseClauseNode, ClauseListNode, and CaseBlockNode to use ParserArenaFreeable | 
 |         as a base class since they do not descend from Node. Eliminated the | 
 |         StatementVector type and instead have various classes use SourceElements* | 
 |         instead of StatementVector. This prevents those classes from having to | 
 |         use ParserArenaDeletable to make sure the vector destructor is called. | 
 |  | 
 |         * parser/Parser.cpp: | 
 |         (JSC::Parser::parse): Pass the arena to the lexer. | 
 |  | 
 |         * parser/Parser.h: Added an include of ParserArena.h, which is no longer | 
 |         included by Nodes.h. | 
 |         (JSC::Parser::parseFunctionFromGlobalCode): Changed to use the | 
 |         singleStatement function, since there is no longer any children function. | 
 |         Removed some unneeded use of RefPtr. | 
 |  | 
 |         * parser/ParserArena.cpp: | 
 |         (JSC::ParserArena::ParserArena): Added. Initializes the new members, | 
 |         m_freeableMemory, m_freeablePoolEnd, and m_identifiers. | 
 |         (JSC::ParserArena::freeablePool): Added. Computes the pool pointer, | 
 |         since we store only the current pointer and the end of pool pointer. | 
 |         (JSC::ParserArena::deallocateObjects): Added. Contains the common | 
 |         memory-deallocation logic used by both the destructor and the | 
 |         reset function. | 
 |         (JSC::ParserArena::~ParserArena): Changed to call deallocateObjects. | 
 |         (JSC::ParserArena::reset): Ditto. Also added code to zero out the | 
 |         new structures, and switched to use clear() instead of shrink(0) since | 
 |         we don't really reuse arenas. | 
 |         (JSC::ParserArena::makeNumericIdentifier): Added. | 
 |         (JSC::ParserArena::allocateFreeablePool): Added. Used when the pool | 
 |         is empty. | 
 |         (JSC::ParserArena::isEmpty): Added. No longer inline, which is fine | 
 |         since this is used only for assertions at the moment. | 
 |         (JSC::ParserArena::derefWithArena): Make non-inline. | 
 |  | 
 |         * parser/ParserArena.h: Added an actual arena of "freeable" objects, | 
 |         ones that don't need destructors to be called. Also added a separate | 
 |         IdentifierArena object, a segmented vector of identifiers that used | 
 |         to be in the Lexer. | 
 |  | 
 |         * runtime/Executable.h: Moved the definition of the | 
 |         FunctionExecutable::make function here. It can't go in JSFunction.h | 
 |         since that header has to be used outside JavaScriptCore and so can't | 
 |         include this, which includes Nodes.h. The function could be moved | 
 |         elswhere if we don't want to include JSFunction.h in this header, but | 
 |         for now this seems to be the best place. | 
 |  | 
 |         * runtime/JSFunction.h: Removed the include of Executable.h and | 
 |         definition of the FunctionExecutable::make function. | 
 |  | 
 |         * wtf/FastMalloc.cpp: Fixed an incorrect comment. | 
 |  | 
 | 2009-08-21  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Fix the non-JIT build. | 
 |  | 
 |         * runtime/Executable.cpp: | 
 |         * runtime/Executable.h: | 
 |  | 
 | 2009-08-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Speculative QuickTime build fix. | 
 |  | 
 |         * runtime/JSArray.cpp: | 
 |  | 
 | 2009-08-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Speculative QT build fix. | 
 |  | 
 |         * runtime/StringPrototype.cpp: | 
 |  | 
 | 2009-08-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Restructure Executable types so that host functions do not hold a FunctionExecutable. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28621 | 
 |  | 
 |         All JSFunction objects have a pointer to an Executable*.  This is currently always a | 
 |         FunctionExecutable, however this has a couple of drawbacks.  Host functions do not | 
 |         store a range of information that the FunctionExecutable provides (source, name, | 
 |         CodeBlock & information presently held on the FunctionBodyNode).  | 
 |  | 
 |         [ * nearly all... see below! ] | 
 |  | 
 |         Instead, make JSFunctions hold a pointer to an ExecutableBase, move fields specific | 
 |         to JS sourced executable types (source, node) into a new subclass (ScriptExecutable), | 
 |         and create a new NativeExecutable type.  We now provide a new method in JSFunction | 
 |         to access & downcast to FunctionExecutable, but in doing so we can make an early | 
 |         check (with an ASSERT) to ensure that the Executable read from a function will only | 
 |         be treated as a FunctionExecutable (and thus the JS sepcific fields will only be | 
 |         accessed) if the JSFunction is not a host function. | 
 |  | 
 |         There is one JSFunction that currently does not have an Executable, which is the | 
 |         object created to allow us to read out the vtable pointer.  By making this change | 
 |         we can also add a new Executable type fror this object (VPtrHackExecutable). | 
 |         Since this means that really all JSFunctions have an Executable we no longer have | 
 |         to null-check m_executable before us it - particularly in isHostFunction(). | 
 |  | 
 |         This patch removes CacheableEvalExecutable, since all subclasses of ExecutableBase | 
 |         can now be ref-counted - since both JSFunction holds (and ref-counts) an ExecutableBase | 
 |         that might be a FunctionExecutable or a NativeExecutable.  This does now mean that all | 
 |         ProgramExecutables and EvalExecutables (unnecessarily) provide an interface to be | 
 |         ref-counted, however this seems less-bad than host functions unnecessarily providing | 
 |         interface to access non-host specific information. | 
 |  | 
 |         The class hierarcy has changed from this: | 
 |          | 
 |         - ExecutableBase | 
 |             - ProgramExecutable | 
 |             - EvalExecutable | 
 |                 - CacheableEvalExecutable (also RefCounted by multiple-inheritance) | 
 |             - FunctionExecutable (also RefCounted by multiple-inheritance, 'special' FunctionExecutable also used for host functions) | 
 |  | 
 |         To this: | 
 |          | 
 |         - RefCounted | 
 |             - ExecutableBase | 
 |                 - NativeExecutable | 
 |                 - VPtrHackExecutable | 
 |                 - ScriptExecutable | 
 |                     - ProgramExecutable | 
 |                     - EvalExecutable | 
 |                     - FunctionExecutable | 
 |  | 
 |         This patch speeds up sunspidey by a couple of ms (presumably due to the changes to isHostFunction()). | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::ownerExecutable): | 
 |         (JSC::GlobalCodeBlock::GlobalCodeBlock): | 
 |         * bytecode/EvalCodeCache.h: | 
 |         (JSC::EvalCodeCache::get): | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): | 
 |         * interpreter/CachedCall.h: | 
 |         (JSC::CachedCall::CachedCall): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::callEval): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::createCallIdentifierFromFunctionImp): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::getArgumentsData): | 
 |         (JSC::Arguments::Arguments): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::NativeExecutable::~NativeExecutable): | 
 |         (JSC::VPtrHackExecutable::~VPtrHackExecutable): | 
 |         * runtime/Executable.h: | 
 |         (JSC::ExecutableBase::ExecutableBase): | 
 |         (JSC::ExecutableBase::~ExecutableBase): | 
 |         (JSC::ExecutableBase::isHostFunction): | 
 |         (JSC::NativeExecutable::NativeExecutable): | 
 |         (JSC::VPtrHackExecutable::VPtrHackExecutable): | 
 |         (JSC::ScriptExecutable::ScriptExecutable): | 
 |         (JSC::ScriptExecutable::source): | 
 |         (JSC::ScriptExecutable::sourceID): | 
 |         (JSC::ScriptExecutable::sourceURL): | 
 |         (JSC::ScriptExecutable::lineNo): | 
 |         (JSC::ScriptExecutable::lastLine): | 
 |         (JSC::ScriptExecutable::usesEval): | 
 |         (JSC::ScriptExecutable::usesArguments): | 
 |         (JSC::ScriptExecutable::needsActivation): | 
 |         (JSC::EvalExecutable::EvalExecutable): | 
 |         (JSC::EvalExecutable::create): | 
 |         (JSC::ProgramExecutable::ProgramExecutable): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         (JSC::JSFunction::~JSFunction): | 
 |         (JSC::JSFunction::markChildren): | 
 |         (JSC::JSFunction::getCallData): | 
 |         (JSC::JSFunction::call): | 
 |         (JSC::JSFunction::lengthGetter): | 
 |         (JSC::JSFunction::getConstructData): | 
 |         (JSC::JSFunction::construct): | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::executable): | 
 |         (JSC::JSFunction::jsExecutable): | 
 |         (JSC::JSFunction::isHostFunction): | 
 |  | 
 | 2009-08-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Browser hangs on opening Web Inspector. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28438 | 
 |  | 
 |         Code generation needs to be able to walk the entire scopechain in some | 
 |         cases, however the symbol table used by activations was a member of the | 
 |         codeblock.  Following recompilation this may no longer exist, leading | 
 |         to a crash or hang on lookup. | 
 |  | 
 |         We fix this by introducing a refcounted SymbolTable subclass, SharedSymbolTable, | 
 |         for the CodeBlocks used by function code.  This allows activations to | 
 |         maintain ownership of a copy of the symbol table even after recompilation so | 
 |         they can continue to work. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::symbolTable): | 
 |         (JSC::CodeBlock::sharedSymbolTable): | 
 |         (JSC::GlobalCodeBlock::GlobalCodeBlock): | 
 |         (JSC::FunctionCodeBlock::FunctionCodeBlock): | 
 |         (JSC::FunctionCodeBlock::~FunctionCodeBlock): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::retrieveArguments): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::EvalExecutable::generateBytecode): | 
 |         (JSC::FunctionExecutable::generateBytecode): | 
 |         (JSC::FunctionExecutable::reparseExceptionInfo): | 
 |         (JSC::EvalExecutable::reparseExceptionInfo): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::JSActivationData::JSActivationData): | 
 |         (JSC::JSActivation::JSActivationData::~JSActivationData): | 
 |         * runtime/SymbolTable.h: | 
 |  | 
 | 2009-08-20  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Add new file to GTK+ build. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-08-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Added a number => string cache. | 
 |          | 
 |         1.07x faster on v8 (1.7x faster on v8-splay). | 
 |         1.004x faster on SunSpider. | 
 |  | 
 |         * runtime/JSCell.h: Moved JSValue::toString to JSString.h. | 
 |         * runtime/JSGlobalData.h: Holds the cache. | 
 |         * runtime/JSNumberCell.cpp: | 
 |         (JSC::JSNumberCell::toString): | 
 |         (JSC::JSNumberCell::toThisString): Removed -0 special case. | 
 |         UString handles this now, since too many clients were | 
 |         special-casing it. | 
 |  | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSValue::toString): Use the cache when converting | 
 |         an int or double to string. | 
 |  | 
 |         * runtime/Operations.h: | 
 |         (JSC::concatenateStrings): Call toString to take advantage | 
 |         of the cache. | 
 |  | 
 |         * runtime/SmallStrings.h: | 
 |         (JSC::NumericStrings::add): | 
 |         (JSC::NumericStrings::lookup): The cache. | 
 |  | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::from): Added -0 special case mentioned above. | 
 |         Removed appendNumeric because it's mutually exclusive with the | 
 |         cache. | 
 |  | 
 | 2009-08-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         REGRESSION: fast/profiler/call.html is crashing occasionally | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28476 | 
 |  | 
 |         Using the codeblock for information about how many parameters and | 
 |         locals a function has is unsafe in certain circumstances.  The | 
 |         basic scenario is all function code being cleared in response to | 
 |         the debugger or profiler being enabled, and then an activation is | 
 |         marked before its associated function is re-executed. | 
 |  | 
 |         To deal with this scenario we store the variable count of a function | 
 |         directly in the FunctionExecutable, and then use that information. | 
 |  | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::getArgumentsData): | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::generateBytecode): | 
 |         * runtime/Executable.h: | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         (JSC::FunctionExecutable::variableCount): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::markChildren): | 
 |  | 
 | 2009-08-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Numbering of arguments to emitGetJITStubArg/emitPutJITStubArg incorrect | 
 |         <bug lost in the great bug disasteroony of 08/20/09!> | 
 |  | 
 |         The argumentNumber argument to emitGetJITStubArg/emitPutJITStubArg should match | 
 |         the argument number used within the stub functions in JITStubs.cpp, but it doesn't. | 
 |  | 
 |         Firstly, all the numbers changed when we added a void* 'reserved' as the first slot | 
 |         (rather than leaving argument 0 unused), and secondly in 32_64 builds the index to | 
 |         peek/poke needs to be multiplies by 2 (since the argument to peek/poke is a number | 
 |         of machine words, and on 32_64 build the argument slots to stub functions are two | 
 |         words wide). | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallSetupArgs): | 
 |         (JSC::JIT::compileOpConstructSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargsSetupArgs): | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitPutJITStubArg): | 
 |         (JSC::JIT::emitPutJITStubArgConstant): | 
 |         (JSC::JIT::emitGetJITStubArg): | 
 |         (JSC::JIT::emitPutJITStubArgFromVirtualRegister): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::privateCompilePutByIdTransition): | 
 |  | 
 | 2009-08-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         REGRESSION: significant slowdown on Celtic Kane "AJAX declaration" subtest | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28332 | 
 |  | 
 |         Follow up style fixes that were missed in review. | 
 |  | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::hasTransition): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::get): | 
 |         (JSC::StructureTransitionTable::contains): | 
 |         * runtime/StructureTransitionTable.h: | 
 |         (JSC::StructureTransitionTable::add): | 
 |  | 
 | 2009-08-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Add new exports to windows jsc build | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         REGRESSION: significant slowdown on Celtic Kane "AJAX declaration" subtest | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28332 | 
 |  | 
 |         The method check optimisation made transitions aware of the value being | 
 |         assigned when a transition was assigning a function.  This had the side | 
 |         effect of making every assignment of a function expression result in a | 
 |         new transition, and thus a new Structure.  The net result of this is that | 
 |         the common JS idiom of | 
 |  | 
 |             function MyObject() { | 
 |                 this.myFunction = function(...){...}; | 
 |             } | 
 |             new MyObject(); | 
 |  | 
 |         Will produce a unique structure on every iteration, meaning that all | 
 |         caching is defeated and there is a significant amount of structure churn. | 
 |  | 
 |         The fix is to return the transition to its original form where it is | 
 |         keyed off a property name + attributes tuple, but have each transition | 
 |         support an optional transition on a specific value. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::putDirectInternal): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::~Structure): | 
 |         (JSC::Structure::addPropertyTransitionToExistingStructure): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         (JSC::Structure::hasTransition): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::transitionedFor): | 
 |         (JSC::Structure::hasTransition): | 
 |         (JSC::Structure::): | 
 |         (JSC::StructureTransitionTable::contains): | 
 |         (JSC::StructureTransitionTable::get): | 
 |         * runtime/StructureTransitionTable.h: | 
 |         (JSC::StructureTransitionTableHashTraits::emptyValue): | 
 |         (JSC::StructureTransitionTable::hasTransition): | 
 |         (JSC::StructureTransitionTable::remove): | 
 |         (JSC::StructureTransitionTable::add): | 
 |  | 
 | 2009-08-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Remove FunctionCodeBlock. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28502 | 
 |  | 
 |         These only exist to allow JIT code to dereference properties off the | 
 |         CodeBlock for any callee, regardless of whether it is a host function. | 
 |  | 
 |         Instead just use the FunctionExecutable.  Copy the m_parameters field | 
 |         from the CodeBlock into the Executable, and use this to distinguish | 
 |         between host functions, functions that have been bytecompiled, and | 
 |         functions that have not. | 
 |  | 
 |         m_parameters is moved to ExecutableBase rather than FunctionExecutable | 
 |         so that (as a separate change) we can move make a separate class of | 
 |         executable for host code, which is not devived from FunctionExecutable | 
 |         (host code does not feature any of the properties that normal executable | 
 |         do and will provide, such as source, attributes, and a parsed name). | 
 |  | 
 |         1% win on v8 tests, 0.5% on sunspider. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::derefStructures): | 
 |         (JSC::CodeBlock::refStructures): | 
 |         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): | 
 |         (JSC::CodeBlock::handlerForBytecodeOffset): | 
 |         (JSC::CodeBlock::lineNumberForBytecodeOffset): | 
 |         (JSC::CodeBlock::expressionRangeForBytecodeOffset): | 
 |         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset): | 
 |         (JSC::CodeBlock::functionRegisterForBytecodeOffset): | 
 |         (JSC::CodeBlock::hasGlobalResolveInstructionAtBytecodeOffset): | 
 |         (JSC::CodeBlock::hasGlobalResolveInfoAtBytecodeOffset): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::): | 
 |         (JSC::CodeBlock::source): | 
 |         (JSC::CodeBlock::sourceOffset): | 
 |         (JSC::CodeBlock::evalCodeCache): | 
 |         (JSC::CodeBlock::createRareDataIfNecessary): | 
 |          | 
 |             remove NativeCodeBlocks and the NativeCode code type. | 
 |          | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::linkCall): | 
 |  | 
 |             Revert to previous behaviour (as currently still commented!) that Hhost functions have a null codeblock. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): | 
 |         (JSC::JIT::compileOpCallSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargsSetupArgs): | 
 |         (JSC::JIT::compileOpConstructSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |  | 
 |             Bring the 32_64 & non-32_64 JITs into line with each other, callee in regT0. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |  | 
 |             Rewrite call trampolines to not use the CodeBlock. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |  | 
 |             Make call_JSFunction & call_arityCheck return the callee, don't expect to be passed the CodeBlock. | 
 |  | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::FunctionExecutable::generateBytecode): | 
 |         (JSC::FunctionExecutable::recompile): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         * runtime/Executable.h: | 
 |         (JSC::ExecutableBase::): | 
 |         (JSC::ExecutableBase::ExecutableBase): | 
 |         (JSC::FunctionExecutable::isHostFunction): | 
 |  | 
 |             Add m_numParameters. | 
 |  | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::~JSFunction): | 
 |  | 
 |             Only call generatedBytecode() on JSFunctions non-host FunctionExecutables. | 
 |  | 
 | 2009-08-20  Yongjun Zhang  <yongjun.zhang@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28054 | 
 |         | 
 |         Use a helper function to work around winscw compiler forward declaration bug | 
 |         regarding templated classes. | 
 |  | 
 |         Add parenthesis around (PassRefPtr::*UnspecifiedBoolType) to make winscw compiler | 
 |         work with the default UnSpecifiedBoolType() operator, which removes the winscw | 
 |         specific bool cast hack. | 
 |  | 
 |         * wtf/PassRefPtr.h: | 
 |         (WTF::derefIfNotNull): | 
 |         (WTF::PassRefPtr::~PassRefPtr): | 
 |  | 
 | 2009-08-19  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Change namespace ARM to ARMRegisters | 
 |         X86 to X86Registers to avoid conflict with macros | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28428 | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         * assembler/ARMAssembler.h: | 
 |         * assembler/ARMv7Assembler.h: | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         * assembler/X86Assembler.h: | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         * jit/JITInlineMethods.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         * wrec/WRECGenerator.cpp: | 
 |         * wrec/WRECGenerator.h: | 
 |         * yarr/RegexJIT.cpp: | 
 |  | 
 | 2009-08-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Devirtualise marking | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28294 | 
 |  | 
 |         We actually need to mark the value in a number object if we're using the | 
 |         32bit number representation. | 
 |  | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |  | 
 | 2009-08-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |          We probably shouldn't be keeping the AST for eval nodes around forevar. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28469 | 
 |  | 
 |         EvalNodes don't destroyData() (delete their parser data) since they need to hold onto | 
 |         their varStack.  Copy a list of variable onto EvalCodeBlock, and this can go away. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::EvalCodeBlock::variable): | 
 |         (JSC::EvalCodeBlock::numVariables): | 
 |         (JSC::EvalCodeBlock::adoptVariables): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::execute): | 
 |         * parser/Nodes.h: | 
 |         * runtime/Executable.cpp: | 
 |         (JSC::EvalExecutable::generateBytecode): | 
 |         * runtime/Executable.h: | 
 |  | 
 | 2009-08-19  Jungshik Shin  <jshin@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         http://bugs.webkit.org/show_bug.cgi?id=28441 | 
 |  | 
 |         Fix a build issue with ICU 4.2 or later on Windows with Visual C++.  | 
 |         Instead of defining all isXXX and toupper/tolower as  | 
 |           WTF_Please_use_ASCIICType_instead_of_ctype_see_comment_in_ASCIICType_h, | 
 |         #define them to be different by prepending 'WTF_...ASCIIType_h' with | 
 |         the originial names like 'toupper_WTF_...ASCIIType_h'.  | 
 |  | 
 |         * wtf/DisallowCType.h: | 
 |  | 
 | 2009-08-18  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Assigning a function to an object should always use the existing transition, even if the transition is not specialized | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28442 | 
 |  | 
 |         Check for an unspecialized transition as an alternative to always failing if specialisation does not match. | 
 |  | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::addPropertyTransitionToExistingStructure): | 
 |  | 
 | 2009-08-18  Dirk Schulze  <krit@webkit.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Added additional getter to ByteArray with an unsigned char as return. | 
 |         ByteArray can take unsigned char directly now. | 
 |  | 
 |         * wtf/ByteArray.h: | 
 |         (WTF::ByteArray::set): | 
 |         (WTF::ByteArray::get): | 
 |  | 
 | 2009-08-18  Peter Kasting  <pkasting@google.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28415 | 
 |         Set svn:eol-style CRLF on all .sln and .vcproj files that don't already | 
 |         have it. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: | 
 |         * JavaScriptCore.vcproj/testapi/testapi.vcproj: | 
 |          | 
 | 2009-08-18  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Try to fix the GTK+ build. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-08-17  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         No, silly runtime, AST nodes are not for you. | 
 |  | 
 |         We still use AST nodes (ScopeNodes, particularly FunctionBodyNodes) within | 
 |         the runtime, which means that these nodes must be persisted outside of the | 
 |         arena, contain both parser & runtime data, etc.  This is all a bit of a mess. | 
 |  | 
 |         Move functionality into a new FunctionExecutable class. | 
 |  | 
 |         * API/JSCallbackFunction.cpp: | 
 |         * API/JSObjectRef.cpp: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |         (JSC::CodeBlock::markAggregate): | 
 |         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): | 
 |         (JSC::CodeBlock::lineNumberForBytecodeOffset): | 
 |         (JSC::CodeBlock::shrinkToFit): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::getBytecodeIndex): | 
 |         (JSC::CodeBlock::discardBytecode): | 
 |         (JSC::CodeBlock::instructionCount): | 
 |         (JSC::CodeBlock::getJITCode): | 
 |         (JSC::CodeBlock::executablePool): | 
 |         (JSC::CodeBlock::ownerExecutable): | 
 |         (JSC::CodeBlock::extractExceptionInfo): | 
 |         (JSC::CodeBlock::addFunctionDecl): | 
 |         (JSC::CodeBlock::functionDecl): | 
 |         (JSC::CodeBlock::numberOfFunctionDecls): | 
 |         (JSC::CodeBlock::addFunctionExpr): | 
 |         (JSC::CodeBlock::functionExpr): | 
 |         (JSC::GlobalCodeBlock::GlobalCodeBlock): | 
 |         (JSC::ProgramCodeBlock::ProgramCodeBlock): | 
 |         (JSC::EvalCodeBlock::EvalCodeBlock): | 
 |         (JSC::FunctionCodeBlock::FunctionCodeBlock): | 
 |         (JSC::NativeCodeBlock::NativeCodeBlock): | 
 |         * bytecode/EvalCodeCache.h: | 
 |         * bytecode/SamplingTool.cpp: | 
 |         (JSC::SamplingTool::doRun): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         (JSC::BytecodeGenerator::emitNewFunction): | 
 |         (JSC::BytecodeGenerator::emitNewFunctionExpression): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): | 
 |         * interpreter/CachedCall.h: | 
 |         (JSC::CachedCall::CachedCall): | 
 |         * interpreter/CallFrameClosure.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::unwindCallFrame): | 
 |         (JSC::Interpreter::throwException): | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::prepareForRepeatCall): | 
 |         (JSC::Interpreter::debug): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         (JSC::Interpreter::retrieveLastCaller): | 
 |         * interpreter/Interpreter.h: | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompile): | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compile): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::emit_op_new_func): | 
 |         (JSC::JIT::emit_op_new_func_exp): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::FunctionBodyNode::reparseDataIfNecessary): | 
 |         * parser/Nodes.h: | 
 |         (JSC::EvalNode::partialDestroyData): | 
 |         * parser/Parser.h: | 
 |         * profiler/ProfileGenerator.cpp: | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::Profiler::createCallIdentifier): | 
 |         (JSC::createCallIdentifierFromFunctionImp): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::getArgumentsData): | 
 |         (JSC::Arguments::Arguments): | 
 |         (JSC::JSActivation::copyRegisters): | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::isNumericCompareFunction): | 
 |         * runtime/CallData.h: | 
 |         (JSC::): | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::collect): | 
 |         * runtime/ConstructData.h: | 
 |         (JSC::): | 
 |         * runtime/ExceptionHelpers.cpp: | 
 |         (JSC::createUndefinedVariableError): | 
 |         (JSC::createInvalidParamError): | 
 |         (JSC::createNotAConstructorError): | 
 |         (JSC::createNotAFunctionError): | 
 |         (JSC::createNotAnObjectError): | 
 |         * runtime/Executable.cpp: Added. | 
 |         (JSC::EvalExecutable::generateBytecode): | 
 |         (JSC::ProgramExecutable::generateBytecode): | 
 |         (JSC::FunctionExecutable::generateBytecode): | 
 |         (JSC::EvalExecutable::generateJITCode): | 
 |         (JSC::ProgramExecutable::generateJITCode): | 
 |         (JSC::FunctionExecutable::generateJITCode): | 
 |         (JSC::FunctionExecutable::isHostFunction): | 
 |         (JSC::FunctionExecutable::markAggregate): | 
 |         (JSC::FunctionExecutable::reparseExceptionInfo): | 
 |         (JSC::EvalExecutable::reparseExceptionInfo): | 
 |         (JSC::FunctionExecutable::recompile): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         * runtime/Executable.h: | 
 |         (JSC::ExecutableBase::~ExecutableBase): | 
 |         (JSC::ExecutableBase::ExecutableBase): | 
 |         (JSC::ExecutableBase::source): | 
 |         (JSC::ExecutableBase::sourceID): | 
 |         (JSC::ExecutableBase::lastLine): | 
 |         (JSC::ExecutableBase::usesEval): | 
 |         (JSC::ExecutableBase::usesArguments): | 
 |         (JSC::ExecutableBase::needsActivation): | 
 |         (JSC::ExecutableBase::astNode): | 
 |         (JSC::ExecutableBase::generatedJITCode): | 
 |         (JSC::ExecutableBase::getExecutablePool): | 
 |         (JSC::EvalExecutable::EvalExecutable): | 
 |         (JSC::EvalExecutable::bytecode): | 
 |         (JSC::EvalExecutable::varStack): | 
 |         (JSC::EvalExecutable::evalNode): | 
 |         (JSC::EvalExecutable::jitCode): | 
 |         (JSC::ProgramExecutable::ProgramExecutable): | 
 |         (JSC::ProgramExecutable::reparseExceptionInfo): | 
 |         (JSC::ProgramExecutable::bytecode): | 
 |         (JSC::ProgramExecutable::programNode): | 
 |         (JSC::ProgramExecutable::jitCode): | 
 |         (JSC::FunctionExecutable::FunctionExecutable): | 
 |         (JSC::FunctionExecutable::name): | 
 |         (JSC::FunctionExecutable::bytecode): | 
 |         (JSC::FunctionExecutable::generatedBytecode): | 
 |         (JSC::FunctionExecutable::usesEval): | 
 |         (JSC::FunctionExecutable::usesArguments): | 
 |         (JSC::FunctionExecutable::parameterCount): | 
 |         (JSC::FunctionExecutable::paramString): | 
 |         (JSC::FunctionExecutable::isGenerated): | 
 |         (JSC::FunctionExecutable::body): | 
 |         (JSC::FunctionExecutable::jitCode): | 
 |         (JSC::FunctionExecutable::createNativeThunk): | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::constructFunction): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::JSActivation): | 
 |         (JSC::JSActivation::markChildren): | 
 |         (JSC::JSActivation::isDynamicScope): | 
 |         (JSC::JSActivation::argumentsGetter): | 
 |         * runtime/JSActivation.h: | 
 |         (JSC::JSActivation::JSActivationData::JSActivationData): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::isHostFunction): | 
 |         (JSC::JSFunction::JSFunction): | 
 |         (JSC::JSFunction::~JSFunction): | 
 |         (JSC::JSFunction::markChildren): | 
 |         (JSC::JSFunction::getCallData): | 
 |         (JSC::JSFunction::call): | 
 |         (JSC::JSFunction::lengthGetter): | 
 |         (JSC::JSFunction::getConstructData): | 
 |         (JSC::JSFunction::construct): | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::JSFunction::executable): | 
 |         (JSC::FunctionExecutable::make): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         (JSC::JSGlobalData::numericCompareFunction): | 
 |         * runtime/JSGlobalData.h: | 
 |  | 
 | 2009-08-17  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix 300,000+ leaks seen during the regression tests. | 
 |  | 
 |         EvalCodeCache::get was heap-allocating an EvalExecutable instance without adopting the initial reference. | 
 |         While fixing this we noticed that EvalExecutable was a RefCounted type that was sometimes stack allocated. | 
 |         To make this cleaner and to prevent clients from attempting to ref a stack-allocated instance, we move the | 
 |         refcounting down to a new CacheableEvalExecutable class that derives from EvalExecutable. EvalCodeCache::get | 
 |         now uses CacheableEvalExecutable::create and avoids the leak. | 
 |  | 
 |         * bytecode/EvalCodeCache.h: | 
 |         (JSC::EvalCodeCache::get): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::callEval): | 
 |         * runtime/Executable.h: | 
 |         (JSC::CacheableEvalExecutable::create): | 
 |         (JSC::CacheableEvalExecutable::CacheableEvalExecutable): | 
 |  | 
 | 2009-08-17  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         RS=Mark Rowe. | 
 |  | 
 |         REGRESSION (r47292): Prototype.js is broken by ES5 Arguments changes | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28341 | 
 |         <rdar://problem/7145615> | 
 |  | 
 |         Reverting r47292.  Alas Prototype.js breaks with Arguments inheriting | 
 |         from Array as ES5 attempted.  Prototype.js defines $A in terms of a  | 
 |         function it places on (among other global objects) the Array prototype, | 
 |         thus breaking $A for arrays. | 
 |  | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::Arguments): | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::reset): | 
 |         (JSC::JSGlobalObject::markChildren): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::ObjectPrototype::ObjectPrototype): | 
 |         * runtime/ObjectPrototype.h: | 
 |         * tests/mozilla/ecma_3/Function/arguments-001.js: | 
 |  | 
 | 2009-08-17  Peter Kasting  <pkasting@google.com> | 
 |  | 
 |         Reviewed by Steve Falkenburg. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27323 | 
 |         Only add Cygwin to the path when it isn't already there.  This avoids | 
 |         causing problems for people who purposefully have non-Cygwin versions of | 
 |         executables like svn in front of the Cygwin ones in their paths. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: | 
 |         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: | 
 |  | 
 | 2009-08-17  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Fix build with FAST_MALLOC_MATCH_VALIDATION enabled. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::fastMalloc): | 
 |         (WTF::fastCalloc): | 
 |         (WTF::fastRealloc): | 
 |  | 
 | 2009-08-16  Holger Hans Peter Freyther  <zecke@selfish.org> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Fix crash on ./ecma_2/RegExp/exec-002.js. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28353 | 
 |  | 
 |         Change the order of freeParenthesesDisjunctionContext and | 
 |         popParenthesesDisjunctionContext on all call sites as the pop | 
 |         method is accessing backTrack->lastContext which is the context | 
 |         that is about to be freed. | 
 |  | 
 |         * yarr/RegexInterpreter.cpp: | 
 |         (JSC::Yarr::Interpreter::parenthesesDoBacktrack): | 
 |         (JSC::Yarr::Interpreter::backtrackParentheses): | 
 |  | 
 | 2009-08-16  Holger Hans Peter Freyther  <zecke@selfish.org> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28352 | 
 |  | 
 |         Fix coding style violations. Use m_ for C++ class members. Remove | 
 |         trailing whitespace on empty lines. | 
 |  | 
 |         * yarr/RegexInterpreter.cpp: | 
 |         (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext): | 
 |         (JSC::Yarr::Interpreter::tryConsumeCharacter): | 
 |         (JSC::Yarr::Interpreter::tryConsumeBackReference): | 
 |         (JSC::Yarr::Interpreter::parenthesesDoBacktrack): | 
 |         (JSC::Yarr::Interpreter::backtrackParentheses): | 
 |         (JSC::Yarr::ByteCompiler::ByteCompiler): | 
 |         (JSC::Yarr::ByteCompiler::compile): | 
 |         (JSC::Yarr::ByteCompiler::checkInput): | 
 |         (JSC::Yarr::ByteCompiler::assertionBOL): | 
 |         (JSC::Yarr::ByteCompiler::assertionEOL): | 
 |         (JSC::Yarr::ByteCompiler::assertionWordBoundary): | 
 |         (JSC::Yarr::ByteCompiler::atomPatternCharacter): | 
 |         (JSC::Yarr::ByteCompiler::atomCharacterClass): | 
 |         (JSC::Yarr::ByteCompiler::atomBackReference): | 
 |         (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin): | 
 |         (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin): | 
 |         (JSC::Yarr::ByteCompiler::popParenthesesStack): | 
 |         (JSC::Yarr::ByteCompiler::closeAlternative): | 
 |         (JSC::Yarr::ByteCompiler::closeBodyAlternative): | 
 |         (JSC::Yarr::ByteCompiler::atomParenthesesEnd): | 
 |         (JSC::Yarr::ByteCompiler::regexBegin): | 
 |         (JSC::Yarr::ByteCompiler::alterantiveBodyDisjunction): | 
 |         (JSC::Yarr::ByteCompiler::alterantiveDisjunction): | 
 |         (JSC::Yarr::ByteCompiler::emitDisjunction): | 
 |  | 
 | 2009-08-15  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Fix the build with JIT disabled. | 
 |  | 
 |         * runtime/Arguments.h: Only compile the jitCode method when the JIT is enabled. | 
 |         * runtime/Executable.h: Include PrototypeFunction.h so the compiler knows what | 
 |         NativeFunctionWrapper is when the JIT is disabled. | 
 |  | 
 | 2009-08-15  Adam Bergkvist  <adam.bergkvist@ericsson.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Added ENABLE_EVENTSOURCE flag. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=14997 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-08-14  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         * parser/Parser.h: | 
 |         (JSC::EvalExecutable::parse): | 
 |         (JSC::ProgramExecutable::parse): | 
 |         * runtime/Executable.h: | 
 |  | 
 | 2009-08-14  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Remove AST nodes from use within the Runtime (outside of parsing), stage 1 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28330 | 
 |  | 
 |         Remove the EvalNode and ProgramNode from use in the runtime.  They still exist | 
 |         after this patch, but are hidden behind EvalExecutable and FunctionExecutable, | 
 |         and are also still reachable behind CodeBlock::m_ownerNode. | 
 |  | 
 |         The next step will be to beat back FunctionBodyNode in the same fashion. | 
 |         Then remove the usage via CodeBlock, then only construct these nodes only on | 
 |         demand during bytecode generation. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::GlobalCodeBlock::GlobalCodeBlock): | 
 |         (JSC::GlobalCodeBlock::~GlobalCodeBlock): | 
 |         (JSC::ProgramCodeBlock::ProgramCodeBlock): | 
 |         (JSC::EvalCodeBlock::EvalCodeBlock): | 
 |         (JSC::FunctionCodeBlock::FunctionCodeBlock): | 
 |         (JSC::NativeCodeBlock::NativeCodeBlock): | 
 |         * bytecode/EvalCodeCache.h: | 
 |         (JSC::EvalCodeCache::get): | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::evaluateInGlobalCallFrame): | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::evaluate): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::callEval): | 
 |         (JSC::Interpreter::execute): | 
 |         * interpreter/Interpreter.h: | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::FunctionBodyNode::createNativeThunk): | 
 |         (JSC::FunctionBodyNode::generateBytecode): | 
 |         (JSC::FunctionBodyNode::bytecodeForExceptionInfoReparse): | 
 |         * parser/Parser.h: | 
 |         (JSC::Parser::parse): | 
 |         (JSC::Parser::reparse): | 
 |         (JSC::Parser::parseFunctionFromGlobalCode): | 
 |         (JSC::::parse): | 
 |         * runtime/Completion.cpp: | 
 |         (JSC::checkSyntax): | 
 |         (JSC::evaluate): | 
 |         * runtime/Error.cpp: | 
 |         (JSC::throwError): | 
 |         * runtime/Error.h: | 
 |         * runtime/Executable.h: Added. | 
 |         (JSC::TemplateExecutable::TemplateExecutable): | 
 |         (JSC::TemplateExecutable::markAggregate): | 
 |         (JSC::TemplateExecutable::sourceURL): | 
 |         (JSC::TemplateExecutable::lineNo): | 
 |         (JSC::TemplateExecutable::bytecode): | 
 |         (JSC::TemplateExecutable::jitCode): | 
 |         (JSC::EvalExecutable::EvalExecutable): | 
 |         (JSC::ProgramExecutable::ProgramExecutable): | 
 |         * runtime/FunctionConstructor.cpp: | 
 |         (JSC::constructFunction): | 
 |         * runtime/FunctionConstructor.h: | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::numericCompareFunction): | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::~JSGlobalObject): | 
 |         (JSC::JSGlobalObject::markChildren): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::codeBlocks): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::globalFuncEval): | 
 |  | 
 | 2009-08-14  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Rename the confusing isObject(<class>) to inherits(<class>). | 
 |         It still works on non-objects, returning false. | 
 |  | 
 |         * runtime/ArrayConstructor.cpp: | 
 |         (JSC::arrayConstructorIsArray): Removed unneeded isObject call | 
 |         and updated remaining isObject call to new name, inherits. | 
 |  | 
 |         * runtime/JSCell.h: Renamed isObject(<class>) to inherits(<class>) | 
 |         but more importantly, made it non-virtual (it was already inline) | 
 |         so it is now as fast as JSObject::inherits was. | 
 |  | 
 |         * runtime/JSObject.h: Removed inherits function since the one | 
 |         in the base class is fine as-is. Also made various JSCell functions | 
 |         that should not be called on JSObject uncallable by making them | 
 |         both private and not implemented. | 
 |         (JSC::JSCell::inherits): Updated name. | 
 |         (JSC::JSValue::inherits): Ditto. | 
 |  | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::unwindCallFrame): | 
 |         * runtime/ArrayPrototype.cpp: | 
 |         (JSC::arrayProtoFuncToString): | 
 |         (JSC::arrayProtoFuncToLocaleString): | 
 |         (JSC::arrayProtoFuncConcat): | 
 |         * runtime/BooleanPrototype.cpp: | 
 |         (JSC::booleanProtoFuncToString): | 
 |         (JSC::booleanProtoFuncValueOf): | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::constructDate): | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::dateProtoFuncToString): | 
 |         (JSC::dateProtoFuncToUTCString): | 
 |         (JSC::dateProtoFuncToISOString): | 
 |         (JSC::dateProtoFuncToDateString): | 
 |         (JSC::dateProtoFuncToTimeString): | 
 |         (JSC::dateProtoFuncToLocaleString): | 
 |         (JSC::dateProtoFuncToLocaleDateString): | 
 |         (JSC::dateProtoFuncToLocaleTimeString): | 
 |         (JSC::dateProtoFuncGetTime): | 
 |         (JSC::dateProtoFuncGetFullYear): | 
 |         (JSC::dateProtoFuncGetUTCFullYear): | 
 |         (JSC::dateProtoFuncToGMTString): | 
 |         (JSC::dateProtoFuncGetMonth): | 
 |         (JSC::dateProtoFuncGetUTCMonth): | 
 |         (JSC::dateProtoFuncGetDate): | 
 |         (JSC::dateProtoFuncGetUTCDate): | 
 |         (JSC::dateProtoFuncGetDay): | 
 |         (JSC::dateProtoFuncGetUTCDay): | 
 |         (JSC::dateProtoFuncGetHours): | 
 |         (JSC::dateProtoFuncGetUTCHours): | 
 |         (JSC::dateProtoFuncGetMinutes): | 
 |         (JSC::dateProtoFuncGetUTCMinutes): | 
 |         (JSC::dateProtoFuncGetSeconds): | 
 |         (JSC::dateProtoFuncGetUTCSeconds): | 
 |         (JSC::dateProtoFuncGetMilliSeconds): | 
 |         (JSC::dateProtoFuncGetUTCMilliseconds): | 
 |         (JSC::dateProtoFuncGetTimezoneOffset): | 
 |         (JSC::dateProtoFuncSetTime): | 
 |         (JSC::setNewValueFromTimeArgs): | 
 |         (JSC::setNewValueFromDateArgs): | 
 |         (JSC::dateProtoFuncSetYear): | 
 |         (JSC::dateProtoFuncGetYear): | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::argumentsGetter): | 
 |         * runtime/JSValue.h: | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::constructRegExp): | 
 |         * runtime/RegExpPrototype.cpp: | 
 |         (JSC::regExpProtoFuncTest): | 
 |         (JSC::regExpProtoFuncExec): | 
 |         (JSC::regExpProtoFuncCompile): | 
 |         (JSC::regExpProtoFuncToString): | 
 |         * runtime/ScopeChain.cpp: | 
 |         (JSC::ScopeChain::localDepth): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncReplace): | 
 |         (JSC::stringProtoFuncToString): | 
 |         (JSC::stringProtoFuncMatch): | 
 |         (JSC::stringProtoFuncSearch): | 
 |         (JSC::stringProtoFuncSplit): | 
 |         Updated to new name, inherits, from old name, isObject. | 
 |  | 
 | 2009-07-31  Harald Fernengel  <harald.fernengel@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Adding QNX as a platform. Currently only tested with Qt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27885 | 
 |  | 
 |         * JavaScriptCore/runtime/Collector.cpp: Added retrieving of stack base | 
 |           since QNX doesn't have the pthread _nt functions | 
 |         * JavaScriptCore/wtf/Platform.h: Added WTF_PLATFORM_QNX and corresponding | 
 |           defines | 
 |         * WebCore/bridge/npapi.h: Build fix for missing typedefs on QNX | 
 |  | 
 | 2009-08-14  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Currently generic ARM and ARMv7 platforms work only with JSVALUE32 | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28300 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-14  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Enable JIT on ARM for QT by default | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28259 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-14  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Enable YARR_JIT on ARM for QT by default | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28259 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-14  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         [ES5] Arguments object should inherit from Array | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28298 | 
 |  | 
 |         Make the Arguments object conform to the behaviour specified in ES5. | 
 |         The simple portion of this is to make Arguments use Array.prototype | 
 |         as its prototype rather than Object.prototype. | 
 |  | 
 |         The spec then requires us to set instance.constructor to the pristine | 
 |         Object constructor, and instance.toString and instance.toLocaleString | 
 |         to the pristine versions from Object.prototype.  To do this we now  | 
 |         make the ObjectPrototype constructor return its toString and | 
 |         toLocaleString functions (similar to the call and apply functions | 
 |         from FunctionPrototype). | 
 |  | 
 |         Oddly enough this reports itself as a slight win, but given the code | 
 |         isn't hit in the tests that claim to have improved I put this down to | 
 |         code motion. | 
 |  | 
 |         * runtime/Arguments.h: | 
 |         (JSC::Arguments::Arguments): | 
 |         (JSC::Arguments::initializeStandardProperties): | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::reset): | 
 |         (JSC::JSGlobalObject::markChildren): | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): | 
 |         (JSC::JSGlobalObject::objectConstructor): | 
 |         (JSC::JSGlobalObject::objectToStringFunction): | 
 |         (JSC::JSGlobalObject::objectToLocaleStringFunction): | 
 |         * runtime/ObjectPrototype.cpp: | 
 |         (JSC::ObjectPrototype::ObjectPrototype): | 
 |         * runtime/ObjectPrototype.h: | 
 |         * tests/mozilla/ecma_3/Function/arguments-001.js: | 
 |           Update test to new es5 behaviour | 
 |  | 
 | 2009-08-14  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Remove MarkStack::drain from the JSC exports file | 
 |  | 
 |         MarkStack::drain is now marked inline, the including it in the exports file | 
 |         produces an ld warning | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-08-13  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Remove accidentally left in debugging statement. | 
 |  | 
 |         * runtime/JSArray.h: | 
 |         (JSC::MarkStack::drain): | 
 |  | 
 | 2009-08-13  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         [ES5] Implement Array.isArray | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28296 | 
 |  | 
 |         Add support for Array.isArray to the Array constructor | 
 |  | 
 |         * runtime/ArrayConstructor.cpp: | 
 |         (JSC::ArrayConstructor::ArrayConstructor): | 
 |         (JSC::arrayConstructorIsArray): | 
 |         * runtime/ArrayConstructor.h: | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/JSArray.h: | 
 |         (JSC::MarkStack::drain): | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::reset): | 
 |  | 
 | 2009-08-13  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Buildfix). | 
 |  | 
 |         Attempt to fix windows build | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |  | 
 | 2009-08-13  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Devirtualise marking | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28294 | 
 |  | 
 |         Add a bit to TypeInfo to indicate that an object uses the standard | 
 |         JSObject::markChildren method.  This allows us to devirtualise marking | 
 |         of most objects (though a branch is still needed).  We also add a branch | 
 |         to identify arrays thus devirtualising marking in that case as well. | 
 |  | 
 |         In order to make the best use of this devirtualisation I've also reworked | 
 |         the MarkStack::drain() logic to make the iteration more efficient. | 
 |  | 
 |         * API/JSCallbackConstructor.h: | 
 |         (JSC::JSCallbackConstructor::createStructure): | 
 |         * API/JSCallbackFunction.h: | 
 |         (JSC::JSCallbackFunction::createStructure): | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/BooleanObject.h: | 
 |         (JSC::BooleanObject::createStructure): | 
 |         * runtime/FunctionPrototype.h: | 
 |         (JSC::FunctionPrototype::createStructure): | 
 |         * runtime/InternalFunction.h: | 
 |         (JSC::InternalFunction::createStructure): | 
 |         * runtime/JSAPIValueWrapper.h: | 
 |         (JSC::JSAPIValueWrapper::JSAPIValueWrapper): | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::markChildren): | 
 |         * runtime/JSArray.h: | 
 |         (JSC::JSArray::markChildrenDirect): | 
 |         (JSC::MarkStack::drain): | 
 |         * runtime/JSByteArray.cpp: | 
 |         (JSC::JSByteArray::createStructure): | 
 |         * runtime/JSCell.h: | 
 |         (JSC::MarkStack::append): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         * runtime/JSNumberCell.h: | 
 |         (JSC::JSNumberCell::createStructure): | 
 |         * runtime/JSONObject.h: | 
 |         (JSC::JSONObject::createStructure): | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::markChildren): | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::markChildrenDirect): | 
 |         (JSC::JSObject::createStructure): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSString::createStructure): | 
 |         * runtime/JSType.h: | 
 |         (JSC::): | 
 |         * runtime/MarkStack.h: | 
 |         (JSC::MarkStack::MarkStack): | 
 |         (JSC::MarkStack::MarkSet::MarkSet): | 
 |         (JSC::MarkStack::MarkStackArray::last): | 
 |         * runtime/MathObject.h: | 
 |         (JSC::MathObject::createStructure): | 
 |         * runtime/NumberConstructor.h: | 
 |         (JSC::NumberConstructor::createStructure): | 
 |         * runtime/NumberObject.h: | 
 |         (JSC::NumberObject::createStructure): | 
 |         * runtime/RegExpConstructor.h: | 
 |         (JSC::RegExpConstructor::createStructure): | 
 |         * runtime/RegExpObject.h: | 
 |         (JSC::RegExpObject::createStructure): | 
 |         * runtime/StringObjectThatMasqueradesAsUndefined.h: | 
 |         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): | 
 |         * runtime/TypeInfo.h: | 
 |         (JSC::TypeInfo::hasDefaultMark): | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Some small bits of housekeeping. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Make Parser.h | 
 |         project instead of private. Remove JSONObject.lut.h. | 
 |  | 
 |         * assembler/ARMAssembler.h: Remove unneeded WTF prefix. | 
 |         * assembler/AssemblerBufferWithConstantPool.h: Ditto. | 
 |         * bytecompiler/BytecodeGenerator.h: Ditto. | 
 |  | 
 |         * wtf/SegmentedVector.h: Add a "using" statement as we do | 
 |         with the other WTF headers. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Fix Tiger build. | 
 |  | 
 |         * parser/Grammar.y: Use a template function so we can compile | 
 |         setStatementLocation even if it comes before YYLTYPE is defined. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Too much use of void* in Grammar.y | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28287 | 
 |  | 
 |         * parser/Grammar.y: Changed all the helper functions to | 
 |         take a JSGlobalData* instead of a void*. A couple formatting | 
 |         tweaks that I missed when breaking this into pieces. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Another part of https://bugs.webkit.org/show_bug.cgi?id=28287 | 
 |  | 
 |         * parser/Grammar.y: Reduced and sorted includes. Tweaked comment | 
 |         format. Marked a few more functions inline. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Another part of https://bugs.webkit.org/show_bug.cgi?id=28287 | 
 |  | 
 |         * parser/Grammar.y: Pass the number to the PropertyNode instead of | 
 |         first turning it into an Identifier. | 
 |  | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::PropertyNode::PropertyNode): Add an overload that takes a double | 
 |         so the code to convert to a string can be here instead of Grammar.y. | 
 |         * parser/Nodes.h: Ditto. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Another part of https://bugs.webkit.org/show_bug.cgi?id=28287 | 
 |  | 
 |         * parser/Grammar.y: Eliminate the DBG macro. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Another part of https://bugs.webkit.org/show_bug.cgi?id=28287 | 
 |  | 
 |         * parser/Grammar.y: Eliminate the SET_EXCEPTION_LOCATION macro. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         George asked me to break the patch from | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28287 | 
 |         into smaller pieces and land it in stages. | 
 |  | 
 |         * parser/Grammar.y: Eliminate the LEXER macro. | 
 |  | 
 | 2009-08-13  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Try some more to fix the Windows build. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export a new symbol. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Ditto. | 
 |  | 
 | 2009-08-13  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Try and fix the Windows build. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export a new symbol. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Ditto. | 
 |  | 
 | 2009-08-13  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         JavaScriptCore tweaks to get ready for the parser arena | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28243 | 
 |  | 
 |         Eliminate dependencies on Nodes.h outside JavaScriptCore, | 
 |         and cut down on them inside JavaScriptCore. | 
 |  | 
 |         Change regular expression parsing to use identifiers as | 
 |         with other strings we parse. | 
 |  | 
 |         Fix a couple things that are needed to use const Identifier | 
 |         more, which will be part of the parser arena work. | 
 |  | 
 |         * JavaScriptCore.exp: Resorted and updated. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Changed | 
 |         CollectorHeapIterator.h to be project-internal. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitPushNewScope): Added const. | 
 |         * bytecompiler/BytecodeGenerator.h: Ditto. | 
 |  | 
 |         * debugger/Debugger.cpp: | 
 |         (JSC::Debugger::recompileAllJSFunctions): Moved this function | 
 |         here from WebCore. Here is better since it uses so many internals. | 
 |         Removed unimportant optimization for the no listener case. | 
 |         * debugger/Debugger.h: Ditto. Also removed unneeded include | 
 |         and tweaked formatting and comments. | 
 |  | 
 |         * debugger/DebuggerCallFrame.cpp: | 
 |         (JSC::DebuggerCallFrame::functionName): Call asFunction instead | 
 |         of doing the unchecked static_cast. | 
 |         (JSC::DebuggerCallFrame::calculatedFunctionName): Ditto. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::op_call_JSFunction): Call isHostFunction on the body rather | 
 |         than on the JSFunction. | 
 |         (JSC::vm_lazyLinkCall): Ditto. | 
 |         (JSC::op_construct_JSConstruct): Ditto. | 
 |  | 
 |         * parser/Grammar.y: Changed callers to use new scanRegExp with | 
 |         out arguments instead of relying on state in the Lexer. And | 
 |         callers that just want to skip a regular expression to use | 
 |         skipRegExp. | 
 |  | 
 |         * parser/Lexer.cpp: | 
 |         (JSC::Lexer::scanRegExp): Changed to use out arguments, and to | 
 |         add a prefix argument so we can add in the "=" character as needed. | 
 |         Also rewrote to streamline the logic a bit inspired by suggestions | 
 |         by David Levin. | 
 |         (JSC::Lexer::skipRegExp): Added. Version of the function above that | 
 |         does not actually put the regular expression into a string. | 
 |         (JSC::Lexer::clear): Removed code to clear m_pattern and m_flags. | 
 |         * parser/Lexer.h: Changed scanRegExp to have out arguments. Added | 
 |         skipRegExp. Eliminated pattern, flags, m_pattern, and m_flags. | 
 |  | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::RegExpNode::RegExpNode): Changed to take const Identifier&. | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::RegExpNode::emitBytecode): Changed since m_pattern and | 
 |         m_flags are now Identifier instead of UString. | 
 |         (JSC::FunctionBodyNode::make): Moved this function here instead | 
 |         of putting it in the JSFunction.h header. | 
 |         * parser/Nodes.h: Changed RegExpNode to use Identifier. | 
 |  | 
 |         * profiler/Profiler.cpp: | 
 |         (JSC::Profiler::createCallIdentifier): Changed to use isHostFunction | 
 |         on the body instead of on the JSFunction object. | 
 |         * runtime/FunctionPrototype.cpp: | 
 |         (JSC::functionProtoFuncToString): Ditto. | 
 |  | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::isHostFunction): Moved here from header. | 
 |         (JSC::JSFunction::isHostFunctionNonInline): Added. | 
 |         (JSC::JSFunction::JSFunction): Removed unneeded initialization of | 
 |         m_body to 0. | 
 |         (JSC::JSFunction::setBody): Moved here from header. | 
 |  | 
 |         * runtime/JSFunction.h: Removed unneeded includes. Moved private | 
 |         constructor down to the private section. Made virtual functions | 
 |         private. Removed unneeded overload of setBody and moved the body | 
 |         of the function into the .cpp file. Changed assertions to use | 
 |         the non-inline version of isHostFunction. | 
 |  | 
 |         * runtime/PropertySlot.cpp: | 
 |         (JSC::PropertySlot::functionGetter): Use asFunction instead | 
 |         of doing the unchecked static_cast. | 
 |  | 
 |         * wtf/SegmentedVector.h: | 
 |         (WTF::SegmentedVector::isEmpty): Added. | 
 |  | 
 | 2009-08-13  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Rubber-stamped by Darin Adler. | 
 |  | 
 |         Use the version of operator new that takes a JSGlobalData when allocating FuncDeclNode and FuncExprNode | 
 |         from within the grammar to prevent these nodes from being leaked. | 
 |  | 
 |         * parser/Grammar.y: | 
 |  | 
 | 2009-08-13  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Reviewed by Ariya Hidayat. | 
 |  | 
 |         Remove the special-case for Qt wrt JSVALUE_32 introduced in | 
 |         r46709. It must've been a dependency issue on the bot, as | 
 |         after a manual build all the tests pass on amd64 and ia32. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-12  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add optimize call and property access support for ARM JIT. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=24986 | 
 |  | 
 |         For tightly coupled sequences the BEGIN_UNINTERRUPTED_SEQUENCE and | 
 |         END_UNINTERRUPTED_SEQUENCE macros have been introduced which ensure | 
 |         space for instructions and constants of the named sequence. This | 
 |         method is vital for those architecture which are using constant pool. | 
 |  | 
 |         The 'latePatch' method - which was linked to JmpSrc - is replaced with | 
 |         a port specific solution (each calls are marked to place their address | 
 |         on the constant pool). | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::linkBranch): | 
 |         (JSC::ARMAssembler::executableCopy): Add extra align for constant pool. | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::JmpSrc::JmpSrc): | 
 |         (JSC::ARMAssembler::sizeOfConstantPool): | 
 |         (JSC::ARMAssembler::jmp): | 
 |         (JSC::ARMAssembler::linkCall): | 
 |         * assembler/ARMv7Assembler.h: | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         * assembler/AssemblerBufferWithConstantPool.h: | 
 |         (JSC::AssemblerBufferWithConstantPool::flushIfNoSpaceFor): Fix the | 
 |         computation of the remaining space. | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::branch32): | 
 |         (JSC::MacroAssemblerARM::nearCall): | 
 |         (JSC::MacroAssemblerARM::call): | 
 |         (JSC::MacroAssemblerARM::branchPtrWithPatch): | 
 |         (JSC::MacroAssemblerARM::ensureSpace): | 
 |         (JSC::MacroAssemblerARM::sizeOfConstantPool): | 
 |         (JSC::MacroAssemblerARM::prepareCall): | 
 |         * assembler/X86Assembler.h: | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::beginUninterruptedSequence): | 
 |         (JSC::JIT::endUninterruptedSequence): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::compileGetByIdSlowCase): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |  | 
 | 2009-08-12  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Dave Kilzer. | 
 |  | 
 |         Disable WTF_USE_JSVALUE32_64 on iPhone for now (support not yet added for ARMv7). | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-12  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachoviak. | 
 |  | 
 |         Ooops - moved code that had been accidentally added to op_new_func instead of | 
 |         op_new_func_exp, to where it shoulds be. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-12  Ada Chan  <adachan@apple.com> | 
 |  | 
 |         Added workaround for the limitation that VirtualFree with MEM_RELEASE | 
 |         can only accept the base address returned by VirtualAlloc when the region | 
 |         was reserved and it can only free the entire region, and not a part of it. | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         * runtime/MarkStack.h: | 
 |         (JSC::MarkStack::MarkStackArray::shrinkAllocation): | 
 |         * runtime/MarkStackWin.cpp: | 
 |         (JSC::MarkStack::releaseStack): | 
 |  | 
 | 2009-08-12  Balazs Kelemen  <kelemen.balazs.3@stud.u-szeged.hu> | 
 |  | 
 |         Reviewed by Ariya Hidayat. | 
 |  | 
 |         Build fix: use std::numeric_limits<long long>::min() instead of LLONG_MIN | 
 |         since LLONG_MIN is not defined in standard c++. | 
 |  | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::from): | 
 |  | 
 | 2009-08-12  Benjamin Otte  <otte@gnome.org> | 
 |  | 
 |         Reviewed by Jan Alonzo. | 
 |  | 
 |         Buildfix for Gtk platforms debug builds. | 
 |  | 
 |         * GNUmakefile.am: Choose MarkStackPosix.cpp or MarkStackWin.cpp | 
 |         depending on platform. | 
 |  | 
 | 2009-08-12  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Prospective build fix for Mac and 32-bit Windows. | 
 |  | 
 |         * runtime/UString.cpp: Include wtf/StringExtras.h for snprintf. | 
 |         (JSC::UString::from): Use %lld instead of %I64d for snprintf | 
 |         on non-windows platforms. | 
 |  | 
 | 2009-08-12  Prasanth Ullattil  <prasanth.ullattil@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix compile error on 64Bit Windows, when UString::from | 
 |         is called with an intptr_t. | 
 |  | 
 |         Added new UString::From overload with long long parameter. | 
 |  | 
 |         Thanks to Holger for the long long idea. | 
 |  | 
 |         * runtime/UString.cpp: | 
 |         (JSC::UString::from): | 
 |         * runtime/UString.h: | 
 |  | 
 | 2009-08-11  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Minor style fixes. | 
 |  | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::Rep::createEmptyBuffer): | 
 |         * wtf/FastMalloc.h: | 
 |         (WTF::TryMallocReturnValue::getValue): | 
 |  | 
 | 2009-08-11  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Make it harder to misuse try* allocation routines | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27469 | 
 |  | 
 |         Jump through a few hoops to make it much harder to accidentally | 
 |         miss null-checking of values returned by the try-* allocation | 
 |         routines. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::putSlowCase): | 
 |         (JSC::JSArray::increaseVectorLength): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncFontsize): | 
 |         (JSC::stringProtoFuncLink): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::allocChars): | 
 |         (JSC::reallocChars): | 
 |         (JSC::expandCapacity): | 
 |         (JSC::UString::Rep::reserveCapacity): | 
 |         (JSC::UString::expandPreCapacity): | 
 |         (JSC::createRep): | 
 |         (JSC::concatenate): | 
 |         (JSC::UString::spliceSubstringsWithSeparators): | 
 |         (JSC::UString::replaceRange): | 
 |         (JSC::UString::append): | 
 |         (JSC::UString::operator=): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::Rep::createEmptyBuffer): | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::tryFastZeroedMalloc): | 
 |         (WTF::tryFastMalloc): | 
 |         (WTF::tryFastCalloc): | 
 |         (WTF::tryFastRealloc): | 
 |         (WTF::TCMallocStats::tryFastMalloc): | 
 |         (WTF::TCMallocStats::tryFastCalloc): | 
 |         (WTF::TCMallocStats::tryFastRealloc): | 
 |         * wtf/FastMalloc.h: | 
 |         (WTF::TryMallocReturnValue::TryMallocReturnValue): | 
 |         (WTF::TryMallocReturnValue::~TryMallocReturnValue): | 
 |         (WTF::TryMallocReturnValue::operator PossiblyNull<T>): | 
 |         (WTF::TryMallocReturnValue::getValue): | 
 |         * wtf/Platform.h: | 
 |         * wtf/PossiblyNull.h: Added. | 
 |         (WTF::PossiblyNull::PossiblyNull): | 
 |         (WTF::PossiblyNull::~PossiblyNull): | 
 |         (WTF::::getValue): | 
 |  | 
 | 2009-08-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix part deux). | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-11  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Restrict use of FuncDeclNode & FuncExprNode to the parser. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28209 | 
 |  | 
 |         These objects were also being referenced from the CodeBlock.  By changing this | 
 |         to just retain pointers to FunctionBodyNodes these classes can be restricted to | 
 |         use during parsing. | 
 |  | 
 |         No performance impact (or sub-percent progression). | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |             Update symbols. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::mark): | 
 |         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): | 
 |         (JSC::CodeBlock::shrinkToFit): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::addFunction): | 
 |         (JSC::CodeBlock::function): | 
 |             Unify m_functions & m_functionExpressions into a single Vector<RefPtr<FuncExprNode> >. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         (JSC::BytecodeGenerator::addConstant): | 
 |         (JSC::BytecodeGenerator::emitNewFunction): | 
 |         (JSC::BytecodeGenerator::emitNewFunctionExpression): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |             FunctionStacks now contain FunctionBodyNodes not FuncDeclNodes. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::execute): | 
 |         (JSC::Interpreter::privateExecute): | 
 |             Update to reflect chnages in CodeBlock. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_new_func_exp): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |             Update to reflect chnages in CodeBlock. | 
 |  | 
 |         * parser/Grammar.y: | 
 |             FunctionStacks now contain FunctionBodyNodes not FuncDeclNodes. | 
 |  | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::FuncExprNode::FuncExprNode): | 
 |         (JSC::FuncDeclNode::FuncDeclNode): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ScopeNodeData::mark): | 
 |         (JSC::FunctionBodyNode::finishParsing): | 
 |         * parser/Nodes.h: | 
 |         (JSC::FunctionBodyNode::ident): | 
 |             Move m_ident & make methods from FuncDeclNode & FuncExprNode to FunctionBodyNode. | 
 |  | 
 |         * runtime/JSFunction.h: | 
 |         (JSC::FunctionBodyNode::make): | 
 |             Make this method inline (was FuncDeclNode::makeFunction). | 
 |  | 
 | 2009-08-11  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Native JSON.stringify does not omit functions | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28117 | 
 |  | 
 |         Objects that are callable should be treated as undefined when | 
 |         serialising to JSON. | 
 |  | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::appendStringifiedValue): | 
 |  | 
 | 2009-08-11  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         REGRESSION: Hang/crash in BytecodeGenerator::constRegisterFor loading simple page | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28169 | 
 |  | 
 |         Handle the case where someone has attempted to shadow a property | 
 |         on the global object with a constant. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::constRegisterFor): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ConstDeclNode::emitCodeSingle): | 
 |  | 
 | 2009-08-11  John Gregg  <johnnyg@google.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Desktop Notifications API | 
 |         https://bugs.webkit.org/show_bug.cgi?id=25463 | 
 |  | 
 |         Adds ENABLE_NOTIFICATION flag. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-11  Maxime Simon  <simon.maxime@gmail.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Modifications on JavaScriptCore to allow Haiku port. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28121 | 
 |  | 
 |         * runtime/Collector.cpp: Haiku doesn't have sys/mman.h, using OS.h instead. | 
 |         (JSC::currentThreadStackBase): Haiku uses its own threading system. | 
 |         * wtf/Platform.h: Defining all Haiku platform values. | 
 |         * wtf/haiku/MainThreadHaiku.cpp: Adding a missing header (NotImplemented.h). | 
 |  | 
 | 2009-08-11  Jessie Berlin  <jberlin@apple.com> | 
 |  | 
 |         Reviewed by Adam Roben. | 
 |  | 
 |         Fix windows build. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-11  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Tor Arne Vestbø. | 
 |  | 
 |         Buildfix for Qt-win platforms. | 
 |  | 
 |         * JavaScriptCore.pri: Choose MarkStackPosix.cpp or MarkStackWin.cpp depend on platform. | 
 |  | 
 | 2009-08-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (And another build fix). | 
 |  | 
 |         Add new exports for MSVC | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-08-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (yet another build fix). | 
 |  | 
 |         Remove obsolete entries from MSVC exports file | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Add includes needed for non-allinonefile builds | 
 |  | 
 |         * runtime/GetterSetter.h: | 
 |         * runtime/ScopeChain.h: | 
 |  | 
 | 2009-08-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Fix export file for last build fix | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-08-10  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Hoist page size initialization into platform specific code. | 
 |  | 
 |         * jit/ExecutableAllocatorPosix.cpp: | 
 |         * jit/ExecutableAllocatorWin.cpp: | 
 |         * runtime/MarkStack.h: | 
 |         (JSC::MarkStack::pageSize): | 
 |         * runtime/MarkStackPosix.cpp: | 
 |         (JSC::MarkStack::initializePagesize): | 
 |         * runtime/MarkStackWin.cpp: | 
 |         (JSC::MarkStack::initializePagesize): | 
 |  | 
 | 2009-08-07  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Stack overflow crash in JavaScript garbage collector mark pass | 
 |         https://bugs.webkit.org/show_bug.cgi?id=12216 | 
 |  | 
 |         Make the GC mark phase iterative by using an explicit mark stack. | 
 |         To do this marking any single object is performed in multiple stages | 
 |           * The object is appended to the MarkStack, this sets the marked | 
 |             bit for the object using the new markDirect() function, and then | 
 |             returns | 
 |           * When the MarkStack is drain()ed the object is popped off the stack | 
 |             and markChildren(MarkStack&) is called on the object to collect  | 
 |             all of its children.  drain() then repeats until the stack is empty. | 
 |  | 
 |         Additionally I renamed a number of methods from 'mark' to 'markAggregate' | 
 |         in order to make it more clear that marking of those object was not | 
 |         going to result in an actual recursive mark. | 
 |  | 
 |         * GNUmakefile.am | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.gypi: | 
 |         * JavaScriptCore.pri: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::markAggregate): | 
 |         * bytecode/CodeBlock.h: | 
 |         * bytecode/EvalCodeCache.h: | 
 |         (JSC::EvalCodeCache::markAggregate): | 
 |         * debugger/DebuggerActivation.cpp: | 
 |         (JSC::DebuggerActivation::markChildren): | 
 |         * debugger/DebuggerActivation.h: | 
 |         * interpreter/Register.h: | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::markGlobals): | 
 |         (JSC::RegisterFile::markCallFrames): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ScopeNodeData::markAggregate): | 
 |         (JSC::EvalNode::markAggregate): | 
 |         (JSC::FunctionBodyNode::markAggregate): | 
 |         * parser/Nodes.h: | 
 |         (JSC::ScopeNode::markAggregate): | 
 |         * runtime/ArgList.cpp: | 
 |         (JSC::MarkedArgumentBuffer::markLists): | 
 |         * runtime/ArgList.h: | 
 |         * runtime/Arguments.cpp: | 
 |         (JSC::Arguments::markChildren): | 
 |         * runtime/Arguments.h: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::markConservatively): | 
 |         (JSC::Heap::markCurrentThreadConservativelyInternal): | 
 |         (JSC::Heap::markCurrentThreadConservatively): | 
 |         (JSC::Heap::markOtherThreadConservatively): | 
 |         (JSC::Heap::markStackObjectsConservatively): | 
 |         (JSC::Heap::markProtectedObjects): | 
 |         (JSC::Heap::collect): | 
 |         * runtime/Collector.h: | 
 |         * runtime/GetterSetter.cpp: | 
 |         (JSC::GetterSetter::markChildren): | 
 |         * runtime/GetterSetter.h: | 
 |         (JSC::GetterSetter::GetterSetter): | 
 |         (JSC::GetterSetter::createStructure): | 
 |         * runtime/GlobalEvalFunction.cpp: | 
 |         (JSC::GlobalEvalFunction::markChildren): | 
 |         * runtime/GlobalEvalFunction.h: | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::markChildren): | 
 |         * runtime/JSActivation.h: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::markChildren): | 
 |         * runtime/JSArray.h: | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::markCellDirect): | 
 |         (JSC::JSCell::markChildren): | 
 |         (JSC::JSValue::markDirect): | 
 |         (JSC::JSValue::markChildren): | 
 |         (JSC::JSValue::hasChildren): | 
 |         (JSC::MarkStack::append): | 
 |         (JSC::MarkStack::drain): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::markChildren): | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         * runtime/JSGlobalData.h: | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::markIfNeeded): | 
 |         (JSC::JSGlobalObject::markChildren): | 
 |         * runtime/JSGlobalObject.h: | 
 |         * runtime/JSNotAnObject.cpp: | 
 |         (JSC::JSNotAnObject::markChildren): | 
 |         * runtime/JSNotAnObject.h: | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::markAggregate): | 
 |         (JSC::JSONObject::markStringifiers): | 
 |         * runtime/JSONObject.h: | 
 |         * runtime/JSObject.cpp: | 
 |         (JSC::JSObject::markChildren): | 
 |         (JSC::JSObject::defineGetter): | 
 |         (JSC::JSObject::defineSetter): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSPropertyNameIterator.cpp: | 
 |         (JSC::JSPropertyNameIterator::markChildren): | 
 |         * runtime/JSPropertyNameIterator.h: | 
 |         (JSC::JSPropertyNameIterator::createStructure): | 
 |         (JSC::JSPropertyNameIterator::JSPropertyNameIterator): | 
 |         (JSC::JSPropertyNameIterator::create): | 
 |         * runtime/JSStaticScopeObject.cpp: | 
 |         (JSC::JSStaticScopeObject::markChildren): | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         * runtime/JSType.h: | 
 |         (JSC::): | 
 |         * runtime/JSValue.h: | 
 |         * runtime/JSWrapperObject.cpp: | 
 |         (JSC::JSWrapperObject::markChildren): | 
 |         * runtime/JSWrapperObject.h: | 
 |         * runtime/MarkStack.cpp: Added. | 
 |         (JSC::MarkStack::compact): | 
 |         * runtime/MarkStack.h: Added. | 
 |         (JSC::): | 
 |         (JSC::MarkStack::MarkStack): | 
 |         (JSC::MarkStack::append): | 
 |         (JSC::MarkStack::appendValues): | 
 |         (JSC::MarkStack::~MarkStack): | 
 |         (JSC::MarkStack::MarkSet::MarkSet): | 
 |         (JSC::MarkStack::pageSize): | 
 |          | 
 |         MarkStackArray is a non-shrinking, mmap-based vector type | 
 |         used for storing objects to be marked. | 
 |         (JSC::MarkStack::MarkStackArray::MarkStackArray): | 
 |         (JSC::MarkStack::MarkStackArray::~MarkStackArray): | 
 |         (JSC::MarkStack::MarkStackArray::expand): | 
 |         (JSC::MarkStack::MarkStackArray::append): | 
 |         (JSC::MarkStack::MarkStackArray::removeLast): | 
 |         (JSC::MarkStack::MarkStackArray::isEmpty): | 
 |         (JSC::MarkStack::MarkStackArray::size): | 
 |         (JSC::MarkStack::MarkStackArray::shrinkAllocation): | 
 |         * runtime/MarkStackPosix.cpp: Added. | 
 |         (JSC::MarkStack::allocateStack): | 
 |         (JSC::MarkStack::releaseStack): | 
 |         * runtime/MarkStackWin.cpp: Added. | 
 |         (JSC::MarkStack::allocateStack): | 
 |         (JSC::MarkStack::releaseStack): | 
 |  | 
 |         * runtime/ScopeChain.h: | 
 |         * runtime/ScopeChainMark.h: | 
 |         (JSC::ScopeChain::markAggregate): | 
 |         * runtime/SmallStrings.cpp: | 
 |         (JSC::SmallStrings::mark): | 
 |         * runtime/Structure.h: | 
 |         (JSC::Structure::markAggregate): | 
 |  | 
 | 2009-08-10  Mark Rowe  <mrowe@apple.com> | 
 |          | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix hundreds of "pointer being freed was not allocated" errors seen on the build bot. | 
 |  | 
 |         * wtf/FastMalloc.h: Implement nothrow variants of the delete and delete[] operators since | 
 |         we implement the nothrow variants of new and new[].  The nothrow variant of delete is called | 
 |         explicitly in the implementation of std::sort which was resulting in FastMalloc-allocated | 
 |         memory being passed to the system allocator to free. | 
 |  | 
 | 2009-08-10  Jan Michael Alonzo  <jmalonzo@webkit.org> | 
 |  | 
 |         [Gtk] Unreviewed build fix. Move JSAPIValueWrapper.cpp/.h in the debug | 
 |         section. This file is already part of AllInOneFile in Release builds. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-08-10  Darin Adler  <darin@apple.com> | 
 |  | 
 |         * wtf/FastMalloc.h: Fix build. | 
 |  | 
 | 2009-08-10  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         FastMalloc.h has cross-platform code but marked as WinCE-only | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28160 | 
 |  | 
 |         1) The support for nothrow was inside #if PLATFORM(WINCE) even though it is | 
 |            not platform-specific. | 
 |         2) The code tried to override operator delete nothrow, which does not exist. | 
 |         3) The code in the header checks the value of USE_SYSTEM_MALLOC, but the code | 
 |            in FastMalloc.cpp checks only if the macro is defined. | 
 |  | 
 |         * wtf/FastMalloc.h: See above. | 
 |         * wtf/FastMalloc.cpp: Ditto. | 
 |  | 
 | 2009-08-10  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Anders Carlsson. | 
 |  | 
 |         Fix an annoying indentation issue. | 
 |  | 
 |         * runtime/DateConstructor.cpp: | 
 |         (JSC::constructDate): | 
 |  | 
 | 2009-08-10  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Unreviewed build fix. | 
 |  | 
 |         Add new files to makefile. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-08-10  Simon Hausmann  <simon.hausmann@nokia.com> | 
 |  | 
 |         Fix compilation with the interpreter instead of the JIT by including | 
 |         PrototypeFunction.h as forward-declared through NativeFunctionWrapper.h. | 
 |  | 
 |         * runtime/ObjectConstructor.cpp: | 
 |  | 
 | 2009-08-09  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         JSON.stringify replacer returning undefined does not omit object properties | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28118 | 
 |  | 
 |         Correct behaviour of stringify when using a replacer function that returns | 
 |         undefined.  This is a simple change to move the undefined value check to | 
 |         after the replacer function is called.  This means that the replacer function | 
 |         is now called for properties with the value undefined, however i've confirmed | 
 |         that this behaviour is correct. | 
 |          | 
 |         In addition I've made the cyclic object exception have a more useful error | 
 |         message. | 
 |  | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Stringifier::appendStringifiedValue): | 
 |  | 
 | 2009-08-08  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Eric Seidel and Sam Weinig. | 
 |  | 
 |         [ES5] Implement Object.getPrototypeOf | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28114 | 
 |  | 
 |         Implement getPrototypeOf | 
 |  | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/JSGlobalObject.cpp: | 
 |         (JSC::JSGlobalObject::reset): | 
 |         * runtime/ObjectConstructor.cpp: | 
 |         (JSC::ObjectConstructor::ObjectConstructor): | 
 |         (JSC::objectConsGetPrototypeOf): | 
 |         * runtime/ObjectConstructor.h: | 
 |  | 
 | 2009-08-07  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Allow custom memory allocation control for Noncopyable class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27879 | 
 |  | 
 |         Several classes which are inherited from Noncopyable are instantiated by | 
 |         operator new, so Noncopyable class has been inherited from FastAllocBase. | 
 |  | 
 |         * wtf/Noncopyable.h: | 
 |  | 
 | 2009-08-07  George Staikos <george.staikos@torchmobile.com>  | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27305 | 
 |         Implement WinCE-specific unicode layer. | 
 |         Written by George Staikos <george.staikos@torchmobile.com> | 
 |         with bug fixes by Yong Li <yong.li@torchmobile.com> | 
 |         refactored by Joe Mason <joe.mason@torchmobile.com>  | 
 |  | 
 |         * wtf/Platform.h: | 
 |         * wtf/unicode/Unicode.h: | 
 |         * wtf/unicode/wince/UnicodeWince.cpp: Added. | 
 |         (WTF::Unicode::toLower): | 
 |         (WTF::Unicode::toUpper): | 
 |         (WTF::Unicode::foldCase): | 
 |         (WTF::Unicode::isPrintableChar): | 
 |         (WTF::Unicode::isSpace): | 
 |         (WTF::Unicode::isLetter): | 
 |         (WTF::Unicode::isUpper): | 
 |         (WTF::Unicode::isLower): | 
 |         (WTF::Unicode::isDigit): | 
 |         (WTF::Unicode::isPunct): | 
 |         (WTF::Unicode::toTitleCase): | 
 |         (WTF::Unicode::direction): | 
 |         (WTF::Unicode::category): | 
 |         (WTF::Unicode::decompositionType): | 
 |         (WTF::Unicode::combiningClass): | 
 |         (WTF::Unicode::mirroredChar): | 
 |         (WTF::Unicode::digitValue): | 
 |         * wtf/unicode/wince/UnicodeWince.h: Added. | 
 |         (WTF::Unicode::): | 
 |         (WTF::Unicode::isSeparatorSpace): | 
 |         (WTF::Unicode::isHighSurrogate): | 
 |         (WTF::Unicode::isLowSurrogate): | 
 |         (WTF::Unicode::isArabicChar): | 
 |         (WTF::Unicode::hasLineBreakingPropertyComplexContext): | 
 |         (WTF::Unicode::umemcasecmp): | 
 |         (WTF::Unicode::surrogateToUcs4): | 
 |  | 
 | 2009-08-07  Yongjun Zhang  <yongjun.zhang@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=28069 | 
 |  | 
 |         Add inline to help winscw compiler resolve specialized argument in  | 
 |         templated functions.   | 
 |  | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::LiteralParser::Lexer::lexString): | 
 |  | 
 | 2009-08-07  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Allow custom memory allocation control for RegExpObjectData struct | 
 |         http://bugs.webkit.org/show_bug.cgi?id=26750 | 
 |  | 
 |         Inherits RegExpObjectData struct from FastAllocBase because | 
 |         it has been instantiated by 'new' in JavaScriptCore/runtime/RegExpObject.cpp:62 | 
 |  | 
 |         * runtime/RegExpObject.h: | 
 |  | 
 | 2009-08-06  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Updated patch for bug #27059: | 
 |         Symbian platform always uses little endian encoding, | 
 |         regardless of compiler. | 
 |         We need to make sure that we correctly detect EABI architecture | 
 |         for armv5 targets on Symbian, | 
 |         where __EABI__ is set but not __ARM_EABI__ | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-06  Adam Barth  <abarth@webkit.org> | 
 |  | 
 |         Unreviewed revert. | 
 |  | 
 |         http://bugs.webkit.org/show_bug.cgi?id=27879 | 
 |  | 
 |         Revert 46877 because it broke GTK. | 
 |  | 
 |         * wtf/Noncopyable.h: | 
 |  | 
 | 2009-08-06  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Make get_by_id/put_by_id/method_check/call defer optimization using a data flag rather than a code modification. | 
 |         ( https://bugs.webkit.org/show_bug.cgi?id=27635 ) | 
 |  | 
 |         This improves performance of ENABLE(ASSEMBLER_WX_EXCLUSIVE) builds by 2-2.5%, reducing the overhead to about 2.5%. | 
 |         (No performance impact with ASSEMBLER_WX_EXCLUSIVE disabled). | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::printStructureStubInfo): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::): | 
 |         (JSC::CallLinkInfo::seenOnce): | 
 |         (JSC::CallLinkInfo::setSeen): | 
 |         (JSC::MethodCallLinkInfo::seenOnce): | 
 |         (JSC::MethodCallLinkInfo::setSeen): | 
 |             - Change a pointer in CallLinkInfo/MethodCallLinkInfo to use a PtrAndFlags, use a flag to track when an op has been executed once. | 
 |  | 
 |         * bytecode/StructureStubInfo.cpp: | 
 |         (JSC::StructureStubInfo::deref): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID. | 
 |  | 
 |         * bytecode/StructureStubInfo.h: | 
 |         (JSC::StructureStubInfo::StructureStubInfo): | 
 |         (JSC::StructureStubInfo::initGetByIdSelf): | 
 |         (JSC::StructureStubInfo::initGetByIdProto): | 
 |         (JSC::StructureStubInfo::initGetByIdChain): | 
 |         (JSC::StructureStubInfo::initGetByIdSelfList): | 
 |         (JSC::StructureStubInfo::initGetByIdProtoList): | 
 |         (JSC::StructureStubInfo::initPutByIdTransition): | 
 |         (JSC::StructureStubInfo::initPutByIdReplace): | 
 |         (JSC::StructureStubInfo::seenOnce): | 
 |         (JSC::StructureStubInfo::setSeen): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID, add a flag to track when an op has been executed once. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitGetById): | 
 |         (JSC::BytecodeGenerator::emitPutById): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::unlinkCall): | 
 |             - Remove the "don't lazy link" stage of calls. | 
 |  | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileCTIMachineTrampolines): | 
 |             - Remove the "don't lazy link" stage of calls. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |             - Remove the "don't lazy link" stage of calls. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::JITStubs::DEFINE_STUB_FUNCTION): | 
 |         (JSC::JITStubs::getPolymorphicAccessStructureListSlot): | 
 |             - Remove the "don't lazy link" stage of calls, and the "_second" stage of get_by_id/put_by_id/method_check. | 
 |  | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiStringLengthTrampoline): | 
 |         (JSC::JITStubs::): | 
 |             - Remove the "don't lazy link" stage of calls, and the "_second" stage of get_by_id/put_by_id/method_check. | 
 |  | 
 |         * wtf/PtrAndFlags.h: | 
 |         (WTF::PtrAndFlags::PtrAndFlags): | 
 |         (WTF::PtrAndFlags::operator!): | 
 |         (WTF::PtrAndFlags::operator->): | 
 |             - Add ! and -> operators, add constuctor with pointer argument. | 
 |  | 
 | 2009-08-06  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Adam Barth. | 
 |  | 
 |         Allow custom memory allocation control for Noncopyable class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27879 | 
 |  | 
 |         Several classes which inherited from Noncopyable are instantiated by | 
 |         operator new, so Noncopyable class has been inherited from FastAllocBase. | 
 |  | 
 |         * wtf/Noncopyable.h: | 
 |  | 
 | 2009-08-06  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Rubber-stamped by Sam Weinig. | 
 |  | 
 |         Add explicit dependencies for our build verification scripts to ensure that they always run after linking has completed. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-08-06  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Bring a little order to our otherwise out of control lives. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-08-06  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's PolymorphicAccessStructureList struct | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27877 | 
 |  | 
 |         Inherits PolymorphicAccessStructureList struct from FastAllocBase because it has been instantiated by | 
 |         'new' in JavaScriptCore/jit/JITStubs.cpp:1229. | 
 |  | 
 |         * bytecode/Instruction.h: | 
 |  | 
 | 2009-08-05  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's ScopeNodeData struct | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27875 | 
 |  | 
 |         Inherits ScopeNodeData struct from FastAllocBase because it has been instantiated by | 
 |         'new' in JavaScriptCore/parser/Nodes.cpp:1848. | 
 |  | 
 |         * parser/Nodes.h: | 
 |  | 
 | 2009-08-05  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add floating point support for generic ARM port. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=24986 | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::doubleTransfer): | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARM::): | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::faddd_r): | 
 |         (JSC::ARMAssembler::fsubd_r): | 
 |         (JSC::ARMAssembler::fmuld_r): | 
 |         (JSC::ARMAssembler::fcmpd_r): | 
 |         (JSC::ARMAssembler::fdtr_u): | 
 |         (JSC::ARMAssembler::fdtr_d): | 
 |         (JSC::ARMAssembler::fmsr_r): | 
 |         (JSC::ARMAssembler::fsitod_r): | 
 |         (JSC::ARMAssembler::fmstat): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::): | 
 |         (JSC::MacroAssemblerARM::supportsFloatingPoint): | 
 |         (JSC::MacroAssemblerARM::loadDouble): | 
 |         (JSC::MacroAssemblerARM::storeDouble): | 
 |         (JSC::MacroAssemblerARM::addDouble): | 
 |         (JSC::MacroAssemblerARM::subDouble): | 
 |         (JSC::MacroAssemblerARM::mulDouble): | 
 |         (JSC::MacroAssemblerARM::convertInt32ToDouble): | 
 |         (JSC::MacroAssemblerARM::branchDouble): | 
 |         * jit/JIT.h: | 
 |  | 
 | 2009-08-05  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add JIT support for generic ARM port without optimizations. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=24986 | 
 |  | 
 |         All JIT optimizations are disabled. | 
 |  | 
 |         Signed off by Zoltan Herczeg <zherczeg@inf.u-szeged.hu> | 
 |         Signed off by Gabor Loki <loki@inf.u-szeged.hu> | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::baseIndexTransfer32): | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::Imm32::Imm32): | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::store32): | 
 |         (JSC::MacroAssemblerARM::move): | 
 |         (JSC::MacroAssemblerARM::branch32): | 
 |         (JSC::MacroAssemblerARM::add32): | 
 |         (JSC::MacroAssemblerARM::sub32): | 
 |         (JSC::MacroAssemblerARM::load32): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::getBytecodeIndex): | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::restoreArgumentReference): | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITStubs.cpp: | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITStackFrame::returnAddressSlot): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-04  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Oiver Hunt. | 
 |  | 
 |         Revert r46643 since this breaks the Yarr::Interpreter running the v8 tests. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27874 | 
 |  | 
 |         * yarr/RegexInterpreter.cpp: | 
 |         (JSC::Yarr::Interpreter::allocDisjunctionContext): | 
 |         (JSC::Yarr::Interpreter::freeDisjunctionContext): | 
 |         (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext): | 
 |         (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext): | 
 |  | 
 | 2009-08-04  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         PPC64 Build fix | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-04  Benjamin C Meyer  <benjamin.meyer@torchmobile.com> | 
 |  | 
 |         Reviewed by Adam Treat | 
 |  | 
 |         Explicitly include limits.h header when using INT_MAX and INT_MIN | 
 |  | 
 |         * interpreter/Interpreter.cpp | 
 |  | 
 | 2009-08-03  Harald Fernengel  <harald.fernengel@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix compile error for ambigous call to abs() | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27873 | 
 |  | 
 |         Fix ambiguity in abs(long int) call by calling labs() instead | 
 |  | 
 |         * wtf/DateMath.cpp: replace call to abs() with labs() | 
 |  | 
 | 2009-08-03  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         [Qt] Consolidate common gcc flags to WebKit.pri | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27934 | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |  | 
 | 2009-08-03  Ada Chan  <adachan@apple.com> | 
 |  | 
 |         Fixed the Tiger build. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |  | 
 | 2009-08-03  Ada Chan  <adachan@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Don't use background thread to scavenge memory on Tiger until we figure out why it causes a crash. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27900 | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |  | 
 | 2009-08-03  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by Jan Alonzo. | 
 |  | 
 |         Fix build break on Gtk/x86_64. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27936 | 
 |  | 
 |         Use JSVALUE64 for X86_64 LINUX, except Qt. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-02  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Fix the GTK+ build. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Disabled JSVALUE32_64 on Qt builds, since all layout tests mysteriously | 
 |         crash with it enabled. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Qt build fix. | 
 |  | 
 |         Added JSAPIValueWrapper.cpp to the build. | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-08-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix. | 
 |  | 
 |         Exported symbols for JSAPIValueWrapper. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-08-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         GTK build fix. | 
 |  | 
 |         * jit/JITStubs.cpp: #include <stdarg.h>, for a definition of va_start. | 
 |  | 
 | 2009-08-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Qt build fix. | 
 |          | 
 |         * runtime/Collector.cpp: #include <limits.h>, for a definition of ULONG_MAX. | 
 |  | 
 | 2009-08-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: Nixed JSImmediate::prototype, JSImmediate::toObject, | 
 |         and JSImmediate::toThisObject, and removed their exported symbols. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |         * runtime/JSImmediate.cpp: | 
 |         * runtime/JSImmediate.h: | 
 |  | 
 | 2009-08-02  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Enabled JSVALUE32_64 by default on all platforms other than x86_64 (which uses JSVALUE64). | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-08-02  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         Reviewed by Jan Alonzo. | 
 |  | 
 |         Script for building the JavaScriptCore library for wx. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27619 | 
 |  | 
 |         * wscript: Added. | 
 |  | 
 | 2009-08-02  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         DateMath depends on strftime and localtime, which need to be imported manually on WinCE | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26558 | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |  | 
 | 2009-08-01  David Kilzer  <ddkilzer@apple.com> | 
 |  | 
 |         wtf/Threading.h: added include of Platform.h | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         * wtf/Threading.h: Added #include "Platform.h" since this header | 
 |         uses PLATFORM() and other macros. | 
 |  | 
 | 2009-08-01  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Rubber-stamped by Oliver Hunt. | 
 |  | 
 |         Roll out r46668 as it was misinformed.  ScopeChain is only used with placement new. | 
 |  | 
 |         * runtime/ScopeChain.h: | 
 |  | 
 | 2009-08-01  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's HashMap class | 
 |         http://bugs.webkit.org/show_bug.cgi?id=27871 | 
 |  | 
 |         Inherits HashMap class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/API/JSClassRef.cpp:148. | 
 |  | 
 |         * wtf/RefPtrHashMap.h: | 
 |         (WTF::): | 
 |  | 
 | 2009-08-01  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's ScopeChain class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27834 | 
 |  | 
 |         Inherits ScopeChain class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/JSFunction.h:109. | 
 |  | 
 |         * runtime/ScopeChain.h: | 
 |  | 
 | 2009-08-01  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's RegExpConstructorPrivate struct  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27833 | 
 |  | 
 |         Inherits RegExpConstructorPrivate class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/RegExpConstructor.cpp:152. | 
 |  | 
 |         * runtime/RegExpConstructor.cpp: | 
 |  | 
 | 2009-07-31  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Resurrect the old GetTickCount implementation of currentTime, controlled by WTF_USE_QUERY_PERFORMANCE_COUNTER | 
 |         currentSystemTime taken from older WebKit; currentTime written by Yong Li <yong.li@torchmobile.com>; cleanup by Joe Mason <joe.mason@torchmobile.com> | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27848 | 
 |  | 
 |         * wtf/CurrentTime.cpp: | 
 |         (WTF::currentSystemTime): get current time with GetCurrentFT | 
 |         (WTF::currentTime): track msec elapsed since first currentSystemTime call using GetTickCount | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-31  Ada Chan  <adachan@apple.com> | 
 |  | 
 |         Fixes the Windows release-PGO build. | 
 |  | 
 |         Reviewed by Jon Honeycutt. | 
 |  | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Suppresses the warning about unreachable code that we get by adding "return 0" to WTF::TCMalloc_PageHeap::runScavengerThread(). | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::runScavengerThread): Fixes the error about the method not returning a value in the release-PGO build. | 
 |  | 
 | 2009-07-31  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Change malloc to fastMalloc and free to fastFree in Yarr's RegexInterpreter.cpp | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27874 | 
 |  | 
 |         Use fastMalloc and fastFree instead of malloc and free in RegexInterpreter.cpp's methods. | 
 |  | 
 |         * yarr/RegexInterpreter.cpp: | 
 |         (JSC::Yarr::Interpreter::allocDisjunctionContext): | 
 |         (JSC::Yarr::Interpreter::freeDisjunctionContext): | 
 |         (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext): | 
 |         (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext): | 
 |  | 
 | 2009-07-30  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Reviewed by Jan Alonzo. | 
 |  | 
 |         Fix compiler warning. | 
 |  | 
 |         GCC does not like C++-style comments in preprocessor directives. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-30  John McCall  <rjmccall@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Optimize the X86_64 trampolines: avoid the need for filler arguments | 
 |         and move the stub-args area closer to the stack pointer. | 
 |  | 
 |         * jit/JIT.h: adjust patch offsets because of slight code-size change  | 
 |         * jit/JITCode.h: | 
 |         (JSC::JITCode::execute): don't pass filler args | 
 |         * jit/JITStubs.cpp: | 
 |         (ctiTrampoline): (X86_64): push args onto stack, use args directly | 
 |         (ctiVMThrowTrampoline): (X86_64): adjust %rsp by correct displacement | 
 |         (ctiOpThrowNotCaught): (X86_64): adjust %rsp by correct displacement | 
 |         * jit/JITStubs.h: | 
 |         (JITStackFrame): (X86_64): move args area earlier | 
 |         (ctiTrampoline): remove filler args from prototype | 
 |  | 
 | 2009-07-30  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Temporarily revert r46618 since this is b0rking on Linux. | 
 |  | 
 | 2009-07-23  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Make get_by_id/put_by_id/method_check/call defer optimization using a data flag rather than a code modification. | 
 |         ( https://bugs.webkit.org/show_bug.cgi?id=27635 ) | 
 |  | 
 |         This improves performance of ENABLE(ASSEMBLER_WX_EXCLUSIVE) builds by 2-2.5%, reducing the overhead to about 2.5%. | 
 |         (No performance impact with ASSEMBLER_WX_EXCLUSIVE disabled). | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::printStructureStubInfo): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::): | 
 |         (JSC::CallLinkInfo::seenOnce): | 
 |         (JSC::CallLinkInfo::setSeen): | 
 |         (JSC::MethodCallLinkInfo::seenOnce): | 
 |         (JSC::MethodCallLinkInfo::setSeen): | 
 |             - Change a pointer in CallLinkInfo/MethodCallLinkInfo to use a PtrAndFlags, use a flag to track when an op has been executed once. | 
 |  | 
 |         * bytecode/StructureStubInfo.cpp: | 
 |         (JSC::StructureStubInfo::deref): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID. | 
 |  | 
 |         * bytecode/StructureStubInfo.h: | 
 |         (JSC::StructureStubInfo::StructureStubInfo): | 
 |         (JSC::StructureStubInfo::initGetByIdSelf): | 
 |         (JSC::StructureStubInfo::initGetByIdProto): | 
 |         (JSC::StructureStubInfo::initGetByIdChain): | 
 |         (JSC::StructureStubInfo::initGetByIdSelfList): | 
 |         (JSC::StructureStubInfo::initGetByIdProtoList): | 
 |         (JSC::StructureStubInfo::initPutByIdTransition): | 
 |         (JSC::StructureStubInfo::initPutByIdReplace): | 
 |         (JSC::StructureStubInfo::seenOnce): | 
 |         (JSC::StructureStubInfo::setSeen): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID, add a flag to track when an op has been executed once. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitGetById): | 
 |         (JSC::BytecodeGenerator::emitPutById): | 
 |             - Make StructureStubInfo store the type as an integer, rather than an OpcodeID. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::unlinkCall): | 
 |             - Remove the "don't lazy link" stage of calls. | 
 |  | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileCTIMachineTrampolines): | 
 |             - Remove the "don't lazy link" stage of calls. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |             - Remove the "don't lazy link" stage of calls. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::JITStubs::DEFINE_STUB_FUNCTION): | 
 |         (JSC::JITStubs::getPolymorphicAccessStructureListSlot): | 
 |             - Remove the "don't lazy link" stage of calls, and the "_second" stage of get_by_id/put_by_id/method_check. | 
 |  | 
 |         * jit/JITStubs.h: | 
 |         (JSC::JITThunks::ctiStringLengthTrampoline): | 
 |         (JSC::JITStubs::): | 
 |             - Remove the "don't lazy link" stage of calls, and the "_second" stage of get_by_id/put_by_id/method_check. | 
 |  | 
 |         * wtf/PtrAndFlags.h: | 
 |         (WTF::PtrAndFlags::PtrAndFlags): | 
 |         (WTF::PtrAndFlags::operator!): | 
 |         (WTF::PtrAndFlags::operator->): | 
 |             - Add ! and -> operators, add constuctor with pointer argument. | 
 |  | 
 | 2009-07-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fixed failing tests seen on Windows buildbot. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): Use "int" instead of "bool" to guarantee a 32-bit result, | 
 |         regardless of compiler. gcc on mac uses 32-bit values for bool, | 
 |         but gcc on linux and MSVC on Windows use 8-bit values. | 
 |  | 
 | 2009-07-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: added missing symbols on Windows. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows build fix: removed stale symbols on Windows. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | === End merge of nitro-extreme branch 2009-07-30 === | 
 |  | 
 | 2009-07-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Fixed a post-review typo in r46066 that caused tons of test failures. | 
 |          | 
 |         SunSpider reports no change. | 
 |  | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): Initialize the full vector capacity, to avoid | 
 |         uninitialized members at the end. | 
 |  | 
 | 2009-07-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Windows WebKit build fix: Added some missing exports. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-17  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Get the branch working on windows. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27391 | 
 |          | 
 |         SunSpider says 0.3% faster. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Updated | 
 |         MSVC export lists to fix linker errors. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Added / removed | 
 |         new / old project files. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): Used #pragma pack to tell | 
 |         MSVC that these structures represent actual memory layout, and should not be | 
 |         automatically aligned. Changed the return value load to load a 64bit quantity | 
 |         into the canonical registers. | 
 |  | 
 |         * jit/JIT.h: Moved OBJECT_OFFSETOF definition to StdLibExtras.h because | 
 |         it's needed by more than just the JIT, and it supplements a standard library | 
 |         macro (offsetof). | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): Fixed an incorrectly signed | 
 |         cast to resolve an MSVC warning. | 
 |  | 
 |         * jit/JITStubs.h: Used #pragma pack to tell MSVC that these structures | 
 |         represent actual memory layout, and should not be automatically aligned.  | 
 |  | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): Replaced memset_pattern8 with a for loop, since | 
 |         memset_pattern8 is not portable. (I verified that this version of the loop | 
 |         gives the best performance / generated code in GCC.) | 
 |  | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::JSObject): Removed accidental usage of FIELD_OFFSET -- | 
 |         OBJECT_OFFSETOF is our new macro name. (FIELD_OFFSET conflicts with a | 
 |         definition in winnt.h.) | 
 |  | 
 |         * runtime/JSValue.cpp: Added some headers needed by non-all-in-one builds. | 
 |          | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::): Made the tag signed, to match MSVC's signed enum values. | 
 |         (GCC doesn't seem to care one way or the other.) | 
 |  | 
 |         * wtf/MainThread.cpp: Moved the StdLibExtras.h #include -- I did this a | 
 |         while ago to resolve a conflict with winnt.h. I can't remember if it's truly | 
 |         still needed, but what the heck. | 
 |  | 
 |         * wtf/StdLibExtras.h: Moved OBJECT_OFFSETOF definition here. | 
 |  | 
 | 2009-07-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig (?). | 
 |          | 
 |         Fixed an assertion seen during the stress test. | 
 |          | 
 |         Don't assume that, if op1 is constant, op2 is not, and vice versa. Sadly, | 
 |         not all constants get folded. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |  | 
 | 2009-07-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Include op_convert_this in result caching. | 
 |          | 
 |         No change on SunSpider or v8. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): Made the op_convert_this JIT stub return an EncodedJSValue, so | 
 |         to maintain the result caching contract that { tag, payload } can be | 
 |         found in { regT1, regT0 }. | 
 |  | 
 | 2009-07-06  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Implemented result chaining. | 
 |          | 
 |         1% faster on SunSpider. 4%-5% faster on v8. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::move): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::movl_rr): Added an optimization to eliminate | 
 |         no-op mov instructions, to simplify chaining. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::JIT): | 
 |         * jit/JIT.h: Added data members and helper functions for recording | 
 |         chained results. We record both a mapping from virtual to machine register | 
 |         and the opcode for which the mapping is valid, to help ensure that the | 
 |         mapping isn't used after the mapped register has been stomped by other | 
 |         instructions. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         (JSC::JIT::compileOpCallVarargsSlowCase): | 
 |         (JSC::JIT::emit_op_ret): | 
 |         (JSC::JIT::emit_op_construct_verify): | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): Chain function call results. | 
 |  | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitLoadTag): | 
 |         (JSC::JIT::emitLoadPayload): | 
 |         (JSC::JIT::emitLoad): | 
 |         (JSC::JIT::emitLoad2): | 
 |         (JSC::JIT::isLabeled): | 
 |         (JSC::JIT::map): | 
 |         (JSC::JIT::unmap): | 
 |         (JSC::JIT::isMapped): | 
 |         (JSC::JIT::getMappedPayload): | 
 |         (JSC::JIT::getMappedTag): Use helper functions when loading virtual | 
 |         registers into machine registers, in case the loads can be eliminated | 
 |         by chaining. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_mov): | 
 |         (JSC::JIT::emit_op_end): | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emit_op_get_global_var): | 
 |         (JSC::JIT::emit_op_put_global_var): | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_to_primitive): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emit_op_jneq_ptr): | 
 |         (JSC::JIT::emit_op_next_pname): | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_catch): Chain results from these opcodes. | 
 |  | 
 |         (JSC::JIT::emit_op_profile_will_call): | 
 |         (JSC::JIT::emit_op_profile_did_call): Load the profiler into regT2 to | 
 |         avoid stomping a chained result. | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emit_op_get_by_id): Chain results from these opcodes. | 
 |  | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::addArgument): Always use { regT1, regT0 }, to facilitate | 
 |         chaining. | 
 |  | 
 |         (JSC::JITStubCall::call): Unmap all mapped registers, since our callee | 
 |         stub might stomp them. | 
 |  | 
 | 2009-07-01  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Don't reload values in emitBinaryDoubleOp. | 
 |  | 
 |         SunSpider reports a 0.6% progression.  | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |  | 
 | 2009-07-01  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Convert op_div to load op1 and op2 up front. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_div): | 
 |  | 
 | 2009-07-01  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Don't emit code in emitBinaryDoubleOp if code is unreachable, observable | 
 |         via an empty (unlinked) jumplist passed in.  This only effects op_jnless | 
 |         and op_jnlesseq at present. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |  | 
 | 2009-07-01  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Converted op_mod to put { tag, payload } in { regT1, regT0 }, and | 
 |         tidied up its constant case. | 
 |          | 
 |         SunSpider reports a 0.2% regression, but a micro-benchmark of op_mod | 
 |         shows a 12% speedup, and the SunSpider test that uses op_mod most should | 
 |         benefit a lot from result caching in the end, since it almost always | 
 |         performs (expression) % constant. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mod): | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |  | 
 | 2009-06-30  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Converted some more arithmetic ops to put { tag, payload } in | 
 |         { regT1, regT0 }. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |  | 
 | 2009-06-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Converted some more arithmetic ops to put { tag, payload } in | 
 |         { regT1, regT0 }, and added a case for subtract constant. | 
 |          | 
 |         SunSpider says no change. v8 says 0.3% slower. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitSub32Constant): | 
 |         (JSC::JIT::emitSlow_op_sub): | 
 |  | 
 | 2009-06-30  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Remove more uses of addressFor(), load double constants directly from | 
 |         the constantpool in the CodeBlock, rather than from the register file. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |  | 
 | 2009-06-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed a bug in postfix ops, where we would treat x = x++ and x = x-- | 
 |         as a no-op, even if x were not an int, and the ++/-- could have side-effects. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |         (JSC::JIT::emitSlow_op_post_inc): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emitSlow_op_post_dec): | 
 |  | 
 | 2009-06-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Converted some arithmetic ops to put { tag, payload } in | 
 |         { regT1, regT0 }. | 
 |          | 
 |         SunSpider says 0.7% faster. v8 says no change. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emit_op_lshift): | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emit_op_bitand): | 
 |         (JSC::JIT::emit_op_bitor): | 
 |         (JSC::JIT::emit_op_bitxor): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::isOperandConstantImmediateInt): | 
 |         (JSC::JIT::getOperandConstantImmediateInt): | 
 |  | 
 | 2009-06-30  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Start removing cases of addressFor(). | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_div): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitLoadDouble): | 
 |         (JSC::JIT::emitLoadInt32ToDouble): | 
 |         (JSC::JIT::emitStoreDouble): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |  | 
 | 2009-06-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Rolled back in my last patch with regression fixed. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emitSlow_op_resolve_global): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emitSlow_op_neq): | 
 |  | 
 | 2009-06-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Rolled out my last patch because it was a 2% SunSpider regression. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emitSlow_op_neq): | 
 |  | 
 | 2009-06-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin "Sam Weinig" Barraclough. | 
 |          | 
 |         Standardized the rest of our opcodes to put { tag, payload } in | 
 |         { regT1, regT0 } where possible. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emitSlow_op_resolve_global): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emitSlow_op_neq): | 
 |  | 
 | 2009-06-30  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Replace calls to store32(tagFor()) and store32(payloadFor()) | 
 |         with emitStoreInt32(), emitStoreBool(), and emitStoreCell(). | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_negate): | 
 |         (JSC::JIT::emit_op_lshift): | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emit_op_bitand): | 
 |         (JSC::JIT::emitBitAnd32Constant): | 
 |         (JSC::JIT::emit_op_bitor): | 
 |         (JSC::JIT::emitBitOr32Constant): | 
 |         (JSC::JIT::emit_op_bitxor): | 
 |         (JSC::JIT::emitBitXor32Constant): | 
 |         (JSC::JIT::emit_op_bitnot): | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emit_op_pre_inc): | 
 |         (JSC::JIT::emit_op_pre_dec): | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitSub32ConstantLeft): | 
 |         (JSC::JIT::emitSub32ConstantRight): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         (JSC::JIT::emit_op_div): | 
 |         (JSC::JIT::emit_op_mod): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::emit_op_load_varargs): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitStoreInt32): | 
 |         (JSC::JIT::emitStoreCell): | 
 |         (JSC::JIT::emitStoreBool): | 
 |         (JSC::JIT::emitStore): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emit_op_not): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emitSlow_op_neq): | 
 |         (JSC::JIT::compileOpStrictEq): | 
 |         (JSC::JIT::emit_op_eq_null): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::call): | 
 |  | 
 | 2009-06-30  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Standardized the rest of the property access instructions to put { tag, | 
 |         payload } in { regT1, regT0 }. | 
 |  | 
 |         Small v8 speedup, 0.2% SunSpider slowdown. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitLoad): | 
 |         (JSC::JIT::emitLoad2): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |         (JSC::JIT::emitSlow_op_put_by_id): | 
 |         (JSC::JIT::patchPutByIdReplace): | 
 |  | 
 | 2009-06-29  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Various cleanups. | 
 |         - Use fpRegT* instead of X86::xmm*. | 
 |         - Use a switch statement in emitBinaryDoubleOp instead of a bunch of | 
 |           if/elses. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_div): | 
 |  | 
 | 2009-06-29  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Add inline code dealing with doubles for op_jfalse and op_jtrue. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::): | 
 |         (JSC::MacroAssemblerX86Common::zeroDouble): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |  | 
 | 2009-06-28  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Standardized op_get_by_id to put { tag, payload } in { regT1, regT0 }. | 
 |          | 
 |         SunSpider and v8 report maybe 0.2%-0.4% regressions, but the optimization | 
 |         this enables will win much more than that back. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JIT.h: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::emit_op_get_by_id): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::compileGetByIdSlowCase): | 
 |         (JSC::JIT::patchGetByIdSelf): | 
 |         (JSC::JIT::privateCompilePatchGetArrayLength): | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |  | 
 | 2009-06-26  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |          | 
 |         Standardized op_call to put { tag, payload } in { regT1, regT0 }. | 
 |          | 
 |         SunSpider and v8 report no change. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): | 
 |         (JSC::JIT::compileOpCallSetupArgs): | 
 |         (JSC::JIT::compileOpConstructSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargsSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |  | 
 | 2009-06-26  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Handle multiplying by zero a little better by | 
 |         inlining the case that both operands are non-negative | 
 |         into the slowpath. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::branchOr32): | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |  | 
 | 2009-06-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Optimize x++ to ++x inside for loops. | 
 |          | 
 |         Sadly, no measurable speedup, but this should help with result chaining. | 
 |  | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ForNode::emitBytecode): | 
 |  | 
 | 2009-06-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Standardized some more opcodes to put { tag, payload } in { regT1, regT0 }. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_bitnot): | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |  | 
 | 2009-06-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Standardized some more opcodes to put { tag, payload } in { regT1, regT0 }. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_bitnot): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emit_op_pre_inc): | 
 |         (JSC::JIT::emitSlow_op_pre_inc): | 
 |         (JSC::JIT::emit_op_pre_dec): | 
 |         (JSC::JIT::emitSlow_op_pre_dec): | 
 |  | 
 | 2009-06-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Standardized some more opcodes to put { tag, payload } in { regT1, regT0 }. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_negate): | 
 |         (JSC::JIT::emitSlow_op_negate): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::emit_op_construct_verify): | 
 |         (JSC::JIT::emitSlow_op_construct_verify): | 
 |  | 
 | 2009-06-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Standardized some more opcodes to put { tag, payload } in { regT1, regT0 }. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_true): | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |         (JSC::JIT::emit_op_jeq_null): | 
 |         (JSC::JIT::emit_op_jneq_null): | 
 |         (JSC::JIT::emit_op_eq_null): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |  | 
 | 2009-06-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig (sort of, maybe). | 
 |          | 
 |         Fixed some ASSERTs in http/tests/security. | 
 |          | 
 |         These ASSERTs were introduced by http://trac.webkit.org/changeset/45057, | 
 |         but the underlying problem was actually older. http://trac.webkit.org/changeset/45057 | 
 |         just exposed the problem by enabling optimization in more cases. | 
 |          | 
 |         The ASSERTs fired because we tested PropertySlot::slotBase() for validity, | 
 |         but slotBase() ASSERTs if it's invalid, so we would ASSERT before | 
 |         the test could happen. Solution: Remove the ASSERT. Maybe it was valid | 
 |         once, but it clearly goes against a pattern we've deployed of late. | 
 |          | 
 |         The underlying problem was that WebCore would re-use a PropertySlot in | 
 |         the case of a forwarding access, and the second use would not completely | 
 |         overwrite the first use. Solution: Make sure to overwrite m_offset when | 
 |         setting a value on a PropertySlot. (Other values already get implicitly | 
 |         overwritten during reuse.) | 
 |  | 
 |         * runtime/PropertySlot.h: | 
 |         (JSC::PropertySlot::PropertySlot): | 
 |         (JSC::PropertySlot::setValueSlot): | 
 |         (JSC::PropertySlot::setValue): | 
 |         (JSC::PropertySlot::setRegisterSlot): | 
 |         (JSC::PropertySlot::setUndefined): | 
 |         (JSC::PropertySlot::slotBase): | 
 |         (JSC::PropertySlot::clearOffset): | 
 |  | 
 | 2009-06-24  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Enable JIT_OPTIMIZE_METHOD_CALLS on the branch, implementation matches current implemenatation in ToT. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::emitSlow_op_method_check): | 
 |         (JSC::JIT::emit_op_get_by_id): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::emitSlow_op_get_by_id): | 
 |         (JSC::JIT::compileGetByIdSlowCase): | 
 |  | 
 | 2009-06-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Bit off a tiny bit more of standardizing opcode behavior to help with result | 
 |         caching. | 
 |          | 
 |         SunSpider reports no change, v8 maybe a tiny speedup. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emitSlow_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         (JSC::JIT::emitSlow_op_convert_this): | 
 |  | 
 | 2009-06-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Bit off a tiny bit more of standardizing opcode behavior to help with result | 
 |         caching -- including removing my old enemy, op_resolve_function, because | 
 |         it was non-standard, and removing it felt better than helping it limp along. | 
 |          | 
 |         SunSpider reports no change, v8 maybe a tiny speedup. | 
 |          | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JIT.h: | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_to_primitive): | 
 |         (JSC::JIT::emitSlow_op_to_primitive): | 
 |         * jit/JITStubs.cpp: | 
 |         * jit/JITStubs.h: | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::FunctionCallResolveNode::emitBytecode): | 
 |  | 
 | 2009-06-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Bit off a tiny bit of standardizing opcode behavior to help with result | 
 |         caching. | 
 |          | 
 |         0.6% SunSpider speedup. 0.3% v8 speedup. | 
 |  | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitLoad): Accomodate a base register that overlaps with payload | 
 |         by loading tag before payload, to avoid stomping base/payload. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_mov): Abide by the standard "tag in regT1, payload in | 
 |         regT0" semantics. | 
 |  | 
 |         (JSC::JIT::emit_op_get_global_var): | 
 |         (JSC::JIT::emit_op_put_global_var): Ditto. Also, removed some irrelevent | 
 |         loads while I was at it. The global object's "d" pointer never changes | 
 |         after construction. | 
 |  | 
 | 2009-06-23  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Remove 'arguments' field from Register union (again). | 
 |         This time do so without breaking tests (radical, I know). | 
 |  | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::optionalCalleeArguments): | 
 |         (JSC::ExecState::setArgumentCount): | 
 |         (JSC::ExecState::init): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::dumpRegisters): | 
 |         (JSC::Interpreter::unwindCallFrame): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         (JSC::Interpreter::retrieveArguments): | 
 |         * interpreter/Register.h: | 
 |         (JSC::Register::withInt): | 
 |         (JSC::Register::): | 
 |         (JSC::Register::Register): | 
 |         (JSC::Register::i): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::cti_op_tear_off_arguments): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::JSActivation::copyRegisters): | 
 |         (JSC::Register::arguments): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::argumentsGetter): | 
 |         * runtime/JSActivation.h: | 
 |  | 
 | 2009-06-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Removed some result register tracking cruft in preparation for a new | 
 |         result tracking mechanism. | 
 |          | 
 |         SunSpider reports no change. | 
 |  | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::JmpDst::JmpDst): No need to track jump targets in | 
 |         machine code; we already do this in bytecode. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::JIT): | 
 |         (JSC::JIT::emitTimeoutCheck): Make sure to save and restore the result | 
 |         registers, so an opcode with a timeout check can still benefit from result | 
 |         register caching. | 
 |  | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): Removed calls to killLastResultRegister() | 
 |         in preparation for something new. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitGetFromCallFrameHeaderPtr): | 
 |         (JSC::JIT::emitGetFromCallFrameHeader32): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jmp): | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |         (JSC::JIT::emit_op_jeq_null): | 
 |         (JSC::JIT::emit_op_jneq_null): | 
 |         (JSC::JIT::emit_op_jneq_ptr): | 
 |         (JSC::JIT::emit_op_jsr): | 
 |         (JSC::JIT::emit_op_sret): | 
 |         (JSC::JIT::emit_op_jmp_scopes): ditto | 
 |  | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::JITStubCall): | 
 |         (JSC::JITStubCall::getArgument): added a mechanism for reloading an argument | 
 |         you passed to a JIT stub, for use in emitTimeoutCheck. | 
 |  | 
 | 2009-06-23  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Remove now-useless inplace variants of binary ops. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_bitand): | 
 |         (JSC::JIT::emit_op_bitor): | 
 |         (JSC::JIT::emit_op_bitxor): | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emit_op_mul): | 
 |  | 
 | 2009-06-23  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Move off memory operands to aid in re-enabling result caching. | 
 |  | 
 |         - No regression measured. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_negate): | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emit_op_lshift): | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emit_op_bitand): | 
 |         (JSC::JIT::emitBitAnd32Constant): | 
 |         (JSC::JIT::emitBitAnd32InPlace): | 
 |         (JSC::JIT::emit_op_bitor): | 
 |         (JSC::JIT::emitBitOr32Constant): | 
 |         (JSC::JIT::emitBitOr32InPlace): | 
 |         (JSC::JIT::emit_op_bitxor): | 
 |         (JSC::JIT::emitBitXor32Constant): | 
 |         (JSC::JIT::emitBitXor32InPlace): | 
 |         (JSC::JIT::emit_op_bitnot): | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emit_op_pre_inc): | 
 |         (JSC::JIT::emitSlow_op_pre_inc): | 
 |         (JSC::JIT::emit_op_pre_dec): | 
 |         (JSC::JIT::emitSlow_op_pre_dec): | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitAdd32InPlace): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emitSlowAdd32Constant): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitSlow_op_sub): | 
 |         (JSC::JIT::emitSub32ConstantLeft): | 
 |         (JSC::JIT::emitSub32ConstantRight): | 
 |         (JSC::JIT::emitSub32InPlaceLeft): | 
 |         (JSC::JIT::emitSub32InPlaceRight): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitMul32InPlace): | 
 |         (JSC::JIT::emit_op_div): | 
 |         (JSC::JIT::emit_op_mod): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emit_op_to_primitive): | 
 |         (JSC::JIT::emit_op_not): | 
 |         (JSC::JIT::emit_op_jneq_ptr): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |  | 
 | 2009-06-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed some missing and/or misplaced labels in bytecode generation, so | 
 |         we don't have to work around them in JIT code generation. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitJumpSubroutine): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::TryNode::emitBytecode): | 
 |  | 
 | 2009-06-22  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         For member function calls, emit "this" directly into the "this" slot | 
 |         for the function call, instead of moving it there later. This reduces | 
 |         time spent in op_mov during certain calls, like "a.b.c()". | 
 |          | 
 |         1%-2% speedup on v8, mostly richards and delta-blue. | 
 |  | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::FunctionCallDotNode::emitBytecode): | 
 |  | 
 | 2009-06-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Remove 'arguments' field from Register union.  Having JSCell derived types in the union is | 
 |         dangerous since it opens the possibility for the field to be written as a raw pointer but | 
 |         then read as a JSValue.  This will lead to statle data being read for the tag, which may | 
 |         be dangerous.  Having removed Arguments* types form Register, all arguments objects must | 
 |         always explicitly be stored in the register file as JSValues. | 
 |  | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::optionalCalleeArguments): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::unwindCallFrame): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         (JSC::Interpreter::retrieveArguments): | 
 |         * interpreter/Register.h: | 
 |         (JSC::Register::): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::cti_op_tear_off_arguments): | 
 |         * runtime/Arguments.h: | 
 |         (JSC::JSActivation::copyRegisters): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::argumentsGetter): | 
 |         * runtime/JSActivation.h: | 
 |  | 
 | 2009-06-03  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Add back known this value optimization by abstracting | 
 |         slow case if not JSCell jumps. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         (JSC::JIT::compileOpCallVarargsSlowCase): | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitJumpSlowCaseIfNotJSCell): | 
 |         (JSC::JIT::linkSlowCaseIfNotJSCell): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emitSlow_op_instanceof): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |         (JSC::JIT::emit_op_get_by_id): | 
 |         (JSC::JIT::emitSlow_op_get_by_id): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |         (JSC::JIT::emitSlow_op_put_by_id): | 
 |  | 
 | 2009-06-01  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed some of the regression in crypto-aes.js. (8.5% speedup in | 
 |         crypto-aes.js.) | 
 |          | 
 |         SunSpider reports no change overall. | 
 |          | 
 |         Division was producing double results, which took the slow path through | 
 |         array access code. | 
 |          | 
 |         Strangely, all my attempts at versions of this patch that modified array | 
 |         access code to accept ints encoded as doubles along the fast or slow paths | 
 |         were regressions. So I did this instead. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_div): When dividing an int by an int, go ahead and try | 
 |         to turn the result into an int. Don't just do int division, though, because | 
 |         testing shows it to be slower than SSE double division, and the corner | 
 |         cases are pretty complicated / lengthy on top of that. Also, don't try | 
 |         to canonicalize division of known tiny numerators into ints, since that's a | 
 |         waste of time. | 
 |  | 
 | 2009-05-26  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |          | 
 |         Fixed a regression caused by my recent fix for NaN. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitBinaryDoubleOp): Actually do the comparison in reverse | 
 |         order, like the ChangeLog said we would, bokay? | 
 |  | 
 | 2009-05-26  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig and Oliver Hunt. | 
 |          | 
 |         Fixed two edge cases in %: | 
 |          | 
 |         - Don't do -2147483648 % x as a fast case, since you might do -2147483648 % -1, | 
 |         which will signal a hardware exception due to overflow. | 
 |  | 
 |         - In the case of a zero remainder, be sure to store negative zero if the | 
 |         dividend was zero. | 
 |          | 
 |         SunSpider reports no change. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mod): | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |  | 
 | 2009-05-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |          | 
 |         Fixed a regression when comparing to NaN. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitBinaryDoubleOp): For op_jnless and op_jnless_eq, do the | 
 |         comparison in reverse order, and jump if the result is below or  | 
 |         below-or-equal. This ensures that we do jump in the case of NaN. | 
 |  | 
 | 2009-05-25  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |          | 
 |         SunSpider says no change. | 
 |          | 
 |         Fixed regressions in fast/js/var-declarations-shadowing.html and | 
 |         fast/js/equality.html, caused by recent == and != optimizations. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::cti_op_eq): Don't treat "compare to string" as always | 
 |         numeric or string comparison. If the second operand is an object, you | 
 |         need to ToPrimitive it, and start all over again. Also, I wrote out each | 
 |         of the possible cases explicitly, to cut down on redundant branching. | 
 |  | 
 | 2009-05-25  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Fix bug in fast/js/constant-folding.html where we were not negating | 
 |         -0 properly. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_negate): | 
 |  | 
 | 2009-05-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |          | 
 |         Refactored new slow case codegen for == and !=. | 
 |          | 
 |         SunSpider reports no change, maybe a tiny speedup. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emitSlow_op_neq): Made a vptr comparison a *Ptr operation, | 
 |         instead of *32, to make it portable to 64bit. Reorganized the string | 
 |         and generic cases to make their control flow a little clearer. | 
 |  | 
 | 2009-05-23  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |          | 
 |         Optimized == and != for our new value representation -- especially for strings. | 
 |          | 
 |         14% speedup on date-format-tofte. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emitSlow_op_neq): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::JITStubCall): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::cti_op_eq): | 
 |         (JSC::JITStubs::cti_op_eq_strings): | 
 |         (JSC::JITStubs::cti_op_call_eval): | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): | 
 |         * runtime/JSValue.h: | 
 |  | 
 | 2009-05-22  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Fix non-SSE enabled builds. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_add): Don't early return here, we still need to call the JIT stub. | 
 |         (JSC::JIT::emitSlow_op_sub): Ditto. | 
 |  | 
 | 2009-05-22  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Here's a thought: let's not take a jit stub call just to multiply by 1, | 
 |         bokay? | 
 |          | 
 |         imul doesn't set the zero flag, so to test for a zero result, we need | 
 |         an explicit instruction. (Luckily, it does set the overflow flag, so | 
 |         we can still use that.) | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         (JSC::JIT::emitMul32InPlace): | 
 |  | 
 | 2009-05-22  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey "Premature Commit" Garen. | 
 |  | 
 |         Add back constant integer cases for op_add. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emitSlowAdd32Constant): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::getConstantOperandImmediateDouble): | 
 |         (JSC::JIT::isOperandConstantImmediateDouble): | 
 |  | 
 | 2009-05-22  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Added fast double cases for op_jnless and op_jnlesseq. | 
 |  | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::JumpList::jumps): New accesor, used by | 
 |         addSlowCase. | 
 |  | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::ucomisd_rm): New method for comparing register to | 
 |         memory. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emit_op_div): Modified emitBinaryDoubleOp to accept comparison/jump | 
 |         operations in addition to operations with explicit result registers. | 
 |  | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::addSlowCase): Added an "addSlowCase" for JumpLists, so clients | 
 |         can track multiple jumps to the same slow case condition together. | 
 |  | 
 | 2009-05-21  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Implement op_negate inline fast cases. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::neg32): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::): | 
 |         (JSC::X86Assembler::negl_m): | 
 |         (JSC::X86Assembler::xorpd_rr): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_negate): | 
 |         (JSC::JIT::emitSlow_op_negate): | 
 |  | 
 | 2009-05-20  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Update the patchOffsetGetByIdSlowCaseCall constant for the | 
 |         case that OPCODE_SAMPLING is enabled. | 
 |  | 
 |         * jit/JIT.h: | 
 |  | 
 | 2009-05-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Added support for inline subtraction of doubles. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitSlow_op_sub): | 
 |         (JSC::JIT::emitSlowSub32InPlaceLeft): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |  | 
 | 2009-05-20  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Added support for inline division. | 
 |  | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::): | 
 |         (JSC::X86Assembler::divsd_rr): | 
 |         (JSC::X86Assembler::divsd_mr): | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitBinaryOp): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         (JSC::JIT::privateCompileSlowCases): | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_div): | 
 |         (JSC::JIT::emitSlow_op_div): | 
 |  | 
 | 2009-05-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Added support for inline addition of doubles. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emitSlowAdd32InPlace): | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |  | 
 | 2009-05-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Factored inline double operations into a helper function, so that we | 
 |         can reuse this code for other math operations. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitBinaryDoubleOp): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): | 
 |  | 
 | 2009-05-20  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Added support for inline multiplication of doubles. | 
 |  | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::cvtsi2sd_mr): New function, useful for loading an | 
 |         int32 into a double register. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): Filled out these cases for double arithmetic. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::addressFor): New function, useful for addressing a JSValue's | 
 |         full 64bits as a double. | 
 |  | 
 | 2009-05-19  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement and enable optimized calls. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): Add ENABLE(JIT_OPTIMIZE_CALL) guards | 
 |         around the the optimize call only trampolines (virtualCallPreLink and virtualCallLink). | 
 |         Update the trampolines to account for the new JSValue representation. | 
 |         (JSC::JIT::unlinkCall): Use NULL instead of JSValue noValue.  | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCall): Update to account for the new JSValue representation | 
 |         (JSC::JIT::compileOpCallSlowCase): Ditto. | 
 |  | 
 |         * jit/JITStubs.h: Remove incorrect !ENABLE(JIT_OPTIMIZE_CALL) guard. | 
 |  | 
 |         * wtf/Platform.h: Enable ENABLE_JIT_OPTIMIZE_CALL. | 
 |  | 
 | 2009-05-19  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement and enable optimized property access. | 
 |  | 
 |         * assembler/AbstractMacroAssembler.h: Fix comment. | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): Remove array length trampoline | 
 |         and implement the string length trampoline. | 
 |         * jit/JIT.h: Add new constants for patch offsets. | 
 |         * jit/JITInlineMethods.h: Remove FIELD_OFFSET which is now in StdLibExtras.h. | 
 |         * jit/JITPropertyAccess.cpp:  | 
 |         (JSC::JIT::emit_op_get_by_id): | 
 |         (JSC::JIT::emitSlow_op_get_by_id): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |         (JSC::JIT::emitSlow_op_put_by_id): | 
 |         (JSC::JIT::compilePutDirectOffset): | 
 |         (JSC::JIT::compileGetDirectOffset): | 
 |         (JSC::JIT::privateCompilePutByIdTransition): | 
 |         (JSC::JIT::patchGetByIdSelf): | 
 |         (JSC::JIT::patchPutByIdReplace): | 
 |         (JSC::JIT::privateCompilePatchGetArrayLength): | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::addArgument): Add version of addArgument that takes | 
 |         two registers for the tag and payload. | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::JITStubs): Remove array length trampoline pointer. | 
 |         (JSC::JITStubs::cti_op_get_by_id_self_fail):  | 
 |         * jit/JITStubs.h: | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSObject::JSObject): Move m_inheritorID below the property storage | 
 |         to align it to a 16 byte boundary. | 
 |         * wtf/Platform.h: Enable ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS | 
 |         * wtf/StdLibExtras.h: Move FIELD_OFFSET here. | 
 |  | 
 | 2009-05-17  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Remove unneeded ExecState parameter from the number JSValue constructors. | 
 |  | 
 |         * runtime/JSValue.h: | 
 |         (JSC::jsNumber): | 
 |         (JSC::jsNaN): | 
 |         (JSC::JSValue::JSValue): | 
 |  | 
 | 2009-05-15  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implemented fast path for op_put_by_val when putting to arrays. | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |  | 
 | 2009-05-15  Geoffrey Garen  <ggaren@apple.com> (Mostly by Sam) | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Implemented fast path for op_get_by_val when accessing array. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |  | 
 | 2009-05-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed a failure in fast/js/math-transforms.html caused by failing to | 
 |         preserve -0 in multiplication. | 
 |  | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::jz): | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         (JSC::JIT::emitMul32Constant): | 
 |         (JSC::JIT::emitMul32InPlace): Check both for overflow and for zero when | 
 |         doing multiplication. Use a slow case to get these right. | 
 |  | 
 | 2009-05-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed a bug in the varargs calling convention. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallVarargs): Move the argument count into regT1, | 
 |         since that's where ctiVirtualCall expects it to be. | 
 |  | 
 | 2009-05-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Fixed a small bug in instanceof's looping code. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): NULL means the object has no prototype, | 
 |         so only loop when *not* equal to NULL. | 
 |  | 
 | 2009-05-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed a small bug in instanceof's result writing code. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): Make sure to fill out the payload bits | 
 |         in all cases. | 
 |  | 
 | 2009-05-14  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Removed an invalid assertion in cti_op_urshift which | 
 |         depended on a fast path for op_urshift which has | 
 |         never existed. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::cti_op_urshift): | 
 |  | 
 | 2009-05-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed loop_if_true, which had the same reversed test that jtrue had. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_true): | 
 |  | 
 | 2009-05-14  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         In op_neq, we apparently want to check that one value | 
 |         does *not* equal another.  Go figure. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_neq): | 
 |  | 
 | 2009-05-14  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         The slow case of op_mod should call op_mod's jit stub, | 
 |         not op_mul.  That would be dumb. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |  | 
 | 2009-05-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed problems when using 'arguments' due to a half-initialized register. | 
 |  | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::setCalleeArguments): | 
 |         (JSC::ExecState::init): Require a full JSValue when setting up the  | 
 |         'arguments' virtual register, since this register is accessible from JIT | 
 |         code and bytecode, and needs to be a true JSValue. | 
 |  | 
 |         * interpreter/CallFrameClosure.h: | 
 |         (JSC::CallFrameClosure::resetCallFrame): ditto | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): ditto | 
 |  | 
 |         * interpreter/Register.h: Removed the constructor that allowed assignment | 
 |         of a JSArguments* to a register. That is not safe. See above. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::cti_op_create_arguments): | 
 |         (JSC::JITStubs::cti_op_create_arguments_no_params): ditto | 
 |  | 
 | 2009-05-14  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         We really want to go to the slow case in op_jfalse and | 
 |         op_jtrue if the value is *not* boolean.  | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |  | 
 | 2009-05-14  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Flipped the condition when emitting a an op_loop_if_less or op_loop_if_lesseq | 
 |         if the first operand is a constant. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |  | 
 | 2009-05-14  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Added missing return in op_jnless and op_jnlesseq.  | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |  | 
 | 2009-05-14  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Load constants into the the register file as a temporary measure to | 
 |         aid bring up.  This allows us to use to treat constants like any | 
 |         other virtual register. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_enter): | 
 |         (JSC::JIT::emit_op_enter_with_activation): | 
 |  | 
 | 2009-05-14  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Implemented op_strict_eq. Original patch by Snowy, by way of Sam and Gavin. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::set8): Added set8, since it's slightly | 
 |         faster than set32, and the new value representation usually doesn't | 
 |         need set32. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitLoadTag): | 
 |         (JSC::JIT::emitLoadPayload): Added helper functions for dealing with | 
 |         constants. Eventually, we should write special cases for all constants, | 
 |         but these are helpful in the short term. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::compileOpStrictEq): | 
 |         (JSC::JIT::emitSlow_op_stricteq): | 
 |         (JSC::JIT::emitSlow_op_nstricteq): teh opcodez. | 
 |  | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::): | 
 |         (JSC::JSValue::isDouble): Added a LowestTag for clarity. | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Fixed some bugs in host function calls. | 
 |          | 
 |         testapi now passes! | 
 |  | 
 |         * jit/JIT.cpp: Changed some registers around to avoid overwriting edx:eax, | 
 |         which is how JSValues are now returned. Also changed the code that | 
 |         passes thisValue to pass the full 64bits of the value. Also added | 
 |         an #error compiler directive to other platform builds, since the JSValue | 
 |         return signature probably won't return in edx:eax on those platforms, | 
 |         and we'll have to investigate a solution. | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Removed parameters from functions that are intended never to use their | 
 |         parameters. | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Ported op_instance_of from TOT. It's basically the same, but some register | 
 |         stuff changed to memory stuff. | 
 |  | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitPutJITStubArgFromVirtualRegister): | 
 |         (JSC::JIT::emitStore): Changed to use helper functions. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emitSlow_op_instanceof): Ported from TOT. | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |          | 
 |         Added a comment to explain an exception-handling subtelty that we found | 
 |         hard to remember when reviewing my last patch. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_catch): | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Implemented try/catch. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_throw): Updated to use JITStackFrame abstraction. | 
 |         (JSC::JIT::emit_op_catch): Filled out. | 
 |  | 
 | 2009-05-13  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implemented op_loop_if_true, op_jfalse, op_jtrue, op_jeq_null and op_jneq_null | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emitSlow_op_instanceof): Moved from below to be next to its | 
 |         fast brother. | 
 |  | 
 |         (JSC::JIT::emit_op_loop_if_true): Similar to the old version | 
 |         in that it tries to do the integer case first and reduce the | 
 |         number of jumps you might need to take. | 
 |         (JSC::JIT::emitSlow_op_loop_if_true): | 
 |  | 
 |         (JSC::JIT::emit_op_jfalse): Very similar to op_loop_if_true, only | 
 |         the inverse and without a timeout check. | 
 |         (JSC::JIT::emitSlow_op_jfalse): | 
 |  | 
 |         (JSC::JIT::emit_op_jtrue): Very similar to op_loop_if_true except | 
 |         without the timeout check. | 
 |         (JSC::JIT::emitSlow_op_jtrue): | 
 |  | 
 |         (JSC::JIT::emit_op_jeq_null): Very similar to the implementation | 
 |         of op_eq, except it takes jumps instead of copying the condition | 
 |         to a dst. | 
 |         (JSC::JIT::emit_op_jneq_null): Ditto but for op_neq. | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Implemented op_call_varargs. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallVarargsSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         (JSC::JIT::emit_op_call): | 
 |         (JSC::JIT::emit_op_call_eval): | 
 |         (JSC::JIT::emit_op_load_varargs): | 
 |         (JSC::JIT::emit_op_call_varargs): | 
 |         (JSC::JIT::emit_op_construct): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jneq_ptr): | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Implemented op_call_eval. | 
 |  | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallVarargsSetupArgs): | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::CallEvalJITStub::CallEvalJITStub): | 
 |  | 
 | 2009-05-13  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Implemented op_not. (Gavin did most of the work!) | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_not): | 
 |         (JSC::JIT::emitSlow_op_not): | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Implemented op_global_resolve. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): Added back accidentally removed | 
 |         early returns.  | 
 |  | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::cti_op_resolve_global): Pretty similar to the old code, | 
 |         but we need two reads and a TimesEight step in order to account for the | 
 |         64bit value size. | 
 |  | 
 |         * jit/JITStubs.h: | 
 |         (JSC::): Slightly tweaked this code to specialize for a JSGlobalObject*, | 
 |         to avoid having to pass an irrelevant tag pointer to the stub. | 
 |  | 
 | 2009-05-13  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implemented op_to_jsnumber. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emitSlow_op_to_jsnumber): | 
 |  | 
 | 2009-05-13  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implemented op_convert_this. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         (JSC::JIT::emitSlow_op_convert_this): | 
 |  | 
 | 2009-05-13  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Got basic JS function and constructor calls working. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JIT.h: | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargsSetupArgs): | 
 |         (JSC::JIT::compileOpConstructSetupArgs): | 
 |         (JSC::JIT::emit_op_ret): | 
 |         (JSC::JIT::emit_op_construct_verify): | 
 |         (JSC::JIT::emitSlow_op_construct_verify): | 
 |         (JSC::JIT::emitSlow_op_call): | 
 |         (JSC::JIT::emitSlow_op_call_eval): | 
 |         (JSC::JIT::emitSlow_op_call_varargs): | 
 |         (JSC::JIT::emitSlow_op_construct): | 
 |         (JSC::JIT::compileOpCall): Filled out these cases, with call_eval #if'd out. | 
 |  | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitPutJITStubArgFromVirtualRegister): | 
 |         (JSC::JIT::emitLoad): Restored some legacy "*CTIArg*" functions, | 
 |         since I wanted to avoid the complexity of revamping the API here while | 
 |         trying to bring it up. Eventually, we should re-remove all of these functions. | 
 |  | 
 |         (JSC::JIT::recordJumpTarget): Removed unnecessary macro cruft. You will | 
 |         not silence me, Sam Weinig! The world will know that you are a crufty, | 
 |         crufty, crufty programmer!!! | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::): | 
 |         * jit/JITStubs.h: Changed up some offsets in the JITStackFrame class, since | 
 |         and off-by-one error was causing stack misalignment. | 
 |  | 
 | 2009-05-13  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement op_eq_null and op_neq_null. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::set8): | 
 |         (JSC::MacroAssemblerX86Common::setTest8): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_stricteq): | 
 |         (JSC::JIT::emitSlow_op_stricteq): | 
 |         (JSC::JIT::emit_op_nstricteq): | 
 |         (JSC::JIT::emitSlow_op_nstricteq): | 
 |         (JSC::JIT::emit_op_eq_null): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |         * jsc.cpp: | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement op_new_error. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_new_error): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::addArgument): Add a version of addArgument | 
 |         that takes a constant JSValue. | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Remove now unused emitGetVariableObjectRegister and emitPutVariableObjectRegister. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         * jit/JIT.h: | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement op_to_primitive and op_next_pname. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emitSlow_op_construct_verify): | 
 |         (JSC::JIT::emit_op_to_primitive): | 
 |         (JSC::JIT::emitSlow_op_to_primitive): | 
 |         (JSC::JIT::emitSlow_op_loop_if_true): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |         (JSC::JIT::emit_op_next_pname): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Add op_get_global_var, op_put_global_var, emit_op_get_scoped_var, emit_op_put_scoped_var and | 
 |         op_unexpected_load. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::tagFor): | 
 |         (JSC::JIT::payloadFor): | 
 |         (JSC::JIT::emitLoad): | 
 |         (JSC::JIT::emitStore): | 
 |         (JSC::JIT::emitLoadReturnValue): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_get_global_var): | 
 |         (JSC::JIT::emit_op_put_global_var): | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_unexpected_load): | 
 |  | 
 | 2009-05-12  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Added overflow handling to op_sub. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_sub): | 
 |         (JSC::JIT::emitSlowSub32InPlaceLeft): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Remove a function call by folding op_get_by_id and op_put_by_id into | 
 |         their respective compile functions. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_id): | 
 |         (JSC::JIT::emitSlow_op_get_by_id): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |         (JSC::JIT::emitSlow_op_put_by_id): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Make JITStubCall work in 64bit by making the stack index | 
 |         step dependent on the size of void*. | 
 |  | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::JITStubCall): | 
 |         (JSC::JITStubCall::addArgument): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement simple version of property access opcodes | 
 |         which just call a stub functions. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emitSlow_op_put_by_id): | 
 |         (JSC::JIT::emitSlow_op_get_by_id): | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |         (JSC::JIT::emit_op_put_by_index): | 
 |         (JSC::JIT::emit_op_put_getter): | 
 |         (JSC::JIT::emit_op_put_setter): | 
 |         (JSC::JIT::emit_op_del_by_id): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::compilePutByIdHotPath): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::addArgument): | 
 |         * jsc.cpp: | 
 |  | 
 | 2009-05-12  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Added work-around for XCode debugging echo problem. | 
 |  | 
 |         * jsc.cpp: | 
 |         (runInteractive): | 
 |  | 
 | 2009-05-12  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Added overflow handling to op_add. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emitSlowAdd32InPlace): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Add slow cases for op_jnless or emit_op_jnlesseq. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Add implementations for op_jnless, emit_op_jnlesseq, op_loop_if_less and op_loop_if_lesseq. | 
 |         No slow cases for op_jnless or emit_op_jnlesseq yet. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emitSlow_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emitSlow_op_loop_if_lesseq): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Turn the RECORD_JUMP_TARGET macro into an inline function. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::recordJumpTarget): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jmp): | 
 |         (JSC::JIT::emit_op_jsr): | 
 |         (JSC::JIT::emit_op_jmp_scopes): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Add MacroAssemblerX86Common::set8 to fix the build. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::set8): | 
 |  | 
 | 2009-05-12  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |          | 
 |         Added overflow recovery for pre_inc and pre_dec. | 
 |          | 
 |         Turned some short-circuit code into early returns, as is the WebKit style. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |         (JSC::JIT::emitSlow_op_post_inc): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emitSlow_op_post_dec): | 
 |         (JSC::JIT::emitSlow_op_pre_inc): | 
 |         (JSC::JIT::emitSlow_op_pre_dec): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement op_jmp, op_loop, op_eq and op_neq. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_jmp): | 
 |         (JSC::JIT::emit_op_loop): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emitSlow_op_eq): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emitSlow_op_neq): | 
 |         (JSC::JIT::emit_op_enter): | 
 |         (JSC::JIT::emit_op_enter_with_activation): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement the slow cases for arithmetic opcodes. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emitSlow_op_lshift): | 
 |         (JSC::JIT::emitSlow_op_rshift): | 
 |         (JSC::JIT::emitSlow_op_bitand): | 
 |         (JSC::JIT::emitSlow_op_bitor): | 
 |         (JSC::JIT::emitSlow_op_bitxor): | 
 |         (JSC::JIT::emitSlow_op_bitnot): | 
 |         (JSC::JIT::emitSlow_op_sub): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |         (JSC::JIT::emit_op_mod): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Implement op_bitnot. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::not32): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::notl_m): | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_bitnot): | 
 |  | 
 | 2009-05-12  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Add arithmetic opcode implementations from the old nitro-extreme branch. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emit_op_lshift): | 
 |         (JSC::JIT::emitSlow_op_lshift): | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emitSlow_op_rshift): | 
 |         (JSC::JIT::emit_op_bitand): | 
 |         (JSC::JIT::emitBitAnd32Constant): | 
 |         (JSC::JIT::emitBitAnd32InPlace): | 
 |         (JSC::JIT::emit_op_bitor): | 
 |         (JSC::JIT::emitSlow_op_bitor): | 
 |         (JSC::JIT::emitBitOr32Constant): | 
 |         (JSC::JIT::emitBitOr32InPlace): | 
 |         (JSC::JIT::emit_op_bitxor): | 
 |         (JSC::JIT::emitSlow_op_bitxor): | 
 |         (JSC::JIT::emitBitXor32Constant): | 
 |         (JSC::JIT::emitBitXor32InPlace): | 
 |         (JSC::JIT::emit_op_bitnot): | 
 |         (JSC::JIT::emitSlow_op_bitnot): | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |         (JSC::JIT::emitSlow_op_post_inc): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emitSlow_op_post_dec): | 
 |         (JSC::JIT::emit_op_pre_inc): | 
 |         (JSC::JIT::emitSlow_op_pre_inc): | 
 |         (JSC::JIT::emit_op_pre_dec): | 
 |         (JSC::JIT::emitSlow_op_pre_dec): | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emitAdd32Constant): | 
 |         (JSC::JIT::emitAdd32InPlace): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::emitSlow_op_sub): | 
 |         (JSC::JIT::emitSub32ConstantLeft): | 
 |         (JSC::JIT::emitSub32ConstantRight): | 
 |         (JSC::JIT::emitSub32InPlaceLeft): | 
 |         (JSC::JIT::emitSub32InPlaceRight): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         (JSC::JIT::emitMul32Constant): | 
 |         (JSC::JIT::emitMul32InPlace): | 
 |         (JSC::JIT::emit_op_mod): | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |         * jit/JITOpcodes.cpp: | 
 |  | 
 | 2009-05-12  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Removed JIT_OPTIMIZE_ARITHMETIC setting, since it was all about 32bit | 
 |         value representations. | 
 |          | 
 |         Added JSAPIValueWrapper to the repository. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         * runtime/JSAPIValueWrapper.cpp: Added. | 
 |         (JSC::JSAPIValueWrapper::toPrimitive): | 
 |         (JSC::JSAPIValueWrapper::getPrimitiveNumber): | 
 |         (JSC::JSAPIValueWrapper::toBoolean): | 
 |         (JSC::JSAPIValueWrapper::toNumber): | 
 |         (JSC::JSAPIValueWrapper::toString): | 
 |         (JSC::JSAPIValueWrapper::toObject): | 
 |         * runtime/JSAPIValueWrapper.h: Added. | 
 |         (JSC::JSAPIValueWrapper::value): | 
 |         (JSC::JSAPIValueWrapper::isAPIValueWrapper): | 
 |         (JSC::JSAPIValueWrapper::JSAPIValueWrapper): | 
 |         (JSC::jsAPIValueWrapper): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-05-12  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Turned on the JIT and got it building and running the most trivial of | 
 |         programs. | 
 |          | 
 |         All configurable optimizations are turned off, and a few opcodes are ad | 
 |         hoc #if'd out. | 
 |          | 
 |         So far, I've only merged op_mov and op_end, but some stub-reliant | 
 |         opcodes work as-is from TOT. | 
 |          | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::~CodeBlock): | 
 |         * bytecode/CodeBlock.h: | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::compileOpStrictEq): | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_lshift): | 
 |         (JSC::JIT::emitSlow_op_lshift): | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emitSlow_op_rshift): | 
 |         (JSC::JIT::emit_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emit_op_jnlesseq): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::emit_op_bitand): | 
 |         (JSC::JIT::emitSlow_op_bitand): | 
 |         (JSC::JIT::emit_op_post_inc): | 
 |         (JSC::JIT::emitSlow_op_post_inc): | 
 |         (JSC::JIT::emit_op_post_dec): | 
 |         (JSC::JIT::emitSlow_op_post_dec): | 
 |         (JSC::JIT::emit_op_pre_inc): | 
 |         (JSC::JIT::emitSlow_op_pre_inc): | 
 |         (JSC::JIT::emit_op_pre_dec): | 
 |         (JSC::JIT::emitSlow_op_pre_dec): | 
 |         (JSC::JIT::emit_op_mod): | 
 |         (JSC::JIT::emitSlow_op_mod): | 
 |         (JSC::JIT::emit_op_add): | 
 |         (JSC::JIT::emit_op_mul): | 
 |         (JSC::JIT::emit_op_sub): | 
 |         (JSC::JIT::compileBinaryArithOpSlowCase): | 
 |         (JSC::JIT::emitSlow_op_add): | 
 |         (JSC::JIT::emitSlow_op_mul): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): | 
 |         (JSC::JIT::compileOpConstructSetupArgs): | 
 |         (JSC::JIT::compileOpCallVarargs): | 
 |         (JSC::JIT::compileOpCall): | 
 |         (JSC::JIT::compileOpCallSlowCase): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::getConstantOperandImmediateInt): | 
 |         (JSC::JIT::isOperandConstantImmediateInt): | 
 |         (JSC::JIT::emitInitRegister): | 
 |         (JSC::JIT::addSlowCase): | 
 |         (JSC::JIT::addJump): | 
 |         (JSC::JIT::emitJumpSlowToHot): | 
 |         (JSC::JIT::tagFor): | 
 |         (JSC::JIT::payloadFor): | 
 |         (JSC::JIT::emitLoad): | 
 |         (JSC::JIT::emitLoadReturnValue): | 
 |         (JSC::JIT::emitStore): | 
 |         (JSC::JIT::emitStoreReturnValue): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_mov): | 
 |         (JSC::JIT::emit_op_end): | 
 |         (JSC::JIT::emit_op_jmp): | 
 |         (JSC::JIT::emit_op_loop): | 
 |         (JSC::JIT::emit_op_loop_if_less): | 
 |         (JSC::JIT::emit_op_loop_if_lesseq): | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emit_op_get_global_var): | 
 |         (JSC::JIT::emit_op_put_global_var): | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_tear_off_activation): | 
 |         (JSC::JIT::emit_op_ret): | 
 |         (JSC::JIT::emit_op_construct_verify): | 
 |         (JSC::JIT::emit_op_to_primitive): | 
 |         (JSC::JIT::emit_op_loop_if_true): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emit_op_not): | 
 |         (JSC::JIT::emit_op_jfalse): | 
 |         (JSC::JIT::emit_op_jeq_null): | 
 |         (JSC::JIT::emit_op_jneq_null): | 
 |         (JSC::JIT::emit_op_jneq_ptr): | 
 |         (JSC::JIT::emit_op_unexpected_load): | 
 |         (JSC::JIT::emit_op_eq): | 
 |         (JSC::JIT::emit_op_bitnot): | 
 |         (JSC::JIT::emit_op_jtrue): | 
 |         (JSC::JIT::emit_op_neq): | 
 |         (JSC::JIT::emit_op_bitxor): | 
 |         (JSC::JIT::emit_op_bitor): | 
 |         (JSC::JIT::emit_op_throw): | 
 |         (JSC::JIT::emit_op_next_pname): | 
 |         (JSC::JIT::emit_op_push_scope): | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_push_new_scope): | 
 |         (JSC::JIT::emit_op_catch): | 
 |         (JSC::JIT::emit_op_switch_imm): | 
 |         (JSC::JIT::emit_op_switch_char): | 
 |         (JSC::JIT::emit_op_switch_string): | 
 |         (JSC::JIT::emit_op_new_error): | 
 |         (JSC::JIT::emit_op_eq_null): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         (JSC::JIT::emit_op_profile_will_call): | 
 |         (JSC::JIT::emit_op_profile_did_call): | 
 |         (JSC::JIT::emitSlow_op_construct_verify): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         (JSC::JIT::emitSlow_op_loop_if_less): | 
 |         (JSC::JIT::emitSlow_op_loop_if_lesseq): | 
 |         (JSC::JIT::emitSlow_op_put_by_val): | 
 |         (JSC::JIT::emitSlow_op_not): | 
 |         (JSC::JIT::emitSlow_op_instanceof): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emit_op_put_by_index): | 
 |         (JSC::JIT::emit_op_put_getter): | 
 |         (JSC::JIT::emit_op_put_setter): | 
 |         (JSC::JIT::emit_op_del_by_id): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::compilePutByIdHotPath): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::JITStubCall): | 
 |         (JSC::JITStubCall::addArgument): | 
 |         (JSC::JITStubCall::call): | 
 |         (JSC::JITStubCall::): | 
 |         (JSC::CallEvalJITStub::CallEvalJITStub): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::): | 
 |         (JSC::JITStubs::cti_op_add): | 
 |         (JSC::JITStubs::cti_op_pre_inc): | 
 |         (JSC::JITStubs::cti_op_mul): | 
 |         (JSC::JITStubs::cti_op_get_by_val): | 
 |         (JSC::JITStubs::cti_op_get_by_val_string): | 
 |         (JSC::JITStubs::cti_op_get_by_val_byte_array): | 
 |         (JSC::JITStubs::cti_op_sub): | 
 |         (JSC::JITStubs::cti_op_put_by_val): | 
 |         (JSC::JITStubs::cti_op_put_by_val_array): | 
 |         (JSC::JITStubs::cti_op_put_by_val_byte_array): | 
 |         (JSC::JITStubs::cti_op_negate): | 
 |         (JSC::JITStubs::cti_op_div): | 
 |         (JSC::JITStubs::cti_op_pre_dec): | 
 |         (JSC::JITStubs::cti_op_post_inc): | 
 |         (JSC::JITStubs::cti_op_eq): | 
 |         (JSC::JITStubs::cti_op_lshift): | 
 |         (JSC::JITStubs::cti_op_bitand): | 
 |         (JSC::JITStubs::cti_op_rshift): | 
 |         (JSC::JITStubs::cti_op_bitnot): | 
 |         (JSC::JITStubs::cti_op_mod): | 
 |         (JSC::JITStubs::cti_op_neq): | 
 |         (JSC::JITStubs::cti_op_post_dec): | 
 |         (JSC::JITStubs::cti_op_urshift): | 
 |         (JSC::JITStubs::cti_op_bitxor): | 
 |         (JSC::JITStubs::cti_op_bitor): | 
 |         (JSC::JITStubs::cti_op_switch_imm): | 
 |         * jit/JITStubs.h: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::~JSFunction): | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::payload): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-05-07  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         Add some new MacroAssembler and assembler functions that will be needed shortly. | 
 |  | 
 |         * assembler/MacroAssemblerX86Common.h: | 
 |         (JSC::MacroAssemblerX86Common::add32): | 
 |         (JSC::MacroAssemblerX86Common::and32): | 
 |         (JSC::MacroAssemblerX86Common::mul32): | 
 |         (JSC::MacroAssemblerX86Common::neg32): | 
 |         (JSC::MacroAssemblerX86Common::or32): | 
 |         (JSC::MacroAssemblerX86Common::sub32): | 
 |         (JSC::MacroAssemblerX86Common::xor32): | 
 |         (JSC::MacroAssemblerX86Common::branchAdd32): | 
 |         (JSC::MacroAssemblerX86Common::branchMul32): | 
 |         (JSC::MacroAssemblerX86Common::branchSub32): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::): | 
 |         (JSC::X86Assembler::addl_rm): | 
 |         (JSC::X86Assembler::andl_mr): | 
 |         (JSC::X86Assembler::andl_rm): | 
 |         (JSC::X86Assembler::andl_im): | 
 |         (JSC::X86Assembler::negl_r): | 
 |         (JSC::X86Assembler::notl_r): | 
 |         (JSC::X86Assembler::orl_rm): | 
 |         (JSC::X86Assembler::orl_im): | 
 |         (JSC::X86Assembler::subl_rm): | 
 |         (JSC::X86Assembler::xorl_mr): | 
 |         (JSC::X86Assembler::xorl_rm): | 
 |         (JSC::X86Assembler::xorl_im): | 
 |         (JSC::X86Assembler::imull_mr): | 
 |  | 
 | 2009-05-11  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Cameron Zwarich. | 
 |  | 
 |         Remove the NumberHeap. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::Heap): | 
 |         (JSC::Heap::destroy): | 
 |         (JSC::Heap::recordExtraCost): | 
 |         (JSC::Heap::heapAllocate): | 
 |         (JSC::Heap::markConservatively): | 
 |         (JSC::Heap::sweep): | 
 |         (JSC::Heap::collect): | 
 |         (JSC::Heap::objectCount): | 
 |         (JSC::Heap::statistics): | 
 |         (JSC::typeName): | 
 |         (JSC::Heap::isBusy): | 
 |         * runtime/Collector.h: | 
 |         (JSC::Heap::globalData): | 
 |         * runtime/JSCell.h: | 
 |  | 
 | 2009-05-11  Geoffrey Garen  <ggaren@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Land initial commit of new number representation for 32 bit platforms, | 
 |         with JIT disabled. | 
 |  | 
 |         * API/APICast.h: | 
 |         (toJS): | 
 |         (toRef): | 
 |         * API/JSCallbackObjectFunctions.h: | 
 |         (JSC::::hasInstance): | 
 |         (JSC::::toNumber): | 
 |         (JSC::::toString): | 
 |         * API/tests/testapi.c: | 
 |         (EvilExceptionObject_convertToType): | 
 |         * AllInOneFile.cpp: | 
 |         * JavaScriptCore.exp: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::valueToSourceString): | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::emitLoad): | 
 |         (JSC::BytecodeGenerator::emitUnexpectedLoad): | 
 |         (JSC::keyForImmediateSwitch): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::dumpRegisters): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ArrayNode::emitBytecode): | 
 |         (JSC::processClauseList): | 
 |         * runtime/ArgList.h: | 
 |         * runtime/Collector.h: | 
 |         (JSC::sizeof): | 
 |         * runtime/DateMath.cpp: | 
 |         * runtime/ExceptionHelpers.h: | 
 |         * runtime/InitializeThreading.cpp: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::JSArray): | 
 |         * runtime/JSCell.cpp: | 
 |         * runtime/JSCell.h: | 
 |         (JSC::JSCell::isAPIValueWrapper): | 
 |         (JSC::JSValue::isString): | 
 |         (JSC::JSValue::isGetterSetter): | 
 |         (JSC::JSValue::isObject): | 
 |         (JSC::JSValue::getString): | 
 |         (JSC::JSValue::getObject): | 
 |         (JSC::JSValue::getCallData): | 
 |         (JSC::JSValue::getConstructData): | 
 |         (JSC::JSValue::getUInt32): | 
 |         (JSC::JSValue::marked): | 
 |         (JSC::JSValue::toPrimitive): | 
 |         (JSC::JSValue::getPrimitiveNumber): | 
 |         (JSC::JSValue::toBoolean): | 
 |         (JSC::JSValue::toNumber): | 
 |         (JSC::JSValue::toString): | 
 |         (JSC::JSValue::needsThisConversion): | 
 |         (JSC::JSValue::toThisString): | 
 |         (JSC::JSValue::getJSNumber): | 
 |         (JSC::JSValue::toObject): | 
 |         (JSC::JSValue::toThisObject): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): | 
 |         * runtime/JSGlobalData.h: | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::Structure::prototypeForLookup): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::globalFuncParseInt): | 
 |         * runtime/JSImmediate.h: | 
 |         * runtime/JSNumberCell.cpp: Removed. | 
 |         * runtime/JSNumberCell.h: Removed. | 
 |         * runtime/JSObject.h: | 
 |         (JSC::JSValue::get): | 
 |         (JSC::JSValue::put): | 
 |         * runtime/JSString.h: | 
 |         (JSC::JSValue::toThisJSString): | 
 |         * runtime/JSValue.cpp: | 
 |         (JSC::JSValue::toInteger): | 
 |         (JSC::JSValue::toIntegerPreserveNaN): | 
 |         (JSC::JSValue::toObjectSlowCase): | 
 |         (JSC::JSValue::toThisObjectSlowCase): | 
 |         (JSC::JSValue::synthesizeObject): | 
 |         (JSC::JSValue::synthesizePrototype): | 
 |         (JSC::JSValue::description): | 
 |         (JSC::nonInlineNaN): | 
 |         * runtime/JSValue.h: | 
 |         (JSC::JSValue::): | 
 |         (JSC::EncodedJSValueHashTraits::emptyValue): | 
 |         (JSC::jsNaN): | 
 |         (JSC::operator==): | 
 |         (JSC::operator!=): | 
 |         (JSC::toInt32): | 
 |         (JSC::toUInt32): | 
 |         (JSC::JSValue::encode): | 
 |         (JSC::JSValue::decode): | 
 |         (JSC::JSValue::JSValue): | 
 |         (JSC::JSValue::operator bool): | 
 |         (JSC::JSValue::operator==): | 
 |         (JSC::JSValue::operator!=): | 
 |         (JSC::JSValue::isUndefined): | 
 |         (JSC::JSValue::isNull): | 
 |         (JSC::JSValue::isUndefinedOrNull): | 
 |         (JSC::JSValue::isCell): | 
 |         (JSC::JSValue::isInt32): | 
 |         (JSC::JSValue::isUInt32): | 
 |         (JSC::JSValue::isDouble): | 
 |         (JSC::JSValue::isTrue): | 
 |         (JSC::JSValue::isFalse): | 
 |         (JSC::JSValue::tag): | 
 |         (JSC::JSValue::asInt32): | 
 |         (JSC::JSValue::asUInt32): | 
 |         (JSC::JSValue::asDouble): | 
 |         (JSC::JSValue::asCell): | 
 |         (JSC::JSValue::isNumber): | 
 |         (JSC::JSValue::isBoolean): | 
 |         (JSC::JSValue::getBoolean): | 
 |         (JSC::JSValue::uncheckedGetNumber): | 
 |         (JSC::JSValue::toJSNumber): | 
 |         (JSC::JSValue::getNumber): | 
 |         (JSC::JSValue::toInt32): | 
 |         (JSC::JSValue::toUInt32): | 
 |         * runtime/Operations.h: | 
 |         (JSC::JSValue::equal): | 
 |         (JSC::JSValue::equalSlowCaseInline): | 
 |         (JSC::JSValue::strictEqual): | 
 |         (JSC::JSValue::strictEqualSlowCaseInline): | 
 |         (JSC::jsLess): | 
 |         (JSC::jsLessEq): | 
 |         (JSC::jsAdd): | 
 |         * runtime/PropertySlot.h: | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncCharAt): | 
 |         (JSC::stringProtoFuncCharCodeAt): | 
 |         (JSC::stringProtoFuncIndexOf): | 
 |         * wtf/Platform.h: | 
 |  | 
 | === Start merge of nitro-extreme branch 2009-07-30 === | 
 |  | 
 | 2009-07-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Resolve class/struct mixup in forward declarations | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27708 | 
 |  | 
 |         * API/JSClassRef.h: | 
 |         * bytecode/SamplingTool.h: | 
 |         * interpreter/Interpreter.h: | 
 |         * jit/JIT.h: | 
 |         * profiler/ProfileGenerator.h: | 
 |         * profiler/Profiler.h: | 
 |         * runtime/ClassInfo.h: | 
 |         * runtime/ExceptionHelpers.h: | 
 |         * runtime/JSByteArray.h: | 
 |         * runtime/JSCell.h: | 
 |         * runtime/JSFunction.h: | 
 |         * runtime/JSGlobalData.h: | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSString.h: | 
 |  | 
 | 2009-07-28  Ada Chan  <adachan@apple.com>         | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27236 | 
 |         - Implement TCMalloc_SystemRelease and TCMalloc_SystemCommit for Windows. | 
 |         - Use a background thread to periodically scavenge memory to release back to the system. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::init): | 
 |         (WTF::TCMalloc_PageHeap::runScavengerThread): | 
 |         (WTF::TCMalloc_PageHeap::scavenge): | 
 |         (WTF::TCMalloc_PageHeap::shouldContinueScavenging): | 
 |         (WTF::TCMalloc_PageHeap::New): | 
 |         (WTF::TCMalloc_PageHeap::AllocLarge): | 
 |         (WTF::TCMalloc_PageHeap::Delete): | 
 |         (WTF::TCMalloc_PageHeap::GrowHeap): | 
 |         (WTF::sleep): | 
 |         (WTF::TCMalloc_PageHeap::scavengerThread): | 
 |         * wtf/TCSystemAlloc.cpp: | 
 |         (TCMalloc_SystemRelease): | 
 |         (TCMalloc_SystemCommit): | 
 |         * wtf/TCSystemAlloc.h: | 
 |  | 
 | 2009-07-28  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Add new files, fixes distcheck. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-07-28  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Determining whether to use JIT or interpreter | 
 |         moved from JavaScriptCore.pri to Platform.h | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-27  Brian Weinstein  <bweinstein@apple.com> | 
 |  | 
 |         Fix of misuse of sort command. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-27  Brian Weinstein  <bweinstein@apple.com> | 
 |  | 
 |         Build fix for Windows. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-27  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber stamped by Oliver Hunt. | 
 |  | 
 |         Fix tyop in JIT, renamed preverveReturnAddressAfterCall -> preserveReturnAddressAfterCall. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompile): | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::preserveReturnAddressAfterCall): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::privateCompilePutByIdTransition): | 
 |  | 
 | 2009-07-27  Alexey Proskuryakov  <ap@webkit.org> | 
 |  | 
 |         Gtk build fix. | 
 |  | 
 |         * runtime/JSLock.cpp: (JSC::JSLock::JSLock): Fix "no threading" case. | 
 |  | 
 | 2009-07-27  Alexey Proskuryakov  <ap@webkit.org> | 
 |  | 
 |         Release build fix. | 
 |  | 
 |         * runtime/JSLock.h: (JSC::JSLock::~JSLock): | 
 |  | 
 | 2009-07-27  Alexey Proskuryakov  <ap@webkit.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27735 | 
 |         Give a helpful name to JSLock constructor argument | 
 |  | 
 |         * API/JSBase.cpp: | 
 |         (JSGarbageCollect): | 
 |         * API/JSContextRef.cpp: | 
 |         * API/JSObjectRef.cpp: | 
 |         (JSPropertyNameArrayRelease): | 
 |         (JSPropertyNameAccumulatorAddName): | 
 |         * JavaScriptCore.exp: | 
 |         * jsc.cpp: | 
 |         (functionGC): | 
 |         (cleanupGlobalData): | 
 |         (jscmain): | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::destroy): | 
 |         * runtime/JSLock.cpp: | 
 |         (JSC::JSLock::JSLock): | 
 |         (JSC::JSLock::lock): | 
 |         (JSC::JSLock::unlock): | 
 |         (JSC::JSLock::DropAllLocks::DropAllLocks): | 
 |         (JSC::JSLock::DropAllLocks::~DropAllLocks): | 
 |         * runtime/JSLock.h: | 
 |         (JSC::): | 
 |         (JSC::JSLock::JSLock): | 
 |         (JSC::JSLock::~JSLock): | 
 |  | 
 | 2009-07-25  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Allow custom memory allocation control for OpaqueJSPropertyNameArray struct | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27342 | 
 |  | 
 |         Inherits OpaqueJSPropertyNameArray struct from FastAllocBase because it has been | 
 |         instantiated by 'new' JavaScriptCore/API/JSObjectRef.cpp:473. | 
 |  | 
 |         * API/JSObjectRef.cpp: | 
 |  | 
 | 2009-07-24  Ada Chan  <adachan@apple.com> | 
 |  | 
 |         In preparation for https://bugs.webkit.org/show_bug.cgi?id=27236: | 
 |         Remove TCMALLOC_TRACK_DECOMMITED_SPANS.  We'll always track decommitted spans. | 
 |         We have tested this and show it has little impact on performance. | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::New): | 
 |         (WTF::TCMalloc_PageHeap::AllocLarge): | 
 |         (WTF::propagateDecommittedState): | 
 |         (WTF::mergeDecommittedStates): | 
 |         (WTF::TCMalloc_PageHeap::Delete): | 
 |         (WTF::TCMalloc_PageHeap::IncrementalScavenge): | 
 |  | 
 | 2009-07-24  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler and Adam Barth. | 
 |  | 
 |         Build fix for x86 platforms. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27602 | 
 |  | 
 |         * jit/JIT.cpp: | 
 |  | 
 | 2009-07-23  Kevin Ollivier  <kevino@theolliviers.com> | 
 |  | 
 |         wx build fix, adding missing header. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |  | 
 | 2009-07-22  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Add wince specific memory files into wtf/wince | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27550 | 
 |  | 
 |         * wtf/wince/FastMallocWince.h: Added. | 
 |         * wtf/wince/MemoryManager.cpp: Added. | 
 |         * wtf/wince/MemoryManager.h: Added. | 
 |  | 
 | 2009-07-23  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Fix for missing mmap features in Symbian | 
 |         https://bugs.webkit.org/show_bug.cgi?id=24540 | 
 |  | 
 |         Fix, conditionally for PLATFORM(SYMBIAN), as an alternative  | 
 |         to missing support for the MAP_ANON property flag in mmap.  | 
 |         It utilizes Symbian specific memory allocation features. | 
 |  | 
 |         * runtime/Collector.cpp | 
 |  | 
 | 2009-07-22  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         With ENABLE(ASSEMBLER_WX_EXCLUSIVE), only change permissions once per repatch event. | 
 |         ( https://bugs.webkit.org/show_bug.cgi?id=27564 ) | 
 |  | 
 |         Currently we change permissions forwards and backwards for each instruction modified, | 
 |         instead we should only change permissions once per complete repatching event. | 
 |  | 
 |         2.5% progression running with ENABLE(ASSEMBLER_WX_EXCLUSIVE) enabled, | 
 |         which recoups 1/3 of the penalty of running with this mode enabled. | 
 |  | 
 |         * assembler/ARMAssembler.cpp: | 
 |         (JSC::ARMAssembler::linkBranch): | 
 |             - Replace usage of MakeWritable with cacheFlush. | 
 |          | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::patchPointerInternal): | 
 |         (JSC::ARMAssembler::repatchLoadPtrToLEA): | 
 |             - Replace usage of MakeWritable with cacheFlush. | 
 |  | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMv7Assembler::relinkJump): | 
 |         (JSC::ARMv7Assembler::relinkCall): | 
 |         (JSC::ARMv7Assembler::repatchInt32): | 
 |         (JSC::ARMv7Assembler::repatchPointer): | 
 |         (JSC::ARMv7Assembler::repatchLoadPtrToLEA): | 
 |         (JSC::ARMv7Assembler::setInt32): | 
 |             - Replace usage of MakeWritable with cacheFlush. | 
 |  | 
 |         * assembler/LinkBuffer.h: | 
 |         (JSC::LinkBuffer::performFinalization): | 
 |             - Make explicit call to cacheFlush. | 
 |  | 
 |         * assembler/MacroAssemblerCodeRef.h: | 
 |         (JSC::MacroAssemblerCodeRef::MacroAssemblerCodeRef): | 
 |             - Make size always available. | 
 |  | 
 |         * assembler/RepatchBuffer.h: | 
 |         (JSC::RepatchBuffer::RepatchBuffer): | 
 |         (JSC::RepatchBuffer::~RepatchBuffer): | 
 |             - Add calls to MakeWritable & makeExecutable. | 
 |  | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::relinkJump): | 
 |         (JSC::X86Assembler::relinkCall): | 
 |         (JSC::X86Assembler::repatchInt32): | 
 |         (JSC::X86Assembler::repatchPointer): | 
 |         (JSC::X86Assembler::repatchLoadPtrToLEA): | 
 |             - Remove usage of MakeWritable. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::getJITCode): | 
 |             - Provide access to CodeBlock's JITCode. | 
 |  | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::makeExecutable): | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |             - Remove MakeWritable, make cacheFlush public. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::ctiPatchNearCallByReturnAddress): | 
 |         (JSC::ctiPatchCallByReturnAddress): | 
 |         (JSC::JIT::privateCompile): | 
 |         (JSC::JIT::unlinkCall): | 
 |         (JSC::JIT::linkCall): | 
 |             - Add CodeBlock argument to RepatchBuffer. | 
 |  | 
 |         * jit/JIT.h: | 
 |             - Pass CodeBlock argument for use by RepatchBuffer. | 
 |  | 
 |         * jit/JITCode.h: | 
 |         (JSC::JITCode::start): | 
 |         (JSC::JITCode::size): | 
 |             - Provide access to code start & size. | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::privateCompilePutByIdTransition): | 
 |         (JSC::JIT::patchGetByIdSelf): | 
 |         (JSC::JIT::patchMethodCallProto): | 
 |         (JSC::JIT::patchPutByIdReplace): | 
 |         (JSC::JIT::privateCompilePatchGetArrayLength): | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdSelfList): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |             - Add CodeBlock argument to RepatchBuffer. | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |         (JSC::JITThunks::tryCacheGetByID): | 
 |         (JSC::JITStubs::DEFINE_STUB_FUNCTION): | 
 |             - Pass CodeBlock argument for use by RepatchBuffer. | 
 |  | 
 | 2009-07-21  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Cache not only the structure of the method, but the | 
 |         structure of its prototype as well. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27077 | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::~CodeBlock): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::MethodCallLinkInfo::MethodCallLinkInfo): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::patchMethodCallProto): | 
 |  | 
 | 2009-07-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Move call linking / repatching down from AbstractMacroAssembler into MacroAssemblerARCH classes. | 
 |         ( https://bugs.webkit.org/show_bug.cgi?id=27527 ) | 
 |  | 
 |         This allows the implementation to be defined per architecture.  Specifically this addresses the | 
 |         fact that x86-64 MacroAssembler implements far calls as a load to register, followed by a call | 
 |         to register.  Patching the call actually requires the pointer load to be patched, rather than | 
 |         the call to be patched.  This is implementation detail specific to MacroAssemblerX86_64, and as | 
 |         such is best handled there. | 
 |  | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         * assembler/MacroAssemblerARM.h: | 
 |         (JSC::MacroAssemblerARM::linkCall): | 
 |         (JSC::MacroAssemblerARM::repatchCall): | 
 |         * assembler/MacroAssemblerARMv7.h: | 
 |         (JSC::MacroAssemblerARMv7::linkCall): | 
 |         (JSC::MacroAssemblerARMv7::repatchCall): | 
 |         * assembler/MacroAssemblerX86.h: | 
 |         (JSC::MacroAssemblerX86::linkCall): | 
 |         (JSC::MacroAssemblerX86::repatchCall): | 
 |         * assembler/MacroAssemblerX86_64.h: | 
 |         (JSC::MacroAssemblerX86_64::linkCall): | 
 |         (JSC::MacroAssemblerX86_64::repatchCall): | 
 |  | 
 | 2009-07-21  Adam Treat  <adam.treat@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         Every wtf file includes other wtf files with <> style includes | 
 |         except this one.  Fix the exception. | 
 |  | 
 |         * wtf/ByteArray.h: | 
 |  | 
 | 2009-07-21  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Move LinkBuffer/RepatchBuffer out of AbstractMacroAssembler. | 
 |         ( https://bugs.webkit.org/show_bug.cgi?id=27485 ) | 
 |  | 
 |         This change is the first step in a process to move code that should be in | 
 |         the architecture-specific MacroAssembler classes up out of Assmbler and | 
 |         AbstractMacroAssembler. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |             - added new files | 
 |          | 
 |         * assembler/ARMAssembler.h: | 
 |         (JSC::ARMAssembler::linkPointer): | 
 |             - rename patchPointer to bring it in line with the current link/repatch naming scheme | 
 |          | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMv7Assembler::linkCall): | 
 |         (JSC::ARMv7Assembler::linkPointer): | 
 |         (JSC::ARMv7Assembler::relinkCall): | 
 |         (JSC::ARMv7Assembler::repatchInt32): | 
 |         (JSC::ARMv7Assembler::repatchPointer): | 
 |         (JSC::ARMv7Assembler::setInt32): | 
 |         (JSC::ARMv7Assembler::setPointer): | 
 |             - rename patchPointer to bring it in line with the current link/repatch naming scheme | 
 |  | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::linkJump): | 
 |         (JSC::AbstractMacroAssembler::linkCall): | 
 |         (JSC::AbstractMacroAssembler::linkPointer): | 
 |         (JSC::AbstractMacroAssembler::getLinkerAddress): | 
 |         (JSC::AbstractMacroAssembler::getLinkerCallReturnOffset): | 
 |         (JSC::AbstractMacroAssembler::repatchJump): | 
 |         (JSC::AbstractMacroAssembler::repatchCall): | 
 |         (JSC::AbstractMacroAssembler::repatchNearCall): | 
 |         (JSC::AbstractMacroAssembler::repatchInt32): | 
 |         (JSC::AbstractMacroAssembler::repatchPointer): | 
 |         (JSC::AbstractMacroAssembler::repatchLoadPtrToLEA): | 
 |             - remove the LinkBuffer/RepatchBuffer classes, but leave a set of (private, friended) methods to interface to the Assembler | 
 |  | 
 |         * assembler/LinkBuffer.h: Added. | 
 |         (JSC::LinkBuffer::LinkBuffer): | 
 |         (JSC::LinkBuffer::~LinkBuffer): | 
 |         (JSC::LinkBuffer::link): | 
 |         (JSC::LinkBuffer::patch): | 
 |         (JSC::LinkBuffer::locationOf): | 
 |         (JSC::LinkBuffer::locationOfNearCall): | 
 |         (JSC::LinkBuffer::returnAddressOffset): | 
 |         (JSC::LinkBuffer::finalizeCode): | 
 |         (JSC::LinkBuffer::finalizeCodeAddendum): | 
 |         (JSC::LinkBuffer::code): | 
 |         (JSC::LinkBuffer::performFinalization): | 
 |             - new file containing the LinkBuffer class, previously a member of AbstractMacroAssembler | 
 |  | 
 |         * assembler/RepatchBuffer.h: Added. | 
 |         (JSC::RepatchBuffer::RepatchBuffer): | 
 |         (JSC::RepatchBuffer::relink): | 
 |         (JSC::RepatchBuffer::repatch): | 
 |         (JSC::RepatchBuffer::repatchLoadPtrToLEA): | 
 |         (JSC::RepatchBuffer::relinkCallerToTrampoline): | 
 |         (JSC::RepatchBuffer::relinkCallerToFunction): | 
 |         (JSC::RepatchBuffer::relinkNearCallerToTrampoline): | 
 |             - new file containing the RepatchBuffer class, previously a member of AbstractMacroAssembler | 
 |  | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::linkJump): | 
 |         (JSC::X86Assembler::linkCall): | 
 |         (JSC::X86Assembler::linkPointerForCall): | 
 |         (JSC::X86Assembler::linkPointer): | 
 |         (JSC::X86Assembler::relinkJump): | 
 |         (JSC::X86Assembler::relinkCall): | 
 |         (JSC::X86Assembler::repatchInt32): | 
 |         (JSC::X86Assembler::repatchPointer): | 
 |         (JSC::X86Assembler::setPointer): | 
 |         (JSC::X86Assembler::setInt32): | 
 |         (JSC::X86Assembler::setRel32): | 
 |             - rename patchPointer to bring it in line with the current link/repatch naming scheme | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::ctiPatchNearCallByReturnAddress): | 
 |         (JSC::ctiPatchCallByReturnAddress): | 
 |             - include new headers | 
 |             - remove MacroAssembler:: specification from RepatchBuffer usage | 
 |  | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         * yarr/RegexJIT.cpp: | 
 |             - include new headers | 
 |  | 
 | 2009-07-21  Robert Agoston  <Agoston.Robert@stud.u-szeged.hu> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Fixed #undef typo. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27506 | 
 |  | 
 |         * bytecode/Opcode.h: | 
 |  | 
 | 2009-07-21  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Roll out r46153, r46154, and r46155 | 
 |  | 
 |         These changes were causing build failures and assertion failures on | 
 |         Windows. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSArray.cpp: | 
 |         * runtime/StringPrototype.cpp: | 
 |         * runtime/UString.cpp: | 
 |         * runtime/UString.h: | 
 |         * wtf/FastMalloc.cpp: | 
 |         * wtf/FastMalloc.h: | 
 |         * wtf/Platform.h: | 
 |         * wtf/PossiblyNull.h: Removed. | 
 |  | 
 | 2009-07-21  Roland Steiner  <rolandsteiner@google.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Add ENABLE_RUBY to list of build options | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27324 | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: Added flag ENABLE_RUBY. | 
 |  | 
 | 2009-07-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Build fix attempt #2 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Build fix attempt #1 | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-20  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Make it harder to misuse try* allocation routines | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27469 | 
 |  | 
 |         Jump through a few hoops to make it much harder to accidentally | 
 |         miss null-checking of values returned by the try-* allocation | 
 |         routines. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * runtime/JSArray.cpp: | 
 |         (JSC::JSArray::putSlowCase): | 
 |         (JSC::JSArray::increaseVectorLength): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncFontsize): | 
 |         (JSC::stringProtoFuncLink): | 
 |         * runtime/UString.cpp: | 
 |         (JSC::allocChars): | 
 |         (JSC::reallocChars): | 
 |         (JSC::expandCapacity): | 
 |         (JSC::UString::Rep::reserveCapacity): | 
 |         (JSC::UString::expandPreCapacity): | 
 |         (JSC::createRep): | 
 |         (JSC::concatenate): | 
 |         (JSC::UString::spliceSubstringsWithSeparators): | 
 |         (JSC::UString::replaceRange): | 
 |         (JSC::UString::append): | 
 |         (JSC::UString::operator=): | 
 |         * runtime/UString.h: | 
 |         (JSC::UString::Rep::createEmptyBuffer): | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::tryFastZeroedMalloc): | 
 |         (WTF::tryFastMalloc): | 
 |         (WTF::tryFastCalloc): | 
 |         (WTF::tryFastRealloc): | 
 |         (WTF::TCMallocStats::tryFastMalloc): | 
 |         (WTF::TCMallocStats::tryFastCalloc): | 
 |         (WTF::TCMallocStats::tryFastRealloc): | 
 |         * wtf/FastMalloc.h: | 
 |         (WTF::TryMallocReturnValue::TryMallocReturnValue): | 
 |         (WTF::TryMallocReturnValue::~TryMallocReturnValue): | 
 |         (WTF::TryMallocReturnValue::operator Maybe<T>): | 
 |         (WTF::TryMallocReturnValue::getValue): | 
 |         * wtf/PossiblyNull.h: | 
 |         (WTF::PossiblyNull::PossiblyNull): | 
 |         (WTF::PossiblyNull::~PossiblyNull): | 
 |         (WTF::PossiblyNull::getValue): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-20  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         RS Oliver Hunt. | 
 |  | 
 |         Add ARM assembler files to xcodeproj, for convenience editing. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-07-20  Jessie Berlin  <jberlin@apple.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Fix an incorrect assertion in Vector::remove. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27477 | 
 |  | 
 |         * wtf/Vector.h: | 
 |         (WTF::::remove): | 
 |         Assert that the position at which to start removing elements + the | 
 |         length (the number of elements to remove) is less than or equal to the | 
 |         size of the entire Vector. | 
 |  | 
 | 2009-07-20  Peter Kasting  <pkasting@google.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27468 | 
 |         Back out r46060, which caused problems for some Apple developers. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: | 
 |         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: | 
 |  | 
 | 2009-07-20  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Allow custom memory allocation control in NewThreadContext | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27338 | 
 |  | 
 |         Inherits NewThreadContext struct from FastAllocBase because it | 
 |         has been instantiated by 'new' JavaScriptCore/wtf/Threading.cpp:76. | 
 |  | 
 |         * wtf/Threading.cpp: | 
 |  | 
 | 2009-07-20  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Allow custom memory allocation control in JavaScriptCore's JSClassRef.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27340 | 
 |  | 
 |         Inherit StaticValueEntry and StaticFunctionEntry struct from FastAllocBase because these | 
 |         have been instantiated by 'new' in JavaScriptCore/API/JSClassRef.cpp:153 | 
 |         and in JavaScriptCore/API/JSClassRef.cpp:166. | 
 |  | 
 |         * API/JSClassRef.h: | 
 |  | 
 | 2009-07-20  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control in JavaScriptCore's RegexPattern.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27343 | 
 |  | 
 |         Inherits RegexPattern.h's structs (which have been instantiated by operator new) from FastAllocBase: | 
 |  | 
 |         CharacterClass (new call: JavaScriptCore/yarr/RegexCompiler.cpp:144) | 
 |         PatternAlternative (new call: JavaScriptCore/yarr/RegexPattern.h:221)  | 
 |         PatternDisjunction (new call: JavaScriptCore/yarr/RegexCompiler.cpp:446) | 
 |  | 
 |         * yarr/RegexPattern.h: | 
 |  | 
 | 2009-07-20  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's MatchFrame struct | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27344 | 
 |  | 
 |         Inherits MatchFrame struct from FastAllocBase because it has | 
 |         been instantiated by 'new' JavaScriptCore/pcre/pcre_exec.cpp:359. | 
 |  | 
 |         * pcre/pcre_exec.cpp: | 
 |  | 
 | 2009-07-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Holger Freyther. | 
 |  | 
 |         Remove some outdated S60 platform specific code | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27423 | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-20  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Qt build fix with MSVC and MinGW. | 
 |  | 
 |         * jsc.pro: Make sure jsc is a console application, and turn off | 
 |         exceptions and stl support to fix the build. | 
 |  | 
 | 2009-07-20  Xan Lopez  <xlopez@igalia.com> | 
 |  | 
 |         Reviewed by Gustavo Noronha. | 
 |  | 
 |         Do not use C++-style comments in preprocessor directives. | 
 |  | 
 |         GCC does not like this in some configurations, using C-style | 
 |         comments is safer. | 
 |  | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-17  Peter Kasting  <pkasting@google.com> | 
 |  | 
 |         Reviewed by Steve Falkenburg. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27323 | 
 |         Only add Cygwin to the path when it isn't already there.  This avoids | 
 |         causing problems for people who purposefully have non-Cygwin versions of | 
 |         executables like svn in front of the Cygwin ones in their paths. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: | 
 |         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: | 
 |  | 
 | 2009-07-17  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Add YARR support for generic ARM platforms (disabled by default). | 
 |         https://bugs.webkit.org/show_bug.cgi?id=24986 | 
 |  | 
 |         Add generic ARM port for MacroAssembler. It supports the whole | 
 |         MacroAssembler functionality except floating point. | 
 |  | 
 |         The class JmpSrc is extended with a flag which enables to patch | 
 |         the jump destination offset during execution. This feature is | 
 |         required for generic ARM port. | 
 |  | 
 |         Signed off by Zoltan Herczeg <zherczeg@inf.u-szeged.hu> | 
 |         Signed off by Gabor Loki <loki@inf.u-szeged.hu> | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |         * assembler/ARMAssembler.cpp: Added. | 
 |         (JSC::ARMAssembler::getLdrImmAddress): | 
 |         (JSC::ARMAssembler::linkBranch): | 
 |         (JSC::ARMAssembler::patchConstantPoolLoad): | 
 |         (JSC::ARMAssembler::getOp2): | 
 |         (JSC::ARMAssembler::genInt): | 
 |         (JSC::ARMAssembler::getImm): | 
 |         (JSC::ARMAssembler::moveImm): | 
 |         (JSC::ARMAssembler::dataTransfer32): | 
 |         (JSC::ARMAssembler::baseIndexTransfer32): | 
 |         (JSC::ARMAssembler::executableCopy): | 
 |         * assembler/ARMAssembler.h: Added. | 
 |         (JSC::ARM::): | 
 |         (JSC::ARMAssembler::ARMAssembler): | 
 |         (JSC::ARMAssembler::): | 
 |         (JSC::ARMAssembler::JmpSrc::JmpSrc): | 
 |         (JSC::ARMAssembler::JmpSrc::enableLatePatch): | 
 |         (JSC::ARMAssembler::JmpDst::JmpDst): | 
 |         (JSC::ARMAssembler::JmpDst::isUsed): | 
 |         (JSC::ARMAssembler::JmpDst::used): | 
 |         (JSC::ARMAssembler::emitInst): | 
 |         (JSC::ARMAssembler::and_r): | 
 |         (JSC::ARMAssembler::ands_r): | 
 |         (JSC::ARMAssembler::eor_r): | 
 |         (JSC::ARMAssembler::eors_r): | 
 |         (JSC::ARMAssembler::sub_r): | 
 |         (JSC::ARMAssembler::subs_r): | 
 |         (JSC::ARMAssembler::rsb_r): | 
 |         (JSC::ARMAssembler::rsbs_r): | 
 |         (JSC::ARMAssembler::add_r): | 
 |         (JSC::ARMAssembler::adds_r): | 
 |         (JSC::ARMAssembler::adc_r): | 
 |         (JSC::ARMAssembler::adcs_r): | 
 |         (JSC::ARMAssembler::sbc_r): | 
 |         (JSC::ARMAssembler::sbcs_r): | 
 |         (JSC::ARMAssembler::rsc_r): | 
 |         (JSC::ARMAssembler::rscs_r): | 
 |         (JSC::ARMAssembler::tst_r): | 
 |         (JSC::ARMAssembler::teq_r): | 
 |         (JSC::ARMAssembler::cmp_r): | 
 |         (JSC::ARMAssembler::orr_r): | 
 |         (JSC::ARMAssembler::orrs_r): | 
 |         (JSC::ARMAssembler::mov_r): | 
 |         (JSC::ARMAssembler::movs_r): | 
 |         (JSC::ARMAssembler::bic_r): | 
 |         (JSC::ARMAssembler::bics_r): | 
 |         (JSC::ARMAssembler::mvn_r): | 
 |         (JSC::ARMAssembler::mvns_r): | 
 |         (JSC::ARMAssembler::mul_r): | 
 |         (JSC::ARMAssembler::muls_r): | 
 |         (JSC::ARMAssembler::mull_r): | 
 |         (JSC::ARMAssembler::ldr_imm): | 
 |         (JSC::ARMAssembler::ldr_un_imm): | 
 |         (JSC::ARMAssembler::dtr_u): | 
 |         (JSC::ARMAssembler::dtr_ur): | 
 |         (JSC::ARMAssembler::dtr_d): | 
 |         (JSC::ARMAssembler::dtr_dr): | 
 |         (JSC::ARMAssembler::ldrh_r): | 
 |         (JSC::ARMAssembler::ldrh_d): | 
 |         (JSC::ARMAssembler::ldrh_u): | 
 |         (JSC::ARMAssembler::strh_r): | 
 |         (JSC::ARMAssembler::push_r): | 
 |         (JSC::ARMAssembler::pop_r): | 
 |         (JSC::ARMAssembler::poke_r): | 
 |         (JSC::ARMAssembler::peek_r): | 
 |         (JSC::ARMAssembler::clz_r): | 
 |         (JSC::ARMAssembler::bkpt): | 
 |         (JSC::ARMAssembler::lsl): | 
 |         (JSC::ARMAssembler::lsr): | 
 |         (JSC::ARMAssembler::asr): | 
 |         (JSC::ARMAssembler::lsl_r): | 
 |         (JSC::ARMAssembler::lsr_r): | 
 |         (JSC::ARMAssembler::asr_r): | 
 |         (JSC::ARMAssembler::size): | 
 |         (JSC::ARMAssembler::ensureSpace): | 
 |         (JSC::ARMAssembler::label): | 
 |         (JSC::ARMAssembler::align): | 
 |         (JSC::ARMAssembler::jmp): | 
 |         (JSC::ARMAssembler::patchPointerInternal): | 
 |         (JSC::ARMAssembler::patchConstantPoolLoad): | 
 |         (JSC::ARMAssembler::patchPointer): | 
 |         (JSC::ARMAssembler::repatchInt32): | 
 |         (JSC::ARMAssembler::repatchPointer): | 
 |         (JSC::ARMAssembler::repatchLoadPtrToLEA): | 
 |         (JSC::ARMAssembler::linkJump): | 
 |         (JSC::ARMAssembler::relinkJump): | 
 |         (JSC::ARMAssembler::linkCall): | 
 |         (JSC::ARMAssembler::relinkCall): | 
 |         (JSC::ARMAssembler::getRelocatedAddress): | 
 |         (JSC::ARMAssembler::getDifferenceBetweenLabels): | 
 |         (JSC::ARMAssembler::getCallReturnOffset): | 
 |         (JSC::ARMAssembler::getOp2Byte): | 
 |         (JSC::ARMAssembler::placeConstantPoolBarrier): | 
 |         (JSC::ARMAssembler::RM): | 
 |         (JSC::ARMAssembler::RS): | 
 |         (JSC::ARMAssembler::RD): | 
 |         (JSC::ARMAssembler::RN): | 
 |         (JSC::ARMAssembler::getConditionalField): | 
 |         * assembler/ARMv7Assembler.h: | 
 |         (JSC::ARMv7Assembler::JmpSrc::enableLatePatch): | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::Call::enableLatePatch): | 
 |         (JSC::AbstractMacroAssembler::Jump::enableLatePatch): | 
 |         * assembler/MacroAssembler.h: | 
 |         * assembler/MacroAssemblerARM.h: Added. | 
 |         (JSC::MacroAssemblerARM::): | 
 |         (JSC::MacroAssemblerARM::add32): | 
 |         (JSC::MacroAssemblerARM::and32): | 
 |         (JSC::MacroAssemblerARM::lshift32): | 
 |         (JSC::MacroAssemblerARM::mul32): | 
 |         (JSC::MacroAssemblerARM::not32): | 
 |         (JSC::MacroAssemblerARM::or32): | 
 |         (JSC::MacroAssemblerARM::rshift32): | 
 |         (JSC::MacroAssemblerARM::sub32): | 
 |         (JSC::MacroAssemblerARM::xor32): | 
 |         (JSC::MacroAssemblerARM::load32): | 
 |         (JSC::MacroAssemblerARM::load32WithAddressOffsetPatch): | 
 |         (JSC::MacroAssemblerARM::loadPtrWithPatchToLEA): | 
 |         (JSC::MacroAssemblerARM::load16): | 
 |         (JSC::MacroAssemblerARM::store32WithAddressOffsetPatch): | 
 |         (JSC::MacroAssemblerARM::store32): | 
 |         (JSC::MacroAssemblerARM::pop): | 
 |         (JSC::MacroAssemblerARM::push): | 
 |         (JSC::MacroAssemblerARM::move): | 
 |         (JSC::MacroAssemblerARM::swap): | 
 |         (JSC::MacroAssemblerARM::signExtend32ToPtr): | 
 |         (JSC::MacroAssemblerARM::zeroExtend32ToPtr): | 
 |         (JSC::MacroAssemblerARM::branch32): | 
 |         (JSC::MacroAssemblerARM::branch16): | 
 |         (JSC::MacroAssemblerARM::branchTest32): | 
 |         (JSC::MacroAssemblerARM::jump): | 
 |         (JSC::MacroAssemblerARM::branchAdd32): | 
 |         (JSC::MacroAssemblerARM::mull32): | 
 |         (JSC::MacroAssemblerARM::branchMul32): | 
 |         (JSC::MacroAssemblerARM::branchSub32): | 
 |         (JSC::MacroAssemblerARM::breakpoint): | 
 |         (JSC::MacroAssemblerARM::nearCall): | 
 |         (JSC::MacroAssemblerARM::call): | 
 |         (JSC::MacroAssemblerARM::ret): | 
 |         (JSC::MacroAssemblerARM::set32): | 
 |         (JSC::MacroAssemblerARM::setTest32): | 
 |         (JSC::MacroAssemblerARM::tailRecursiveCall): | 
 |         (JSC::MacroAssemblerARM::makeTailRecursiveCall): | 
 |         (JSC::MacroAssemblerARM::moveWithPatch): | 
 |         (JSC::MacroAssemblerARM::branchPtrWithPatch): | 
 |         (JSC::MacroAssemblerARM::storePtrWithPatch): | 
 |         (JSC::MacroAssemblerARM::supportsFloatingPoint): | 
 |         (JSC::MacroAssemblerARM::supportsFloatingPointTruncate): | 
 |         (JSC::MacroAssemblerARM::loadDouble): | 
 |         (JSC::MacroAssemblerARM::storeDouble): | 
 |         (JSC::MacroAssemblerARM::addDouble): | 
 |         (JSC::MacroAssemblerARM::subDouble): | 
 |         (JSC::MacroAssemblerARM::mulDouble): | 
 |         (JSC::MacroAssemblerARM::convertInt32ToDouble): | 
 |         (JSC::MacroAssemblerARM::branchDouble): | 
 |         (JSC::MacroAssemblerARM::branchTruncateDoubleToInt32): | 
 |         (JSC::MacroAssemblerARM::ARMCondition): | 
 |         (JSC::MacroAssemblerARM::prepareCall): | 
 |         (JSC::MacroAssemblerARM::call32): | 
 |         * assembler/X86Assembler.h: | 
 |         (JSC::X86Assembler::JmpSrc::enableLatePatch): | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |         * wtf/Platform.h: | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateEnter): | 
 |         (JSC::Yarr::RegexGenerator::generateReturn): | 
 |  | 
 | 2009-07-17  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Extend AssemblerBuffer with constant pool handling mechanism. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=24986 | 
 |  | 
 |         Add a platform independed constant pool framework. | 
 |         This pool can store 32 or 64 bits values which is enough to hold | 
 |         any integer, pointer or double constant. | 
 |  | 
 |         * assembler/AssemblerBuffer.h: | 
 |         (JSC::AssemblerBuffer::putIntUnchecked): | 
 |         (JSC::AssemblerBuffer::putInt64Unchecked): | 
 |         (JSC::AssemblerBuffer::append): | 
 |         (JSC::AssemblerBuffer::grow): | 
 |         * assembler/AssemblerBufferWithConstantPool.h: Added. | 
 |         (JSC::): | 
 |  | 
 | 2009-07-17  Eric Roman  <eroman@chromium.org> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Build fix for non-Darwin. | 
 |         Add a guard for inclusion of RetainPtr.h which includes CoreFoundation.h | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27382 | 
 |  | 
 |         * wtf/unicode/icu/CollatorICU.cpp: | 
 |  | 
 | 2009-07-17  Alexey Proskuryakov  <ap@webkit.org> | 
 |  | 
 |         Reviewed by John Sullivan. | 
 |  | 
 |         Get user default collation order via a CFLocale API when available. | 
 |  | 
 |         * wtf/unicode/icu/CollatorICU.cpp: (WTF::Collator::userDefault): | 
 |  | 
 | 2009-07-17  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Fix the include path for the Symbian port | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27358 | 
 |  | 
 |         * JavaScriptCore.pri: | 
 |  | 
 | 2009-07-17  Csaba Osztrogonac  <oszi@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Build fix on platforms don't have MMAP. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27365 | 
 |  | 
 |         * interpreter/RegisterFile.h: Including stdio.h irrespectively of HAVE(MMAP) | 
 |  | 
 | 2009-07-16  Fumitoshi Ukai  <ukai@chromium.org> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Add --web-sockets flag and ENABLE_WEB_SOCKETS define. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27206 | 
 |          | 
 |         Add ENABLE_WEB_SOCKETS | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: add ENABLE_WEB_SOCKETS | 
 |  | 
 | 2009-07-16  Maxime Simon  <simon.maxime@gmail.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Added Haiku-specific files for JavaScriptCore. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26620 | 
 |  | 
 |         * wtf/haiku/MainThreadHaiku.cpp: Added. | 
 |         (WTF::initializeMainThreadPlatform): | 
 |         (WTF::scheduleDispatchFunctionsOnMainThread): | 
 |  | 
 | 2009-07-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         RS by Oliver Hunt. | 
 |  | 
 |         Revert r45969, this fix does not appear to be valid. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27077 | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::~CodeBlock): | 
 |         (JSC::CodeBlock::unlinkCallers): | 
 |         * jit/JIT.cpp: | 
 |         * jit/JIT.h: | 
 |  | 
 | 2009-07-16  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Allow custom memory allocation control in ExceptionInfo and RareData struct | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27336 | 
 |  | 
 |         Inherits ExceptionInfo and RareData struct from FastAllocBase because these | 
 |         have been instantiated by 'new' in JavaScriptCore/bytecode/CodeBlock.cpp:1289 and | 
 |         in JavaScriptCore/bytecode/CodeBlock.h:453. | 
 |  | 
 |         Remove unnecessary WTF:: namespace from CodeBlock inheritance. | 
 |   | 
 |         * bytecode/CodeBlock.h: | 
 |  | 
 | 2009-07-16  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Rubber-stamped by Geoff Garen. | 
 |  | 
 |         Fix FeatureDefines.xcconfig to not be out of sync with the rest of the world. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-07-16  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |          Reviewed by George Staikos. | 
 |  | 
 |          https://bugs.webkit.org/show_bug.cgi?id=27320 | 
 |          _countof is only included in CE6; for CE5 we need to define it ourself | 
 |  | 
 |          * wtf/Platform.h: | 
 |  | 
 | 2009-07-16  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Workers + garbage collector: weird crashes | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27077 | 
 |  | 
 |         We need to unlink cached method call sites when a function is destroyed. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::~CodeBlock): | 
 |         (JSC::CodeBlock::unlinkCallers): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::unlinkMethodCall): | 
 |         * jit/JIT.h: | 
 |  | 
 | 2009-07-15  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Windows Build fix. | 
 |  | 
 |         Visual Studio reset our intermediate directory on us. | 
 |         This sets it back. | 
 |          | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.vcproj/testapi/testapi.vcproj: | 
 |  | 
 | 2009-07-15  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26794 | 
 |         Make Yacc-generated parsers to use fastMalloc/fastFree. | 
 |          | 
 |         Define YYMALLOC and YYFREE to fastMalloc and fastFree | 
 |         respectively. | 
 |  | 
 |         * parser/Grammar.y: | 
 |  | 
 | 2009-07-15  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Fix a build for a particular Apple configuration. | 
 |  | 
 |         * wtf/FastAllocBase.h: Change include to use "" style for | 
 |         including another wtf header. This is the style we use for | 
 |         including other public headers in the same directory. | 
 |  | 
 | 2009-07-15  George Staikos  <george.staikos@torchmobile.com> | 
 |  | 
 |         Reviewed by Adam Treat. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27303 | 
 |         Implement createThreadInternal for WinCE. | 
 |         Contains changes by George Staikos <george.staikos@torchmobile.com> and Joe Mason <joe.mason@torchmobile.com> | 
 |  | 
 |         * wtf/ThreadingWin.cpp: | 
 |         (WTF::createThreadInternal): | 
 |  | 
 | 2009-07-15  Joe Mason  <joe.mason@torchmobile.com> | 
 |  | 
 |          Reviewed by George Staikos. | 
 |  | 
 |          https://bugs.webkit.org/show_bug.cgi?id=27298 | 
 |          Platform defines for WINCE. | 
 |          Contains changes by Yong Li <yong.li@torchmobile.com>, | 
 |          George Staikos <george.staikos@torchmobile.com> and Joe Mason <joe.mason@torchmobile.com> | 
 |  | 
 |          * wtf/Platform.h: | 
 |  | 
 | 2009-07-15  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |          Reviewed by Adam Treat. | 
 |  | 
 |          https://bugs.webkit.org/show_bug.cgi?id=27306 | 
 |          Use RegisterClass instead of RegisterClassEx on WinCE. | 
 |  | 
 |          * wtf/win/MainThreadWin.cpp: | 
 |          (WTF::initializeMainThreadPlatform): | 
 |  | 
 | 2009-07-15  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |          Reviewed by George Staikos. | 
 |  | 
 |          https://bugs.webkit.org/show_bug.cgi?id=27301 | 
 |          Use OutputDebugStringW on WinCE since OutputDebugStringA is not supported | 
 |          Originally written by Yong Li <yong.li@torchmobile.com> and refactored by | 
 |          Joe Mason <joe.mason@torchmobile.com> | 
 |  | 
 |          * wtf/Assertions.cpp: vprintf_stderr_common | 
 |  | 
 | 2009-07-15  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |          Reviewed by George Staikos. | 
 |  | 
 |          https://bugs.webkit.org/show_bug.cgi?id=27020 | 
 |          msToGregorianDateTime should set utcOffset to 0 when outputIsUTC is false | 
 |  | 
 |          * wtf/DateMath.cpp: | 
 |          (WTF::gregorianDateTimeToMS): | 
 |  | 
 | 2009-07-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         [Qt] Cleanup - Remove obsolete code from the make system | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27299 | 
 |  | 
 |         * JavaScriptCore.pro: | 
 |         * jsc.pro: | 
 |  | 
 | 2009-07-07  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27056 | 
 |  | 
 |         Alternate bool operator for codewarrior compiler (WINSCW). | 
 |         Compiler (latest b482) reports error for UnspecifiedBoolType construct: | 
 |         "illegal explicit conversion from 'WTF::OwnArrayPtr<JSC::Register>' to 'bool'" | 
 |  | 
 |         Same fix as in r38391. | 
 |  | 
 |         * JavaScriptCore/wtf/OwnArrayPtr.h: | 
 |  | 
 | 2009-07-15  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Qualify include path with wtf to fix compilation | 
 |         on Symbian. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27055 | 
 |  | 
 |         * interpreter/Interpreter.h: | 
 |  | 
 | 2009-07-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Dave Kilzer. | 
 |  | 
 |         Turn off non-portable date manipulations for SYMBIAN | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27064 | 
 |  | 
 |         Introduce HAVE(TM_GMTOFF), HAVE(TM_ZONE) and HAVE(TIMEGM) guards  | 
 |         and place the rules for controlling the guards in Platform.h. | 
 |         Turn off these newly introduced guards for SYMBIAN. | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::calculateUTCOffset): | 
 |         * wtf/DateMath.h: | 
 |         (WTF::GregorianDateTime::GregorianDateTime): | 
 |         (WTF::GregorianDateTime::operator tm): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-15  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Undef ASSERT on Symbian, to avoid excessive warnings | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27052 | 
 |  | 
 |         * wtf/Assertions.h: | 
 |  | 
 | 2009-07-15  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         REGRESSION: fast/js/postfix-syntax.html fails with interpreter | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27294 | 
 |  | 
 |         When postfix operators operating on locals assign to the same local | 
 |         the order of operations has to be to store the incremented value, then | 
 |         store the unmodified number.  Rather than implementing this subtle | 
 |         semantic in the interpreter I've just made the logic explicit in the | 
 |         bytecode generator, so x=x++ effectively becomes x=ToNumber(x) (for a | 
 |         local var x). | 
 |  | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::emitPostIncOrDec): | 
 |  | 
 | 2009-07-15  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         REGRESSION(43559): fast/js/kde/arguments-scope.html fails with interpreter | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27259 | 
 |  | 
 |         The interpreter was incorrectly basing its need to create the arguments object | 
 |         based on the presence of the callframe's argument reference rather than the local | 
 |         arguments reference.  Based on this it then overrode the local variable reference. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2009-07-14  Steve Falkenburg  <sfalken@apple.com> | 
 |  | 
 |         Reorganize JavaScriptCore headers into: | 
 |         API: include/JavaScriptCore/ | 
 |         Private: include/private/JavaScriptCore/ | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: | 
 |         * JavaScriptCore.vcproj/testapi/testapi.vcproj: | 
 |         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: | 
 |  | 
 | 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Change JSCell's superclass to NoncopyableCustomAllocated | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27248 | 
 |  | 
 |         JSCell class customizes operator new, since Noncopyable will be  | 
 |         inherited from FastAllocBase, NoncopyableCustomAllocated has  | 
 |         to be used. | 
 |  | 
 |         * runtime/JSCell.h: | 
 |  | 
 | 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Change all Noncopyable inheriting visibility to public. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27225 | 
 |  | 
 |         Change all Noncopyable inheriting visibility to public because | 
 |         it is needed to the custom allocation framework (bug #20422). | 
 |  | 
 |         * bytecode/SamplingTool.h: | 
 |         * bytecompiler/RegisterID.h: | 
 |         * interpreter/CachedCall.h: | 
 |         * interpreter/RegisterFile.h: | 
 |         * parser/Lexer.h: | 
 |         * parser/Parser.h: | 
 |         * runtime/ArgList.h: | 
 |         * runtime/BatchedTransitionOptimizer.h: | 
 |         * runtime/Collector.h: | 
 |         * runtime/CommonIdentifiers.h: | 
 |         * runtime/JSCell.h: | 
 |         * runtime/JSGlobalObject.h: | 
 |         * runtime/JSLock.h: | 
 |         * runtime/JSONObject.cpp: | 
 |         * runtime/SmallStrings.cpp: | 
 |         * runtime/SmallStrings.h: | 
 |         * wtf/CrossThreadRefCounted.h: | 
 |         * wtf/GOwnPtr.h: | 
 |         * wtf/Locker.h: | 
 |         * wtf/MessageQueue.h: | 
 |         * wtf/OwnArrayPtr.h: | 
 |         * wtf/OwnFastMallocPtr.h: | 
 |         * wtf/OwnPtr.h: | 
 |         * wtf/RefCounted.h: | 
 |         * wtf/ThreadSpecific.h: | 
 |         * wtf/Threading.h: | 
 |         * wtf/Vector.h: | 
 |         * wtf/unicode/Collator.h: | 
 |  | 
 | 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Change ParserArenaRefCounted's superclass to RefCountedCustomAllocated | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27249 | 
 |  | 
 |         ParserArenaDeletable customizes operator new, to avoid double inheritance | 
 |         ParserArenaDeletable's superclass has been changed to RefCountedCustomAllocated. | 
 |  | 
 |         * parser/Nodes.h: | 
 |  | 
 | 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Add RefCountedCustomAllocated to RefCounted.h | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27232 | 
 |  | 
 |         Some class which are inherited from RefCounted customize | 
 |         operator new, but RefCounted is inherited from Noncopyable | 
 |         which will be inherited from FastAllocBase. To avoid | 
 |         conflicts Noncopyable inheriting was moved down to RefCounted | 
 |         and to avoid double inheritance this class has been added. | 
 |  | 
 |         * wtf/RefCounted.h: | 
 |         (WTF::RefCountedCustomAllocated::deref): | 
 |         (WTF::RefCountedCustomAllocated::~RefCountedCustomAllocated): | 
 |  | 
 | 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Add NoncopyableCustomAllocated to Noncopyable.h. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27228 | 
 |          | 
 |         Some classes which inherited from Noncopyable overrides operator new | 
 |         since Noncopyable'll be inherited from FastAllocBase, Noncopyable.h  | 
 |         needs to be extended with this new class to support the overriding.  | 
 |  | 
 |         * wtf/Noncopyable.h: | 
 |         (WTFNoncopyable::NoncopyableCustomAllocated::NoncopyableCustomAllocated): | 
 |         (WTFNoncopyable::NoncopyableCustomAllocated::~NoncopyableCustomAllocated): | 
 |  | 
 | 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's IdentifierTable class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27260 | 
 |  | 
 |         Inherits IdentifierTable class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/Identifier.cpp:70. | 
 |  | 
 |         * runtime/Identifier.cpp: | 
 |  | 
 | 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Allow custom memory allocation control for JavaScriptCore's Profiler class | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27253 | 
 |  | 
 |         Inherits Profiler class from FastAllocBase because it has been instantiated by | 
 |         'new' in JavaScriptCore/profiler/Profiler.cpp:56. | 
 |  | 
 |         * profiler/Profiler.h: | 
 |  | 
 | 2009-07-06  George Staikos  <george.staikos@torchmobile.com> | 
 |  | 
 |         Reviewed by Adam Treat. | 
 |  | 
 |         Authors: George Staikos <george.staikos@torchmobile.com>, Joe Mason <joe.mason@torchmobile.com>, Makoto Matsumoto <matumoto@math.keio.ac.jp>, Takuji Nishimura | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27030 | 
 |         Implement custom RNG for WinCE using Mersenne Twister | 
 |  | 
 |         * wtf/RandomNumber.cpp: | 
 |         (WTF::randomNumber): | 
 |         * wtf/RandomNumberSeed.h: | 
 |         (WTF::initializeRandomNumberGenerator): | 
 |         * wtf/wince/mt19937ar.c: Added. | 
 |         (init_genrand): | 
 |         (init_by_array): | 
 |         (genrand_int32): | 
 |         (genrand_int31): | 
 |         (genrand_real1): | 
 |         (genrand_real2): | 
 |         (genrand_real3): | 
 |         (genrand_res53): | 
 |  | 
 | 2009-07-13  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> | 
 |  | 
 |         Unreviewed make dist build fix. | 
 |  | 
 |         * GNUmakefile.am: | 
 |  | 
 | 2009-07-13  Drew Wilson  <atwilson@google.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26932 | 
 |  | 
 |         Added ENABLE(SHARED_WORKERS) flag (off by default). | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-07-07  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachoviak. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27058 | 
 |  | 
 |         Removed superfluous parenthesis around single expression. | 
 |         Compilers on Symbian platform fail to properly parse and compile. | 
 |  | 
 |         * JavaScriptCore/wtf/Platform.h: | 
 |  | 
 | 2009-07-13  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachoviak. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27054 | 
 |  | 
 |         Renamed Translator to HashTranslator | 
 |  | 
 |         Codewarrior compiler (WINSCW) latest b482 cannot resolve typename | 
 |         mismatch between template declaration and definition | 
 |         (HashTranslator / Translator) | 
 |  | 
 |         * wtf/HashSet.h: | 
 |  | 
 | 2009-07-13  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27053 | 
 |  | 
 |         Ambiguity in LabelScope initialization | 
 |  | 
 |         Codewarrior compiler (WINSCW) latest b482 on Symbian cannot resolve | 
 |         type of "0" unambiguously. Set expression explicitly to | 
 |         PassRefPtr<Label>::PassRefPtr() | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.cpp | 
 |  | 
 | 2009-07-11  Simon Fraser  <simon.fraser@apple.com> | 
 |  | 
 |         Enable support for accelerated compositing and 3d transforms on Leopard. | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=20166> | 
 |         <rdar://problem/6120614> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-10  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Second part of the "make Windows happier" dance. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-10  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Try and make the Windows build happy. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-07-10  Kevin McCullough  <kmccullough@apple.com> | 
 |  | 
 |         Reviewed by Geoffrey Garen. | 
 |  | 
 |         * debugger/Debugger.h: Made this function virtual for use in WebCore's | 
 |         WebInspector. | 
 |  | 
 | 2009-07-10  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         ParserArenaDeletable should override delete | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26790 | 
 |  | 
 |         ParserArenaDeletable overrides new, but it does not override delete. | 
 |         ParserArenaDeletable must be freed by fastFree | 
 |         because it is allocated by fastMalloc. | 
 |  | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::ParserArenaDeletable::operator delete): | 
 |         * parser/Nodes.h: | 
 |  | 
 | 2009-07-10  Adam Roben  <aroben@apple.com> | 
 |  | 
 |         Sort all our Xcode projects | 
 |  | 
 |         Accomplished using sort-Xcode-project-file. | 
 |  | 
 |         Requested by Dave Kilzer. | 
 |  | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: | 
 |  | 
 | 2009-07-09  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Not reviewed, build fix. | 
 |  | 
 |         Windows build fix for the last change. | 
 |  | 
 |         * wtf/dtoa.cpp: Forgot to include Vector.h | 
 |  | 
 | 2009-07-09  Maciej Stachowiak  <mjs@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         REGRESSION: crash in edge cases of floating point parsing. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27110 | 
 |         <rdar://problem/7044458> | 
 |          | 
 |         Tests: fast/css/number-parsing-crash.html | 
 |                fast/css/number-parsing-crash.html | 
 |                fast/js/number-parsing-crash.html | 
 |          | 
 |         * wtf/dtoa.cpp: | 
 |         (WTF::BigInt::BigInt): Converted this to more a proper class, using a Vector | 
 |         with inline capacity | 
 |  | 
 |         (WTF::lshift): Rearranged logic somewhat nontrivially to deal with the new way of sizing BigInts. | 
 |         Added an assertion to verify that invariants are maintained. | 
 |  | 
 |         All other functions are adapted fairly mechanically to the above changes. | 
 |         (WTF::BigInt::clear): | 
 |         (WTF::BigInt::size): | 
 |         (WTF::BigInt::resize): | 
 |         (WTF::BigInt::words): | 
 |         (WTF::BigInt::append): | 
 |         (WTF::multadd): | 
 |         (WTF::s2b): | 
 |         (WTF::i2b): | 
 |         (WTF::mult): | 
 |         (WTF::cmp): | 
 |         (WTF::diff): | 
 |         (WTF::b2d): | 
 |         (WTF::d2b): | 
 |         (WTF::ratio): | 
 |         (WTF::strtod): | 
 |         (WTF::quorem): | 
 |         (WTF::dtoa): | 
 |  | 
 | 2009-07-09  Drew Wilson  <atwilson@google.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Turned on CHANNEL_MESSAGING by default because the MessageChannel API | 
 |         can now be implemented for Web Workers and is reasonably stable. | 
 |  | 
 |         * Configurations/FeatureDefines.xcconfig: | 
 |  | 
 | 2009-07-09  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2009-07-09  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Bug 27016 - Interpreter crashes due to invalid array indexes | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=27016> | 
 |  | 
 |         Unsigned vs signed conversions results in incorrect behaviour in | 
 |         64bit interpreter builds. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::privateExecute): | 
 |  | 
 | 2009-07-09  Dimitri Glazkov  <dglazkov@chromium.org> | 
 |  | 
 |         Reviewed by Darin Fisher. | 
 |  | 
 |         [Chromium] Upstream JavaScriptCore.gypi, the project file for Chromium build. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27135 | 
 |  | 
 |         * JavaScriptCore.gypi: Added. | 
 |  | 
 | 2009-07-09  Joe Mason  <joe.mason@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |          | 
 |         Authors: Yong Li <yong.li@torchmobile.com>, Joe Mason <joe.mason@torchmobile.com> | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27031 | 
 |         Add an override for deleteOwnedPtr(HDC) on Windows | 
 |          | 
 |         * wtf/OwnPtrCommon.h: | 
 |         * wtf/OwnPtrWin.cpp: | 
 |         (WTF::deleteOwnedPtr): | 
 |  | 
 | 2009-07-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Guard singal.h dependency with HAVE(SIGNAL_H) to enable building jsc | 
 |         on SYMBIAN. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=27026 | 
 |  | 
 |         Based on Norbert Leser's work. | 
 |  | 
 |         * jsc.cpp: | 
 |         (printUsageStatement): | 
 |         (parseArguments): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-07  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Stop loading constants into the register file. | 
 |  | 
 |         Instead, use high register values (highest bit bar the sign bit set) to indicate | 
 |         constants in the instruction stream, and when we encounter such a value load it | 
 |         directly from the CodeBlock. | 
 |  | 
 |         Since constants are no longer copied into the register file, this patch renders | 
 |         the 'unexpected constant' mechanism redundant, and removes it. | 
 |  | 
 |         2% improvement, thanks to Sam Weinig. | 
 |  | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::dump): | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |         (JSC::CodeBlock::mark): | 
 |         (JSC::CodeBlock::shrinkToFit): | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::CodeBlock::isTemporaryRegisterIndex): | 
 |         (JSC::CodeBlock::constantRegister): | 
 |         (JSC::CodeBlock::isConstantRegisterIndex): | 
 |         (JSC::CodeBlock::getConstant): | 
 |         (JSC::ExecState::r): | 
 |         * bytecode/Opcode.h: | 
 |         * bytecompiler/BytecodeGenerator.cpp: | 
 |         (JSC::BytecodeGenerator::preserveLastVar): | 
 |         (JSC::BytecodeGenerator::BytecodeGenerator): | 
 |         (JSC::BytecodeGenerator::addConstantValue): | 
 |         (JSC::BytecodeGenerator::emitEqualityOp): | 
 |         (JSC::BytecodeGenerator::emitLoad): | 
 |         (JSC::BytecodeGenerator::emitResolveBase): | 
 |         (JSC::BytecodeGenerator::emitResolveWithBase): | 
 |         (JSC::BytecodeGenerator::emitNewError): | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         (JSC::BytecodeGenerator::emitNode): | 
 |         * interpreter/CallFrame.h: | 
 |         (JSC::ExecState::noCaller): | 
 |         (JSC::ExecState::hasHostCallFrameFlag): | 
 |         (JSC::ExecState::addHostCallFrameFlag): | 
 |         (JSC::ExecState::removeHostCallFrameFlag): | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::resolve): | 
 |         (JSC::Interpreter::resolveSkip): | 
 |         (JSC::Interpreter::resolveGlobal): | 
 |         (JSC::Interpreter::resolveBase): | 
 |         (JSC::Interpreter::resolveBaseAndProperty): | 
 |         (JSC::Interpreter::resolveBaseAndFunc): | 
 |         (JSC::Interpreter::dumpRegisters): | 
 |         (JSC::Interpreter::throwException): | 
 |         (JSC::Interpreter::createExceptionScope): | 
 |         (JSC::Interpreter::privateExecute): | 
 |         (JSC::Interpreter::retrieveArguments): | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileMainPass): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::emitLoadDouble): | 
 |         (JSC::JIT::emitLoadInt32ToDouble): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_new_error): | 
 |         (JSC::JIT::emit_op_enter): | 
 |         (JSC::JIT::emit_op_enter_with_activation): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::DeleteResolveNode::emitBytecode): | 
 |         (JSC::DeleteValueNode::emitBytecode): | 
 |         (JSC::PrefixResolveNode::emitBytecode): | 
 |         * runtime/JSActivation.cpp: | 
 |         (JSC::JSActivation::JSActivation): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-07-07  Mark Rowe  <mrowe@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Fix <https://bugs.webkit.org/show_bug.cgi?id=27025> / <rdar://problem/7033448>. | 
 |         Bug 27025: Crashes and regression test failures related to regexps in 64-bit | 
 |  | 
 |         For x86_64 RegexGenerator uses rbx, a callee-save register, as a scratch register but | 
 |         neglects to save and restore it.  The change in handling of the output vector in r45545 | 
 |         altered code generation so that the RegExp::match was now storing important data in rbx, | 
 |         which caused crashes and bogus results when it was clobbered. | 
 |  | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateEnter): Save rbx. | 
 |         (JSC::Yarr::RegexGenerator::generateReturn): Restore rbx. | 
 |  | 
 | 2009-07-06  Ada Chan  <adachan@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler and Mark Rowe. | 
 |  | 
 |         Decommitted spans are added to the list of normal spans rather than  | 
 |         the returned spans in TCMalloc_PageHeap::Delete(). | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26998 | 
 |          | 
 |         In TCMalloc_PageHeap::Delete(), the deleted span can be decommitted in  | 
 |         the process of merging with neighboring spans that are also decommitted.   | 
 |         The merged span needs to be placed in the list of returned spans (spans  | 
 |         whose memory has been returned to the system).  Right now it's always added  | 
 |         to the list of the normal spans which can theoretically cause thrashing.   | 
 |  | 
 |         * wtf/FastMalloc.cpp: | 
 |         (WTF::TCMalloc_PageHeap::Delete): | 
 |  | 
 | 2009-07-05  Lars Knoll  <lars.knoll@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26843 | 
 |  | 
 |         Fix run-time crashes in JavaScriptCore with the Metrowerks compiler on Symbian. | 
 |  | 
 |         The Metrowerks compiler on the Symbian platform moves the globally | 
 |         defined Hashtables into read-only memory, despite one of the members | 
 |         being mutable. This causes crashes at run-time due to write access to | 
 |         read-only memory. | 
 |  | 
 |         Avoid the use of const with this compiler by introducing the | 
 |         JSC_CONST_HASHTABLE macro. | 
 |  | 
 |         Based on idea by Norbert Leser. | 
 |  | 
 |         * runtime/Lookup.h: Define JSC_CONST_HASHTABLE as const for !WINSCW. | 
 |         * create_hash_table: Use JSC_CONST_HASHTABLE for hashtables. | 
 |         * runtime/JSGlobalData.cpp: Import various global hashtables via the macro. | 
 |  | 
 | 2009-07-04  Dan Bernstein  <mitz@apple.com> | 
 |  | 
 |         - debug build fix | 
 |  | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::RegExpConstructor::getLastParen): | 
 |  | 
 | 2009-07-03  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak (and revised slightly) | 
 |  | 
 |         RegExp::match to be optimized | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26957 | 
 |  | 
 |         Allow regexp matching to use Vectors with inline capacity instead of | 
 |         allocating a new ovector buffer every time. | 
 |          | 
 |         ~5% speedup on SunSpider string-unpack-code test, 0.3% on SunSpider overall. | 
 |  | 
 |         * runtime/RegExp.cpp: | 
 |         (JSC::RegExp::match): | 
 |         * runtime/RegExp.h: | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         (JSC::RegExpConstructorPrivate::RegExpConstructorPrivate): | 
 |         (JSC::RegExpConstructorPrivate::lastOvector): | 
 |         (JSC::RegExpConstructorPrivate::tempOvector): | 
 |         (JSC::RegExpConstructorPrivate::changeLastOvector): | 
 |         (JSC::RegExpConstructor::performMatch): | 
 |         (JSC::RegExpMatchesArray::RegExpMatchesArray): | 
 |         (JSC::RegExpMatchesArray::fillArrayInstance): | 
 |         (JSC::RegExpConstructor::getBackref): | 
 |         (JSC::RegExpConstructor::getLastParen): | 
 |         (JSC::RegExpConstructor::getLeftContext): | 
 |         (JSC::RegExpConstructor::getRightContext): | 
 |         * runtime/StringPrototype.cpp: | 
 |         (JSC::stringProtoFuncSplit): | 
 |  | 
 | 2009-06-30  Kwang Yul Seo  <skyul@company100.net> | 
 |  | 
 |         Reviewed by Eric Seidel. | 
 |  | 
 |         Override operator new/delete with const std::nothrow_t& as the second | 
 |         argument. | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26792 | 
 |  | 
 |         On Windows CE, operator new/delete, new[]/delete[] with const | 
 |         std::nothrow_t& must be overrided because some standard template | 
 |         libraries use these operators. | 
 |  | 
 |         The problem occurs when memory allocated by new(size_t s, const | 
 |         std::nothrow_t&) is freed by delete(void* p). This causes the umatched | 
 |         malloc/free problem. | 
 |  | 
 |         The patch overrides all new, delete, new[] and delete[] to use | 
 |         fastMaloc and fastFree consistently. | 
 |  | 
 |         * wtf/FastMalloc.h: | 
 |         (throw): | 
 |  | 
 | 2009-06-30  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=24986> | 
 |  | 
 |         Remove unnecessary references to AssemblerBuffer. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         * interpreter/Interpreter.h: | 
 |  | 
 | 2009-06-29  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Still seeing occasional leaks from UString::sharedBuffer code | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26420 | 
 |  | 
 |         The problem is that the pointer to the memory allocation isn't visible | 
 |         by "leaks" due to the lower bits being used as flags.  The fix is to | 
 |         make the pointer visible in memory (in debug only). The downside of | 
 |         this fix that the memory allocated by sharedBuffer will still look like | 
 |         a leak in non-debug builds when any flags are set. | 
 |  | 
 |         * wtf/PtrAndFlags.h: | 
 |         (WTF::PtrAndFlags::set): | 
 |  | 
 | 2009-06-29  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         Remove more unused scons support. | 
 |  | 
 |         * SConstruct: Removed. | 
 |  | 
 | 2009-06-29  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         <rdar://problem/7016214> JSON.parse fails to parse valid JSON with most Unicode characters | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26802> | 
 |  | 
 |         In the original JSON.parse patch unicode was handled correctly, however in some last | 
 |         minute "clean up" I oversimplified isSafeStringCharacter.  This patch corrects this bug. | 
 |  | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::isSafeStringCharacter): | 
 |         (JSC::LiteralParser::Lexer::lexString): | 
 |  | 
 | 2009-06-26  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Dan Bernstein. | 
 |  | 
 |         <rdar://problem/7009684> REGRESSION(r45039): Crashes inside JSEvent::put on PowerPC (26746) | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26746> | 
 |  | 
 |         Fix for r45039 incorrectly uncached a get_by_id by converting it to put_by_id.  Clearly this | 
 |         is less than correct.  This patch corrects that error. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |  | 
 | 2009-06-26  Eric Seidel  <eric@webkit.org> | 
 |  | 
 |         No review, only rolling out r45259. | 
 |  | 
 |         Roll out r45259 after crash appeared on the bots: | 
 |         plugins/undefined-property-crash.html | 
 |         ASSERTION FAILED: s <= HeapConstants<heapType>::cellSize | 
 |         (leopard-intel-debug-tests/build/JavaScriptCore/runtime/Collector.cpp:278 | 
 |         void* JSC::Heap::heapAllocate(size_t) [with JSC::HeapType heapType = PrimaryHeap]) | 
 |  | 
 |         * runtime/DateInstance.cpp: | 
 |         * runtime/Identifier.cpp: | 
 |         * runtime/Lookup.h: | 
 |         * runtime/RegExpConstructor.cpp: | 
 |         * runtime/RegExpObject.h: | 
 |         * runtime/ScopeChain.h: | 
 |         * runtime/UString.h: | 
 |  | 
 | 2009-06-26  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com> | 
 |  | 
 |         Reviewed by Simon Hausmann. | 
 |  | 
 |         Add support for QDataStream operators to Vector. | 
 |  | 
 |         * wtf/Vector.h: | 
 |         (WTF::operator<<): | 
 |         (WTF::operator>>): | 
 |  | 
 | 2009-06-24  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Make the opcode sampler work once again. | 
 |  | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileGetByIdProto): | 
 |         (JSC::JIT::compileGetByIdSelfList): | 
 |         (JSC::JIT::compileGetByIdProtoList): | 
 |         (JSC::JIT::compileGetByIdChainList): | 
 |         (JSC::JIT::compileGetByIdChain): | 
 |         (JSC::JIT::compilePutByIdTransition): | 
 |         (JSC::JIT::compileCTIMachineTrampolines): | 
 |         (JSC::JIT::compilePatchGetArrayLength): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::call): | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         Extend FastAllocBase.h with 'using WTF::FastAllocBase' to avoid | 
 |         unnecessary WTF:: usings. | 
 |         Remove existing unnecessary WTF:: usings. | 
 |  | 
 |         * interpreter/Interpreter.h: | 
 |         * profiler/CallIdentifier.h: | 
 |         * runtime/ScopeChain.h: | 
 |         * wtf/FastAllocBase.h: | 
 |  | 
 | 2009-06-24  David Levin  <levin@chromium.org> | 
 |  | 
 |         Fix all builds. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |         * interpreter/Register.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26677 | 
 |  | 
 |         Inherits CodeBlock class from FastAllocBase because it | 
 |         has been instantiated by 'new' in JavaScriptCore/bytecode/CodeBlock.h:217. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26676 | 
 |  | 
 |         Inherits BytecodeGenerator class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/parser/Nodes.cpp:1892. | 
 |  | 
 |         * bytecompiler/BytecodeGenerator.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26675 | 
 |  | 
 |         Inherits Register class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/JSVariableObject.h:149. | 
 |  | 
 |         * interpreter/Register.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |          | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26674 | 
 |  | 
 |         Inherits HashMap class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/Structure.cpp:458. | 
 |  | 
 |         * wtf/HashMap.h: | 
 |  | 
 | 2009-06-24  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         <rdar://problem/6940519> REGRESSION (Safari 4 Public Beta - TOT): google.com/adplanner shows blank page instead of site details in "basic research' | 
 |  | 
 |         The problem was caused by the page returned with a function using a | 
 |         var declaration list containing around ~3000 variables.  The solution | 
 |         to this is to flatten the comma expression representation and make | 
 |         codegen comma expressions and initializer lists iterative rather than | 
 |         recursive. | 
 |  | 
 |         * parser/Grammar.y: | 
 |         * parser/NodeConstructors.h: | 
 |         (JSC::CommaNode::CommaNode): | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::CommaNode::emitBytecode): | 
 |         * parser/Nodes.h: | 
 |         (JSC::ExpressionNode::isCommaNode): | 
 |         (JSC::CommaNode::isCommaNode): | 
 |         (JSC::CommaNode::append): | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26645 | 
 |  | 
 |         Inherits ScopeChainNode class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/ScopeChain.h:95. | 
 |  | 
 |         * wtf/RefPtr.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26648 | 
 |  | 
 |         Inherits Deque class from FastAllocBase because it has been | 
 |         instantiated by 'new' with DEFINE_STATIC_LOCAL macro in  | 
 |         JavaScriptCore/wtf/MainThread.cpp:62. | 
 |  | 
 |         * wtf/Deque.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26644 | 
 |  | 
 |         Inherits RefPtr class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/StructureChain.cpp:41. | 
 |  | 
 |         * wtf/RefPtr.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Inherits HashSet class from FastAllocBase, because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/Collector.h:116. | 
 |  | 
 |         * wtf/HashSet.h: | 
 |  | 
 | 2009-06-24  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Inherits Vector class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/Structure.cpp:633. | 
 |  | 
 |         * wtf/Vector.h: | 
 |  | 
 | 2009-06-24  Norbert Leser  <norbert.leser@nokia.com> | 
 |  | 
 |         Reviewed by Maciej Stachoviak. | 
 |  | 
 |         The BytecodeGenerator objects were instantiated on stack, which takes up ~38kB per instance | 
 |         (each instance includes copy of JSC::CodeBlock with large SymbolTable, etc.). | 
 |         Specifically, since there is nested invocation (e.g., GlobalCode --> FunctionCode), | 
 |         the stack overflows immediately on Symbian hardware (max. 80 kB). | 
 |         Proposed change allocates generator objects on heap. | 
 |         Performance impact (if any) should be negligible and change is proposed as general fix, | 
 |         rather than ifdef'd for SYMBIAN. | 
 |  | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::ProgramNode::generateBytecode): | 
 |         (JSC::EvalNode::generateBytecode): | 
 |         (JSC::EvalNode::bytecodeForExceptionInfoReparse): | 
 |         (JSC::FunctionBodyNode::generateBytecode): | 
 |         (JSC::FunctionBodyNode::bytecodeForExceptionInfoReparse): | 
 |  | 
 | 2009-06-23  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         <rdar://problem/6992806> REGRESSION: Enumeration can skip new properties in cases of prototypes that have more than 64 (26593) | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26593> | 
 |  | 
 |         Do not attempt to cache structure chains if they contain a dictionary at any level. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::tryCachePutByID): | 
 |         (JSC::Interpreter::tryCacheGetByID): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::tryCachePutByID): | 
 |         * runtime/Structure.cpp: | 
 |         (JSC::Structure::getEnumerablePropertyNames): | 
 |         (JSC::Structure::addPropertyTransition): | 
 |         * runtime/StructureChain.cpp: | 
 |         (JSC::StructureChain::isCacheable): | 
 |         * runtime/StructureChain.h: | 
 |  | 
 | 2009-06-23  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26654 | 
 |         Add the proper export define for the JavaScriptCore API when building for WINCE. | 
 |  | 
 |         * API/JSBase.h: | 
 |  | 
 | 2009-06-23  Joe Mason  <joe.mason@torchmobile.com> | 
 |  | 
 |         Reviewed by Adam Treat. | 
 |  | 
 |         Authors: Yong Li <yong.li@torchmobile.com>, Joe Mason <joe.mason@torchmobile.com> | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26611 | 
 |         Implement currentThreadStackBase on WINCE by adding a global, | 
 |         g_stackBase, which must be set to the address of a local variable | 
 |         by the caller before calling any WebKit function that invokes JSC. | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::isPageWritable): | 
 |         (JSC::getStackBase): | 
 |           Starts at the top of the stack and returns the entire range of | 
 |           consecutive writable pages as an estimate of the actual stack. | 
 |           This will be much bigger than the actual stack range, so some | 
 |           dead objects can't be collected, but it guarantees live objects | 
 |           aren't collected prematurely. | 
 |  | 
 |         (JSC::currentThreadStackBase): | 
 |           On WinCE, returns g_stackBase if set or call getStackBase as a | 
 |           fallback if not. | 
 |  | 
 | 2009-06-23  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Fix stupid performance problem in the LiteralParser | 
 |  | 
 |         The LiteralParser was making a new UString in order to use | 
 |         toDouble, however UString's toDouble allows a much wider range | 
 |         of numberic strings than the LiteralParser accepts, and requires | 
 |         an additional heap allocation or two for the construciton of the | 
 |         UString.  To rectify this we just call WTF::dtoa directly using | 
 |         a stack allocated buffer to hold the validated numeric literal. | 
 |  | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::LiteralParser::Lexer::lexNumber): | 
 |         (JSC::LiteralParser::parse): | 
 |         * runtime/LiteralParser.h: | 
 |  | 
 | 2009-06-22  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Alexey Proskuryakov. | 
 |  | 
 |         Bug 26640: JSON.stringify needs to special case Boolean objects | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26640> | 
 |  | 
 |         Add special case handling of the Boolean object so we match current | 
 |         ES5 errata. | 
 |  | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::unwrapBoxedPrimitive): renamed from unwrapNumberOrString | 
 |         (JSC::gap): | 
 |         (JSC::Stringifier::appendStringifiedValue): | 
 |  | 
 | 2009-06-22  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Bug 26591: Support revivers in JSON.parse | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26591> | 
 |  | 
 |         Add reviver support to JSON.parse.  This completes the JSON object. | 
 |  | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::Walker::Walker): | 
 |         (JSC::Walker::callReviver): | 
 |         (JSC::Walker::walk): | 
 |         (JSC::JSONProtoFuncParse): | 
 |  | 
 | 2009-06-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |  | 
 |         Bug 26592: Support standard toJSON functions | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26592> | 
 |  | 
 |         Add support for the standard Date.toJSON function. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::dateProtoFuncToJSON): | 
 |  | 
 | 2009-06-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Sam Weinig. | 
 |  | 
 |         Bug 26594: JSC needs to support Date.toISOString | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26594> | 
 |  | 
 |         Add support for Date.toISOString. | 
 |  | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::dateProtoFuncToISOString): | 
 |  | 
 | 2009-06-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Remove dead code. | 
 |  | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::LiteralParser::parse): | 
 |  | 
 | 2009-06-21  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Darin Adler and Cameron Zwarich. | 
 |  | 
 |         Bug 26587: Support JSON.parse | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26587> | 
 |  | 
 |         Extend the LiteralParser to support the full strict JSON | 
 |         grammar, fix a few places where the grammar was incorrectly | 
 |         lenient.   Doesn't yet support the JSON.parse reviver function | 
 |         but that does not block the JSON.parse functionality itself. | 
 |  | 
 |         * interpreter/Interpreter.cpp: | 
 |         (JSC::Interpreter::callEval): | 
 |         * runtime/JSGlobalObjectFunctions.cpp: | 
 |         (JSC::globalFuncEval): | 
 |         * runtime/JSONObject.cpp: | 
 |         (JSC::JSONProtoFuncParse): | 
 |         * runtime/LiteralParser.cpp: | 
 |         (JSC::LiteralParser::Lexer::lex): | 
 |         (JSC::isSafeStringCharacter): | 
 |         (JSC::LiteralParser::Lexer::lexString): | 
 |         (JSC::LiteralParser::parse): | 
 |         * runtime/LiteralParser.h: | 
 |         (JSC::LiteralParser::LiteralParser): | 
 |         (JSC::LiteralParser::tryJSONParse): | 
 |         (JSC::LiteralParser::): | 
 |         (JSC::LiteralParser::Lexer::Lexer): | 
 |  | 
 | 2009-06-21  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by NOBODY (speculative build fix for windows). | 
 |  | 
 |         Simply removed some whitespace form this file to make windows build wtf and | 
 |         hopefully copy the new MessageQueque.h so that WebCore picks it up. | 
 |  | 
 |         * wtf/Assertions.cpp: | 
 |  | 
 | 2009-06-21  Drew Wilson  <atwilson@google.com> | 
 |  | 
 |         Reviewed by David Levin. | 
 |  | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=25043> | 
 |         Added support for multi-threaded MessagePorts. | 
 |  | 
 |         * wtf/MessageQueue.h: | 
 |         (WTF::::appendAndCheckEmpty): | 
 |             Added API to test whether the queue was empty before adding an element. | 
 |    | 
 | 2009-06-20  David D. Kilzer  <ddkilzer@webkit.org> | 
 |  | 
 |         Fix namespace comment in SegmentedVector.h | 
 |  | 
 |         * wtf/SegmentedVector.h: Updated namespace comment to reflect | 
 |         new namespace after r44897. | 
 |  | 
 | 2009-06-20  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Bug 24986: ARM JIT port | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=24986> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         An Iterator added for SegmentedVector. Currently | 
 |         only the pre ++ operator is supported. | 
 |  | 
 |         * wtf/SegmentedVector.h: | 
 |         (WTF::SegmentedVectorIterator::~SegmentedVectorIterator): | 
 |         (WTF::SegmentedVectorIterator::operator*): | 
 |         (WTF::SegmentedVectorIterator::operator->): | 
 |         (WTF::SegmentedVectorIterator::operator++): | 
 |         (WTF::SegmentedVectorIterator::operator==): | 
 |         (WTF::SegmentedVectorIterator::operator!=): | 
 |         (WTF::SegmentedVectorIterator::operator=): | 
 |         (WTF::SegmentedVectorIterator::SegmentedVectorIterator): | 
 |         (WTF::SegmentedVector::alloc): | 
 |         (WTF::SegmentedVector::begin): | 
 |         (WTF::SegmentedVector::end): | 
 |  | 
 | 2009-06-20  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu> | 
 |  | 
 |         Bug 24986: ARM JIT port | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=24986> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Move SegmentedVector to /wtf subdirectory | 
 |         and change "namespace JSC" to "namespace WTF" | 
 |  | 
 |         Additional build file updates by David Kilzer. | 
 |  | 
 |         * GNUmakefile.am: Updated path to SegmentedVector.h. | 
 |         * JavaScriptCore.order: Updated SegmentedVector namespace from | 
 |         JSC to WTF in mangled C++ method name. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: | 
 |         Removed reference to bytecompiler\SegmentedVector.h. | 
 |         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added reference to | 
 |         wtf\SegmentedVector.h. | 
 |         * JavaScriptCore.xcodeproj/project.pbxproj: Moved | 
 |         SegmentedVector.h definition from bytecompiler subdirectory to | 
 |         wtf subdirectory. | 
 |         * bytecompiler/BytecodeGenerator.h: Updated #include path to | 
 |         SegmentedVector.h and prepended WTF:: namespace to its use. | 
 |         * parser/Lexer.h: Ditto. | 
 |         * wtf/SegmentedVector.h: Renamed from JavaScriptCore/bytecompiler/SegmentedVector.h. | 
 |         (WTF::SegmentedVector::SegmentedVector): | 
 |         (WTF::SegmentedVector::~SegmentedVector): | 
 |         (WTF::SegmentedVector::size): | 
 |         (WTF::SegmentedVector::at): | 
 |         (WTF::SegmentedVector::operator[]): | 
 |         (WTF::SegmentedVector::last): | 
 |         (WTF::SegmentedVector::append): | 
 |         (WTF::SegmentedVector::removeLast): | 
 |         (WTF::SegmentedVector::grow): | 
 |         (WTF::SegmentedVector::clear): | 
 |         (WTF::SegmentedVector::deleteAllSegments): | 
 |         (WTF::SegmentedVector::segmentExistsFor): | 
 |         (WTF::SegmentedVector::segmentFor): | 
 |         (WTF::SegmentedVector::subscriptFor): | 
 |         (WTF::SegmentedVector::ensureSegmentsFor): | 
 |         (WTF::SegmentedVector::ensureSegment): | 
 |  | 
 | 2009-06-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (build fix take 2 - rename FIELD_OFFSET to something that doesn't conflict with winnt.h). | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompile): | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::emitGetVariableObjectRegister): | 
 |         (JSC::JIT::emitPutVariableObjectRegister): | 
 |         * jit/JIT.h: | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_rshift): | 
 |         (JSC::JIT::emitSlow_op_jnless): | 
 |         (JSC::JIT::emitSlow_op_jnlesseq): | 
 |         (JSC::JIT::compileBinaryArithOp): | 
 |         * jit/JITCall.cpp: | 
 |         (JSC::JIT::compileOpCallInitializeCallFrame): | 
 |         (JSC::JIT::compileOpCall): | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::restoreArgumentReference): | 
 |         (JSC::JIT::checkStructure): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_instanceof): | 
 |         (JSC::JIT::emit_op_get_scoped_var): | 
 |         (JSC::JIT::emit_op_put_scoped_var): | 
 |         (JSC::JIT::emit_op_construct_verify): | 
 |         (JSC::JIT::emit_op_resolve_global): | 
 |         (JSC::JIT::emit_op_jeq_null): | 
 |         (JSC::JIT::emit_op_jneq_null): | 
 |         (JSC::JIT::emit_op_to_jsnumber): | 
 |         (JSC::JIT::emit_op_catch): | 
 |         (JSC::JIT::emit_op_eq_null): | 
 |         (JSC::JIT::emit_op_neq_null): | 
 |         (JSC::JIT::emit_op_convert_this): | 
 |         (JSC::JIT::emit_op_profile_will_call): | 
 |         (JSC::JIT::emit_op_profile_did_call): | 
 |         (JSC::JIT::emitSlow_op_get_by_val): | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::emit_op_get_by_val): | 
 |         (JSC::JIT::emit_op_put_by_val): | 
 |         (JSC::JIT::emit_op_method_check): | 
 |         (JSC::JIT::compileGetByIdHotPath): | 
 |         (JSC::JIT::emit_op_put_by_id): | 
 |         (JSC::JIT::compilePutDirectOffset): | 
 |         (JSC::JIT::compileGetDirectOffset): | 
 |         (JSC::JIT::privateCompilePutByIdTransition): | 
 |         (JSC::JIT::privateCompilePatchGetArrayLength): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |  | 
 | 2009-06-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Windows build fix). | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |  | 
 | 2009-06-19  Gabor Loki  <loki@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         Reorganize ARM architecture specific macros. | 
 |         Use PLATFORM_ARM_ARCH(7) instead of PLATFORM(ARM_V7). | 
 |  | 
 |         Bug 24986: ARM JIT port | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=24986> | 
 |  | 
 |         * assembler/ARMv7Assembler.h: | 
 |         * assembler/AbstractMacroAssembler.h: | 
 |         (JSC::AbstractMacroAssembler::Imm32::Imm32): | 
 |         * assembler/MacroAssembler.h: | 
 |         * assembler/MacroAssemblerCodeRef.h: | 
 |         (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): | 
 |         * jit/ExecutableAllocator.h: | 
 |         (JSC::ExecutableAllocator::cacheFlush): | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::restoreArgumentReferenceForTrampoline): | 
 |         * jit/JITStubs.cpp: | 
 |         * jit/JITStubs.h: | 
 |         * wtf/Platform.h: | 
 |         * yarr/RegexJIT.cpp: | 
 |         (JSC::Yarr::RegexGenerator::generateEnter): | 
 |         (JSC::Yarr::RegexGenerator::generateReturn): | 
 |  | 
 | 2009-06-19  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Fix armv7 JIT build issues. | 
 |  | 
 |         Unfortunate the arm compiler does not like the use of offsetof on JITStackFrame (since it now contains non POD types), | 
 |         and the FIELD_OFFSET macro does not appear constantish enough for it to be happy with its use in COMPILE_ASSERT macros. | 
 |  | 
 |         * Replace offsetofs with FIELD_OFFSETs (safe on C++ objects). | 
 |         * Move COMPILE_ASSERTs defending layout of JITStackFrame structure on armv7 into JITThunks constructor. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         * jit/JIT.h: | 
 |         * jit/JITInlineMethods.h: | 
 |         (JSC::JIT::restoreArgumentReference): | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_catch): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITThunks::JITThunks): | 
 |  | 
 | 2009-06-19  Adam Treat  <adam.treat@torchmobile.com> | 
 |  | 
 |         Blind attempt at build fix. | 
 |  | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-06-19  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Inherits CallIdentifier struct from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/profiler/CallIdentifier.h:86. | 
 |  | 
 |         * wtf/HashCountedSet.h: | 
 |  | 
 | 2009-06-19  Adam Treat  <adam.treat@torchmobile.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26540 | 
 |         Modify the test shell to add a new function 'checkSyntax' that will | 
 |         only parse the source instead of executing it. In this way we can test | 
 |         pure parsing performance against some of the larger scripts in the wild. | 
 |  | 
 |         * jsc.cpp: | 
 |         (GlobalObject::GlobalObject): | 
 |         (functionCheckSyntax): | 
 |  | 
 | 2009-06-19  Zoltan Horvath  <hzoltan@inf.u-szeged.hu> | 
 |  | 
 |         Reviewed by Darin Adler. | 
 |          | 
 |         Inherits HashCountedSet class from FastAllocBase because it has been | 
 |         instantiated by 'new' in JavaScriptCore/runtime/Collector.cpp:1095. | 
 |  | 
 |         * wtf/HashCountedSet.h: | 
 |  | 
 | 2009-06-19  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26558 | 
 |         Declare these symbols extern for WINCE as they are provided by libce. | 
 |  | 
 |         * runtime/DateConstructor.cpp: | 
 |         * runtime/DatePrototype.cpp: | 
 |         (JSC::formatLocaleDate): | 
 |  | 
 | 2009-06-19  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Maciej Stachowiak. | 
 |  | 
 |         <rdar://problem/6988973> ScopeChain leak in interpreter builds | 
 |  | 
 |         Move the Scopechain destruction code in JSFunction outside of the ENABLE(JIT) | 
 |         path. | 
 |  | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::~JSFunction): | 
 |         * wtf/Platform.h: | 
 |  | 
 | 2009-06-19  Yong Li  <yong.li@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26543 | 
 |         Windows CE uses 'GetLastError' instead of 'errno.' | 
 |  | 
 |         * interpreter/RegisterFile.h: | 
 |         (JSC::RegisterFile::RegisterFile): | 
 |         (JSC::RegisterFile::grow): | 
 |  | 
 | 2009-06-19  David Levin  <levin@chromium.org> | 
 |  | 
 |         Reviewed by NOBODY (Windows build fix). | 
 |  | 
 |         Add export for Windows corresponding to OSX export done in r44844. | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: | 
 |         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: | 
 |  | 
 | 2009-06-18  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin "Viceroy of Venezuela" Barraclough. | 
 |  | 
 |         Bug 26532: Native functions do not correctly unlink from optimised callsites when they're collected | 
 |         <https://bugs.webkit.org/show_bug.cgi?id=26532> <rdar://problem/6625385> | 
 |  | 
 |         We need to make sure that each native function instance correctly unlinks any references to it | 
 |         when it is collected.  Allowing this to happen required a few changes: | 
 |             * Every native function needs a codeblock to track the link information | 
 |             * To have this codeblock, every function now also needs its own functionbodynode | 
 |               so we no longer get to have a single shared instance. | 
 |             * Identifying a host function is now done by looking for CodeBlock::codeType() == NativeCode | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |         * bytecode/CodeBlock.cpp: | 
 |         (JSC::CodeBlock::CodeBlock): | 
 |            Constructor for NativeCode CodeBlock | 
 |         (JSC::CodeBlock::derefStructures): | 
 |         (JSC::CodeBlock::refStructures): | 
 |         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): | 
 |         (JSC::CodeBlock::handlerForBytecodeOffset): | 
 |         (JSC::CodeBlock::lineNumberForBytecodeOffset): | 
 |         (JSC::CodeBlock::expressionRangeForBytecodeOffset): | 
 |         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset): | 
 |         (JSC::CodeBlock::functionRegisterForBytecodeOffset): | 
 |         (JSC::CodeBlock::hasGlobalResolveInstructionAtBytecodeOffset): | 
 |         (JSC::CodeBlock::hasGlobalResolveInfoAtBytecodeOffset): | 
 |         (JSC::CodeBlock::setJITCode): | 
 |            Add assertions to ensure we don't try and use NativeCode CodeBlocks as | 
 |            a normal codeblock. | 
 |  | 
 |         * bytecode/CodeBlock.h: | 
 |         (JSC::): | 
 |         (JSC::CodeBlock::source): | 
 |         (JSC::CodeBlock::sourceOffset): | 
 |         (JSC::CodeBlock::evalCodeCache): | 
 |         (JSC::CodeBlock::createRareDataIfNecessary): | 
 |           More assertions. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::privateCompileCTIMachineTrampolines): | 
 |         (JSC::JIT::linkCall): | 
 |           Update logic to allow native function caching | 
 |  | 
 |         * jit/JITStubs.cpp: | 
 |         * parser/Nodes.cpp: | 
 |         (JSC::FunctionBodyNode::createNativeThunk): | 
 |         (JSC::FunctionBodyNode::isHostFunction): | 
 |         * parser/Nodes.h: | 
 |         * runtime/JSFunction.cpp: | 
 |         (JSC::JSFunction::JSFunction): | 
 |         (JSC::JSFunction::~JSFunction): | 
 |         (JSC::JSFunction::mark): | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::~JSGlobalData): | 
 |         * runtime/JSGlobalData.h: | 
 |  | 
 | 2009-06-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by NOBODY (Windows build fix). | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::calculateUTCOffset): | 
 |  | 
 | 2009-06-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Geoff Garen. | 
 |  | 
 |         Timezone calculation incorrect in Venezuela. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26531 | 
 |         <rdar://problem/6646169> Time is incorrectly reported to JavaScript in both Safari 3 and Firefox 3 | 
 |  | 
 |         The problem is that we're calculating the timezone relative to 01/01/2000, | 
 |         but the VET timezone changed from -4 hours to -4:30 hours on 12/09/2007. | 
 |         According to the spec, section 15.9.1.9 states "the time since the beginning | 
 |         of the year", presumably meaning the *current* year.  Change the calculation | 
 |         to be based on whatever the current year is, rather than a canned date. | 
 |  | 
 |         No performance impact. | 
 |  | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::calculateUTCOffset): | 
 |  | 
 | 2009-06-18  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Mark Rowe (originally reviewed by Sam Weinig). | 
 |  | 
 |         (Reintroducing patch added in r44492, and reverted in r44796.) | 
 |  | 
 |         Change the implementation of op_throw so the stub function always modifies its | 
 |         return address - if it doesn't find a 'catch' it will switch to a trampoline | 
 |         to force a return from JIT execution.  This saves memory, by avoiding the need | 
 |         for a unique return for every op_throw. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_throw): | 
 |             JITStubs::cti_op_throw now always changes its return address, | 
 |             remove return code generated after the stub call (this is now | 
 |             handled by ctiOpThrowNotCaught). | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::): | 
 |             Add ctiOpThrowNotCaught definitions. | 
 |         (JSC::JITStubs::DEFINE_STUB_FUNCTION): | 
 |             Change cti_op_throw to always change its return address. | 
 |         * jit/JITStubs.h: | 
 |             Add ctiOpThrowNotCaught declaration. | 
 |  | 
 | 2009-06-18  Kevin McCullough  <kmccullough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         <rdar://problem/6940880> REGRESSION: Breakpoints don't break in 64-bit | 
 |  | 
 |         - Exposed functions now needed by WebCore. | 
 |  | 
 |         * JavaScriptCore.exp: | 
 |  | 
 | 2009-06-17  Darin Adler  <darin@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Bug 26429: Make JSON.stringify non-recursive so it can handle objects | 
 |         of arbitrary complexity | 
 |         https://bugs.webkit.org/show_bug.cgi?id=26429 | 
 |  | 
 |         For marking I decided not to use gcProtect, because this is inside the engine | 
 |         so it's easy enough to just do marking. And that darned gcProtect does locking! | 
 |         Oliver tried to convince me to used MarkedArgumentBuffer, but the constructor | 
 |         for that class says "FIXME: Remove all clients of this API, then remove this API." | 
 |  | 
 |         * runtime/Collector.cpp: | 
 |         (JSC::Heap::collect): Add a call to JSONObject::markStringifiers. | 
 |  | 
 |         * runtime/CommonIdentifiers.cpp: | 
 |         (JSC::CommonIdentifiers::CommonIdentifiers): Added emptyIdentifier. | 
 |         * runtime/CommonIdentifiers.h: Ditto. | 
 |  | 
 |         * runtime/JSGlobalData.cpp: | 
 |         (JSC::JSGlobalData::JSGlobalData): Initialize firstStringifierToMark to 0. | 
 |         * runtime/JSGlobalData.h: Added firstStringifierToMark. | 
 |  | 
 |         * runtime/JSONObject.cpp: Cut down the includes to the needed ones only. | 
 |         (JSC::unwrapNumberOrString): Added. Helper for unwrapping number and string | 
 |         objects to get their number and string values. | 
 |         (JSC::ReplacerPropertyName::ReplacerPropertyName): Added. The class is used | 
 |         to wrap an identifier or integer so we don't have to do any work unless we | 
 |         actually call a replacer. | 
 |         (JSC::ReplacerPropertyName::value): Added. | 
 |         (JSC::gap): Added. Helper function for the Stringifier constructor. | 
 |         (JSC::PropertyNameForFunctionCall::PropertyNameForFunctionCall): Added. | 
 |         The class is used to wrap an identifier or integer so we don't have to | 
 |         allocate a number or string until we actually call toJSON or a replacer. | 
 |         (JSC::PropertyNameForFunctionCall::asJSValue): Added. | 
 |         (JSC::Stringifier::Stringifier): Updated and moved out of the class | 
 |         definition. Added code to hook this into a singly linked list for marking. | 
 |         (JSC::Stringifier::~Stringifier): Remove from the singly linked list. | 
 |         (JSC::Stringifier::mark): Mark all the objects in the holder stacks. | 
 |         (JSC::Stringifier::stringify): Updated. | 
 |         (JSC::Stringifier::appendQuotedString): Tweaked and streamlined a bit. | 
 |         (JSC::Stringifier::toJSON): Renamed from toJSONValue. | 
 |         (JSC::Stringifier::appendStringifiedValue): Renamed from stringify. | 
 |         Added code to use the m_holderStack to do non-recursive stringify of | 
 |         objects and arrays. This code also uses the timeout checker since in | 
 |         pathological cases it could be slow even without calling into the | 
 |         JavaScript virtual machine. | 
 |         (JSC::Stringifier::willIndent): Added. | 
 |         (JSC::Stringifier::indent): Added. | 
 |         (JSC::Stringifier::unindent): Added. | 
 |         (JSC::Stringifier::startNewLine): Added. | 
 |         (JSC::Stringifier::Holder::Holder): Added. | 
 |         (JSC::Stringifier::Holder::appendNextProperty): Added. This is the | 
 |         function that handles the format of arrays and objects. | 
 |         (JSC::JSONObject::getOwnPropertySlot): Moved this down to the bottom | 
 |         of the file so the JSONObject class is not interleaved with the | 
 |         Stringifier class. | 
 |         (JSC::JSONObject::markStringifiers): Added. Calls mark. | 
 |         (JSC::JSONProtoFuncStringify): Streamlined the code here. The code | 
 |         to compute the gap string is now a separate function. | 
 |  | 
 |         * runtime/JSONObject.h: Made everything private. Added markStringifiers. | 
 |  | 
 | 2009-06-17  Oliver Hunt  <oliver@apple.com> | 
 |  | 
 |         Reviewed by Gavin Barraclough. | 
 |  | 
 |         <rdar://problem/6974140> REGRESSION(r43849): Crash in cti_op_call_NotJSFunction when getting directions on maps.google.com | 
 |  | 
 |         Roll out r43849 as it appears that we cannot rely on the address of | 
 |         an objects property storage being constant even if the structure is | 
 |         unchanged. | 
 |  | 
 |         * jit/JIT.h: | 
 |         * jit/JITPropertyAccess.cpp: | 
 |         (JSC::JIT::compileGetDirectOffset): | 
 |         (JSC::JIT::privateCompileGetByIdProto): | 
 |         (JSC::JIT::privateCompileGetByIdProtoList): | 
 |         (JSC::JIT::privateCompileGetByIdChainList): | 
 |         (JSC::JIT::privateCompileGetByIdChain): | 
 |  | 
 | 2009-06-17  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Rubber Stamped by Mark Rowe. | 
 |  | 
 |         Fully revert r44492 & r44748 while we fix a bug they cause on internal builds <rdar://problem/6955963>. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_throw): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::): | 
 |         (JSC::JITStubs::DEFINE_STUB_FUNCTION): | 
 |         * jit/JITStubs.h: | 
 |  | 
 | 2009-06-17  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Mark Rowe. | 
 |  | 
 |         <rdar://problem/6947426> sunspider math-cordic.js exhibits different intermediate results running 32-bit vs. 64-bit | 
 |  | 
 |         On 64-bit, NaN-encoded values must be detagged before they can be used in rshift. | 
 |  | 
 |         No performance impact. | 
 |  | 
 |         * jit/JITArithmetic.cpp: | 
 |         (JSC::JIT::emit_op_rshift): | 
 |  | 
 | 2009-06-17  Adam Treat  <adam.treat@torchmobile.com> | 
 |  | 
 |         Reviewed by George Staikos. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=23155 | 
 |         Move WIN_CE -> WINCE as previously discussed with Qt WINCE folks. | 
 |  | 
 |         * jsc.cpp: | 
 |         (main): | 
 |  | 
 | 2009-06-17  George Staikos  <george.staikos@torchmobile.com> | 
 |  | 
 |         Reviewed by Adam Treat. | 
 |  | 
 |         https://bugs.webkit.org/show_bug.cgi?id=23155 | 
 |         Move WIN_CE -> WINCE as previously discussed with Qt WINCE folks. | 
 |  | 
 |         * config.h: | 
 |         * jsc.cpp: | 
 |         * wtf/Assertions.cpp: | 
 |         * wtf/Assertions.h: | 
 |         * wtf/CurrentTime.cpp: | 
 |         (WTF::lowResUTCTime): | 
 |         * wtf/DateMath.cpp: | 
 |         (WTF::getLocalTime): | 
 |         * wtf/MathExtras.h: | 
 |         * wtf/Platform.h: | 
 |         * wtf/StringExtras.h: | 
 |         * wtf/Threading.h: | 
 |         * wtf/win/MainThreadWin.cpp: | 
 |  | 
 | 2009-06-17  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         <rdar://problem/6974175> ASSERT in JITStubs.cpp at appsaccess.apple.com | 
 |  | 
 |         Remove PropertySlot::putValue - PropertySlots should only be used for getting, | 
 |         not putting.  Rename JSGlobalObject::getOwnPropertySlot to hasOwnPropertyForWrite, | 
 |         which is what it really was being used to ask, and remove some other getOwnPropertySlot | 
 |         & getOwnPropertySlotForWrite methods, which were unused and likely to lead to confusion. | 
 |  | 
 |         * runtime/JSGlobalObject.h: | 
 |         (JSC::JSGlobalObject::hasOwnPropertyForWrite): | 
 |         * runtime/JSObject.h: | 
 |         * runtime/JSStaticScopeObject.cpp: | 
 |         * runtime/JSStaticScopeObject.h: | 
 |         * runtime/PropertySlot.h: | 
 |  | 
 | 2009-06-16  Gavin Barraclough  <barraclough@apple.com> | 
 |  | 
 |         Reviewed by Oliver hunt. | 
 |  | 
 |         Temporarily partially disable r44492, since this is causing some problems on internal builds. | 
 |  | 
 |         * jit/JITOpcodes.cpp: | 
 |         (JSC::JIT::emit_op_throw): | 
 |         * jit/JITStubs.cpp: | 
 |         (JSC::JITStubs::DEFINE_STUB_FUNCTION): | 
 |  | 
 | 2009-06-16  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Fix windows build. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::JIT): | 
 |  | 
 | 2009-06-16  Sam Weinig  <sam@webkit.org> | 
 |  | 
 |         Reviewed by Oliver Hunt. | 
 |  | 
 |         Initialize m_bytecodeIndex to -1 in JIT, and correctly initialize | 
 |         it for each type of stub using the return address to find the correct | 
 |         offset. | 
 |  | 
 |         * jit/JIT.cpp: | 
 |         (JSC::JIT::JIT): | 
 |         * jit/JIT.h: | 
 |         (JSC::JIT::compileGetByIdProto): | 
 |         (JSC::JIT::compileGetByIdSelfList): | 
 |         (JSC::JIT::compileGetByIdProtoList): | 
 |         (JSC::JIT::compileGetByIdChainList): | 
 |         (JSC::JIT::compileGetByIdChain): | 
 |         (JSC::JIT::compilePutByIdTransition): | 
 |         (JSC::JIT::compileCTIMachineTrampolines): | 
 |         (JSC::JIT::compilePatchGetArrayLength): | 
 |         * jit/JITStubCall.h: | 
 |         (JSC::JITStubCall::call): | 
 |  | 
 | == Rolled over to ChangeLog-2009-06-16 == |