1 2011-04-19 Oliver Hunt <oliver (a] apple.com> 2 3 Reviewed by Gavin Barraclough. 4 5 Remove unneeded deprecated methods from MarkStack 6 https://bugs.webkit.org/show_bug.cgi?id=58853 7 8 Remove deprecated methods 9 10 * heap/MarkStack.h: 11 12 2011-04-19 Mark Rowe <mrowe (a] apple.com> 13 14 Things work best when the Xcode project refers to the file at a path that exists. 15 16 * JavaScriptCore.xcodeproj/project.pbxproj: 17 18 2011-04-19 Renata Hodovan <reni (a] webkit.org> 19 20 Reviewed by Eric Seidel. 21 22 Move the alignment related macros in Vector.h to new Alignment.h. 23 https://bugs.webkit.org/show_bug.cgi?id=56000 24 25 * JavaScriptCore.gypi: 26 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 27 * JavaScriptCore.xcodeproj/project.pbxproj: 28 * wtf/Alignment.h: Added. 29 * wtf/CMakeLists.txt: 30 * wtf/Vector.h: 31 32 2011-04-19 Oliver Hunt <oliver (a] apple.com> 33 34 Reviewed by Gavin Barraclough. 35 36 Remove DeprecatedPtr 37 https://bugs.webkit.org/show_bug.cgi?id=58718 38 39 Remove the class an all functions that still exist to support it. 40 41 * heap/MarkStack.h: 42 (JSC::MarkStack::append): 43 * runtime/JSValue.h: 44 * runtime/WriteBarrier.h: 45 46 2011-04-19 Jungshik Shin <jshin (a] chromium.org> 47 48 Reviewed by David Levin 49 50 Add U+FEFF (Zero width no-break space) to CharacterNames.h. 51 It's added to the list of characters to treat as zero-width 52 in WebCore. 53 54 https://bugs.webkit.org/show_bug.cgi?id=48860 55 56 * wtf/unicode/CharacterNames.h: 57 58 2011-04-19 Csaba Osztrogonc <ossy (a] webkit.org> 59 60 [Qt] REGRESSION(84176): http/tests/xmlhttprequest/event-listener-gc.html fails 61 https://bugs.webkit.org/show_bug.cgi?id=58871 62 63 Unreviewed, rolling out r84176, r84178, r84186, r84212 and r84231. 64 http://trac.webkit.org/changeset/84176 (original patch) 65 http://trac.webkit.org/changeset/84178 (original patch - part 2) 66 http://trac.webkit.org/changeset/84186 (build fix) 67 http://trac.webkit.org/changeset/84212 68 http://trac.webkit.org/changeset/84231 (skip failing test) 69 70 original bugs: 71 - https://bugs.webkit.org/show_bug.cgi?id=58718 72 - https://bugs.webkit.org/show_bug.cgi?id=58853 73 74 * heap/MarkStack.h: 75 (JSC::MarkStack::deprecatedAppendValues): 76 (JSC::MarkStack::append): 77 (JSC::MarkStack::deprecatedAppend): 78 * runtime/JSValue.h: 79 * runtime/WriteBarrier.h: 80 (JSC::DeprecatedPtr::DeprecatedPtr): 81 (JSC::DeprecatedPtr::get): 82 (JSC::DeprecatedPtr::operator*): 83 (JSC::DeprecatedPtr::operator->): 84 (JSC::DeprecatedPtr::slot): 85 (JSC::DeprecatedPtr::operator UnspecifiedBoolType*): 86 (JSC::DeprecatedPtr::operator!): 87 (JSC::operator==): 88 89 2011-04-18 Oliver Hunt <oliver (a] apple.com> 90 91 Reviewed by Gavin Barraclough. 92 93 Remove unneeded deprecated methods from MarkStack 94 https://bugs.webkit.org/show_bug.cgi?id=58853 95 96 Remove deprecated methods 97 98 * heap/MarkStack.h: 99 100 2011-04-18 Oliver Hunt <oliver (a] apple.com> 101 102 Reviewed by Adam Roben. 103 104 Off by one initialising repeat callframe 105 https://bugs.webkit.org/show_bug.cgi?id=58838 106 <rdar://problem/8756810> 107 108 If the end of a callframe made for a repeat call landed on 109 a page boundary the following page may not have been committed 110 which means that the off by one could lead to a crash. However 111 it could only happen in this case and only on windows which is 112 why it was so hard to repro. Alas given the steps needed to 113 reproduce are such that it's not really possible to make a 114 testcase. 115 116 This fix makes the code a little less squirrely by not trying 117 to avoid the unnecessary initialisation of |this|. 118 119 * interpreter/Interpreter.cpp: 120 (JSC::Interpreter::prepareForRepeatCall): 121 122 2011-04-18 Gavin Barraclough <barraclough (a] apple.com> 123 124 Reviewed by Geoff Garen. 125 126 Bug 58829 - DFG JIT - Optimize add/sub immediate, multiply. 127 128 Add code generation for add/subtract instruction with immediate operands 129 (where a child is a constant), and don't bail to non-speculative if an 130 integer multiple results in a +0 result (only if it should be generating -0). 131 132 * dfg/DFGSpeculativeJIT.cpp: 133 (JSC::DFG::SpeculativeJIT::compile): 134 * dfg/DFGSpeculativeJIT.h: 135 (JSC::DFG::SpeculativeJIT::isDoubleConstantWithInt32Value): 136 137 2011-04-18 Gavin Barraclough <barraclough (a] apple.com> 138 139 Reviewed by Geoff Garen. 140 141 Bug 58817 - DFG JIT - if speculative compilation fails, throw away code. 142 143 If we detect a logical conflict, throw away generated code, 144 and only compile through the NonSpeculativeJIT. 145 146 * assembler/AbstractMacroAssembler.h: 147 (JSC::AbstractMacroAssembler::rewindToLabel): 148 * assembler/AssemblerBuffer.h: 149 (JSC::AssemblerBuffer::rewindToOffset): 150 * assembler/MacroAssemblerX86Common.h: 151 (JSC::MacroAssemblerX86Common::branchAdd32): 152 (JSC::MacroAssemblerX86Common::branchSub32): 153 * assembler/X86Assembler.h: 154 (JSC::X86Assembler::rewindToLabel): 155 (JSC::X86Assembler::X86InstructionFormatter::rewindToLabel): 156 * dfg/DFGJITCompiler.cpp: 157 (JSC::DFG::JITCompiler::linkSpeculationChecks): 158 (JSC::DFG::JITCompiler::compileFunction): 159 * dfg/DFGNode.h: 160 * dfg/DFGNonSpeculativeJIT.cpp: 161 (JSC::DFG::NonSpeculativeJIT::compile): 162 * dfg/DFGSpeculativeJIT.cpp: 163 (JSC::DFG::SpeculativeJIT::compile): 164 * dfg/DFGSpeculativeJIT.h: 165 (JSC::DFG::SpeculationCheckIndexIterator::SpeculationCheckIndexIterator): 166 167 2011-04-18 Oliver Hunt <oliver (a] apple.com> 168 169 Reviewed by Gavin Barraclough. 170 171 Remove DeprecatedPtr 172 https://bugs.webkit.org/show_bug.cgi?id=58718 173 174 As simple as it sounds. 175 176 * runtime/JSValue.h: 177 * runtime/WriteBarrier.h: 178 179 2011-04-17 Cameron Zwarich <zwarich (a] apple.com> 180 181 Reviewed by Dan Bernstein. 182 183 JSC no longer builds with Clang due to -Woverloaded-virtual warning 184 https://bugs.webkit.org/show_bug.cgi?id=58760 185 186 Rename Structure's specificValue overload of put to putSpecificValue to avoid 187 Clang's warning for overloading a virtual function. 188 189 * runtime/Structure.cpp: 190 (JSC::Structure::addPropertyTransition): 191 (JSC::Structure::addPropertyWithoutTransition): 192 (JSC::Structure::putSpecificValue): 193 * runtime/Structure.h: 194 195 2011-04-17 Patrick Gansterer <paroga (a] webkit.org> 196 197 Reviewed by Adam Barth. 198 199 Remove WTF_PLATFORM_SGL 200 https://bugs.webkit.org/show_bug.cgi?id=58743 201 202 WTF_PLATFORM_SGL and PLATFORM(SGL) are not used in the code anywhere. 203 204 * wtf/Platform.h: 205 206 2011-04-17 Patrick Gansterer <paroga (a] webkit.org> 207 208 Reviewed by Adam Barth. 209 210 Rename PLATFORM(CA) to USE(CA) 211 https://bugs.webkit.org/show_bug.cgi?id=58742 212 213 * wtf/Platform.h: 214 215 2011-04-17 Patrick Gansterer <paroga (a] webkit.org> 216 217 Reviewed by Adam Barth. 218 219 Rename PLATFORM(CG) to USE(CG) 220 https://bugs.webkit.org/show_bug.cgi?id=58729 221 222 * wtf/Platform.h: 223 224 2011-04-16 Patrick Gansterer <paroga (a] webkit.org> 225 226 Reviewed by Eric Seidel. 227 228 Rename PLATFORM(CAIRO) to USE(CAIRO) 229 https://bugs.webkit.org/show_bug.cgi?id=55192 230 231 * wtf/Platform.h: 232 * wtf/gobject/GTypedefs.h: 233 234 2011-04-15 Sheriff Bot <webkit.review.bot (a] gmail.com> 235 236 Unreviewed, rolling out r84067. 237 http://trac.webkit.org/changeset/84067 238 https://bugs.webkit.org/show_bug.cgi?id=58724 239 240 qt build are failing. (Requested by loislo2 on #webkit). 241 242 * heap/MarkStack.h: 243 (JSC::MarkStack::append): 244 * runtime/JSValue.h: 245 * runtime/WriteBarrier.h: 246 (JSC::DeprecatedPtr::DeprecatedPtr): 247 (JSC::DeprecatedPtr::get): 248 (JSC::DeprecatedPtr::operator*): 249 (JSC::DeprecatedPtr::operator->): 250 (JSC::DeprecatedPtr::slot): 251 (JSC::DeprecatedPtr::operator UnspecifiedBoolType*): 252 (JSC::DeprecatedPtr::operator!): 253 (JSC::operator==): 254 255 2011-04-15 Shishir Agrawal <shishir (a] chromium.org> 256 257 Reviewed by James Robinson. 258 259 Add a flag to guard Page Visibility API changes. 260 https://bugs.webkit.org/show_bug.cgi?id=58464 261 262 * Configurations/FeatureDefines.xcconfig: 263 264 2011-04-15 Gavin Barraclough <barraclough (a] apple.com> 265 266 Errrk! - build fix from !x86-64. 267 268 * dfg/DFGNode.h: 269 270 2011-04-15 David Levin <levin (a] chromium.org> 271 272 Revert of r83974. 273 274 JavaScriptCore shouldn't depend on ../ThirdParty/gtest/xcode/gtest.xcodeproj 275 https://bugs.webkit.org/show_bug.cgi?id=58716 276 277 * JavaScriptCore.xcodeproj/project.pbxproj: 278 * wtf/tests/RunAllWtfTests.cpp: Removed. 279 * wtf/tests/StringTests.cpp: Removed. 280 281 2011-04-15 Oliver Hunt <oliver (a] apple.com> 282 283 Reviewed by Gavin Barraclough. 284 285 Remove DeprecatedPtr 286 https://bugs.webkit.org/show_bug.cgi?id=58718 287 288 As simple as it sounds. 289 290 * heap/MarkStack.h: 291 (JSC::MarkStack::append): 292 * runtime/JSValue.h: 293 * runtime/WriteBarrier.h: 294 295 2011-04-15 Gavin Barraclough <barraclough (a] apple.com> 296 297 Reviewed by Oliver Hunt. 298 299 Add a simple tool to gather statistics on whether functions 300 are completed through the new or old JIT. 301 302 * dfg/DFGNode.h: 303 * dfg/DFGNonSpeculativeJIT.cpp: 304 (JSC::DFG::NonSpeculativeJIT::compile): 305 * dfg/DFGSpeculativeJIT.cpp: 306 (JSC::DFG::SpeculativeJIT::compile): 307 * jit/JIT.cpp: 308 (JSC::JIT::privateCompile): 309 310 2011-04-15 Oliver Hunt <oliver (a] apple.com> 311 312 GC allocate Structure 313 https://bugs.webkit.org/show_bug.cgi?id=58483 314 315 Rolling r83894 r83827 r83810 r83809 r83808 back in with 316 a workaround for the gcc bug seen by the gtk bots 317 318 * API/JSCallbackConstructor.cpp: 319 (JSC::JSCallbackConstructor::JSCallbackConstructor): 320 * API/JSCallbackConstructor.h: 321 (JSC::JSCallbackConstructor::createStructure): 322 * API/JSCallbackFunction.h: 323 (JSC::JSCallbackFunction::createStructure): 324 * API/JSCallbackObject.h: 325 (JSC::JSCallbackObject::createStructure): 326 * API/JSCallbackObjectFunctions.h: 327 (JSC::::JSCallbackObject): 328 * API/JSContextRef.cpp: 329 * JavaScriptCore.JSVALUE32_64only.exp: 330 * JavaScriptCore.JSVALUE64only.exp: 331 * JavaScriptCore.exp: 332 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 333 * bytecode/CodeBlock.cpp: 334 (JSC::CodeBlock::~CodeBlock): 335 (JSC::CodeBlock::markStructures): 336 (JSC::CodeBlock::markAggregate): 337 * bytecode/CodeBlock.h: 338 (JSC::MethodCallLinkInfo::setSeen): 339 (JSC::GlobalResolveInfo::GlobalResolveInfo): 340 * bytecode/Instruction.h: 341 (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): 342 (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): 343 (JSC::PolymorphicAccessStructureList::markAggregate): 344 (JSC::Instruction::Instruction): 345 * bytecode/StructureStubInfo.cpp: 346 (JSC::StructureStubInfo::deref): 347 (JSC::StructureStubInfo::markAggregate): 348 * bytecode/StructureStubInfo.h: 349 (JSC::StructureStubInfo::initGetByIdSelf): 350 (JSC::StructureStubInfo::initGetByIdProto): 351 (JSC::StructureStubInfo::initGetByIdChain): 352 (JSC::StructureStubInfo::initPutByIdTransition): 353 (JSC::StructureStubInfo::initPutByIdReplace): 354 * debugger/DebuggerActivation.cpp: 355 (JSC::DebuggerActivation::DebuggerActivation): 356 * debugger/DebuggerActivation.h: 357 (JSC::DebuggerActivation::createStructure): 358 * heap/Handle.h: 359 * heap/MarkStack.cpp: 360 (JSC::MarkStack::markChildren): 361 (JSC::MarkStack::drain): 362 * heap/MarkedBlock.cpp: 363 (JSC::MarkedBlock::MarkedBlock): 364 (JSC::MarkedBlock::sweep): 365 * heap/Strong.h: 366 (JSC::Strong::Strong): 367 (JSC::Strong::set): 368 * interpreter/Interpreter.cpp: 369 (JSC::Interpreter::resolveGlobal): 370 (JSC::Interpreter::resolveGlobalDynamic): 371 (JSC::Interpreter::tryCachePutByID): 372 (JSC::Interpreter::uncachePutByID): 373 (JSC::Interpreter::tryCacheGetByID): 374 (JSC::Interpreter::uncacheGetByID): 375 (JSC::Interpreter::privateExecute): 376 * jit/JIT.h: 377 * jit/JITPropertyAccess.cpp: 378 (JSC::JIT::privateCompilePutByIdTransition): 379 (JSC::JIT::patchMethodCallProto): 380 (JSC::JIT::privateCompileGetByIdProto): 381 (JSC::JIT::privateCompileGetByIdSelfList): 382 (JSC::JIT::privateCompileGetByIdProtoList): 383 (JSC::JIT::privateCompileGetByIdChainList): 384 (JSC::JIT::privateCompileGetByIdChain): 385 * jit/JITPropertyAccess32_64.cpp: 386 (JSC::JIT::privateCompilePutByIdTransition): 387 (JSC::JIT::patchMethodCallProto): 388 (JSC::JIT::privateCompileGetByIdProto): 389 (JSC::JIT::privateCompileGetByIdSelfList): 390 (JSC::JIT::privateCompileGetByIdProtoList): 391 (JSC::JIT::privateCompileGetByIdChainList): 392 (JSC::JIT::privateCompileGetByIdChain): 393 * jit/JITStubs.cpp: 394 (JSC::JITThunks::tryCachePutByID): 395 (JSC::JITThunks::tryCacheGetByID): 396 (JSC::DEFINE_STUB_FUNCTION): 397 (JSC::getPolymorphicAccessStructureListSlot): 398 * jit/JSInterfaceJIT.h: 399 (JSC::JSInterfaceJIT::storePtrWithWriteBarrier): 400 * jsc.cpp: 401 (cleanupGlobalData): 402 * runtime/Arguments.h: 403 (JSC::Arguments::createStructure): 404 (JSC::Arguments::Arguments): 405 (JSC::JSActivation::copyRegisters): 406 * runtime/ArrayConstructor.cpp: 407 (JSC::ArrayConstructor::ArrayConstructor): 408 (JSC::constructArrayWithSizeQuirk): 409 * runtime/ArrayConstructor.h: 410 * runtime/ArrayPrototype.cpp: 411 (JSC::ArrayPrototype::ArrayPrototype): 412 (JSC::arrayProtoFuncSplice): 413 * runtime/ArrayPrototype.h: 414 (JSC::ArrayPrototype::createStructure): 415 * runtime/BatchedTransitionOptimizer.h: 416 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): 417 * runtime/BooleanConstructor.cpp: 418 (JSC::BooleanConstructor::BooleanConstructor): 419 * runtime/BooleanConstructor.h: 420 * runtime/BooleanObject.cpp: 421 (JSC::BooleanObject::BooleanObject): 422 * runtime/BooleanObject.h: 423 (JSC::BooleanObject::createStructure): 424 * runtime/BooleanPrototype.cpp: 425 (JSC::BooleanPrototype::BooleanPrototype): 426 * runtime/BooleanPrototype.h: 427 * runtime/DateConstructor.cpp: 428 (JSC::DateConstructor::DateConstructor): 429 * runtime/DateConstructor.h: 430 * runtime/DateInstance.cpp: 431 (JSC::DateInstance::DateInstance): 432 * runtime/DateInstance.h: 433 (JSC::DateInstance::createStructure): 434 * runtime/DatePrototype.cpp: 435 (JSC::DatePrototype::DatePrototype): 436 * runtime/DatePrototype.h: 437 (JSC::DatePrototype::createStructure): 438 * runtime/Error.cpp: 439 (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction): 440 * runtime/ErrorConstructor.cpp: 441 (JSC::ErrorConstructor::ErrorConstructor): 442 * runtime/ErrorConstructor.h: 443 * runtime/ErrorInstance.cpp: 444 (JSC::ErrorInstance::ErrorInstance): 445 (JSC::ErrorInstance::create): 446 * runtime/ErrorInstance.h: 447 (JSC::ErrorInstance::createStructure): 448 * runtime/ErrorPrototype.cpp: 449 (JSC::ErrorPrototype::ErrorPrototype): 450 * runtime/ErrorPrototype.h: 451 * runtime/ExceptionHelpers.cpp: 452 (JSC::InterruptedExecutionError::InterruptedExecutionError): 453 (JSC::TerminatedExecutionError::TerminatedExecutionError): 454 * runtime/Executable.cpp: 455 * runtime/Executable.h: 456 (JSC::ExecutableBase::ExecutableBase): 457 (JSC::ExecutableBase::createStructure): 458 (JSC::NativeExecutable::createStructure): 459 (JSC::NativeExecutable::NativeExecutable): 460 (JSC::ScriptExecutable::ScriptExecutable): 461 (JSC::EvalExecutable::createStructure): 462 (JSC::ProgramExecutable::createStructure): 463 (JSC::FunctionExecutable::createStructure): 464 * runtime/FunctionConstructor.cpp: 465 (JSC::FunctionConstructor::FunctionConstructor): 466 * runtime/FunctionConstructor.h: 467 * runtime/FunctionPrototype.cpp: 468 (JSC::FunctionPrototype::FunctionPrototype): 469 * runtime/FunctionPrototype.h: 470 (JSC::FunctionPrototype::createStructure): 471 * runtime/GetterSetter.h: 472 (JSC::GetterSetter::GetterSetter): 473 (JSC::GetterSetter::createStructure): 474 * runtime/InitializeThreading.cpp: 475 (JSC::initializeThreadingOnce): 476 * runtime/InternalFunction.cpp: 477 (JSC::InternalFunction::InternalFunction): 478 * runtime/InternalFunction.h: 479 (JSC::InternalFunction::createStructure): 480 * runtime/JSAPIValueWrapper.h: 481 (JSC::JSAPIValueWrapper::createStructure): 482 (JSC::JSAPIValueWrapper::JSAPIValueWrapper): 483 * runtime/JSActivation.cpp: 484 (JSC::JSActivation::JSActivation): 485 * runtime/JSActivation.h: 486 (JSC::JSActivation::createStructure): 487 * runtime/JSArray.cpp: 488 (JSC::JSArray::JSArray): 489 * runtime/JSArray.h: 490 (JSC::JSArray::createStructure): 491 * runtime/JSByteArray.cpp: 492 (JSC::JSByteArray::JSByteArray): 493 (JSC::JSByteArray::createStructure): 494 * runtime/JSByteArray.h: 495 (JSC::JSByteArray::JSByteArray): 496 * runtime/JSCell.cpp: 497 (JSC::isZombie): 498 * runtime/JSCell.h: 499 (JSC::JSCell::JSCell::JSCell): 500 (JSC::JSCell::JSCell::addressOfStructure): 501 (JSC::JSCell::JSCell::structure): 502 (JSC::JSCell::JSCell::markChildren): 503 (JSC::JSCell::JSValue::isZombie): 504 * runtime/JSFunction.cpp: 505 (JSC::JSFunction::JSFunction): 506 * runtime/JSFunction.h: 507 (JSC::JSFunction::createStructure): 508 * runtime/JSGlobalData.cpp: 509 (JSC::JSGlobalData::storeVPtrs): 510 (JSC::JSGlobalData::JSGlobalData): 511 (JSC::JSGlobalData::clearBuiltinStructures): 512 (JSC::JSGlobalData::createLeaked): 513 * runtime/JSGlobalData.h: 514 (JSC::allocateGlobalHandle): 515 * runtime/JSGlobalObject.cpp: 516 (JSC::JSGlobalObject::reset): 517 (JSC::JSGlobalObject::markChildren): 518 (JSC::JSGlobalObject::copyGlobalsFrom): 519 * runtime/JSGlobalObject.h: 520 (JSC::JSGlobalObject::JSGlobalObject): 521 (JSC::JSGlobalObject::createStructure): 522 (JSC::Structure::prototypeChain): 523 (JSC::Structure::isValid): 524 (JSC::constructEmptyArray): 525 * runtime/JSNotAnObject.h: 526 (JSC::JSNotAnObject::JSNotAnObject): 527 (JSC::JSNotAnObject::createStructure): 528 * runtime/JSONObject.cpp: 529 (JSC::JSONObject::JSONObject): 530 * runtime/JSONObject.h: 531 (JSC::JSONObject::createStructure): 532 * runtime/JSObject.cpp: 533 (JSC::JSObject::defineGetter): 534 (JSC::JSObject::defineSetter): 535 (JSC::JSObject::seal): 536 (JSC::JSObject::freeze): 537 (JSC::JSObject::preventExtensions): 538 (JSC::JSObject::removeDirect): 539 (JSC::JSObject::createInheritorID): 540 * runtime/JSObject.h: 541 (JSC::JSObject::createStructure): 542 (JSC::JSObject::JSObject): 543 (JSC::JSNonFinalObject::createStructure): 544 (JSC::JSNonFinalObject::JSNonFinalObject): 545 (JSC::JSFinalObject::create): 546 (JSC::JSFinalObject::createStructure): 547 (JSC::JSFinalObject::JSFinalObject): 548 (JSC::constructEmptyObject): 549 (JSC::createEmptyObjectStructure): 550 (JSC::JSObject::~JSObject): 551 (JSC::JSObject::setPrototype): 552 (JSC::JSObject::setStructure): 553 (JSC::JSObject::inheritorID): 554 (JSC::JSObject::putDirectInternal): 555 (JSC::JSObject::transitionTo): 556 (JSC::JSObject::markChildrenDirect): 557 * runtime/JSObjectWithGlobalObject.cpp: 558 (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): 559 * runtime/JSObjectWithGlobalObject.h: 560 (JSC::JSObjectWithGlobalObject::createStructure): 561 (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): 562 * runtime/JSPropertyNameIterator.cpp: 563 (JSC::JSPropertyNameIterator::JSPropertyNameIterator): 564 (JSC::JSPropertyNameIterator::create): 565 (JSC::JSPropertyNameIterator::get): 566 * runtime/JSPropertyNameIterator.h: 567 (JSC::JSPropertyNameIterator::createStructure): 568 (JSC::JSPropertyNameIterator::setCachedStructure): 569 (JSC::Structure::setEnumerationCache): 570 * runtime/JSStaticScopeObject.h: 571 (JSC::JSStaticScopeObject::JSStaticScopeObject): 572 (JSC::JSStaticScopeObject::createStructure): 573 * runtime/JSString.h: 574 (JSC::RopeBuilder::JSString): 575 (JSC::RopeBuilder::createStructure): 576 * runtime/JSType.h: 577 * runtime/JSTypeInfo.h: 578 (JSC::TypeInfo::TypeInfo): 579 * runtime/JSValue.h: 580 * runtime/JSVariableObject.h: 581 (JSC::JSVariableObject::createStructure): 582 (JSC::JSVariableObject::JSVariableObject): 583 (JSC::JSVariableObject::copyRegisterArray): 584 * runtime/JSWrapperObject.h: 585 (JSC::JSWrapperObject::createStructure): 586 (JSC::JSWrapperObject::JSWrapperObject): 587 * runtime/JSZombie.cpp: 588 * runtime/JSZombie.h: 589 (JSC::JSZombie::JSZombie): 590 (JSC::JSZombie::createStructure): 591 * runtime/MathObject.cpp: 592 (JSC::MathObject::MathObject): 593 * runtime/MathObject.h: 594 (JSC::MathObject::createStructure): 595 * runtime/NativeErrorConstructor.cpp: 596 (JSC::NativeErrorConstructor::NativeErrorConstructor): 597 (JSC::NativeErrorConstructor::markChildren): 598 (JSC::constructWithNativeErrorConstructor): 599 * runtime/NativeErrorConstructor.h: 600 (JSC::NativeErrorConstructor::createStructure): 601 * runtime/NativeErrorPrototype.cpp: 602 (JSC::NativeErrorPrototype::NativeErrorPrototype): 603 * runtime/NativeErrorPrototype.h: 604 * runtime/NumberConstructor.cpp: 605 (JSC::NumberConstructor::NumberConstructor): 606 * runtime/NumberConstructor.h: 607 (JSC::NumberConstructor::createStructure): 608 * runtime/NumberObject.cpp: 609 (JSC::NumberObject::NumberObject): 610 * runtime/NumberObject.h: 611 (JSC::NumberObject::createStructure): 612 * runtime/NumberPrototype.cpp: 613 (JSC::NumberPrototype::NumberPrototype): 614 * runtime/NumberPrototype.h: 615 * runtime/ObjectConstructor.cpp: 616 (JSC::ObjectConstructor::ObjectConstructor): 617 * runtime/ObjectConstructor.h: 618 (JSC::ObjectConstructor::createStructure): 619 * runtime/ObjectPrototype.cpp: 620 (JSC::ObjectPrototype::ObjectPrototype): 621 * runtime/ObjectPrototype.h: 622 * runtime/PropertyMapHashTable.h: 623 (JSC::PropertyTable::PropertyTable): 624 * runtime/RegExpConstructor.cpp: 625 (JSC::RegExpConstructor::RegExpConstructor): 626 (JSC::RegExpMatchesArray::RegExpMatchesArray): 627 * runtime/RegExpConstructor.h: 628 (JSC::RegExpConstructor::createStructure): 629 * runtime/RegExpObject.cpp: 630 (JSC::RegExpObject::RegExpObject): 631 * runtime/RegExpObject.h: 632 (JSC::RegExpObject::createStructure): 633 * runtime/RegExpPrototype.cpp: 634 (JSC::RegExpPrototype::RegExpPrototype): 635 * runtime/RegExpPrototype.h: 636 * runtime/ScopeChain.h: 637 (JSC::ScopeChainNode::ScopeChainNode): 638 (JSC::ScopeChainNode::createStructure): 639 * runtime/StrictEvalActivation.cpp: 640 (JSC::StrictEvalActivation::StrictEvalActivation): 641 * runtime/StringConstructor.cpp: 642 (JSC::StringConstructor::StringConstructor): 643 * runtime/StringConstructor.h: 644 * runtime/StringObject.cpp: 645 (JSC::StringObject::StringObject): 646 * runtime/StringObject.h: 647 (JSC::StringObject::createStructure): 648 * runtime/StringObjectThatMasqueradesAsUndefined.h: 649 (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined): 650 (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): 651 * runtime/StringPrototype.cpp: 652 (JSC::StringPrototype::StringPrototype): 653 * runtime/StringPrototype.h: 654 (JSC::StringPrototype::createStructure): 655 * runtime/Structure.cpp: 656 (JSC::StructureTransitionTable::remove): 657 (JSC::StructureTransitionTable::add): 658 (JSC::Structure::Structure): 659 (JSC::Structure::~Structure): 660 (JSC::Structure::materializePropertyMap): 661 (JSC::Structure::addPropertyTransitionToExistingStructure): 662 (JSC::Structure::addPropertyTransition): 663 (JSC::Structure::removePropertyTransition): 664 (JSC::Structure::changePrototypeTransition): 665 (JSC::Structure::despecifyFunctionTransition): 666 (JSC::Structure::getterSetterTransition): 667 (JSC::Structure::toDictionaryTransition): 668 (JSC::Structure::toCacheableDictionaryTransition): 669 (JSC::Structure::toUncacheableDictionaryTransition): 670 (JSC::Structure::sealTransition): 671 (JSC::Structure::freezeTransition): 672 (JSC::Structure::preventExtensionsTransition): 673 (JSC::Structure::flattenDictionaryStructure): 674 (JSC::Structure::copyPropertyTable): 675 (JSC::Structure::put): 676 (JSC::Structure::markChildren): 677 * runtime/Structure.h: 678 (JSC::Structure::create): 679 (JSC::Structure::setPrototypeWithoutTransition): 680 (JSC::Structure::createStructure): 681 (JSC::JSCell::createDummyStructure): 682 (JSC::StructureTransitionTable::keyForWeakGCMapFinalizer): 683 * runtime/StructureChain.cpp: 684 (JSC::StructureChain::StructureChain): 685 (JSC::StructureChain::markChildren): 686 * runtime/StructureChain.h: 687 (JSC::StructureChain::create): 688 (JSC::StructureChain::head): 689 (JSC::StructureChain::createStructure): 690 * runtime/StructureTransitionTable.h: 691 (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::finalizerContextFor): 692 (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::keyForFinalizer): 693 (JSC::StructureTransitionTable::~StructureTransitionTable): 694 (JSC::StructureTransitionTable::slot): 695 (JSC::StructureTransitionTable::setMap): 696 (JSC::StructureTransitionTable::singleTransition): 697 (JSC::StructureTransitionTable::clearSingleTransition): 698 (JSC::StructureTransitionTable::setSingleTransition): 699 * runtime/WeakGCMap.h: 700 (JSC::DefaultWeakGCMapFinalizerCallback::finalizerContextFor): 701 (JSC::DefaultWeakGCMapFinalizerCallback::keyForFinalizer): 702 (JSC::WeakGCMap::contains): 703 (JSC::WeakGCMap::find): 704 (JSC::WeakGCMap::remove): 705 (JSC::WeakGCMap::add): 706 (JSC::WeakGCMap::set): 707 (JSC::WeakGCMap::finalize): 708 * runtime/WriteBarrier.h: 709 (JSC::writeBarrier): 710 (JSC::WriteBarrierBase::set): 711 (JSC::WriteBarrierBase::operator*): 712 (JSC::WriteBarrierBase::operator->): 713 (JSC::WriteBarrierBase::setWithoutWriteBarrier): 714 715 2011-04-15 Fridrich Strba <fridrich.strba (a] bluewin.ch> 716 717 Reviewed by Gavin Barraclough. 718 719 Correctly prefix symbols. Since gcc 4.5.0, Windows x64 symbols 720 are not prefixed by underscore anymore. This is consistent with 721 what MSVC does. 722 https://bugs.webkit.org/show_bug.cgi?id=58573 723 724 * jit/JITStubs.cpp: 725 726 2011-04-15 Gavin Barraclough <barraclough (a] apple.com> 727 728 Reviewed by Geoff Garen. 729 730 Bug 58705 - DFG JIT Add support for flow control (branch, jump). 731 732 Add support for control flow by breaking the CodeBlock up into multiple 733 basic blocks, generating code for each basic block in turn through the 734 speculative JIT & then the non-speculative JIT. 735 736 * dfg/DFGByteCodeParser.cpp: 737 (JSC::DFG::ByteCodeParser::setTemporary): 738 (JSC::DFG::ByteCodeParser::addToGraph): 739 (JSC::DFG::ByteCodeParser::parseBlock): 740 (JSC::DFG::ByteCodeParser::parse): 741 * dfg/DFGGraph.cpp: 742 (JSC::DFG::Graph::dump): 743 * dfg/DFGGraph.h: 744 (JSC::DFG::BasicBlock::BasicBlock): 745 (JSC::DFG::BasicBlock::getBytecodeOffset): 746 (JSC::DFG::Graph::blockIndexForBytecodeOffset): 747 * dfg/DFGJITCodeGenerator.h: 748 (JSC::DFG::JITCodeGenerator::JITCodeGenerator): 749 (JSC::DFG::JITCodeGenerator::addBranch): 750 (JSC::DFG::JITCodeGenerator::linkBranches): 751 (JSC::DFG::JITCodeGenerator::BranchRecord::BranchRecord): 752 * dfg/DFGNode.h: 753 (JSC::DFG::Node::Node): 754 (JSC::DFG::Node::isJump): 755 (JSC::DFG::Node::isBranch): 756 (JSC::DFG::Node::takenBytecodeOffset): 757 (JSC::DFG::Node::notTakenBytecodeOffset): 758 * dfg/DFGNonSpeculativeJIT.cpp: 759 (JSC::DFG::NonSpeculativeJIT::compile): 760 * dfg/DFGNonSpeculativeJIT.h: 761 * dfg/DFGSpeculativeJIT.cpp: 762 (JSC::DFG::SpeculativeJIT::compile): 763 * dfg/DFGSpeculativeJIT.h: 764 765 2011-04-15 Gavin Barraclough <barraclough (a] apple.com> 766 767 Reviewed by Geoff Garen. 768 769 Bug 58701 - DFG JIT - add GetLocal/SetLocal nodes 770 771 Use these for both access to arguments & local variables, adds ability 772 to set locals, such that values will persist between basic blocks. 773 774 * dfg/DFGByteCodeParser.cpp: 775 (JSC::DFG::ByteCodeParser::ByteCodeParser): 776 (JSC::DFG::ByteCodeParser::get): 777 (JSC::DFG::ByteCodeParser::set): 778 (JSC::DFG::ByteCodeParser::getVariable): 779 (JSC::DFG::ByteCodeParser::setVariable): 780 (JSC::DFG::ByteCodeParser::getArgument): 781 (JSC::DFG::ByteCodeParser::setArgument): 782 (JSC::DFG::ByteCodeParser::getThis): 783 (JSC::DFG::ByteCodeParser::setThis): 784 (JSC::DFG::ByteCodeParser::VariableRecord::VariableRecord): 785 (JSC::DFG::ByteCodeParser::parseBlock): 786 * dfg/DFGGraph.cpp: 787 (JSC::DFG::Graph::dump): 788 (JSC::DFG::Graph::derefChildren): 789 * dfg/DFGGraph.h: 790 (JSC::DFG::Graph::ref): 791 (JSC::DFG::Graph::deref): 792 * dfg/DFGNode.h: 793 (JSC::DFG::Node::hasLocal): 794 (JSC::DFG::Node::local): 795 * dfg/DFGNonSpeculativeJIT.cpp: 796 (JSC::DFG::NonSpeculativeJIT::compile): 797 * dfg/DFGSpeculativeJIT.cpp: 798 (JSC::DFG::SpeculativeJIT::compile): 799 800 2011-04-15 Gavin Barraclough <barraclough (a] apple.com> 801 802 Reviewed by Sam Weinig. 803 804 Bug 58696 - DFG JIT split handling of vars/temporaries 805 806 Presently all callee registers are treated as having single block scope, 807 since the DFG JIT can only compile single block functions. In order to 808 expand the JIT to support control flow we will need to change to retaining 809 locals (but not temporaries) across basic block boundaries. 810 811 * dfg/DFGByteCodeParser.cpp: 812 (JSC::DFG::ByteCodeParser::ByteCodeParser): 813 (JSC::DFG::ByteCodeParser::get): 814 (JSC::DFG::ByteCodeParser::set): 815 (JSC::DFG::ByteCodeParser::getVariable): 816 (JSC::DFG::ByteCodeParser::setVariable): 817 (JSC::DFG::ByteCodeParser::getTemporary): 818 (JSC::DFG::ByteCodeParser::setTemporary): 819 (JSC::DFG::ByteCodeParser::getArgument): 820 (JSC::DFG::ByteCodeParser::getInt32Constant): 821 (JSC::DFG::ByteCodeParser::getDoubleConstant): 822 (JSC::DFG::ByteCodeParser::getJSConstant): 823 (JSC::DFG::ByteCodeParser::constantUndefined): 824 (JSC::DFG::ByteCodeParser::constantNull): 825 (JSC::DFG::ByteCodeParser::one): 826 (JSC::DFG::ByteCodeParser::parseBlock): 827 (JSC::DFG::ByteCodeParser::parse): 828 (JSC::DFG::parse): 829 * dfg/DFGNode.h: 830 * dfg/DFGScoreBoard.h: 831 (JSC::DFG::ScoreBoard::ScoreBoard): 832 (JSC::DFG::ScoreBoard::~ScoreBoard): 833 (JSC::DFG::ScoreBoard::allocate): 834 (JSC::DFG::ScoreBoard::use): 835 836 2011-04-15 Michael Saboff <msaboff (a] apple.com> 837 838 Reviewed by Oliver Hunt. 839 840 globalObject moved to JSObjectWithGlobalObject.cpp inhibits inlining 841 https://bugs.webkit.org/show_bug.cgi?id=58677 842 843 Moved JSObjectWithGlobalObject::globalObject() to 844 runtime/JSObjectWithGlobalObject.h to allow the compiler to inline 845 it for a performance benefit. An equivalent instance had been in 846 a header file before r60057. 847 848 * JavaScriptCore.exp: 849 * runtime/JSObjectWithGlobalObject.cpp: 850 * runtime/JSObjectWithGlobalObject.h: 851 (JSC::JSObjectWithGlobalObject::globalObject): 852 853 2011-04-14 Oliver Hunt <oliver (a] apple.com> 854 855 Reviewed by Geoffrey Garen. 856 857 Make JSNodeFilterCondition handle its lifetime correctly 858 https://bugs.webkit.org/show_bug.cgi?id=58622 859 860 Add export 861 862 * JavaScriptCore.exp: 863 864 2011-04-14 Alexey Proskuryakov <ap (a] apple.com> 865 866 Reviewed by Dan Bernstein. 867 868 WebKit2: Password field input does not switch to ASCII-compatible source 869 https://bugs.webkit.org/show_bug.cgi?id=58583 870 <rdar://problem/9059651> 871 872 * wtf/Platform.h: Removed WTF_USE_CARBON_SECURE_INPUT_MODE. It's now only used by Chromium, 873 and shouldn't be enabled on any other platforms, so there is no reason to make it 874 configurable via Platform.h. 875 876 2011-04-15 Dmitry Lomov <dslomov (a] google.com> 877 878 Reviewed by David Levin. 879 880 Add a sample test case for GTest framework 881 https://bugs.webkit.org/show_bug.cgi?id=58509 882 883 Add an example of GTest testcase, complete with a runner, to JavaScriptCore. 884 885 * JavaScriptCore.xcodeproj/project.pbxproj: 886 * wtf/tests/RunAllWtfTests.cpp: Added. 887 (main): 888 * wtf/tests/StringTests.cpp: Added. 889 890 2011-04-15 Anna Cavender <annacc (a] chromium.org> 891 892 Reviewed by Eric Carlson. 893 894 Renaming TRACK feature define to VIDEO_TRACK 895 https://bugs.webkit.org/show_bug.cgi?id=53556 896 897 * Configurations/FeatureDefines.xcconfig: 898 899 2011-04-14 Gavin Barraclough <barraclough (a] apple.com> 900 901 Rubber stamped by Geoffrey Garen. 902 903 Hide DFG_JIT_RESTRICTIONS behind ARITHMETIC_OP() macro, and rename 904 m_regressionGuard to m_parseFailed, such that it can be reused for 905 other failure cases. 906 907 * dfg/DFGByteCodeParser.cpp: 908 (JSC::DFG::ByteCodeParser::ByteCodeParser): 909 (JSC::DFG::ByteCodeParser::parse): 910 911 2011-04-14 Gavin Barraclough <barraclough (a] apple.com> 912 913 Reviewed by Geoffrey Garen. 914 915 Bug 58620 - DFG JIT - loading of arguments should not be lazy 916 917 This optimization is overly simplistic. It only works because we never 918 write out definitions to arguments (since we currently only compile 919 single block functions). Revert this for now, we may want to reintroduce 920 something like this again in the future, but it will need to be aware 921 how to schedule definitions to arguments versus lazy loads that have not 922 yet been performed. 923 924 * dfg/DFGGenerationInfo.h: 925 (JSC::DFG::GenerationInfo::needsSpill): 926 * dfg/DFGGraph.cpp: 927 (JSC::DFG::Graph::dump): 928 * dfg/DFGGraph.h: 929 * dfg/DFGJITCodeGenerator.cpp: 930 (JSC::DFG::JITCodeGenerator::fillInteger): 931 (JSC::DFG::JITCodeGenerator::fillDouble): 932 (JSC::DFG::JITCodeGenerator::fillJSValue): 933 * dfg/DFGJITCodeGenerator.h: 934 (JSC::DFG::JITCodeGenerator::initConstantInfo): 935 * dfg/DFGJITCompiler.cpp: 936 (JSC::DFG::JITCompiler::fillNumericToDouble): 937 (JSC::DFG::JITCompiler::fillInt32ToInteger): 938 (JSC::DFG::JITCompiler::fillToJS): 939 * dfg/DFGNonSpeculativeJIT.cpp: 940 (JSC::DFG::NonSpeculativeJIT::isKnownInteger): 941 (JSC::DFG::NonSpeculativeJIT::isKnownNumeric): 942 (JSC::DFG::NonSpeculativeJIT::compile): 943 * dfg/DFGSpeculativeJIT.cpp: 944 (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal): 945 (JSC::DFG::SpeculativeJIT::fillSpeculateCell): 946 (JSC::DFG::SpeculativeJIT::compile): 947 948 2011-04-14 Gavin Barraclough <barraclough (a] apple.com> 949 950 Reviewed by Geoffrey Garen. 951 952 Bug 58600 - DFG JIT bugs in ValueToInt, PutByVal 953 954 The bug in PutByVal is that an operand is in JSValueOperand - when this 955 locks an integer into a register it will always retag the value without 956 checking if the register is already locked. This is a problem where the 957 value being stored by a PutByVal is the same as the subscript. 958 The subscript is locked into a register first, as a strict integer. 959 Locking the value results in the subscript being modified. 960 961 The bug in ValueToInt related to the function of sillentFillAllRegisters. 962 The problem is that this method will restore all register values from 963 prior to the call, overwriting the result of the call out. Allow a 964 register to be passed to specifically be excluded from being preserved. 965 966 * assembler/ARMAssembler.h: 967 (JSC::ARMAssembler::debugOffset): 968 * assembler/ARMv7Assembler.h: 969 (JSC::ARMv7Assembler::ARMInstructionFormatter::debugOffset): 970 * assembler/AbstractMacroAssembler.h: 971 (JSC::AbstractMacroAssembler::debugOffset): 972 * assembler/AssemblerBuffer.h: 973 (JSC::AssemblerBuffer::debugOffset): 974 * assembler/LinkBuffer.h: 975 (JSC::LinkBuffer::debugAddress): 976 * assembler/MIPSAssembler.h: 977 (JSC::MIPSAssembler::debugOffset): 978 * assembler/MacroAssemblerX86_64.h: 979 (JSC::MacroAssemblerX86_64::orPtr): 980 * assembler/X86Assembler.h: 981 (JSC::X86Assembler::debugOffset): 982 (JSC::X86Assembler::X86InstructionFormatter::debugOffset): 983 * dfg/DFGByteCodeParser.cpp: 984 (JSC::DFG::ByteCodeParser::parse): 985 * dfg/DFGGenerationInfo.h: 986 * dfg/DFGJITCodeGenerator.cpp: 987 (JSC::DFG::JITCodeGenerator::fillJSValue): 988 * dfg/DFGJITCodeGenerator.h: 989 (JSC::DFG::JITCodeGenerator::isConstant): 990 * dfg/DFGJITCompiler.cpp: 991 (JSC::DFG::JITCompiler::compileFunction): 992 * dfg/DFGJITCompiler.h: 993 (JSC::DFG::JITCompiler::isConstant): 994 * dfg/DFGNonSpeculativeJIT.cpp: 995 (JSC::DFG::NonSpeculativeJIT::valueToNumber): 996 (JSC::DFG::NonSpeculativeJIT::valueToInt32): 997 (JSC::DFG::NonSpeculativeJIT::numberToInt32): 998 (JSC::DFG::NonSpeculativeJIT::isKnownInteger): 999 (JSC::DFG::NonSpeculativeJIT::isKnownNumeric): 1000 (JSC::DFG::NonSpeculativeJIT::compile): 1001 * dfg/DFGNonSpeculativeJIT.h: 1002 (JSC::DFG::NonSpeculativeJIT::silentSpillGPR): 1003 (JSC::DFG::NonSpeculativeJIT::silentSpillFPR): 1004 (JSC::DFG::NonSpeculativeJIT::silentFillGPR): 1005 (JSC::DFG::NonSpeculativeJIT::silentFillFPR): 1006 (JSC::DFG::NonSpeculativeJIT::silentSpillAllRegisters): 1007 (JSC::DFG::NonSpeculativeJIT::silentFillAllRegisters): 1008 * dfg/DFGSpeculativeJIT.cpp: 1009 (JSC::DFG::SpeculativeJIT::compile): 1010 1011 2011-04-14 Geoffrey Garen <ggaren (a] apple.com> 1012 1013 Reviewed by Oliver Hunt. 1014 1015 Drain the mark stack while marking weak handles, not after. 1016 https://bugs.webkit.org/show_bug.cgi?id=58574 1017 1018 Otherwise, items that would have caused more weak handle marking are 1019 processed after all weak handle marking has finished, and referenced 1020 weak handles get recycled. 1021 1022 * heap/HandleHeap.cpp: 1023 (JSC::HandleHeap::markWeakHandles): Removed looping from here, since we 1024 want Heap::markRoots to be responsible for draining the mark stack. 1025 1026 * heap/Heap.cpp: 1027 (JSC::Heap::markRoots): Moved looping to here, as explained above. 1028 1029 For efficiency's sake, drain the mark stack before starting to mark weak 1030 handles. Otherwise, items drained while marking weak handles may force 1031 an extra trip through the weak handle list. 1032 1033 For correctness's sake, drain the mark stack each time through the weak 1034 handle list. Otherwise, opaque roots that would make weak handles reachable 1035 are not discovered until after weak handle marking is over. 1036 1037 2011-04-14 Oliver Hunt <oliver (a] apple.com> 1038 1039 Reviewed by Geoffrey Garen. 1040 1041 Make protected object list in caches window reflect reality 1042 https://bugs.webkit.org/show_bug.cgi?id=58565 1043 1044 Make sure the heap includes objects protected by Strong handles 1045 in its list of protected objects. 1046 1047 * heap/HandleHeap.h: 1048 * heap/Heap.cpp: 1049 (JSC::HandleHeap::protectedObjectTypeCounts): 1050 1051 2011-04-14 Satish Sampath <satish (a] chromium.org> 1052 1053 Reviewed by Anders Carlsson. 1054 1055 Don't emit RegExp tables for chromium where they are not used 1056 https://bugs.webkit.org/show_bug.cgi?id=58544 1057 1058 * JavaScriptCore.gyp/JavaScriptCore.gyp: 1059 * create_regex_tables: Added the "--notables" command line argument. 1060 1061 2011-04-13 Geoffrey Garen <ggaren (a] apple.com> 1062 1063 Try to fix ASSERTs seen on Windows bots. 1064 1065 * wtf/HashTable.h: 1066 (WTF::hashTableSwap): Force MSVC to use the right version of swap. 1067 1068 2011-04-13 Ryuan Choi <ryuan.choi (a] samsung.com> 1069 1070 Reviewed by Kenneth Rohde Christiansen. 1071 1072 [CMAKE] Separate DerivedSources. 1073 https://bugs.webkit.org/show_bug.cgi?id=58427 1074 1075 * CMakeLists.txt: Change DERIVED_SOURCES_DIR to DERIVED_SOURCES_JAVASCRIPTCORE_DIR. 1076 1077 2011-04-13 Geoffrey Garen <ggaren (a] apple.com> 1078 1079 Reviewed by Oliver Hunt. 1080 1081 Switched DOM wrappers to use HashMap of Weak<T> instead of WeakGCMap<T> 1082 https://bugs.webkit.org/show_bug.cgi?id=58482 1083 1084 This will allow wrappers to make individual decisions about their lifetimes. 1085 1086 * heap/HandleHeap.h: 1087 (JSC::HandleHeap::copyWeak): New function for copying a weak handle. 1088 It's wasn't previously possible to perform this operation using HandleHeap 1089 API because the HandleHeap doesn't expose its underlying Node structure. 1090 1091 * heap/Local.h: 1092 (JSC::::set): 1093 * heap/Strong.h: 1094 (JSC::Strong::set): Added ASSERTs to verify that dead objects are not 1095 resurrected by placement into handles. 1096 1097 (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table 1098 is efficient. 1099 1100 * heap/Weak.h: 1101 (JSC::Weak::Weak): Fixed a bug where copying a weak pointer would not 1102 copy its weak callback and context. 1103 1104 (JSC::Weak::operator=): Added an assignment operator, since the default 1105 C++ assignment operator did the wrong thing. 1106 1107 (JSC::Weak::set): Added ASSERTs to verify that dead objects are not 1108 resurrected by placement into handles. 1109 1110 (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table 1111 is efficient, and can be done without copying, which is illegal during 1112 the handle finalization phase. 1113 1114 2011-04-13 Oliver Hunt <oliver (a] apple.com> 1115 1116 Reviewed by Gavin Barraclough. 1117 1118 Make PropertyMapEntry use a WriteBarrier for specificValue 1119 https://bugs.webkit.org/show_bug.cgi?id=58407 1120 1121 Make PropertyMapEntry use a WriteBarrier for specificValue, and then 1122 propagate the required JSGlobalData through all the methods it ends 1123 up being needed. 1124 1125 * API/JSClassRef.cpp: 1126 (OpaqueJSClass::prototype): 1127 * API/JSContextRef.cpp: 1128 * API/JSObjectRef.cpp: 1129 (JSObjectMake): 1130 (JSObjectSetPrototype): 1131 * JavaScriptCore.exp: 1132 * bytecompiler/BytecodeGenerator.cpp: 1133 (JSC::BytecodeGenerator::BytecodeGenerator): 1134 * interpreter/Interpreter.cpp: 1135 (JSC::appendSourceToError): 1136 (JSC::Interpreter::tryCacheGetByID): 1137 (JSC::Interpreter::privateExecute): 1138 * jit/JITStubs.cpp: 1139 (JSC::JITThunks::tryCacheGetByID): 1140 (JSC::DEFINE_STUB_FUNCTION): 1141 * runtime/BatchedTransitionOptimizer.h: 1142 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): 1143 * runtime/InternalFunction.cpp: 1144 (JSC::InternalFunction::name): 1145 (JSC::InternalFunction::displayName): 1146 * runtime/JSActivation.cpp: 1147 (JSC::JSActivation::getOwnPropertySlot): 1148 * runtime/JSFunction.cpp: 1149 (JSC::JSFunction::name): 1150 (JSC::JSFunction::displayName): 1151 (JSC::JSFunction::getOwnPropertySlot): 1152 * runtime/JSGlobalObject.cpp: 1153 (JSC::JSGlobalObject::putWithAttributes): 1154 (JSC::JSGlobalObject::reset): 1155 (JSC::JSGlobalObject::resetPrototype): 1156 * runtime/JSGlobalObject.h: 1157 * runtime/JSObject.cpp: 1158 (JSC::JSObject::put): 1159 (JSC::JSObject::deleteProperty): 1160 (JSC::JSObject::defineGetter): 1161 (JSC::JSObject::defineSetter): 1162 (JSC::JSObject::lookupGetter): 1163 (JSC::JSObject::lookupSetter): 1164 (JSC::JSObject::getPropertySpecificValue): 1165 (JSC::JSObject::getOwnPropertyNames): 1166 (JSC::JSObject::seal): 1167 (JSC::JSObject::freeze): 1168 (JSC::JSObject::preventExtensions): 1169 (JSC::JSObject::removeDirect): 1170 (JSC::JSObject::getOwnPropertyDescriptor): 1171 (JSC::JSObject::defineOwnProperty): 1172 * runtime/JSObject.h: 1173 (JSC::JSObject::getDirect): 1174 (JSC::JSObject::getDirectLocation): 1175 (JSC::JSObject::isSealed): 1176 (JSC::JSObject::isFrozen): 1177 (JSC::JSObject::setPrototypeWithCycleCheck): 1178 (JSC::JSObject::setPrototype): 1179 (JSC::JSObject::inlineGetOwnPropertySlot): 1180 (JSC::JSObject::putDirectInternal): 1181 (JSC::JSObject::putDirectWithoutTransition): 1182 (JSC::JSObject::putDirectFunctionWithoutTransition): 1183 * runtime/Lookup.cpp: 1184 (JSC::setUpStaticFunctionSlot): 1185 * runtime/ObjectConstructor.cpp: 1186 (JSC::objectConstructorCreate): 1187 (JSC::objectConstructorSeal): 1188 (JSC::objectConstructorFreeze): 1189 (JSC::objectConstructorPreventExtensions): 1190 (JSC::objectConstructorIsSealed): 1191 (JSC::objectConstructorIsFrozen): 1192 * runtime/Operations.h: 1193 (JSC::normalizePrototypeChain): 1194 * runtime/PropertyMapHashTable.h: 1195 (JSC::PropertyMapEntry::PropertyMapEntry): 1196 (JSC::PropertyTable::PropertyTable): 1197 (JSC::PropertyTable::copy): 1198 * runtime/Structure.cpp: 1199 (JSC::Structure::materializePropertyMap): 1200 (JSC::Structure::despecifyDictionaryFunction): 1201 (JSC::Structure::addPropertyTransition): 1202 (JSC::Structure::removePropertyTransition): 1203 (JSC::Structure::changePrototypeTransition): 1204 (JSC::Structure::despecifyFunctionTransition): 1205 (JSC::Structure::getterSetterTransition): 1206 (JSC::Structure::toDictionaryTransition): 1207 (JSC::Structure::toCacheableDictionaryTransition): 1208 (JSC::Structure::toUncacheableDictionaryTransition): 1209 (JSC::Structure::sealTransition): 1210 (JSC::Structure::freezeTransition): 1211 (JSC::Structure::preventExtensionsTransition): 1212 (JSC::Structure::isSealed): 1213 (JSC::Structure::isFrozen): 1214 (JSC::Structure::addPropertyWithoutTransition): 1215 (JSC::Structure::removePropertyWithoutTransition): 1216 (JSC::Structure::copyPropertyTable): 1217 (JSC::Structure::get): 1218 (JSC::Structure::despecifyFunction): 1219 (JSC::Structure::despecifyAllFunctions): 1220 (JSC::Structure::put): 1221 (JSC::Structure::getPropertyNames): 1222 * runtime/Structure.h: 1223 (JSC::Structure::get): 1224 (JSC::Structure::materializePropertyMapIfNecessary): 1225 1226 2011-04-13 Paul Knight <pknight (a] apple.com> 1227 1228 Reviewed by Gavin Barraclough. 1229 1230 BACKTRACE() macro should check for Debug configuration in macro, not WTFReportBacktrace definition 1231 https://bugs.webkit.org/show_bug.cgi?id=58405 1232 1233 The BACKTRACE() macro requires JavaScriptCore be built with a Debug 1234 configuration in order for it to be enabled. Move the NDEBUG check to 1235 the header so it will be enabled when the calling framework or 1236 application is built with a Debug configuration, similar to how 1237 ASSERT() and friends work. 1238 1239 * wtf/Assertions.cpp: 1240 * wtf/Assertions.h: 1241 1242 2011-04-12 Ben Taylor <bentaylor.solx86 (a] gmail.com> 1243 1244 Reviewed by Alexey Proskuryakov. 1245 1246 https://bugs.webkit.org/show_bug.cgi?id=58131 1247 1248 Provide a workaround for an obscure Studio 12 compiler bug, which 1249 couldn't call src->~T() on a const T *src. 1250 1251 * wtf/Vector.h: 1252 1253 2011-04-12 Gavin Barraclough <barraclough (a] apple.com> 1254 1255 Reviewed by Oliver Hunt. 1256 1257 https://bugs.webkit.org/show_bug.cgi?id=58395 1258 Exceptions thrown from property getters called from Array prototype functions can be missed 1259 1260 This is caught by an ASSERT in the top of Interpreter::executeCall. 1261 Check for exceptions after accessing properties that could be getters. 1262 1263 * runtime/ArrayPrototype.cpp: 1264 (JSC::arrayProtoFuncSort): 1265 (JSC::arrayProtoFuncFilter): 1266 (JSC::arrayProtoFuncMap): 1267 (JSC::arrayProtoFuncEvery): 1268 (JSC::arrayProtoFuncForEach): 1269 (JSC::arrayProtoFuncSome): 1270 (JSC::arrayProtoFuncReduce): 1271 (JSC::arrayProtoFuncReduceRight): 1272 - Add exception checks. 1273 1274 2011-04-12 Oliver Hunt <oliver (a] apple.com> 1275 1276 Reviewed by Geoffrey Garen. 1277 1278 Make API callback objects use weak handles to run their finalizers 1279 https://bugs.webkit.org/show_bug.cgi?id=58389 1280 1281 Make the API object's private data struct act as a finalizer for 1282 an api object if the callback object has a API defined finalizer. 1283 1284 * API/JSCallbackObject.cpp: 1285 (JSC::JSCallbackObjectData::finalize): 1286 * API/JSCallbackObject.h: 1287 * API/JSCallbackObjectFunctions.h: 1288 (JSC::::init): 1289 * heap/Handle.h: 1290 1291 2011-04-12 Geoffrey Garen <ggaren (a] apple.com> 1292 1293 Reviewed by Geoffrey Garen. 1294 1295 Cleaned up hash traits, and added hash traits for handles 1296 https://bugs.webkit.org/show_bug.cgi?id=58381 1297 1298 * heap/Handle.h: 1299 (JSC::HandleBase::swap): 1300 (JSC::Handle::Handle): 1301 (JSC::Handle::swap): Implemented swap, so we can rehash efficiently, and 1302 without creating new handles (which is not allowed during handle finalization). 1303 1304 * heap/Strong.h: 1305 (JSC::Strong::swap): Use new SimpleClassHashTraits to avoid duplication. 1306 1307 * heap/Weak.h: 1308 (JSC::Weak::isHashTableDeletedValue): 1309 (JSC::Weak::Weak): 1310 (JSC::Weak::swap): 1311 (JSC::Weak::hashTableDeletedValue): Ditto. 1312 1313 * wtf/HashTraits.h: 1314 (WTF::SimpleClassHashTraits::constructDeletedValue): 1315 (WTF::SimpleClassHashTraits::isDeletedValue): Added SimpleClassHashTraits, 1316 which are analogous to SimpleClassVectorTraits, since they are used in a 1317 bunch of places. 1318 1319 * wtf/RetainPtr.h: Use new SimpleClassHashTraits to avoid duplication. 1320 1321 * wtf/text/StringHash.h: Use new SimpleClassHashTraits to avoid duplication. 1322 1323 2011-04-12 Geoffrey Garen <ggaren (a] apple.com> 1324 1325 Reviewed by Sam Weinig. 1326 1327 Cleaned up some Vector traits, and added missing Vector traits for handles 1328 https://bugs.webkit.org/show_bug.cgi?id=58372 1329 1330 * heap/Local.h: Inherit from SimpleClassVectorTraits to avoid duplication. 1331 1332 * heap/Strong.h: Ditto. 1333 1334 * heap/Weak.h: Ditto. 1335 1336 * parser/JSParser.cpp: Fixed a traits error. No test case because this 1337 particular trait is not currently exercised by the parser. 1338 1339 * runtime/UString.h: No need to override canInitializeWithMemset, since 1340 our base class sets it to true. 1341 1342 * wtf/VectorTraits.h: Inherit from VectorTraitsBase to avoid duplication. 1343 1344 * wtf/text/WTFString.h: No need to override canInitializeWithMemset, since 1345 our base class sets it to true. 1346 1347 2011-04-12 Thouraya ANDOLSI <thouraya.andolsi (a] st.com> 1348 1349 Reviewed by Eric Seidel. 1350 1351 [Qt] Enable JIT build for SH4 platforms. 1352 https://bugs.webkit.org/show_bug.cgi?id=58317 1353 enable JIT build for QT backend for SH4 platforms. 1354 1355 * JavaScriptCore.pro: 1356 * wtf/Platform.h: 1357 1358 2011-04-11 Ben Taylor <bentaylor.solx86 (a] gmail.com> 1359 1360 Reviewed by Alexey Proskuryakov. 1361 1362 https://bugs.webkit.org/show_bug.cgi?id=58289 1363 1364 Fix compilation on Solaris/Studio 12 C++ in wtf/FastMalloc.cpp, 1365 WTF::TCMalloc_PageHeap::runScavengerThread(void*) expected to return a value. 1366 1367 * wtf/FastMalloc.cpp: 1368 (WTF::TCMalloc_PageHeap::runScavengerThread): 1369 1370 2011-04-11 Mark Rowe <mrowe (a] apple.com> 1371 1372 Fix the build. 1373 1374 * JavaScriptCore.xcodeproj/project.pbxproj: Headers used outside of JavaScriptCore need to be marked as private. 1375 1376 2011-04-11 Anna Cavender <annacc (a] chromium.org> 1377 1378 Reviewed by Eric Carlson. 1379 1380 Setup ENABLE(TRACK) feature define 1381 https://bugs.webkit.org/show_bug.cgi?id=53556 1382 1383 1384 * Configurations/FeatureDefines.xcconfig: 1385 1386 2011-04-11 Geoffrey Garen <ggaren (a] apple.com> 1387 1388 Try to fix a few builds. 1389 1390 Updated a few more build configurations for file moves. 1391 1392 * CMakeListsWinCE.txt: 1393 1394 2011-04-11 Gavin Barraclough <barraclough (a] apple.com> 1395 1396 Reviewed by Sam Weinig. 1397 1398 Bug 58263 - Use EncodedValueDescriptor on both JSVALUE32_64, JSVALUE64 1399 1400 The JSJITInterface already uses EncodedValueDescriptor to access the tag/payload 1401 separately on JSVALUE64, even though EncodedValueDescriptor is not used in 1402 JSVALUE64's implementation of JSValue. Remove the separate definition for m_ptr 1403 on X86_64. Using the union allows us to remove a layer of makeImmediate()/ 1404 immedaiteValue() methods. 1405 1406 * dfg/DFGNonSpeculativeJIT.cpp: 1407 (JSC::DFG::NonSpeculativeJIT::compile): 1408 * dfg/DFGSpeculativeJIT.cpp: 1409 (JSC::DFG::SpeculativeJIT::compile): 1410 * jit/JITInlineMethods.h: 1411 (JSC::JIT::emitTagAsBoolImmediate): 1412 * jit/JITOpcodes.cpp: 1413 (JSC::JIT::emit_op_not): 1414 (JSC::JIT::emit_op_jeq_null): 1415 (JSC::JIT::emit_op_jneq_null): 1416 (JSC::JIT::emit_op_get_pnames): 1417 (JSC::JIT::emit_op_eq_null): 1418 (JSC::JIT::emit_op_neq_null): 1419 (JSC::JIT::emitSlow_op_not): 1420 * runtime/JSCell.h: 1421 * runtime/JSValue.h: 1422 * runtime/JSValueInlineMethods.h: 1423 (JSC::JSValue::encode): 1424 (JSC::JSValue::decode): 1425 (JSC::JSValue::operator==): 1426 (JSC::JSValue::operator!=): 1427 (JSC::JSValue::JSValue): 1428 (JSC::JSValue::operator bool): 1429 (JSC::JSValue::asInt32): 1430 (JSC::JSValue::isUndefinedOrNull): 1431 (JSC::JSValue::isBoolean): 1432 (JSC::JSValue::isCell): 1433 (JSC::JSValue::isInt32): 1434 (JSC::JSValue::asDouble): 1435 (JSC::JSValue::isNumber): 1436 (JSC::JSValue::asCell): 1437 1438 2011-04-11 Geoffrey Garen <ggaren (a] apple.com> 1439 1440 Try to fix a few builds. 1441 1442 Updated a few more build configurations for file moves. 1443 1444 * CMakeListsEfl.txt: 1445 * wscript: 1446 1447 2011-04-11 Geoffrey Garen <ggaren (a] apple.com> 1448 1449 Build fix: Updated a file name. 1450 1451 * CMakeLists.txt: 1452 1453 2011-04-11 Geoffrey Garen <ggaren (a] apple.com> 1454 1455 Rubber-stamped by Sam Weinig. 1456 1457 Moved remaining heap implementation files to the heap folder. 1458 1459 * Android.mk: 1460 * CMakeLists.txt: 1461 * GNUmakefile.list.am: 1462 * JavaScriptCore.gypi: 1463 * JavaScriptCore.pro: 1464 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 1465 * JavaScriptCore.xcodeproj/project.pbxproj: 1466 * heap/ConservativeRoots.cpp: Copied from runtime/ConservativeSet.cpp. 1467 * heap/ConservativeRoots.h: Copied from runtime/ConservativeSet.h. 1468 * heap/Handle.h: 1469 * heap/Heap.cpp: 1470 * heap/MachineStackMarker.cpp: Copied from runtime/MachineStackMarker.cpp. 1471 * heap/MachineStackMarker.h: Copied from runtime/MachineStackMarker.h. 1472 * heap/MarkStack.cpp: Copied from runtime/MarkStack.cpp. 1473 * heap/MarkStack.h: Copied from runtime/MarkStack.h. 1474 * heap/MarkStackPosix.cpp: Copied from runtime/MarkStackPosix.cpp. 1475 * heap/MarkStackSymbian.cpp: Copied from runtime/MarkStackSymbian.cpp. 1476 * heap/MarkStackWin.cpp: Copied from runtime/MarkStackWin.cpp. 1477 * heap/MarkedBlock.cpp: Copied from runtime/MarkedBlock.cpp. 1478 * heap/MarkedBlock.h: Copied from runtime/MarkedBlock.h. 1479 * heap/MarkedSpace.cpp: Copied from runtime/MarkedSpace.cpp. 1480 * heap/MarkedSpace.h: Copied from runtime/MarkedSpace.h. 1481 * interpreter/RegisterFile.cpp: 1482 * runtime/ConservativeSet.cpp: Removed. 1483 * runtime/ConservativeSet.h: Removed. 1484 * runtime/MachineStackMarker.cpp: Removed. 1485 * runtime/MachineStackMarker.h: Removed. 1486 * runtime/MarkStack.cpp: Removed. 1487 * runtime/MarkStack.h: Removed. 1488 * runtime/MarkStackPosix.cpp: Removed. 1489 * runtime/MarkStackSymbian.cpp: Removed. 1490 * runtime/MarkStackWin.cpp: Removed. 1491 * runtime/MarkedBlock.cpp: Removed. 1492 * runtime/MarkedBlock.h: Removed. 1493 * runtime/MarkedSpace.cpp: Removed. 1494 * runtime/MarkedSpace.h: Removed. 1495 1496 2011-04-11 Gavin Barraclough <barraclough (a] apple.com> 1497 1498 Windows build fix. 1499 1500 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 1501 1502 2011-04-09 Gavin Barraclough <barraclough (a] apple.com> 1503 1504 Reviewed by Sam Weinig. 1505 1506 Bug 58198 - Clean up JSValue implementation for JSVALUE64 1507 1508 Remove JSNumberCell, JSImmediate, unify some methods between JSVALUE32_64/JSVALUE64 1509 1510 JSNumberCell.h largely just contained the constructors for JSValue on JSVALUE64, 1511 which should not have been here. JSImmediate mostly contained uncalled methods, 1512 along with the internal implementation of the JSValue constructors split unnecessarily 1513 across a number of layers of function calls. These could largely be merged back 1514 together. Many methods and constructors from JSVALUE32_64 and JSVALUE64 can by unified. 1515 1516 The .cpp files were empty. 1517 1518 Moving all these methods into JSValue.h seems to be a repro measurable regression, so 1519 I have kept these methods in a separate JSValueInlineMethods.h. Adding the 64-bit tag 1520 values as static const members of JSValue also measures as a repro regression, so I 1521 have made these #defines. 1522 1523 * Android.mk: 1524 * CMakeLists.txt: 1525 * GNUmakefile.list.am: 1526 * JavaScriptCore.exp: 1527 * JavaScriptCore.gypi: 1528 * JavaScriptCore.pro: 1529 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 1530 * JavaScriptCore.xcodeproj/project.pbxproj: 1531 - Removed JSImmediate.h, JSNumberCell.h. 1532 * bytecompiler/BytecodeGenerator.cpp: 1533 (JSC::BytecodeGenerator::emitLoad): 1534 - Removed class JSImmediate. 1535 * dfg/DFGNonSpeculativeJIT.cpp: 1536 (JSC::DFG::NonSpeculativeJIT::compile): 1537 - Removed class JSImmediate. 1538 * dfg/DFGSpeculativeJIT.cpp: 1539 (JSC::DFG::SpeculativeJIT::compile): 1540 - Removed class JSImmediate. 1541 * jit/JITArithmetic.cpp: 1542 (JSC::JIT::compileBinaryArithOpSlowCase): 1543 - Removed class JSImmediate. 1544 * jit/JITInlineMethods.h: 1545 (JSC::JIT::emitJumpIfJSCell): 1546 (JSC::JIT::emitJumpIfNotJSCell): 1547 (JSC::JIT::emitJumpIfImmediateInteger): 1548 (JSC::JIT::emitJumpIfNotImmediateInteger): 1549 (JSC::JIT::emitFastArithDeTagImmediate): 1550 (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero): 1551 (JSC::JIT::emitFastArithReTagImmediate): 1552 (JSC::JIT::emitTagAsBoolImmediate): 1553 - Removed class JSImmediate. 1554 * jit/JITOpcodes.cpp: 1555 (JSC::JIT::emit_op_not): 1556 (JSC::JIT::emit_op_jeq_null): 1557 (JSC::JIT::emit_op_jneq_null): 1558 (JSC::JIT::emit_op_get_pnames): 1559 (JSC::JIT::emit_op_eq_null): 1560 (JSC::JIT::emit_op_neq_null): 1561 (JSC::JIT::emitSlow_op_not): 1562 - Removed class JSImmediate. 1563 * jit/JSInterfaceJIT.h: 1564 - Removed class JSImmediate. 1565 * runtime/JSCell.h: 1566 - Removed JSImmediate.h, JSNumberCell.h. 1567 * runtime/JSImmediate.cpp: Removed. 1568 * runtime/JSImmediate.h: Removed. 1569 * runtime/JSNumberCell.cpp: Removed. 1570 * runtime/JSNumberCell.h: Removed. 1571 - Removed. 1572 * runtime/JSObject.h: 1573 - Removed JSImmediate.h, JSNumberCell.h. 1574 * runtime/JSString.h: 1575 - Removed JSImmediate.h, JSNumberCell.h. 1576 * runtime/JSValue.h: 1577 - Added tags for JSVALUE64, moved out some JSVALUE32_64 methods, unified with JSVALUE64. 1578 * runtime/JSValueInlineMethods.h: Added. 1579 (JSC::JSValue::toInt32): 1580 (JSC::JSValue::toUInt32): 1581 (JSC::JSValue::isUInt32): 1582 (JSC::JSValue::asUInt32): 1583 (JSC::JSValue::uncheckedGetNumber): 1584 (JSC::JSValue::toJSNumber): 1585 (JSC::jsNaN): 1586 (JSC::JSValue::getNumber): 1587 (JSC::JSValue::getBoolean): 1588 (JSC::JSValue::JSValue): 1589 (JSC::JSValue::encode): 1590 (JSC::JSValue::decode): 1591 (JSC::JSValue::operator bool): 1592 (JSC::JSValue::operator==): 1593 (JSC::JSValue::operator!=): 1594 (JSC::JSValue::isUndefined): 1595 (JSC::JSValue::isNull): 1596 (JSC::JSValue::isUndefinedOrNull): 1597 (JSC::JSValue::isCell): 1598 (JSC::JSValue::isInt32): 1599 (JSC::JSValue::isDouble): 1600 (JSC::JSValue::isTrue): 1601 (JSC::JSValue::isFalse): 1602 (JSC::JSValue::tag): 1603 (JSC::JSValue::payload): 1604 (JSC::JSValue::asInt32): 1605 (JSC::JSValue::asDouble): 1606 (JSC::JSValue::asCell): 1607 (JSC::JSValue::isNumber): 1608 (JSC::JSValue::isBoolean): 1609 (JSC::JSValue::makeImmediate): 1610 (JSC::JSValue::immediateValue): 1611 (JSC::reinterpretDoubleToIntptr): 1612 (JSC::reinterpretIntptrToDouble): 1613 - Methods moved here from JSImmediate.h/JSNumberCell.h/JSValue.h. 1614 * runtime/Operations.h: 1615 - Removed JSImmediate.h, JSNumberCell.h. 1616 * wtf/StdLibExtras.h: 1617 - Export bitwise_cast. 1618 1619 2011-04-11 Thouraya ANDOLSI <thouraya.andolsi (a] st.com> 1620 1621 Reviewed by Oliver Hunt. 1622 1623 SH4 JIT SUPPORT. 1624 https://bugs.webkit.org/show_bug.cgi?id=44329 1625 1626 Add JIT remaining part for SH4 platforms. 1627 1628 * assembler/MacroAssemblerSH4.h: 1629 * jit/JIT.h: 1630 * jit/JITInlineMethods.h: 1631 * jit/JITOpcodes32_64.cpp: 1632 * jit/JITPropertyAccess32_64.cpp: 1633 * jit/JITStubs.cpp: 1634 * jit/JITStubs.h: 1635 * jit/JSInterfaceJIT.h: 1636 1637 2011-04-10 Geoffrey Garen <ggaren (a] apple.com> 1638 1639 Rubber-stamped by Beth Dakin. 1640 1641 Moved Heap.h and Heap.cpp to the heap folder, because anything less 1642 would be uncivilized. 1643 1644 * Android.mk: 1645 * CMakeLists.txt: 1646 * GNUmakefile.list.am: 1647 * JavaScriptCore.gypi: 1648 * JavaScriptCore.pro: 1649 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 1650 * JavaScriptCore.xcodeproj/project.pbxproj: 1651 * heap/Heap.cpp: Copied from JavaScriptCore/runtime/Heap.cpp. 1652 * heap/Heap.h: Copied from JavaScriptCore/runtime/Heap.h. 1653 * runtime/Heap.cpp: Removed. 1654 * runtime/Heap.h: Removed. 1655 1656 2011-04-10 Patrick Gansterer <paroga (a] webkit.org> 1657 1658 Reviewed by Darin Adler. 1659 1660 Remove duplicated code from AtomicString::fromUTF8() 1661 https://bugs.webkit.org/show_bug.cgi?id=53711 1662 1663 * JavaScriptCore.exp: 1664 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 1665 * wtf/text/AtomicString.cpp: 1666 (WTF::AtomicString::fromUTF8Internal): 1667 * wtf/text/AtomicString.h: 1668 (WTF::AtomicString::fromUTF8): 1669 * wtf/unicode/UTF8.cpp: 1670 (WTF::Unicode::calculateStringHashAndLengthFromUTF8): 1671 * wtf/unicode/UTF8.h: 1672 1673 2011-04-10 Maciej Stachowiak <mjs (a] apple.com> 1674 1675 Not reviewed. 1676 1677 Fix build (at least on Lion) by adding some newish header files to 1678 PrivateHeaders. 1679 1680 * JavaScriptCore.xcodeproj/project.pbxproj: 1681 1682 2011-04-09 Geoffrey Garen <ggaren (a] apple.com> 1683 1684 Not reviewed. 1685 1686 Try recommitting some things svn left out of its last commit. 1687 1688 * heap/Handle.h: 1689 (JSC::HandleBase::operator!): 1690 (JSC::HandleBase::HandleBase): 1691 (JSC::HandleBase::slot): 1692 (JSC::HandleBase::setSlot): 1693 (JSC::Handle::Handle): 1694 * heap/HandleHeap.cpp: 1695 (JSC::HandleHeap::markWeakHandles): 1696 (JSC::HandleHeap::finalizeWeakHandles): 1697 (JSC::HandleHeap::isValidWeakNode): 1698 * heap/HandleHeap.h: 1699 (JSC::HandleHeap::globalData): 1700 1701 2011-04-08 Geoffrey Garen <ggaren (a] apple.com> 1702 1703 Reviewed by Oliver Hunt. 1704 1705 A few heap-related renames and file moves. 1706 1707 WeakGCPtr<T> => Weak<T> 1708 Global<T> => Strong<T> 1709 collector/ => heap/ 1710 collector/* => heap/* 1711 runtime/WeakGCPtr.h => heap/Weak.h 1712 1713 (Eventually, even more files should move into the heap directory. Like 1714 Heap.h and Heap.cpp, for example.) 1715 1716 * API/JSClassRef.h: 1717 * CMakeLists.txt: 1718 * GNUmakefile.am: 1719 * GNUmakefile.list.am: 1720 * JavaScriptCore.gypi: 1721 * JavaScriptCore.pri: 1722 * JavaScriptCore.pro: 1723 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 1724 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: 1725 * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: 1726 * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: 1727 * JavaScriptCore.xcodeproj/project.pbxproj: 1728 * bytecode/SamplingTool.h: 1729 * bytecompiler/BytecodeGenerator.h: 1730 * collector: Removed. 1731 * collector/handles: Removed. 1732 * collector/handles/Global.h: Removed. 1733 * collector/handles/Handle.h: Removed. 1734 * collector/handles/HandleHeap.cpp: Removed. 1735 * collector/handles/HandleHeap.h: Removed. 1736 * collector/handles/HandleStack.cpp: Removed. 1737 * collector/handles/HandleStack.h: Removed. 1738 * collector/handles/Local.h: Removed. 1739 * collector/handles/LocalScope.h: Removed. 1740 * heap: Copied from collector. 1741 * heap/Handle.h: Copied from collector/handles/Handle.h. 1742 * heap/HandleHeap.cpp: Copied from collector/handles/HandleHeap.cpp. 1743 * heap/HandleHeap.h: Copied from collector/handles/HandleHeap.h. 1744 * heap/HandleStack.cpp: Copied from collector/handles/HandleStack.cpp. 1745 * heap/HandleStack.h: Copied from collector/handles/HandleStack.h. 1746 * heap/Local.h: Copied from collector/handles/Local.h. 1747 * heap/LocalScope.h: Copied from collector/handles/LocalScope.h. 1748 * heap/Strong.h: Copied from collector/handles/Global.h. 1749 (JSC::Strong::Strong): 1750 (JSC::Strong::~Strong): 1751 (JSC::Strong::operator=): 1752 * heap/Weak.h: Copied from runtime/WeakGCPtr.h. 1753 (JSC::Weak::Weak): 1754 (JSC::Weak::~Weak): 1755 * heap/handles: Removed. 1756 * interpreter/RegisterFile.h: 1757 * jit/JITStubs.cpp: 1758 (JSC::JITThunks::hostFunctionStub): 1759 * jit/JITStubs.h: 1760 * runtime/Structure.h: 1761 * runtime/WeakGCPtr.h: Removed. 1762 1763 2011-04-08 Alpha Lam <hclam (a] chromium.org> 1764 1765 Unreviewed, rolling out r83335. 1766 http://trac.webkit.org/changeset/83335 1767 https://bugs.webkit.org/show_bug.cgi?id=53556 1768 1769 GTK and QT bots are broken 1770 1771 * Configurations/FeatureDefines.xcconfig: 1772 1773 2011-04-08 Gavin Barraclough <barraclough (a] apple.com> 1774 1775 Ooops, typo, build fix. 1776 1777 * dfg/DFGByteCodeParser.cpp: 1778 (JSC::DFG::ByteCodeParser::parse): 1779 1780 2011-04-08 Gavin Barraclough <barraclough (a] apple.com> 1781 1782 Reviewed by Oliver Hunt. 1783 1784 Bug 58154 - Add support for comparison operators to the DFG JIT. 1785 1786 Add support for <, <=, ==, ===, and also !. Add support for all corresponding 1787 bytecode ops, including the not- and -null forms. Initially add functionally 1788 correct support, we'll revisit the performance. 1789 1790 * dfg/DFGByteCodeParser.cpp: 1791 (JSC::DFG::ByteCodeParser::ByteCodeParser): 1792 (JSC::DFG::ByteCodeParser::constantNull): 1793 (JSC::DFG::ByteCodeParser::parse): 1794 - Add support for parsing of bytecode opcodes, 1795 * dfg/DFGJITCodeGenerator.h: 1796 (JSC::DFG::JITCodeGenerator::callOperation): 1797 - Add new operation call types, return bool values. 1798 * dfg/DFGNode.h: 1799 - Add new node types. 1800 * dfg/DFGNonSpeculativeJIT.cpp: 1801 (JSC::DFG::NonSpeculativeJIT::compile): 1802 - Add code generation for new nodes. 1803 * dfg/DFGOperations.cpp: 1804 (JSC::DFG::operationCompareLess): 1805 (JSC::DFG::operationCompareLessEq): 1806 (JSC::DFG::operationCompareEq): 1807 (JSC::DFG::operationCompareStrictEq): 1808 (JSC::DFG::dfgConvertJSValueToBoolean): 1809 * dfg/DFGOperations.h: 1810 - Add operation callbacks to implement new ops. 1811 * dfg/DFGSpeculativeJIT.cpp: 1812 (JSC::DFG::SpeculativeJIT::compile): 1813 - Add code generation for new nodes. 1814 * jit/JITOpcodes.cpp: 1815 (JSC::JIT::privateCompileCTIMachineTrampolines): 1816 - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate. 1817 * jit/JITPropertyAccess.cpp: 1818 (JSC::JIT::privateCompilePatchGetArrayLength): 1819 - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate. 1820 * runtime/JSImmediate.h: 1821 - Make tag values public, rather than relying on a friend - this matches JSVALUE32_64. 1822 1823 2011-04-07 Anna Cavender <annacc (a] chromium.org> 1824 1825 Reviewed by Eric Carlson. 1826 1827 Setup ENABLE(TRACK) feature define 1828 https://bugs.webkit.org/show_bug.cgi?id=53556 1829 1830 1831 * Configurations/FeatureDefines.xcconfig: 1832 1833 2011-04-07 Balazs Kelemen <kbalazs (a] webkit.org> 1834 1835 Reviewed by Kenneth Rohde Christiansen. 1836 1837 [WK2][Qt][GTK] Introduce common use flag for the shared UNIX domain socket IPC implementation 1838 https://bugs.webkit.org/show_bug.cgi?id=58030 1839 1840 * wtf/Platform.h: Introduce USE(UNIX_DOMAIN_SOCKETS) for WebKit2. 1841 1842 2011-04-08 Adam Roben <aroben (a] apple.com> 1843 1844 Clean build fix 1845 1846 * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Don't try to delete directories that 1847 don't exist. Also switched from del /s to rmdir /s, which has the benefit of deleting the 1848 directory itself in addition to the files it contains. 1849 1850 2011-04-07 Geoffrey Garen <ggaren (a] apple.com> 1851 1852 Reviewed by Maciej Stachowiak. 1853 1854 Some Handle<T> cleanup 1855 https://bugs.webkit.org/show_bug.cgi?id=58109 1856 1857 * bytecode/SamplingTool.h: Sorted alphabetically because that's the 1858 WebKit style. Added a Global.h #include that was previously missing 1859 but harmless. 1860 1861 * collector/handles/Global.h: 1862 (JSC::Global::Global): Added a null constructor. No need for a special 1863 tag, and the tag is incompatible with some data structures. 1864 1865 (JSC::Global::isHashTableDeletedValue): 1866 (JSC::Global::~Global): 1867 (JSC::Global::set): 1868 (JSC::Global::operator=): 1869 (JSC::Global::clear): 1870 (JSC::Global::hashTableDeletedValue): Reordered constructors to be near 1871 each other. 1872 1873 (JSC::Global::setWithWriteBarrier): Renamed internalSet to 1874 setWithWriteBarrier for clarity, and funneled more code into using set 1875 and setWithWriteBarrier to reduce duplication. 1876 1877 * collector/handles/Handle.h: 1878 (JSC::HandleBase::operator!): 1879 (JSC::HandleBase::HandleBase): Removed isEmpty(), since we already have 1880 boolean and ! operators. 1881 1882 (JSC::HandleBase::slot): 1883 (JSC::HandleBase::setSlot): 1884 (JSC::Handle::Handle): Added general support for null Handles. This was 1885 previously outlawed by ASSERTs, but our code has grown to support and 1886 rely on null Handles. 1887 1888 * collector/handles/HandleHeap.cpp: 1889 (JSC::HandleHeap::markWeakHandles): 1890 (JSC::HandleHeap::finalizeWeakHandles): 1891 (JSC::HandleHeap::isValidWeakNode): Migrated from isValidWeakHandle, 1892 and beefed this up a bit. 1893 1894 * collector/handles/HandleHeap.h: 1895 (JSC::HandleHeap::globalData): Added accessor, used by some new set functions. 1896 1897 * collector/handles/Local.h: Moved hash traits to the bottom of the file, 1898 since this file is about the Local class, not the traits. 1899 1900 (JSC::::Local): Updated for removal of invalidate(). 1901 1902 (JSC::::operator): Deployed "using" to avoid a lot of this-> 1903 template funny business. 1904 1905 (JSC::::setWithSlotCheck): Renamed from internalSet, more specific now. 1906 1907 * interpreter/RegisterFile.h: 1908 (JSC::RegisterFile::RegisterFile): Updated to use null constructor. 1909 1910 * jit/JITStubs.cpp: 1911 (JSC::JITThunks::hostFunctionStub): 1912 1913 * runtime/JSPropertyNameIterator.h: 1914 (JSC::Structure::setEnumerationCache): 1915 * runtime/Structure.h: Removed clearEnumerationCache 1916 because it was an unused holdover from when the enumeration cache was 1917 not a handle. 1918 1919 * runtime/WeakGCMap.h: 1920 (JSC::WeakGCMap::set): Finish initializing our handle before putting it 1921 in the table. This seemed more logical, and at one point was required 1922 to avoid triggering an ASSERT. 1923 1924 * runtime/WeakGCPtr.h: Inherit from Handle instead of rolling our own 1925 handle-like behavior, to avoid duplication. 1926 1927 (JSC::WeakGCPtr::WeakGCPtr): 1928 (JSC::WeakGCPtr::~WeakGCPtr): 1929 (JSC::WeakGCPtr::get): 1930 (JSC::WeakGCPtr::clear): 1931 (JSC::WeakGCPtr::set): 1932 (JSC::WeakGCPtr::setWithWriteBarrier): Removed duplicate code and 1933 standardized on Handle idioms. 1934 1935 2011-04-07 Adam Barth <abarth (a] webkit.org> 1936 1937 Reviewed by Martin Robinson. 1938 1939 Refactor Gtk build system to separate list of files 1940 https://bugs.webkit.org/show_bug.cgi?id=58090 1941 1942 This is the first step towards generating part of the GTK build system 1943 using GYP. In the first iteration, our plan is to just generate the 1944 list of files. This patch is the first step, which is to separate out 1945 the part of JavaScriptCore build system that we intend to generate from 1946 the rest of the build system. 1947 1948 * GNUmakefile.am: 1949 * GNUmakefile.list.am: Added. 1950 1951 2011-04-07 Zoltan Herczeg <zherczeg (a] webkit.org> 1952 1953 Reviewed by Gavin Barraclough. 1954 1955 Mapping booleans the same way as integers 1956 https://bugs.webkit.org/show_bug.cgi?id=56913 1957 1958 Instead of having a seperate tag field for booleans, 1959 the logical values are stored in the payload field 1960 (for JSValue32_64 representation). 1961 1962 1.007x speedup on SunSpider. 1963 1964 * jit/JIT.h: 1965 * jit/JITInlineMethods.h: 1966 (JSC::JIT::emitStoreBool): 1967 * jit/JITOpcodes32_64.cpp: 1968 (JSC::JIT::emit_op_instanceof): 1969 (JSC::JIT::emit_op_not): 1970 (JSC::JIT::emit_op_jfalse): 1971 (JSC::JIT::emitSlow_op_jfalse): 1972 (JSC::JIT::emit_op_jtrue): 1973 (JSC::JIT::emitSlow_op_jtrue): 1974 (JSC::JIT::emit_op_jeq_null): 1975 (JSC::JIT::emit_op_jneq_null): 1976 (JSC::JIT::emit_op_eq): 1977 (JSC::JIT::emitSlow_op_eq): 1978 (JSC::JIT::emit_op_neq): 1979 (JSC::JIT::emitSlow_op_neq): 1980 (JSC::JIT::compileOpStrictEq): 1981 (JSC::JIT::emit_op_eq_null): 1982 (JSC::JIT::emit_op_neq_null): 1983 * jit/JSInterfaceJIT.h: 1984 * runtime/JSValue.h: 1985 (JSC::JSValue::JSValue): 1986 (JSC::JSValue::isTrue): 1987 (JSC::JSValue::isFalse): 1988 (JSC::JSValue::getBoolean): 1989 1990 2011-04-07 Eric Seidel <eric (a] webkit.org> 1991 1992 Reviewed by Adam Barth. 1993 1994 Add stub support for generating Gtk build system from gyp 1995 https://bugs.webkit.org/show_bug.cgi?id=58086 1996 1997 This does not produce a buildable JavaScriptCore, but it 1998 does allow running gyp/configure --port=gtk and having 1999 it generate a gtk.Makefile which we can use for testing 2000 the rest of the plumbing. 2001 2002 * gyp/gtk.gyp: Added. 2003 2004 2011-04-07 Andrew Scherkus <scherkus (a] chromium.org> 2005 2006 Revert ENABLE_TRACK patch due to compile failures. 2007 2008 * Configurations/FeatureDefines.xcconfig: 2009 2010 2011-04-07 Adam Barth <abarth (a] webkit.org> 2011 2012 Fix whitespace in GNUmakefile.am. 2013 2014 * GNUmakefile.am: 2015 2016 2011-04-07 Gavin Barraclough <barraclough (a] apple.com> 2017 2018 Fix a couple of typos in comments that Darin spotted. 2019 2020 * jit/JITOpcodes.cpp: 2021 (JSC::JIT::emit_op_not): 2022 * runtime/JSImmediate.h: 2023 2024 2011-04-06 Gavin Barraclough <barraclough (a] apple.com> 2025 2026 Reviewed by Geoff Garen. 2027 Bug 58057 - Store boolean payload in low bit of JSImmediate 2028 2029 And remove some uncalled functions from JSImmediate.h 2030 2031 * jit/JITInlineMethods.h: 2032 (JSC::JIT::emitTagAsBoolImmediate): 2033 * jit/JITOpcodes.cpp: 2034 (JSC::JIT::emit_op_not): 2035 * runtime/JSImmediate.h: 2036 (JSC::JSImmediate::makeInt): 2037 (JSC::JSImmediate::makeBool): 2038 (JSC::JSImmediate::intValue): 2039 (JSC::JSImmediate::boolValue): 2040 (JSC::JSImmediate::asInt32): 2041 (JSC::JSImmediate::toDouble): 2042 (JSC::JSValue::asInt32): 2043 (JSC::JSValue::isUInt32): 2044 (JSC::JSValue::asUInt32): 2045 2046 2011-04-07 Liang Qi <liang.qi (a] nokia.com> 2047 2048 Reviewed by Laszlo Gombos. 2049 2050 [Qt][Symbian] Enable webkit build with GCCE on Symbian. 2051 https://bugs.webkit.org/show_bug.cgi?id=57841 2052 2053 * wtf/MathExtras.h: GCCE compiler doesn't support those std static functions. 2054 2055 2011-04-06 Dai Mikurube <dmikurube (a] chromium.org> 2056 2057 Reviewed by David Levin. 2058 2059 Add QUOTA build flag for unified quota API 2060 https://bugs.webkit.org/show_bug.cgi?id=57918 2061 2062 * Configurations/FeatureDefines.xcconfig: Added QUOTA build flag 2063 2064 2011-04-06 Kevin Ollivier <kevino (a] theolliviers.com> 2065 2066 Reviewed by Darin Adler. 2067 2068 Make sure JS_EXPORT_PRIVATE is an empty define when we aren't using the export macros. 2069 2070 https://bugs.webkit.org/show_bug.cgi?id=27551 2071 2072 * config.h: 2073 2074 2011-04-06 Oliver Hunt <oliver (a] apple.com> 2075 2076 Reviewed by Gavin Barraclough. 2077 2078 Stop JSObject::isUsingInlineStorage() from using the structure 2079 https://bugs.webkit.org/show_bug.cgi?id=57986 2080 2081 Make the isUsingInlineStorage() implementation just look at 2082 whether the property storage is inside the object. 2083 2084 * runtime/JSObject.h: 2085 (JSC::JSObject::isUsingInlineStorage): 2086 (JSC::JSObject::JSObject): 2087 2088 2011-04-06 Gavin Barraclough <barraclough (a] apple.com> 2089 2090 Rubber stamped by Geoff Garen. 2091 2092 Update comments documenting JSVALUE64/JSVALUE32_64 JSValue representations. 2093 2094 * runtime/JSImmediate.h: 2095 * runtime/JSValue.h: 2096 2097 2011-04-06 Lucas De Marchi <lucas.demarchi (a] profusion.mobi> 2098 2099 cmake: Fix build for ARMv7 2100 2101 * CMakeLists.txt: add missing file. 2102 2103 2011-04-06 Liang Qi <liang.qi (a] nokia.com> 2104 2105 Reviewed by Benjamin Poulain. 2106 2107 Correct a include file name. 2108 https://bugs.webkit.org/show_bug.cgi?id=57839 2109 2110 * wtf/PageAllocatorSymbian.h: It should be case sensitive. This fix 2111 builds on Unix hosts. 2112 2113 2011-04-06 Adam Roben <aroben (a] apple.com> 2114 2115 Build fix after r83056 2116 2117 * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Added property svn:executable. 2118 2119 2011-04-06 Adam Roben <aroben (a] apple.com> 2120 2121 Move JavaScriptCoreGenerated's file-copying logic out to a new script 2122 2123 Hopefully this will make it easier to modify this logic in the future. I also made the 2124 script much quieter than the old logic, since it didn't seem helpful to see long lists of 2125 filenames during the copying phase. 2126 2127 If we like this new style, we could copy it for our other projects. 2128 2129 Fixes <http://webkit.org/b/57950> JavaScriptCoreGenerated's file-copying logic is hard to 2130 modify and noisy 2131 2132 Reviewed by Steve Falkenburg. 2133 2134 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Moved logic to copy 2135 files from here... 2136 * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: ...to here. (Added.) 2137 2138 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Added copy-files.cmd 2139 for convenience. 2140 2141 2011-04-05 Geoffrey Garen <ggaren (a] apple.com> 2142 2143 Try to fix the Windows build. 2144 2145 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Who likes export files? I do! 2146 2147 2011-04-05 Geoffrey Garen <ggaren (a] apple.com> 2148 2149 Reviewed by Oliver Hunt. 2150 2151 Introduced the concept of opaque roots, in preparation for marking the DOM with them 2152 https://bugs.webkit.org/show_bug.cgi?id=57903 2153 2154 * JavaScriptCore.exp: Who likes export files? I do! 2155 2156 * collector/handles/HandleHeap.cpp: 2157 (JSC::isValidWeakHandle): Factored out a helper function for ASSERTs. 2158 2159 (JSC::WeakHandleOwner::~WeakHandleOwner): Moved from header to avoid 2160 weak linkage problems. 2161 2162 (JSC::WeakHandleOwner::isReachableFromOpaqueRoots): New callback. 2163 Currently unused. 2164 2165 (JSC::WeakHandleOwner::finalize): Switched from pure virtual to a 2166 default empty implementation, since not all clients necessarily want 2167 or need non-trivial finalizers. 2168 2169 (JSC::HandleHeap::markWeakHandles): Split updateWeakHandles into two 2170 passes. The first pass marks all reachable weak handles. The second pass 2171 finalizes all unreachable weak handles. This must be two passes because 2172 we don't know the set of finalizable weak handles until we're done 2173 marking all weak handles. 2174 2175 (JSC::HandleHeap::finalizeWeakHandles): Use new helper function. 2176 2177 * collector/handles/HandleHeap.h: Ditto. 2178 2179 * runtime/Heap.cpp: 2180 (JSC::Heap::destroy): 2181 (JSC::Heap::markRoots): 2182 (JSC::Heap::reset): Split out handle marking from handle finalization. 2183 2184 * runtime/MarkStack.cpp: 2185 (JSC::MarkStack::reset): 2186 * runtime/MarkStack.h: 2187 (JSC::MarkStack::addOpaqueRoot): 2188 (JSC::MarkStack::containsOpaqueRoot): 2189 (JSC::MarkStack::opaqueRootCount): 2190 (JSC::HeapRootMarker::markStack): New helper functions for managing the 2191 set of opaque roots. 2192 2193 * runtime/WeakGCMap.h: 2194 (JSC::WeakGCMap::finalize): Renamed to match parent class declaration. 2195 2196 2011-04-05 Balazs Kelemen <kbalazs (a] webkit.org> 2197 2198 Reviewed by Darin Adler. 2199 2200 Build fix for YarrParser.h 2201 https://bugs.webkit.org/show_bug.cgi?id=57822 2202 2203 * yarr/YarrParser.h: 2204 (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate): 2205 2206 2011-04-05 Steve Falkenburg <sfalken (a] apple.com> 2207 2208 Follow-up Windows build fix. 2209 Don't skip react-to-vsprops-changes.py for all production builds, 2210 only those initiated via JavaScriptCore.make. 2211 2212 * JavaScriptCore.vcproj/JavaScriptCore.make: 2213 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: 2214 2215 2011-04-05 Oliver Hunt <oliver (a] apple.com> 2216 2217 Reviewed by Darin Adler. 2218 2219 REGRESSION (r82849): 85,000+ JSC-related leaks seen on SnowLeopard Intel Leaks 2220 https://bugs.webkit.org/show_bug.cgi?id=57857 2221 2222 Whoops, accidentally removed a deref(). 2223 2224 * bytecode/StructureStubInfo.cpp: 2225 (JSC::StructureStubInfo::deref): 2226 2227 2011-04-05 Steve Falkenburg <sfalken (a] apple.com> 2228 2229 Windows build fix. 2230 2231 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add per-configuration vsprops files. 2232 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Removed inheritance from common.vsprops. 2233 Set production environment variable before calling make. 2234 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebug.vsprops: Added. 2235 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugAll.vsprops: Added. 2236 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugCairoCFLite.vsprops: Added. 2237 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedProduction.vsprops: Added. 2238 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedRelease.vsprops: Added. 2239 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleaseCairoCFLite.vsprops: Added. 2240 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleasePGO.vsprops: Added. 2241 2242 2011-04-05 Oliver Hunt <oliver (a] apple.com> 2243 2244 Reviewed by Gavin Barraclough. 2245 2246 Make caches window show more info about non-jsobject GC values 2247 https://bugs.webkit.org/show_bug.cgi?id=57874 2248 2249 Add ClassInfo to the various internal JS types that currently 2250 don't have any, and make the text for caches window show the 2251 classname for non-JSObject instances. 2252 2253 * runtime/Executable.cpp: 2254 * runtime/Executable.h: 2255 (JSC::ExecutableBase::createStructure): 2256 (JSC::NativeExecutable::createStructure): 2257 (JSC::NativeExecutable::NativeExecutable): 2258 (JSC::EvalExecutable::createStructure): 2259 (JSC::ProgramExecutable::createStructure): 2260 (JSC::FunctionExecutable::createStructure): 2261 * runtime/Heap.cpp: 2262 (JSC::TypeCounter::typeName): 2263 * runtime/JSGlobalData.cpp: 2264 (JSC::JSGlobalData::JSGlobalData): 2265 * runtime/JSGlobalData.h: 2266 * runtime/ScopeChain.cpp: 2267 * runtime/ScopeChain.h: 2268 (JSC::ScopeChainNode::createStructure): 2269 * runtime/StructureChain.cpp: 2270 * runtime/StructureChain.h: 2271 (JSC::StructureChain::createStructure): 2272 2273 2011-04-05 Nikolas Zimmermann <nzimmermann (a] rim.com> 2274 2275 Reviewed by Andreas Kling. 2276 2277 Cleanup StringConcatenate 2278 https://bugs.webkit.org/show_bug.cgi?id=57836 2279 2280 Don't use PassRefPtr in local variables, properly store in RefPtrs and release on return. 2281 Add a makeString() variant taking 9 arguments, needed by a follow-up patch. 2282 2283 * wtf/text/StringConcatenate.h: 2284 (WTF::tryMakeString): 2285 (WTF::makeString): 2286 2287 2011-04-04 Sheriff Bot <webkit.review.bot (a] gmail.com> 2288 2289 Unreviewed, rolling out r82876. 2290 http://trac.webkit.org/changeset/82876 2291 https://bugs.webkit.org/show_bug.cgi?id=57816 2292 2293 Caused a lot of test crashes (Requested by tkent on #webkit). 2294 2295 * JavaScriptCore.exp: 2296 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 2297 * wtf/FastMalloc.cpp: 2298 (WTF::tryFastMalloc): 2299 (WTF::fastMalloc): 2300 (WTF::tryFastCalloc): 2301 (WTF::fastCalloc): 2302 (WTF::fastFree): 2303 (WTF::tryFastRealloc): 2304 (WTF::fastRealloc): 2305 (WTF::fastMallocSize): 2306 (WTF::TCMalloc_PageHeap::isScavengerSuspended): 2307 (WTF::TCMalloc_PageHeap::scheduleScavenger): 2308 (WTF::TCMalloc_PageHeap::suspendScavenger): 2309 (WTF::TCMalloc_PageHeap::signalScavenger): 2310 (WTF::TCMallocStats::malloc): 2311 (WTF::TCMallocStats::free): 2312 (WTF::TCMallocStats::fastCalloc): 2313 (WTF::TCMallocStats::tryFastCalloc): 2314 (WTF::TCMallocStats::calloc): 2315 (WTF::TCMallocStats::fastRealloc): 2316 (WTF::TCMallocStats::tryFastRealloc): 2317 (WTF::TCMallocStats::realloc): 2318 (WTF::TCMallocStats::fastMallocSize): 2319 * wtf/FastMalloc.h: 2320 (WTF::Internal::fastMallocMatchValidationType): 2321 (WTF::Internal::fastMallocMatchValidationValue): 2322 (WTF::Internal::setFastMallocMatchValidationType): 2323 (WTF::fastMallocMatchValidateFree): 2324 * wtf/Platform.h: 2325 2326 2011-04-04 Oliver Hunt <oliver (a] apple.com> 2327 2328 Reviewed by Antti Koivisto. 2329 2330 Stop JSCell.h from including Structure.h 2331 https://bugs.webkit.org/show_bug.cgi?id=57809 2332 2333 * runtime/GetterSetter.h: 2334 * runtime/JSAPIValueWrapper.h: 2335 * runtime/JSCell.h: 2336 (JSC::JSCell::JSValue::toThisObject): 2337 * runtime/JSString.h: 2338 * runtime/ScopeChain.h: 2339 * runtime/Structure.h: 2340 (JSC::JSCell::isObject): 2341 (JSC::JSCell::isString): 2342 (JSC::JSCell::classInfo): 2343 (JSC::JSCell::createDummyStructure): 2344 (JSC::JSValue::needsThisConversion): 2345 (JSC::MarkStack::internalAppend): 2346 * runtime/StructureChain.h: 2347 2348 2011-04-04 Oliver Hunt <oliver (a] apple.com> 2349 2350 Fix clang build. 2351 2352 * wtf/FastMalloc.cpp: 2353 (WTF::fastMalloc): 2354 (WTF::fastCalloc): 2355 (WTF::fastRealloc): 2356 2357 2011-04-04 Oliver Hunt <oliver (a] apple.com> 2358 2359 Remove accidental change to Platform.h 2360 2361 * wtf/Platform.h: 2362 2363 2011-04-04 Geoffrey Garen <ggaren (a] apple.com> 2364 2365 Reviewed by Oliver Hunt. 2366 2367 Fixed a weak-handle-related leak in RegisterFile 2368 https://bugs.webkit.org/show_bug.cgi?id=57793 2369 2370 * interpreter/RegisterFile.cpp: Nixed leaky GlobalObjectNotifier. 2371 * interpreter/RegisterFile.h: 2372 (JSC::RegisterFile::GlobalObjectOwner::finalize): 2373 (JSC::RegisterFile::RegisterFile): Replaced GlobalObjectNotifier with 2374 a per-RegisterFile weak handle owner, which does not leak. 2375 2376 * runtime/WeakGCPtr.h: 2377 (JSC::WeakGCPtr::set): Allow set() to take a context argument, since 2378 RegisterFile now needs this. (Seems like it was an accidental omission 2379 all along.) 2380 2381 2011-04-04 Oliver Hunt <oliver (a] apple.com> 2382 2383 Reviewed by Geoffrey Garen. 2384 2385 Make malloc validation useful 2386 https://bugs.webkit.org/show_bug.cgi?id=57502 2387 2388 This patch changes FAST_MALLOC_MATCH_VALIDATION with a general 2389 corruption check that tags the beginning and end of all allocations 2390 to check for write overflows and overwrites the contents of 2391 memory on free in order to (hopefully) show up use-after-free issues 2392 sooner. 2393 2394 We also turn it on by default for debug builds. 2395 2396 * JavaScriptCore.exp: 2397 * wtf/FastMalloc.cpp: 2398 (WTF::tryFastMalloc): 2399 (WTF::fastMalloc): 2400 (WTF::tryFastCalloc): 2401 (WTF::fastCalloc): 2402 (WTF::fastFree): 2403 (WTF::tryFastRealloc): 2404 (WTF::fastRealloc): 2405 (WTF::TCMalloc_PageHeap::isScavengerSuspended): 2406 (WTF::TCMalloc_PageHeap::scheduleScavenger): 2407 (WTF::TCMalloc_PageHeap::suspendScavenger): 2408 (WTF::TCMalloc_PageHeap::signalScavenger): 2409 (WTF::TCMallocStats::malloc): 2410 (WTF::TCMallocStats::free): 2411 (WTF::TCMallocStats::fastCalloc): 2412 (WTF::TCMallocStats::tryFastCalloc): 2413 (WTF::TCMallocStats::calloc): 2414 (WTF::TCMallocStats::fastRealloc): 2415 (WTF::TCMallocStats::tryFastRealloc): 2416 (WTF::TCMallocStats::realloc): 2417 * wtf/FastMalloc.h: 2418 (WTF::Internal::fastMallocValidationHeader): 2419 (WTF::Internal::fastMallocValidationSuffix): 2420 (WTF::Internal::fastMallocMatchValidationType): 2421 (WTF::Internal::setFastMallocMatchValidationType): 2422 (WTF::fastMallocMatchValidateFree): 2423 (WTF::fastMallocValidate): 2424 * wtf/Platform.h: 2425 2426 2011-04-04 Geoffrey Garen <ggaren (a] apple.com> 2427 2428 Reviewed by Oliver Hunt. 2429 2430 Renamed clearWeakPointers => updateWeakHandles and removed misleading comment 2431 https://bugs.webkit.org/show_bug.cgi?id=57790 2432 2433 * collector/handles/HandleHeap.cpp: 2434 (JSC::HandleHeap::updateWeakHandles): Updated for rename. 2435 2436 * collector/handles/HandleHeap.h: Removed comment claiming that this 2437 function should only be called during teardown, because it's actually 2438 called after every GC pass. 2439 2440 * runtime/Heap.cpp: 2441 (JSC::Heap::destroy): 2442 (JSC::Heap::markRoots): Updated for rename. 2443 2444 2011-04-04 Geoffrey Garen <ggaren (a] apple.com> 2445 2446 Reviewed by Oliver Hunt. 2447 2448 Standardized handling of handles for immediate values 2449 https://bugs.webkit.org/show_bug.cgi?id=57788 2450 2451 * collector/handles/HandleHeap.cpp: 2452 (JSC::HandleHeap::clearWeakPointers): Don't check for null or non-cell 2453 values here, because our write barrier guarantees that such values are 2454 not in the weak list. 2455 2456 (JSC::HandleHeap::writeBarrier): Standardized on checking for null before 2457 checking for cell, and on using early return instead of if/else. 2458 2459 * collector/handles/HandleHeap.h: 2460 (JSC::HandleHeap::deallocate): 2461 (JSC::HandleHeap::makeWeak): Ditto. 2462 2463 2011-04-04 Geoffrey Garen <ggaren (a] apple.com> 2464 2465 Not reviewed. 2466 2467 Removed a redundant variable from HandleHeap 2468 https://bugs.webkit.org/show_bug.cgi?id=57786 2469 2470 Forgot to commit the file that actually removes the data member! 2471 2472 * collector/handles/HandleHeap.h: 2473 2474 2011-04-04 Geoffrey Garen <ggaren (a] apple.com> 2475 2476 Reviewed by Oliver Hunt. 2477 2478 Removed a redundant variable from HandleHeap 2479 https://bugs.webkit.org/show_bug.cgi?id=57786 2480 2481 We don't need a specific variable to indicate that we're in the middle 2482 of the finalization phase, since m_nextToFinalize already does this. 2483 2484 * collector/handles/HandleHeap.cpp: 2485 (JSC::HandleHeap::HandleHeap): 2486 (JSC::HandleHeap::clearWeakPointers): 2487 (JSC::HandleHeap::writeBarrier): 2488 2489 2011-04-04 Geoffrey Garen <ggaren (a] apple.com> 2490 2491 Reviewed by Oliver Hunt. 2492 2493 Renamed Finalizer => WeakHandleOwner (in preparation for adding a reachability callback) 2494 https://bugs.webkit.org/show_bug.cgi?id=57775 2495 2496 Also renamed noFinalizer => emptyWeakOwner, since this is really an 2497 optimization for a weak owner with empty callbacks. 2498 2499 * collector/handles/HandleHeap.cpp: 2500 (JSC::HandleHeap::clearWeakPointers): Updated for renames. Removed 2501 redundant initialization of m_nextToFinalize. Moved deletion check inside 2502 weak owner check, since the weak owner can't delete the node if there is 2503 no weak owner! 2504 2505 * collector/handles/HandleHeap.h: 2506 (JSC::WeakHandleOwner::~WeakHandleOwner): 2507 (JSC::HandleHeap::makeWeak): Updated for renames. 2508 2509 (JSC::HandleHeap::hasWeakOwner): Changed getFinalizer to hasWeakOwner, 2510 to clarify this function's role in assertions. 2511 2512 (JSC::HandleHeap::Node::Node): 2513 (JSC::HandleHeap::Node::makeWeak): 2514 (JSC::HandleHeap::Node::isWeak): 2515 (JSC::HandleHeap::Node::weakOwner): 2516 (JSC::HandleHeap::Node::weakOwnerContext): 2517 (JSC::HandleHeap::Node::emptyWeakOwner): 2518 * interpreter/RegisterFile.cpp: 2519 (JSC::RegisterFile::globalObjectCollectedNotifier): 2520 * interpreter/RegisterFile.h: 2521 * runtime/WeakGCMap.h: 2522 * runtime/WeakGCPtr.h: 2523 (JSC::WeakGCPtr::WeakGCPtr): 2524 (JSC::WeakGCPtr::set): Updated for renames. 2525 2526 2011-04-04 Oliver Hunt <oliver (a] apple.com> 2527 2528 Fix WinCE build. 2529 2530 * bytecode/Instruction.h: 2531 * interpreter/Interpreter.cpp: 2532 (JSC::Interpreter::tryCachePutByID): 2533 (JSC::Interpreter::tryCacheGetByID): 2534 2535 2011-04-04 Adam Roben <aroben (a] apple.com> 2536 2537 Delete mt.dep files when doing a clean build due to .vsprops file changes 2538 2539 Apparently this is yet another file that Visual Studio can't figure out it needs to rebuild. 2540 2541 Fixes <http://webkit.org/b/57777> r82850 failed to build on Windows Debug (Build) 2542 2543 Reviewed by Brian Weinstein. 2544 2545 * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: 2546 (main): Added dep to the list of extensions we look for when choosing files to delete. 2547 2548 2011-04-01 Oliver Hunt <oliver (a] apple.com> 2549 2550 Reviewed by Geoffrey Garen. 2551 2552 Make StructureChain GC allocated 2553 https://bugs.webkit.org/show_bug.cgi?id=56695 2554 2555 Make StructureChain GC allocated, and make the various owners 2556 mark it correctly. 2557 2558 * JavaScriptCore.exp: 2559 * bytecode/CodeBlock.cpp: 2560 (JSC::CodeBlock::dump): 2561 (JSC::CodeBlock::derefStructures): 2562 (JSC::CodeBlock::refStructures): 2563 (JSC::CodeBlock::markAggregate): 2564 * bytecode/Instruction.h: 2565 (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): 2566 (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): 2567 (JSC::PolymorphicAccessStructureList::derefStructures): 2568 (JSC::PolymorphicAccessStructureList::markAggregate): 2569 (JSC::Instruction::Instruction): 2570 * bytecode/StructureStubInfo.cpp: 2571 (JSC::StructureStubInfo::deref): 2572 (JSC::StructureStubInfo::markAggregate): 2573 * bytecode/StructureStubInfo.h: 2574 (JSC::StructureStubInfo::initGetByIdChain): 2575 (JSC::StructureStubInfo::initPutByIdTransition): 2576 * bytecompiler/BytecodeGenerator.cpp: 2577 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): 2578 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): 2579 * collector/handles/Handle.h: 2580 (JSC::HandleConverter::operator->): 2581 (JSC::HandleConverter::operator*): 2582 * interpreter/Interpreter.cpp: 2583 (JSC::Interpreter::privateExecute): 2584 * jit/JITOpcodes.cpp: 2585 (JSC::JIT::emit_op_jneq_ptr): 2586 * jit/JITOpcodes32_64.cpp: 2587 (JSC::JIT::emit_op_jneq_ptr): 2588 * jit/JITPropertyAccess.cpp: 2589 (JSC::JIT::privateCompileGetByIdChainList): 2590 * jit/JITPropertyAccess32_64.cpp: 2591 (JSC::JIT::privateCompileGetByIdChainList): 2592 * jit/JITStubs.cpp: 2593 (JSC::JITThunks::tryCachePutByID): 2594 (JSC::JITThunks::tryCacheGetByID): 2595 (JSC::getPolymorphicAccessStructureListSlot): 2596 (JSC::DEFINE_STUB_FUNCTION): 2597 * runtime/JSCell.h: 2598 * runtime/JSGlobalData.cpp: 2599 (JSC::JSGlobalData::JSGlobalData): 2600 * runtime/JSGlobalData.h: 2601 * runtime/JSGlobalObject.cpp: 2602 (JSC::markIfNeeded): 2603 * runtime/JSGlobalObject.h: 2604 (JSC::Structure::prototypeChain): 2605 * runtime/JSObject.h: 2606 (JSC::JSObject::putDirectInternal): 2607 (JSC::JSObject::markChildrenDirect): 2608 * runtime/JSPropertyNameIterator.cpp: 2609 (JSC::JSPropertyNameIterator::create): 2610 (JSC::JSPropertyNameIterator::get): 2611 (JSC::JSPropertyNameIterator::markChildren): 2612 * runtime/JSPropertyNameIterator.h: 2613 (JSC::JSPropertyNameIterator::setCachedPrototypeChain): 2614 * runtime/JSZombie.cpp: 2615 (JSC::JSZombie::leakedZombieStructure): 2616 * runtime/JSZombie.h: 2617 * runtime/MarkStack.h: 2618 (JSC::MarkStack::append): 2619 * runtime/MarkedBlock.cpp: 2620 (JSC::MarkedBlock::sweep): 2621 * runtime/Structure.cpp: 2622 (JSC::Structure::addPropertyTransition): 2623 * runtime/Structure.h: 2624 (JSC::Structure::markAggregate): 2625 * runtime/StructureChain.cpp: 2626 (JSC::StructureChain::StructureChain): 2627 (JSC::StructureChain::~StructureChain): 2628 (JSC::StructureChain::markChildren): 2629 * runtime/StructureChain.h: 2630 (JSC::StructureChain::create): 2631 (JSC::StructureChain::createStructure): 2632 * runtime/WriteBarrier.h: 2633 (JSC::WriteBarrierBase::get): 2634 (JSC::WriteBarrierBase::operator*): 2635 (JSC::WriteBarrierBase::operator->): 2636 2637 2011-04-01 Geoffrey Garen <ggaren (a] apple.com> 2638 2639 Reviewed by Oliver Hunt. 2640 2641 Removed some complexity from HandleHeap 2642 https://bugs.webkit.org/show_bug.cgi?id=57650 2643 2644 Eliminated pointer-tagging flags. 2645 2646 Tied being weak to having a finalizer (or at least a finalizer sentinel). 2647 2648 * collector/handles/HandleHeap.cpp: 2649 (JSC::HandleHeap::clearWeakPointers): Removed the special self-destroying 2650 flag. It was unused. If we bring it back, we'll probably use a shared 2651 autodeallocating finalizer instead. 2652 2653 * collector/handles/HandleHeap.h: 2654 (JSC::HandleHeap::makeWeak): makeWeak and adding a finalizer are now 2655 a single, atomic operation -- this makes the relationship between 2656 finalizers and weak pointers clearer, and impossible to get wrong. 2657 2658 (JSC::HandleHeap::Node::Node): 2659 (JSC::HandleHeap::Node::handleHeap): No more flags. 2660 2661 (JSC::HandleHeap::Node::makeWeak): 2662 (JSC::HandleHeap::Node::isWeak): Ditto above. We use a special sentienl 2663 value in the finalizer slot to indicate that a handle is weak but doesn't 2664 require an external function call for finalization. 2665 2666 2011-04-01 Geoffrey Garen <ggaren (a] apple.com> 2667 2668 Reviewed by Oliver Hunt. 2669 2670 Removed WeakGCMap::deprecatedRemove because it was deprecated and unused 2671 https://bugs.webkit.org/show_bug.cgi?id=57648 2672 2673 * runtime/WeakGCMap.h: 2674 2675 2011-04-01 Adam Roben <aroben (a] apple.com> 2676 2677 Maintain the invariant that Lexer::m_current is set to -1 when at the end of the code buffer 2678 2679 Covered by existing tests. 2680 2681 Fixes <http://webkit.org/b/56699>. 2682 2683 Reviewed by Oliver Hunt. 2684 2685 * parser/Lexer.h: 2686 (JSC::Lexer::setOffset): Copied code from Lexer::shift to update m_current, because 2687 supposedly the idiom that function uses is fast. 2688 2689 2011-03-31 Thouraya ANDOLSI <thouraya.andolsi (a] st.com> 2690 2691 Reviewed by Oliver Hunt. 2692 2693 SH4 JIT SUPPORT. 2694 https://bugs.webkit.org/show_bug.cgi?id=44329 2695 2696 Add YARR support for SH4 platforms (disabled by default). 2697 2698 * GNUmakefile.am: 2699 * assembler/MacroAssembler.h: 2700 * assembler/MacroAssemblerSH4.cpp: Added. 2701 * assembler/MacroAssemblerSH4.h: Added. 2702 * assembler/SH4Assembler.h: Added. 2703 * yarr/YarrJIT.cpp: 2704 2705 2011-03-30 Adam Roben <aroben (a] apple.com> 2706 2707 Clean build fix 2708 2709 * JavaScriptCore.vcproj/JavaScriptCore.sln: Serialized project dependencies so projects 2710 don't try to build in parallel (which doesn't mesh with our buildfailed mechanism). 2711 2712 2011-03-30 Oliver Hunt <oliver (a] apple.com> 2713 2714 Rollout r82500 2715 2716 * bytecode/CodeBlock.cpp: 2717 (JSC::CodeBlock::dump): 2718 (JSC::CodeBlock::derefStructures): 2719 (JSC::CodeBlock::refStructures): 2720 (JSC::CodeBlock::markAggregate): 2721 * bytecode/Instruction.h: 2722 (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): 2723 (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): 2724 (JSC::PolymorphicAccessStructureList::derefStructures): 2725 (JSC::Instruction::Instruction): 2726 * bytecode/StructureStubInfo.cpp: 2727 (JSC::StructureStubInfo::deref): 2728 * bytecode/StructureStubInfo.h: 2729 (JSC::StructureStubInfo::initGetByIdChain): 2730 (JSC::StructureStubInfo::initPutByIdTransition): 2731 * bytecompiler/BytecodeGenerator.cpp: 2732 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): 2733 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): 2734 * interpreter/Interpreter.cpp: 2735 (JSC::Interpreter::privateExecute): 2736 * jit/JITOpcodes.cpp: 2737 (JSC::JIT::emit_op_jneq_ptr): 2738 * jit/JITOpcodes32_64.cpp: 2739 (JSC::JIT::emit_op_jneq_ptr): 2740 * jit/JITPropertyAccess.cpp: 2741 (JSC::JIT::privateCompileGetByIdChainList): 2742 * jit/JITPropertyAccess32_64.cpp: 2743 (JSC::JIT::privateCompileGetByIdChainList): 2744 * jit/JITStubs.cpp: 2745 (JSC::getPolymorphicAccessStructureListSlot): 2746 (JSC::DEFINE_STUB_FUNCTION): 2747 * runtime/JSCell.h: 2748 * runtime/JSGlobalData.cpp: 2749 (JSC::JSGlobalData::JSGlobalData): 2750 * runtime/JSGlobalData.h: 2751 * runtime/JSGlobalObject.cpp: 2752 (JSC::markIfNeeded): 2753 * runtime/JSGlobalObject.h: 2754 (JSC::Structure::prototypeChain): 2755 * runtime/JSObject.h: 2756 (JSC::JSObject::markChildrenDirect): 2757 * runtime/JSPropertyNameIterator.cpp: 2758 (JSC::JSPropertyNameIterator::create): 2759 (JSC::JSPropertyNameIterator::get): 2760 (JSC::JSPropertyNameIterator::markChildren): 2761 * runtime/JSPropertyNameIterator.h: 2762 (JSC::JSPropertyNameIterator::setCachedPrototypeChain): 2763 * runtime/MarkStack.h: 2764 (JSC::MarkStack::append): 2765 * runtime/Structure.h: 2766 * runtime/StructureChain.cpp: 2767 (JSC::StructureChain::StructureChain): 2768 * runtime/StructureChain.h: 2769 (JSC::StructureChain::create): 2770 2771 2011-03-29 Matthew Delaney <mdelaney (a] apple.com> 2772 2773 Reviewed by Simon Fraser. 2774 2775 Use the Accelerate vImage vectorized (un)premultiplyImageData functions for ImageBufferCG 2776 2777 https://bugs.webkit.org/show_bug.cgi?id=53134 2778 2779 * wtf/Platform.h: Added in WTF flag for using the Accelerate framework 2780 2781 2011-03-30 Steve Falkenburg <sfalken (a] apple.com> 2782 2783 Reviewed by Adam Roben. 2784 2785 Share most vsprops between Release and Production builds in releaseproduction.vsprops 2786 https://bugs.webkit.org/show_bug.cgi?id=57508 2787 2788 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: 2789 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops: 2790 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops: 2791 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: 2792 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: 2793 * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: 2794 * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops: 2795 * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops: 2796 * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: 2797 * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: 2798 * JavaScriptCore.vcproj/jsc/jscRelease.vsprops: 2799 * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops: 2800 * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: 2801 * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: 2802 * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops: 2803 * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops: 2804 2805 2011-03-30 Mark Rowe <mrowe (a] apple.com> 2806 2807 Reviewed by Adam Roben. 2808 2809 Explicitly prevent testapi and minidom from being installed rather than relying 2810 on Xcode's current behavior of not installing if INSTALL_PATH is not explicitly 2811 set at the target level. 2812 2813 <rdar://problem/9206357> 2814 2815 * JavaScriptCore.xcodeproj/project.pbxproj: 2816 2817 2011-03-30 Timur Iskhodzhanov <timurrrr (a] google.com> 2818 2819 Reviewed by Alexey Proskuryakov. 2820 2821 Add some dynamic annotations to JavaScriptCore/wtf 2822 https://bugs.webkit.org/show_bug.cgi?id=53747 2823 2824 By using these annotations we can improve the precision of finding 2825 WebKit errors using dynamic analysis tools like ThreadSanitizer and Valgrind. 2826 These annotations don't affect the compiled binaries unless USE(DYNAMIC_ANNOTATIONS) is "1". 2827 2828 These files don't add new functionality, so don't need extra tests. 2829 2830 * GNUmakefile.am: 2831 * JavaScriptCore.gypi: 2832 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 2833 * JavaScriptCore.xcodeproj/project.pbxproj: 2834 * wtf/CMakeLists.txt: 2835 * wtf/DynamicAnnotations.cpp: Added. 2836 (WTFAnnotateBenignRaceSized): 2837 (WTFAnnotateHappensBefore): 2838 (WTFAnnotateHappensAfter): 2839 * wtf/DynamicAnnotations.h: Added. 2840 * wtf/ThreadSafeRefCounted.h: 2841 (WTF::ThreadSafeRefCountedBase::derefBase): 2842 * wtf/text/StringStatics.cpp: 2843 (WTF::StringImpl::empty): 2844 2845 2011-03-30 Oliver Hunt <oliver (a] apple.com> 2846 2847 Reviewed by Geoffrey Garen. 2848 2849 Make StructureChain GC allocated 2850 https://bugs.webkit.org/show_bug.cgi?id=56695 2851 2852 Make StructureChain GC allocated, and make the various owners 2853 mark it correctly. 2854 2855 * bytecode/CodeBlock.cpp: 2856 (JSC::CodeBlock::dump): 2857 (JSC::CodeBlock::derefStructures): 2858 (JSC::CodeBlock::refStructures): 2859 (JSC::CodeBlock::markAggregate): 2860 * bytecode/Instruction.h: 2861 (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): 2862 (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): 2863 (JSC::PolymorphicAccessStructureList::derefStructures): 2864 (JSC::PolymorphicAccessStructureList::markAggregate): 2865 (JSC::Instruction::Instruction): 2866 * bytecode/StructureStubInfo.cpp: 2867 (JSC::StructureStubInfo::deref): 2868 (JSC::StructureStubInfo::markAggregate): 2869 * bytecode/StructureStubInfo.h: 2870 (JSC::StructureStubInfo::initGetByIdChain): 2871 (JSC::StructureStubInfo::initPutByIdTransition): 2872 * bytecompiler/BytecodeGenerator.cpp: 2873 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): 2874 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): 2875 * interpreter/Interpreter.cpp: 2876 (JSC::Interpreter::privateExecute): 2877 * jit/JITOpcodes.cpp: 2878 (JSC::JIT::emit_op_jneq_ptr): 2879 * jit/JITOpcodes32_64.cpp: 2880 (JSC::JIT::emit_op_jneq_ptr): 2881 * jit/JITPropertyAccess.cpp: 2882 (JSC::JIT::privateCompileGetByIdChainList): 2883 * jit/JITPropertyAccess32_64.cpp: 2884 (JSC::JIT::privateCompileGetByIdChainList): 2885 * jit/JITStubs.cpp: 2886 (JSC::getPolymorphicAccessStructureListSlot): 2887 (JSC::DEFINE_STUB_FUNCTION): 2888 * runtime/JSCell.h: 2889 * runtime/JSGlobalData.cpp: 2890 (JSC::JSGlobalData::JSGlobalData): 2891 * runtime/JSGlobalData.h: 2892 * runtime/JSGlobalObject.cpp: 2893 (JSC::markIfNeeded): 2894 * runtime/JSGlobalObject.h: 2895 (JSC::Structure::prototypeChain): 2896 * runtime/JSObject.h: 2897 (JSC::JSObject::markChildrenDirect): 2898 * runtime/JSPropertyNameIterator.cpp: 2899 (JSC::JSPropertyNameIterator::create): 2900 (JSC::JSPropertyNameIterator::get): 2901 (JSC::JSPropertyNameIterator::markChildren): 2902 * runtime/JSPropertyNameIterator.h: 2903 (JSC::JSPropertyNameIterator::setCachedPrototypeChain): 2904 * runtime/MarkStack.h: 2905 (JSC::MarkStack::append): 2906 * runtime/Structure.h: 2907 (JSC::Structure::cachedPrototypeChainSlot): 2908 * runtime/StructureChain.cpp: 2909 (JSC::StructureChain::StructureChain): 2910 * runtime/StructureChain.h: 2911 (JSC::StructureChain::create): 2912 (JSC::StructureChain::createStructure): 2913 2914 2011-03-30 Steve Falkenburg <sfalken (a] apple.com> 2915 2916 Reviewed by Adam Roben. 2917 2918 Update Windows production build logic for new production configurations 2919 https://bugs.webkit.org/show_bug.cgi?id=57494 2920 2921 * JavaScriptCore.vcproj/JavaScriptCore.make: 2922 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: 2923 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: 2924 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: 2925 * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: 2926 * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: 2927 * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: 2928 * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: 2929 * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: 2930 2931 2011-03-30 Steve Falkenburg <sfalken (a] apple.com> 2932 2933 Reviewed by Adam Roben. 2934 2935 Rename Windows configuration Release_LTCG to Production for clarity 2936 https://bugs.webkit.org/show_bug.cgi?id=57465 2937 2938 * JavaScriptCore.vcproj/JavaScriptCore.sln: 2939 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 2940 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: 2941 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops. 2942 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Removed. 2943 * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: 2944 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 2945 * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops. 2946 * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Removed. 2947 * JavaScriptCore.vcproj/jsc/jsc.vcproj: 2948 * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops. 2949 * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Removed. 2950 * JavaScriptCore.vcproj/testapi/testapi.vcproj: 2951 * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops. 2952 * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Removed. 2953 2954 2011-03-30 Zoltan Herczeg <zherczeg (a] inf.u-szeged.hu> 2955 2956 Reviewed by Maciej Stachowiak. 2957 2958 Add the NEXT_OPCODE() macro to the DFG-JIT parser 2959 https://bugs.webkit.org/show_bug.cgi?id=57322 2960 2961 In JavaScriptCore we use macros to jump to the next opcode 2962 (both in interpreter and JIT). This macro is added to the 2963 DFG-JIT parser as well. 2964 2965 * dfg/DFGByteCodeParser.cpp: 2966 (JSC::DFG::ByteCodeParser::parse): 2967 2968 2011-03-29 Geoffrey Garen <ggaren (a] apple.com> 2969 2970 Reviewed by Darin Adler. 2971 2972 ~25% regression on v8-splay in the SunSpider harness 2973 https://bugs.webkit.org/show_bug.cgi?id=56128 2974 2975 I'm not sure if this is the root cause of the regression Stephanie 2976 measured, but it seems to get us back to previous v8-splay times. 2977 2978 SunSpider reports no change. v8-splay says 41% faster. 2979 2980 * runtime/Heap.cpp: 2981 (JSC::Heap::reset): Make marking proportional to 1X the size of the heap, 2982 not .5X the size of the heap. When the heap is large, this makes a big 2983 difference. (Our old heap growth policy matched this. You can see by 2984 looking at resizeBlocks in revisions prior to r77699.) 2985 2986 2011-03-29 Steve Falkenburg <sfalken (a] apple.com> 2987 2988 Reviewed by Darin Adler. 2989 2990 Use per-configuration vsprops in JavaScriptCore to avoid WebKitVSPropsRedirectionDir removal by MSVC IDE 2991 https://bugs.webkit.org/show_bug.cgi?id=57350 2992 2993 Visual Studio's IDE was removing instances of $(WebKitVSPropsRedirectionDir) from 2994 InheritedPropertySheet rules in our vcproj files when the vcproj was edited from within 2995 the IDE. To avoid this, add a separate vsprops file for each project configuration that 2996 contains the required inherited property sheets. 2997 2998 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 2999 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebug.vsprops: Added. 3000 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugAll.vsprops: Added. 3001 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugCairoCFLite.vsprops: Added. 3002 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops: Added. 3003 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops: Added. 3004 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Added. 3005 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: Added. 3006 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: Added. 3007 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 3008 * JavaScriptCore.vcproj/WTF/WTFDebug.vsprops: Added. 3009 * JavaScriptCore.vcproj/WTF/WTFDebugAll.vsprops: Added. 3010 * JavaScriptCore.vcproj/WTF/WTFDebugCairoCFLite.vsprops: Added. 3011 * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops: Added. 3012 * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops: Added. 3013 * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Added. 3014 * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: Added. 3015 * JavaScriptCore.vcproj/jsc/jsc.vcproj: 3016 * JavaScriptCore.vcproj/jsc/jscDebug.vsprops: Added. 3017 * JavaScriptCore.vcproj/jsc/jscDebugAll.vsprops: Added. 3018 * JavaScriptCore.vcproj/jsc/jscDebugCairoCFLite.vsprops: Added. 3019 * JavaScriptCore.vcproj/jsc/jscRelease.vsprops: Added. 3020 * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops: Added. 3021 * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Added. 3022 * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: Added. 3023 * JavaScriptCore.vcproj/testapi/testapi.vcproj: 3024 * JavaScriptCore.vcproj/testapi/testapiDebug.vsprops: Added. 3025 * JavaScriptCore.vcproj/testapi/testapiDebugAll.vsprops: Added. 3026 * JavaScriptCore.vcproj/testapi/testapiDebugCairoCFLite.vsprops: Added. 3027 * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops: Added. 3028 * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops: Added. 3029 * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Added. 3030 3031 2011-03-29 Oliver Hunt <oliver (a] apple.com> 3032 3033 Reviewed by Eric Seidel. 3034 3035 REGRESSION(r82173): Causes assertion and test failures in run-javascriptcore-tests on Windows (Requested by aroben on #webkit). 3036 https://bugs.webkit.org/show_bug.cgi?id=57333 3037 3038 constructDate now takes the global object explicitly as it may be called 3039 by functions other than the constructor itself. 3040 3041 * API/JSObjectRef.cpp: 3042 (JSObjectMakeDate): 3043 * runtime/DateConstructor.cpp: 3044 (JSC::constructDate): 3045 (JSC::constructWithDateConstructor): 3046 * runtime/DateConstructor.h: 3047 3048 2011-03-29 Ben Taylor <bentaylor.solx86 (a] gmail.com> 3049 3050 Reviewed by Benjamin Poulain. 3051 3052 https://bugs.webkit.org/show_bug.cgi?id=41953 3053 3054 Fix compile error on Solaris 10/Sun Studio 12 CC emanating from MathExtras.h 3055 3056 * wtf/MathExtras.h: 3057 3058 2011-03-29 Ben Taylor <bentaylor.solx86 (a] gmail.com> 3059 3060 Reviewed by Darin Adler. 3061 3062 https://bugs.webkit.org/show_bug.cgi?id=57231 3063 Add conditional for SUNCC supporting alignment macros 3064 3065 Compile fix for Solaris 10/Sun Studio 12 CC 3066 3067 * wtf/Vector.h: 3068 3069 2011-03-29 Ben Taylor <bentaylor.solx86 (a] gmail.com> 3070 3071 Reviewed by Darin Adler. 3072 3073 https://bugs.webkit.org/show_bug.cgi?id=57256 3074 3075 Fix crash on misaligned reads on Solaris 10/Sparc 3076 3077 * wtf/text/AtomicString.cpp: 3078 (WTF::equal): 3079 3080 2011-03-28 Oliver Hunt <oliver (a] apple.com> 3081 3082 Reviewed by Geoffrey Garen. 3083 3084 instanceof Array test fails when using iframes 3085 https://bugs.webkit.org/show_bug.cgi?id=17250 3086 3087 This is a problem with all built in constructors, the use of 3088 lexicalGlobalObject rather than the constructors own 3089 global object reference means that a builtin will always use 3090 the prototype from the lexical global object rather than that 3091 of the constructors origin. 3092 3093 * API/JSObjectRef.cpp: 3094 (JSObjectMakeFunction): 3095 (JSObjectMakeRegExp): 3096 * JavaScriptCore.exp: 3097 * runtime/ArrayConstructor.cpp: 3098 (JSC::constructArrayWithSizeQuirk): 3099 * runtime/BooleanConstructor.cpp: 3100 (JSC::constructBoolean): 3101 (JSC::constructBooleanFromImmediateBoolean): 3102 * runtime/BooleanConstructor.h: 3103 * runtime/DateConstructor.cpp: 3104 (JSC::constructDate): 3105 * runtime/DateInstance.cpp: 3106 * runtime/DateInstance.h: 3107 * runtime/ErrorConstructor.cpp: 3108 (JSC::constructWithErrorConstructor): 3109 (JSC::callErrorConstructor): 3110 * runtime/FunctionConstructor.cpp: 3111 (JSC::constructWithFunctionConstructor): 3112 (JSC::callFunctionConstructor): 3113 (JSC::constructFunction): 3114 * runtime/FunctionConstructor.h: 3115 * runtime/JSCell.cpp: 3116 (JSC::JSCell::getOwnPropertySlot): 3117 (JSC::JSCell::put): 3118 (JSC::JSCell::deleteProperty): 3119 (JSC::JSCell::toThisObject): 3120 (JSC::JSCell::toObject): 3121 * runtime/JSCell.h: 3122 (JSC::JSCell::JSValue::toObject): 3123 * runtime/JSNotAnObject.cpp: 3124 (JSC::JSNotAnObject::toObject): 3125 * runtime/JSNotAnObject.h: 3126 * runtime/JSObject.cpp: 3127 (JSC::JSObject::toObject): 3128 * runtime/JSObject.h: 3129 * runtime/JSString.cpp: 3130 (JSC::StringObject::create): 3131 (JSC::JSString::toObject): 3132 (JSC::JSString::toThisObject): 3133 * runtime/JSString.h: 3134 * runtime/JSValue.cpp: 3135 (JSC::JSValue::toObjectSlowCase): 3136 (JSC::JSValue::toThisObjectSlowCase): 3137 (JSC::JSValue::synthesizeObject): 3138 * runtime/JSValue.h: 3139 * runtime/NumberConstructor.cpp: 3140 (JSC::constructWithNumberConstructor): 3141 * runtime/NumberObject.cpp: 3142 (JSC::constructNumber): 3143 * runtime/NumberObject.h: 3144 * runtime/ObjectConstructor.cpp: 3145 (JSC::constructObject): 3146 (JSC::constructWithObjectConstructor): 3147 (JSC::callObjectConstructor): 3148 * runtime/RegExpConstructor.cpp: 3149 (JSC::constructRegExp): 3150 (JSC::constructWithRegExpConstructor): 3151 (JSC::callRegExpConstructor): 3152 * runtime/RegExpConstructor.h: 3153 * runtime/StringConstructor.cpp: 3154 (JSC::constructWithStringConstructor): 3155 * runtime/StringObject.h: 3156 3157 2011-03-28 Geoffrey Garen <ggaren (a] apple.com> 3158 3159 Reviewed by Oliver Hunt. 3160 3161 REGRESSION [r78794-r79249] Allocation of memory is slow when number of active objects is large 3162 https://bugs.webkit.org/show_bug.cgi?id=56823 3163 3164 Partial fix for most of the problem. (TOT still shows a regression, though.) 3165 3166 * runtime/Heap.cpp: 3167 (JSC::Heap::reportExtraMemoryCostSlowCase): Use highWaterMark(), instead of 3168 capacity(), since capacity() is O(n) relative to the size of the heap. 3169 3170 In limited circumstances, capacity() is also worse than highWaterMark() 3171 for measuring extra cost relative to heap size, since capacity() only 3172 measures the *current* capacity of the heap, but the heap will grow if 3173 necessary to attain highWaterMark(). 3174 3175 2011-03-28 Oliver Hunt <oliver (a] apple.com> 3176 3177 REGRESSION(r82130): It made all tests crash (Requested by Ossy on #webkit). 3178 https://bugs.webkit.org/show_bug.cgi?id=57251 3179 3180 Build fix, had remnant of another patch in r82130 3181 3182 * jit/JITPropertyAccess.cpp: 3183 (JSC::JIT::privateCompileGetByIdChainList): 3184 3185 2011-03-27 Oliver Hunt <oliver (a] apple.com> 3186 3187 Reviewed by Maciej Stachowiak. 3188 3189 Add additional immediate types to allow us to distinguish the source of a JIT immediate 3190 https://bugs.webkit.org/show_bug.cgi?id=57190 3191 3192 Allow us to distinguish whether a JIT immediate is a value that we 3193 control (TrustedImm32 and TrustedImmPtr) vs. ones that can be controlled 3194 or influenced by code we are compiling. Currently we do nothing with this 3195 information -- this change is large and mechanical but would obscure any 3196 logic changes that we would have made. 3197 3198 * assembler/AbstractMacroAssembler.h: 3199 (JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr): 3200 (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr): 3201 (JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32): 3202 (JSC::AbstractMacroAssembler::Imm32::Imm32): 3203 * assembler/MacroAssembler.h: 3204 (JSC::MacroAssembler::pop): 3205 (JSC::MacroAssembler::poke): 3206 (JSC::MacroAssembler::branchPtr): 3207 (JSC::MacroAssembler::branch32): 3208 (JSC::MacroAssembler::addPtr): 3209 (JSC::MacroAssembler::andPtr): 3210 (JSC::MacroAssembler::orPtr): 3211 (JSC::MacroAssembler::subPtr): 3212 (JSC::MacroAssembler::xorPtr): 3213 (JSC::MacroAssembler::setPtr): 3214 (JSC::MacroAssembler::storePtr): 3215 (JSC::MacroAssembler::branchTestPtr): 3216 (JSC::MacroAssembler::branchSubPtr): 3217 (JSC::MacroAssembler::branchTest8): 3218 * assembler/MacroAssemblerARM.h: 3219 (JSC::MacroAssemblerARM::add32): 3220 (JSC::MacroAssemblerARM::and32): 3221 (JSC::MacroAssemblerARM::lshift32): 3222 (JSC::MacroAssemblerARM::mul32): 3223 (JSC::MacroAssemblerARM::or32): 3224 (JSC::MacroAssemblerARM::rshift32): 3225 (JSC::MacroAssemblerARM::urshift32): 3226 (JSC::MacroAssemblerARM::sub32): 3227 (JSC::MacroAssemblerARM::xor32): 3228 (JSC::MacroAssemblerARM::store32): 3229 (JSC::MacroAssemblerARM::push): 3230 (JSC::MacroAssemblerARM::move): 3231 (JSC::MacroAssemblerARM::branch8): 3232 (JSC::MacroAssemblerARM::branch32): 3233 (JSC::MacroAssemblerARM::branch32WithUnalignedHalfWords): 3234 (JSC::MacroAssemblerARM::branch16): 3235 (JSC::MacroAssemblerARM::branchTest8): 3236 (JSC::MacroAssemblerARM::branchTest32): 3237 (JSC::MacroAssemblerARM::branchAdd32): 3238 (JSC::MacroAssemblerARM::branchMul32): 3239 (JSC::MacroAssemblerARM::branchSub32): 3240 (JSC::MacroAssemblerARM::set32Compare32): 3241 (JSC::MacroAssemblerARM::set8Compare32): 3242 (JSC::MacroAssemblerARM::set32Test32): 3243 (JSC::MacroAssemblerARM::set32Test8): 3244 (JSC::MacroAssemblerARM::moveWithPatch): 3245 (JSC::MacroAssemblerARM::branchPtrWithPatch): 3246 (JSC::MacroAssemblerARM::storePtrWithPatch): 3247 * assembler/MacroAssemblerARMv7.h: 3248 (JSC::MacroAssemblerARMv7::add32): 3249 (JSC::MacroAssemblerARMv7::and32): 3250 (JSC::MacroAssemblerARMv7::lshift32): 3251 (JSC::MacroAssemblerARMv7::mul32): 3252 (JSC::MacroAssemblerARMv7::or32): 3253 (JSC::MacroAssemblerARMv7::rshift32): 3254 (JSC::MacroAssemblerARMv7::urshift32): 3255 (JSC::MacroAssemblerARMv7::sub32): 3256 (JSC::MacroAssemblerARMv7::xor32): 3257 (JSC::MacroAssemblerARMv7::load32): 3258 (JSC::MacroAssemblerARMv7::load32WithAddressOffsetPatch): 3259 (JSC::MacroAssemblerARMv7::load16): 3260 (JSC::MacroAssemblerARMv7::store32WithAddressOffsetPatch): 3261 (JSC::MacroAssemblerARMv7::store32): 3262 (JSC::MacroAssemblerARMv7::loadDouble): 3263 (JSC::MacroAssemblerARMv7::storeDouble): 3264 (JSC::MacroAssemblerARMv7::push): 3265 (JSC::MacroAssemblerARMv7::move): 3266 (JSC::MacroAssemblerARMv7::compare32): 3267 (JSC::MacroAssemblerARMv7::test32): 3268 (JSC::MacroAssemblerARMv7::branch32): 3269 (JSC::MacroAssemblerARMv7::branch32WithUnalignedHalfWords): 3270 (JSC::MacroAssemblerARMv7::branch16): 3271 (JSC::MacroAssemblerARMv7::branch8): 3272 (JSC::MacroAssemblerARMv7::branchTest32): 3273 (JSC::MacroAssemblerARMv7::branchTest8): 3274 (JSC::MacroAssemblerARMv7::branchAdd32): 3275 (JSC::MacroAssemblerARMv7::branchMul32): 3276 (JSC::MacroAssemblerARMv7::branchSub32): 3277 (JSC::MacroAssemblerARMv7::nearCall): 3278 (JSC::MacroAssemblerARMv7::call): 3279 (JSC::MacroAssemblerARMv7::set32Compare32): 3280 (JSC::MacroAssemblerARMv7::set8Compare32): 3281 (JSC::MacroAssemblerARMv7::set32Test32): 3282 (JSC::MacroAssemblerARMv7::set32Test8): 3283 (JSC::MacroAssemblerARMv7::moveWithPatch): 3284 (JSC::MacroAssemblerARMv7::branchPtrWithPatch): 3285 (JSC::MacroAssemblerARMv7::storePtrWithPatch): 3286 (JSC::MacroAssemblerARMv7::tailRecursiveCall): 3287 (JSC::MacroAssemblerARMv7::makeJump): 3288 (JSC::MacroAssemblerARMv7::makeBranch): 3289 (JSC::MacroAssemblerARMv7::setupArmAddress): 3290 (JSC::MacroAssemblerARMv7::makeBaseIndexBase): 3291 (JSC::MacroAssemblerARMv7::moveFixedWidthEncoding): 3292 * assembler/MacroAssemblerMIPS.h: 3293 (JSC::MacroAssemblerMIPS::add32): 3294 (JSC::MacroAssemblerMIPS::and32): 3295 (JSC::MacroAssemblerMIPS::lshift32): 3296 (JSC::MacroAssemblerMIPS::mul32): 3297 (JSC::MacroAssemblerMIPS::or32): 3298 (JSC::MacroAssemblerMIPS::rshift32): 3299 (JSC::MacroAssemblerMIPS::urshift32): 3300 (JSC::MacroAssemblerMIPS::sub32): 3301 (JSC::MacroAssemblerMIPS::xor32): 3302 (JSC::MacroAssemblerMIPS::load32): 3303 (JSC::MacroAssemblerMIPS::load32WithAddressOffsetPatch): 3304 (JSC::MacroAssemblerMIPS::store32WithAddressOffsetPatch): 3305 (JSC::MacroAssemblerMIPS::store32): 3306 (JSC::MacroAssemblerMIPS::push): 3307 (JSC::MacroAssemblerMIPS::move): 3308 (JSC::MacroAssemblerMIPS::branch8): 3309 (JSC::MacroAssemblerMIPS::branch32): 3310 (JSC::MacroAssemblerMIPS::branch32WithUnalignedHalfWords): 3311 (JSC::MacroAssemblerMIPS::branch16): 3312 (JSC::MacroAssemblerMIPS::branchTest32): 3313 (JSC::MacroAssemblerMIPS::branchTest8): 3314 (JSC::MacroAssemblerMIPS::branchAdd32): 3315 (JSC::MacroAssemblerMIPS::branchMul32): 3316 (JSC::MacroAssemblerMIPS::branchSub32): 3317 (JSC::MacroAssemblerMIPS::set8Compare32): 3318 (JSC::MacroAssemblerMIPS::set32Compare32): 3319 (JSC::MacroAssemblerMIPS::set32Test8): 3320 (JSC::MacroAssemblerMIPS::set32Test32): 3321 (JSC::MacroAssemblerMIPS::moveWithPatch): 3322 (JSC::MacroAssemblerMIPS::branchPtrWithPatch): 3323 (JSC::MacroAssemblerMIPS::storePtrWithPatch): 3324 (JSC::MacroAssemblerMIPS::tailRecursiveCall): 3325 (JSC::MacroAssemblerMIPS::loadDouble): 3326 (JSC::MacroAssemblerMIPS::storeDouble): 3327 (JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32): 3328 * assembler/MacroAssemblerX86.h: 3329 (JSC::MacroAssemblerX86::add32): 3330 (JSC::MacroAssemblerX86::addWithCarry32): 3331 (JSC::MacroAssemblerX86::and32): 3332 (JSC::MacroAssemblerX86::or32): 3333 (JSC::MacroAssemblerX86::sub32): 3334 (JSC::MacroAssemblerX86::store32): 3335 (JSC::MacroAssemblerX86::branch32): 3336 (JSC::MacroAssemblerX86::moveWithPatch): 3337 (JSC::MacroAssemblerX86::branchPtrWithPatch): 3338 (JSC::MacroAssemblerX86::storePtrWithPatch): 3339 * assembler/MacroAssemblerX86Common.h: 3340 (JSC::MacroAssemblerX86Common::add32): 3341 (JSC::MacroAssemblerX86Common::and32): 3342 (JSC::MacroAssemblerX86Common::lshift32): 3343 (JSC::MacroAssemblerX86Common::mul32): 3344 (JSC::MacroAssemblerX86Common::or32): 3345 (JSC::MacroAssemblerX86Common::rshift32): 3346 (JSC::MacroAssemblerX86Common::urshift32): 3347 (JSC::MacroAssemblerX86Common::sub32): 3348 (JSC::MacroAssemblerX86Common::xor32): 3349 (JSC::MacroAssemblerX86Common::store32): 3350 (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32): 3351 (JSC::MacroAssemblerX86Common::push): 3352 (JSC::MacroAssemblerX86Common::move): 3353 (JSC::MacroAssemblerX86Common::branch8): 3354 (JSC::MacroAssemblerX86Common::branch32): 3355 (JSC::MacroAssemblerX86Common::branch32WithUnalignedHalfWords): 3356 (JSC::MacroAssemblerX86Common::branch16): 3357 (JSC::MacroAssemblerX86Common::branchTest32): 3358 (JSC::MacroAssemblerX86Common::branchTest8): 3359 (JSC::MacroAssemblerX86Common::branchAdd32): 3360 (JSC::MacroAssemblerX86Common::branchMul32): 3361 (JSC::MacroAssemblerX86Common::branchSub32): 3362 (JSC::MacroAssemblerX86Common::set8Compare32): 3363 (JSC::MacroAssemblerX86Common::set32Compare32): 3364 (JSC::MacroAssemblerX86Common::set32Test8): 3365 (JSC::MacroAssemblerX86Common::set32Test32): 3366 * assembler/MacroAssemblerX86_64.h: 3367 (JSC::MacroAssemblerX86_64::add32): 3368 (JSC::MacroAssemblerX86_64::and32): 3369 (JSC::MacroAssemblerX86_64::or32): 3370 (JSC::MacroAssemblerX86_64::sub32): 3371 (JSC::MacroAssemblerX86_64::loadDouble): 3372 (JSC::MacroAssemblerX86_64::addDouble): 3373 (JSC::MacroAssemblerX86_64::convertInt32ToDouble): 3374 (JSC::MacroAssemblerX86_64::store32): 3375 (JSC::MacroAssemblerX86_64::call): 3376 (JSC::MacroAssemblerX86_64::tailRecursiveCall): 3377 (JSC::MacroAssemblerX86_64::makeTailRecursiveCall): 3378 (JSC::MacroAssemblerX86_64::addPtr): 3379 (JSC::MacroAssemblerX86_64::andPtr): 3380 (JSC::MacroAssemblerX86_64::orPtr): 3381 (JSC::MacroAssemblerX86_64::subPtr): 3382 (JSC::MacroAssemblerX86_64::xorPtr): 3383 (JSC::MacroAssemblerX86_64::storePtr): 3384 (JSC::MacroAssemblerX86_64::setPtr): 3385 (JSC::MacroAssemblerX86_64::branchPtr): 3386 (JSC::MacroAssemblerX86_64::branchTestPtr): 3387 (JSC::MacroAssemblerX86_64::branchSubPtr): 3388 (JSC::MacroAssemblerX86_64::moveWithPatch): 3389 (JSC::MacroAssemblerX86_64::branchPtrWithPatch): 3390 (JSC::MacroAssemblerX86_64::storePtrWithPatch): 3391 (JSC::MacroAssemblerX86_64::branchTest8): 3392 * dfg/DFGJITCodeGenerator.h: 3393 (JSC::DFG::JITCodeGenerator::callOperation): 3394 * dfg/DFGJITCompiler.cpp: 3395 (JSC::DFG::JITCompiler::jitAssertIsInt32): 3396 (JSC::DFG::JITCompiler::emitCount): 3397 * dfg/DFGJITCompiler.h: 3398 (JSC::DFG::JITCompiler::emitPutImmediateToCallFrameHeader): 3399 * dfg/DFGNonSpeculativeJIT.cpp: 3400 (JSC::DFG::NonSpeculativeJIT::compile): 3401 * dfg/DFGSpeculativeJIT.cpp: 3402 (JSC::DFG::SpeculativeJIT::fillSpeculateCell): 3403 (JSC::DFG::SpeculativeJIT::compile): 3404 * jit/JIT.cpp: 3405 (JSC::JIT::emitTimeoutCheck): 3406 (JSC::JIT::privateCompile): 3407 * jit/JIT.h: 3408 * jit/JITArithmetic.cpp: 3409 (JSC::JIT::emit_op_urshift): 3410 (JSC::JIT::emitSlow_op_urshift): 3411 (JSC::JIT::emit_op_post_inc): 3412 (JSC::JIT::emit_op_post_dec): 3413 (JSC::JIT::emit_op_pre_inc): 3414 (JSC::JIT::emit_op_pre_dec): 3415 (JSC::JIT::emit_op_mod): 3416 * jit/JITArithmetic32_64.cpp: 3417 (JSC::JIT::emit_op_negate): 3418 (JSC::JIT::emit_op_jnless): 3419 (JSC::JIT::emit_op_jless): 3420 (JSC::JIT::emit_op_jlesseq): 3421 (JSC::JIT::emit_op_lshift): 3422 (JSC::JIT::emitRightShift): 3423 (JSC::JIT::emitRightShiftSlowCase): 3424 (JSC::JIT::emit_op_bitand): 3425 (JSC::JIT::emit_op_bitor): 3426 (JSC::JIT::emit_op_bitxor): 3427 (JSC::JIT::emit_op_bitnot): 3428 (JSC::JIT::emit_op_post_inc): 3429 (JSC::JIT::emit_op_post_dec): 3430 (JSC::JIT::emitSlow_op_post_dec): 3431 (JSC::JIT::emit_op_pre_inc): 3432 (JSC::JIT::emit_op_pre_dec): 3433 (JSC::JIT::emit_op_add): 3434 (JSC::JIT::emitAdd32Constant): 3435 (JSC::JIT::emit_op_sub): 3436 (JSC::JIT::emitSub32Constant): 3437 (JSC::JIT::emitBinaryDoubleOp): 3438 (JSC::JIT::emit_op_mul): 3439 (JSC::JIT::emitSlow_op_mul): 3440 (JSC::JIT::emit_op_div): 3441 (JSC::JIT::emit_op_mod): 3442 * jit/JITCall.cpp: 3443 (JSC::JIT::compileOpCallVarargs): 3444 (JSC::JIT::compileOpCall): 3445 (JSC::JIT::compileOpCallSlowCase): 3446 * jit/JITCall32_64.cpp: 3447 (JSC::JIT::compileOpCallVarargs): 3448 (JSC::JIT::emit_op_ret_object_or_this): 3449 (JSC::JIT::compileOpCall): 3450 (JSC::JIT::compileOpCallSlowCase): 3451 * jit/JITInlineMethods.h: 3452 (JSC::JIT::emitPutCellToCallFrameHeader): 3453 (JSC::JIT::emitPutIntToCallFrameHeader): 3454 (JSC::JIT::emitPutImmediateToCallFrameHeader): 3455 (JSC::JIT::emitLoadCharacterString): 3456 (JSC::JIT::restoreArgumentReferenceForTrampoline): 3457 (JSC::JIT::checkStructure): 3458 (JSC::JIT::setSamplingFlag): 3459 (JSC::JIT::clearSamplingFlag): 3460 (JSC::JIT::emitCount): 3461 (JSC::JIT::sampleInstruction): 3462 (JSC::JIT::sampleCodeBlock): 3463 (JSC::JIT::emitStoreInt32): 3464 (JSC::JIT::emitStoreCell): 3465 (JSC::JIT::emitStoreBool): 3466 (JSC::JIT::emitJumpSlowCaseIfNotJSCell): 3467 (JSC::JIT::emitInitRegister): 3468 (JSC::JIT::emitJumpIfJSCell): 3469 (JSC::JIT::emitJumpIfNotJSCell): 3470 (JSC::JIT::emitJumpIfImmediateInteger): 3471 (JSC::JIT::emitJumpIfNotImmediateInteger): 3472 (JSC::JIT::emitFastArithDeTagImmediate): 3473 (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero): 3474 (JSC::JIT::emitFastArithReTagImmediate): 3475 (JSC::JIT::emitTagAsBoolImmediate): 3476 * jit/JITOpcodes.cpp: 3477 (JSC::JIT::privateCompileCTIMachineTrampolines): 3478 (JSC::JIT::privateCompileCTINativeCall): 3479 (JSC::JIT::emit_op_check_has_instance): 3480 (JSC::JIT::emit_op_instanceof): 3481 (JSC::JIT::emit_op_ret_object_or_this): 3482 (JSC::JIT::emit_op_resolve): 3483 (JSC::JIT::emit_op_to_primitive): 3484 (JSC::JIT::emit_op_resolve_base): 3485 (JSC::JIT::emit_op_ensure_property_exists): 3486 (JSC::JIT::emit_op_resolve_skip): 3487 (JSC::JIT::emit_op_resolve_global): 3488 (JSC::JIT::emitSlow_op_resolve_global): 3489 (JSC::JIT::emit_op_not): 3490 (JSC::JIT::emit_op_jfalse): 3491 (JSC::JIT::emit_op_jeq_null): 3492 (JSC::JIT::emit_op_jneq_null): 3493 (JSC::JIT::emit_op_jneq_ptr): 3494 (JSC::JIT::emit_op_jsr): 3495 (JSC::JIT::emit_op_resolve_with_base): 3496 (JSC::JIT::emit_op_new_func_exp): 3497 (JSC::JIT::emit_op_jtrue): 3498 (JSC::JIT::emit_op_get_pnames): 3499 (JSC::JIT::emit_op_next_pname): 3500 (JSC::JIT::emit_op_to_jsnumber): 3501 (JSC::JIT::emit_op_push_new_scope): 3502 (JSC::JIT::emit_op_catch): 3503 (JSC::JIT::emit_op_eq_null): 3504 (JSC::JIT::emit_op_neq_null): 3505 (JSC::JIT::emit_op_init_lazy_reg): 3506 (JSC::JIT::emit_op_convert_this): 3507 (JSC::JIT::emit_op_convert_this_strict): 3508 (JSC::JIT::emitSlow_op_not): 3509 (JSC::JIT::emitSlow_op_neq): 3510 (JSC::JIT::emit_op_get_arguments_length): 3511 (JSC::JIT::emitSlow_op_get_arguments_length): 3512 (JSC::JIT::emit_op_get_argument_by_val): 3513 (JSC::JIT::emitSlow_op_resolve_global_dynamic): 3514 (JSC::JIT::emit_op_new_regexp): 3515 (JSC::JIT::emit_op_load_varargs): 3516 (JSC::JIT::emitSlow_op_load_varargs): 3517 (JSC::JIT::emit_op_new_func): 3518 * jit/JITOpcodes32_64.cpp: 3519 (JSC::JIT::privateCompileCTIMachineTrampolines): 3520 (JSC::JIT::privateCompileCTINativeCall): 3521 (JSC::JIT::emit_op_loop_if_lesseq): 3522 (JSC::JIT::emit_op_check_has_instance): 3523 (JSC::JIT::emit_op_instanceof): 3524 (JSC::JIT::emit_op_get_scoped_var): 3525 (JSC::JIT::emit_op_put_scoped_var): 3526 (JSC::JIT::emit_op_tear_off_activation): 3527 (JSC::JIT::emit_op_tear_off_arguments): 3528 (JSC::JIT::emit_op_resolve): 3529 (JSC::JIT::emit_op_to_primitive): 3530 (JSC::JIT::emit_op_resolve_base): 3531 (JSC::JIT::emit_op_ensure_property_exists): 3532 (JSC::JIT::emit_op_resolve_skip): 3533 (JSC::JIT::emit_op_resolve_global): 3534 (JSC::JIT::emitSlow_op_resolve_global): 3535 (JSC::JIT::emit_op_not): 3536 (JSC::JIT::emit_op_jfalse): 3537 (JSC::JIT::emit_op_jtrue): 3538 (JSC::JIT::emit_op_jeq_null): 3539 (JSC::JIT::emit_op_jneq_null): 3540 (JSC::JIT::emit_op_jneq_ptr): 3541 (JSC::JIT::emit_op_jsr): 3542 (JSC::JIT::emit_op_eq): 3543 (JSC::JIT::emitSlow_op_eq): 3544 (JSC::JIT::emit_op_neq): 3545 (JSC::JIT::emitSlow_op_neq): 3546 (JSC::JIT::compileOpStrictEq): 3547 (JSC::JIT::emit_op_eq_null): 3548 (JSC::JIT::emit_op_neq_null): 3549 (JSC::JIT::emit_op_resolve_with_base): 3550 (JSC::JIT::emit_op_new_func_exp): 3551 (JSC::JIT::emit_op_get_pnames): 3552 (JSC::JIT::emit_op_next_pname): 3553 (JSC::JIT::emit_op_to_jsnumber): 3554 (JSC::JIT::emit_op_push_new_scope): 3555 (JSC::JIT::emit_op_catch): 3556 (JSC::JIT::emit_op_create_activation): 3557 (JSC::JIT::emit_op_create_arguments): 3558 (JSC::JIT::emit_op_convert_this): 3559 (JSC::JIT::emit_op_convert_this_strict): 3560 (JSC::JIT::emit_op_get_arguments_length): 3561 (JSC::JIT::emitSlow_op_get_arguments_length): 3562 (JSC::JIT::emit_op_get_argument_by_val): 3563 (JSC::JIT::softModulo): 3564 * jit/JITPropertyAccess.cpp: 3565 (JSC::JIT::stringGetByValStubGenerator): 3566 (JSC::JIT::emit_op_get_by_val): 3567 (JSC::JIT::emitSlow_op_get_by_val): 3568 (JSC::JIT::emit_op_get_by_pname): 3569 (JSC::JIT::emit_op_put_by_val): 3570 (JSC::JIT::emit_op_put_by_index): 3571 (JSC::JIT::emit_op_put_getter): 3572 (JSC::JIT::emit_op_put_setter): 3573 (JSC::JIT::emit_op_del_by_id): 3574 (JSC::JIT::emit_op_get_by_id): 3575 (JSC::JIT::emit_op_put_by_id): 3576 (JSC::JIT::emit_op_method_check): 3577 (JSC::JIT::compileGetByIdHotPath): 3578 (JSC::JIT::compileGetByIdSlowCase): 3579 (JSC::JIT::emitSlow_op_put_by_id): 3580 (JSC::JIT::testPrototype): 3581 (JSC::JIT::privateCompilePutByIdTransition): 3582 (JSC::JIT::privateCompilePatchGetArrayLength): 3583 (JSC::JIT::privateCompileGetByIdProto): 3584 (JSC::JIT::privateCompileGetByIdSelfList): 3585 (JSC::JIT::privateCompileGetByIdProtoList): 3586 (JSC::JIT::privateCompileGetByIdChainList): 3587 (JSC::JIT::privateCompileGetByIdChain): 3588 * jit/JITPropertyAccess32_64.cpp: 3589 (JSC::JIT::emit_op_put_getter): 3590 (JSC::JIT::emit_op_put_setter): 3591 (JSC::JIT::emit_op_del_by_id): 3592 (JSC::JIT::emit_op_get_by_id): 3593 (JSC::JIT::emit_op_put_by_id): 3594 (JSC::JIT::emit_op_method_check): 3595 (JSC::JIT::stringGetByValStubGenerator): 3596 (JSC::JIT::emit_op_get_by_val): 3597 (JSC::JIT::emitSlow_op_get_by_val): 3598 (JSC::JIT::emit_op_put_by_val): 3599 (JSC::JIT::compileGetByIdHotPath): 3600 (JSC::JIT::compileGetByIdSlowCase): 3601 (JSC::JIT::emitSlow_op_put_by_id): 3602 (JSC::JIT::testPrototype): 3603 (JSC::JIT::privateCompilePutByIdTransition): 3604 (JSC::JIT::privateCompilePatchGetArrayLength): 3605 (JSC::JIT::privateCompileGetByIdProto): 3606 (JSC::JIT::privateCompileGetByIdSelfList): 3607 (JSC::JIT::privateCompileGetByIdProtoList): 3608 (JSC::JIT::privateCompileGetByIdChainList): 3609 (JSC::JIT::privateCompileGetByIdChain): 3610 (JSC::JIT::emit_op_get_by_pname): 3611 * jit/JITStubCall.h: 3612 (JSC::JITStubCall::addArgument): 3613 * jit/JITStubs.cpp: 3614 (JSC::getPolymorphicAccessStructureListSlot): 3615 (JSC::DEFINE_STUB_FUNCTION): 3616 * jit/JSInterfaceJIT.h: 3617 (JSC::JSInterfaceJIT::emitJumpIfNotJSCell): 3618 (JSC::JSInterfaceJIT::emitLoadInt32): 3619 (JSC::JSInterfaceJIT::emitLoadDouble): 3620 * jit/SpecializedThunkJIT.h: 3621 (JSC::SpecializedThunkJIT::SpecializedThunkJIT): 3622 (JSC::SpecializedThunkJIT::loadJSStringArgument): 3623 (JSC::SpecializedThunkJIT::tagReturnAsInt32): 3624 (JSC::SpecializedThunkJIT::tagReturnAsJSCell): 3625 * jit/ThunkGenerators.cpp: 3626 (JSC::charToString): 3627 (JSC::powThunkGenerator): 3628 * yarr/YarrJIT.cpp: 3629 (JSC::Yarr::YarrGenerator::matchCharacterClass): 3630 (JSC::Yarr::YarrGenerator::storeToFrame): 3631 (JSC::Yarr::YarrGenerator::storeToFrameWithPatch): 3632 (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode): 3633 (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle): 3634 (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed): 3635 (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy): 3636 (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy): 3637 (JSC::Yarr::YarrGenerator::generateCharacterClassFixed): 3638 (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy): 3639 (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy): 3640 (JSC::Yarr::YarrGenerator::generateParenthesesSingle): 3641 (JSC::Yarr::YarrGenerator::generateDisjunction): 3642 3643 2011-03-28 Andras Becsi <abecsi (a] webkit.org> 3644 3645 Reviewed by Csaba Osztrogonc. 3646 3647 [Qt] Fix the linking of jsc with MinGW after r81963. 3648 3649 * jsc.pro: add -l and remove the lib suffix. 3650 3651 2011-03-27 Ben Taylor <bentaylor.solx86 (a] gmail.com> 3652 3653 Reviewed by Alexey Proskuryakov. 3654 3655 https://bugs.webkit.org/show_bug.cgi?id=57170 Fix last elements 3656 in an enum to remove a trailing comma. Sun Studio 12 CC errors out. 3657 3658 Compile fix only, no actual code change. 3659 3660 * wtf/MessageQueue.h: 3661 3662 2011-03-25 Oliver Hunt <oliver (a] apple.com> 3663 3664 Reviewed by Darin Adler. 3665 3666 Allow defineOwnProperty to work on DOMObjects 3667 https://bugs.webkit.org/show_bug.cgi?id=57129 3668 3669 Fix a couple of places where we uses getter()/setter() rather 3670 than [gs]etterPresent(). 3671 3672 * runtime/JSObject.cpp: 3673 (JSC::JSObject::defineOwnProperty): 3674 3675 2011-03-25 Geoffrey Garen <ggaren (a] apple.com> 3676 3677 Reviewed by Oliver Hunt. 3678 3679 Crash when paused at a breakpoint caused by inaccurate Activation records. 3680 https://bugs.webkit.org/show_bug.cgi?id=57120 3681 3682 * runtime/JSActivation.cpp: 3683 (JSC::JSActivation::symbolTableGet): 3684 (JSC::JSActivation::symbolTablePut): 3685 (JSC::JSActivation::getOwnPropertyNames): 3686 (JSC::JSActivation::symbolTablePutWithAttributes): 3687 3688 2011-03-24 Geoffrey Garen <ggaren (a] apple.com> 3689 3690 Reviewed by Oliver Hunt. 3691 3692 Crash in debugger beneath MarkStack::drain @ me.com, ibm.com 3693 https://bugs.webkit.org/show_bug.cgi?id=57080 3694 <rdar://problem/8525907> 3695 3696 The crash was caused by changes in the executable after recompilation. 3697 3698 The fix is for the activation to copy the data it needs instead of 3699 relying on the data in the executable. 3700 3701 SunSpider and v8 report no change. 3702 3703 * runtime/Arguments.h: 3704 (JSC::JSActivation::copyRegisters): Use our own data members instead of 3705 reading data out of the executable. 3706 3707 * runtime/JSActivation.cpp: 3708 (JSC::JSActivation::JSActivation): Initialize our data members. 3709 3710 (JSC::JSActivation::markChildren): 3711 (JSC::JSActivation::symbolTableGet): 3712 (JSC::JSActivation::symbolTablePut): 3713 (JSC::JSActivation::getOwnPropertyNames): 3714 (JSC::JSActivation::symbolTablePutWithAttributes): 3715 (JSC::JSActivation::isDynamicScope): 3716 (JSC::JSActivation::argumentsGetter): Use our own data members instead of 3717 reading data out of the executable. 3718 3719 * runtime/JSActivation.h: Added new data members to track data previously 3720 tracked by the executable. Since I've removed the executable pointer, 3721 on a 64bit system, I've only made activations bigger by an int. 3722 3723 2011-03-25 David Kilzer <ddkilzer (a] apple.com> 3724 3725 Remove duplicate entry from JavaScriptCore.exp 3726 3727 JSC::createStackOverflowError(JSC::ExecState*) was originally 3728 exported in r60057, then duplicated in r60392. 3729 3730 * JavaScriptCore.exp: Removed duplicate entry. 3731 3732 2011-03-25 Jarred Nicholls <jarred (a] sencha.com> 3733 3734 Reviewed by Ariya Hidayat. 3735 3736 [Qt] MSVC Build Error - need to link advapi32.lib for jsc.exe 3737 https://bugs.webkit.org/show_bug.cgi?id=56098 3738 3739 Need to link advapi32.lib for jsc.exe since wtf/OSRandomSource.cpp uses the Win32 Crypto API 3740 3741 * jsc.pro: 3742 3743 2011-03-24 Nikolas Zimmermann <nzimmermann (a] rim.com> 3744 3745 Reviewed by Darin Adler. 3746 3747 Introduce WTF HexNumber.h 3748 https://bugs.webkit.org/show_bug.cgi?id=56099 3749 3750 Introduce a set of functions that ease converting from a bye or a number to a hex string, 3751 replacing several of these conversions and String::format("%x") usages all over WebCore. 3752 3753 * GNUmakefile.am: Add HexNumber.h to build. 3754 * JavaScriptCore.exp: Export StringBuilder::reserveCapacity. 3755 * JavaScriptCore.gypi: Add HexNumber.h to build. 3756 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export StringBuilder::reserveCapacity. 3757 * JavaScriptCore.vcproj/WTF/WTF.vcproj: Add HexNumber.h to build. 3758 * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. 3759 * wtf/CMakeLists.txt: Ditto. 3760 * wtf/HexNumber.h: Added. 3761 (WTF::Internal::hexDigitsForMode): Internal helper. 3762 (WTF::appendByteAsHex): Free function, that appends a byte as hex string into a destination. 3763 (WTF::placeByteAsHex): Ditto, but places the result using *foo++ = '..' or foo[index++] = '..' 3764 (WTF::appendUnsignedAsHex): Free function, that appends a number as hex string into a destination. 3765 3766 2011-03-24 Geoffrey Garen <ggaren (a] apple.com> 3767 3768 Windows build fix take 2: Add new symobl. 3769 3770 (I should have used the EWS bots for this!) 3771 3772 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 3773 3774 2011-03-24 Geoffrey Garen <ggaren (a] apple.com> 3775 3776 Windows build fix take 1: Removed old symobl. 3777 3778 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 3779 3780 2011-03-24 Geoffrey Garen <ggaren (a] apple.com> 3781 3782 Reviewed by Oliver Hunt. 3783 3784 Ensure that all compilation takes place within a dynamic global object scope 3785 https://bugs.webkit.org/show_bug.cgi?id=57054 3786 <rdar://problem/9083011> 3787 3788 Otherwise, entry to the global object scope might throw away the code 3789 we just compiled, causing a crash. 3790 3791 * JavaScriptCore.exp: Updated for signature change. 3792 3793 * debugger/Debugger.cpp: 3794 (JSC::evaluateInGlobalCallFrame): 3795 * debugger/DebuggerCallFrame.cpp: 3796 (JSC::DebuggerCallFrame::evaluate): Removed explicit compilation calls 3797 here because (a) they took place outside a dynamic global object scope 3798 and (b) they were redundant. 3799 3800 * interpreter/CachedCall.h: 3801 (JSC::CachedCall::CachedCall): Updated for signature change. 3802 3803 * interpreter/Interpreter.cpp: 3804 (JSC::Interpreter::execute): 3805 (JSC::Interpreter::executeCall): 3806 (JSC::Interpreter::executeConstruct): Declare our dynamic global object 3807 scope earlier, to ensure that compilation takes place within it. 3808 3809 * runtime/Completion.cpp: 3810 (JSC::evaluate): Removed explicit compilation calls here because (a) 3811 they took place outside a dynamic global object scope and (b) they were 3812 redundant. 3813 3814 * runtime/Executable.h: 3815 (JSC::EvalExecutable::compile): 3816 (JSC::ProgramExecutable::compile): 3817 (JSC::FunctionExecutable::compileForCall): 3818 (JSC::FunctionExecutable::compileForConstruct): Added an ASSERT to 3819 verify our new invariant that all compilation takes place within a 3820 dynamic global object scope. 3821 3822 * runtime/JSGlobalObject.cpp: 3823 (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): 3824 * runtime/JSGlobalObject.h: Changed the signature of DynamicGlobalObjectScope 3825 to require a JSGlobalData instead of an ExecState* since it is often 3826 easier to provide the former, and the latter was not necessary. 3827 3828 2011-03-24 Oliver Hunt <oliver (a] apple.com> 3829 3830 Reviewed by Geoffrey Garen. 3831 3832 REGRESSION (r79987-r80210): Crash in JSWeakObjectMapClear 3833 https://bugs.webkit.org/show_bug.cgi?id=55671 3834 3835 This is no longer necessary, and it seems that with the new weakmap 3836 model it's simply unsafe, so this reduces it to a no-op. 3837 3838 * API/JSWeakObjectMapRefPrivate.cpp: 3839 3840 2011-03-24 Ben Taylor <bentaylor.solx86 (a] gmail.com> 3841 3842 Reviewed by Darin Adler. 3843 3844 https://bugs.webkit.org/show_bug.cgi?id=20302 3845 Correct implementation of signbit on Solaris 3846 3847 * wtf/MathExtras.h: 3848 (signbit): 3849 3850 2011-03-23 Mark Rowe <mrowe (a] apple.com> 3851 3852 Reviewed by Darin Adler. 3853 3854 <rdar://problem/7959320> Threads that use APIs above the BSD layer must be registered with the Obj-C GC. 3855 3856 * wtf/ThreadingPthreads.cpp: 3857 (WTF::initializeCurrentThreadInternal): 3858 3859 2011-03-23 Mark Rowe <mrowe (a] apple.com> 3860 3861 Stop setting OTHER_OPTIONS in JavaScriptCore's Makefile. 3862 3863 It's not necessary to pass "-target All" as xcodebuild always builds the 3864 first target in the project unless otherwise specified. The presence of 3865 that option also breaks "make clean" since that results in both the 3866 -target and -alltargets options being passed to xcodebuild. 3867 3868 * Makefile: 3869 3870 2011-03-23 Pavel Feldman <pfeldman (a] chromium.org> 3871 3872 Not reviewed: bring back Vector::contains that was removed as a part of roll back. 3873 3874 * wtf/Vector.h: 3875 (WTF::::contains): 3876 3877 2011-03-23 Sheriff Bot <webkit.review.bot (a] gmail.com> 3878 3879 Unreviewed, rolling out r81686. 3880 http://trac.webkit.org/changeset/81686 3881 https://bugs.webkit.org/show_bug.cgi?id=56914 3882 3883 Breaks webkit_tests in Chromium again. (Requested by pfeldman 3884 on #webkit). 3885 3886 * wtf/Vector.h: 3887 3888 2011-03-23 Adam Barth <abarth (a] webkit.org> 3889 3890 Reviewed by Eric Seidel. 3891 3892 JavaScriptCore GYP build should work on a case-sensitive file system 3893 https://bugs.webkit.org/show_bug.cgi?id=56911 3894 3895 The issue is that there are two UString.h headers, one named UString.h 3896 and one named ustring.h. This patch excludes ustring.h from the header 3897 map to avoid confusion. While I was editing this part of the GYP file, 3898 I cleaned up the exclude rules to be more modern. 3899 3900 * gyp/JavaScriptCore.gyp: 3901 3902 2011-03-22 Geoffrey Garen <ggaren (a] apple.com> 3903 3904 Reviewed by Maciej Stachowiak. 3905 3906 REGRESSION (r78382): No scripts appear in the Web Inspector's Scripts 3907 panel on Windows, and many inspector regression tests are failing 3908 https://bugs.webkit.org/show_bug.cgi?id=54490 3909 3910 The bug was caused by two different classes using the same name (Recompiler). 3911 3912 * debugger/Debugger.cpp: 3913 * runtime/JSGlobalData.cpp: 3914 (WTF::Recompiler::operator()): Put Recompiler in an anonymous namespace, 3915 so our two recompilers' inline functions don't stomp each other at 3916 link time. 3917 3918 2011-03-22 Sam Weinig <sam (a] webkit.org> 3919 3920 Reviewed by Mark Rowe. 3921 3922 Remove USE_WK_SCROLLBAR_PAINTER_AND_CONTROLLER. 3923 <rdar://problem/8944718> 3924 3925 * DerivedSources.make: 3926 Remove generation of USE_WK_SCROLLBAR_PAINTER_AND_CONTROLLER. 3927 3928 2011-03-22 Gabor Loki <loki (a] webkit.org> 3929 3930 Reviewed by Csaba Osztrogonc. 3931 3932 [Qt] Add DFG module to build system (disabled by default). 3933 https://bugs.webkit.org/show_bug.cgi?id=56845 3934 3935 * JavaScriptCore.pri: 3936 * JavaScriptCore.pro: 3937 3938 2011-03-22 Eric Seidel <eric (a] webkit.org> 3939 3940 Reviewed by Adam Barth. 3941 3942 Add support to build-webkit for building with gyp-generated project files 3943 https://bugs.webkit.org/show_bug.cgi?id=56877 3944 3945 Found a couple missing Private headers while trying to make WebCore build. 3946 3947 * JavaScriptCore.gypi: 3948 3949 2011-03-22 Eric Seidel <eric (a] webkit.org> 3950 3951 Reviewed by Adam Barth. 3952 3953 Make it possible to build JavaScriptCore and WebCore gyp builds outside of Source 3954 https://bugs.webkit.org/show_bug.cgi?id=56867 3955 3956 This should make it possible to build the gyp-generated JavaScriptCore.xcodeproj 3957 from a JavaScriptCore directory outside of Source. 3958 3959 * gyp/JavaScriptCore.gyp: 3960 * gyp/run-if-exists.sh: Added. 3961 * gyp/update-info-plist.sh: Added. 3962 3963 2011-03-22 Eric Seidel <eric (a] webkit.org> 3964 3965 Reviewed by Adam Barth. 3966 3967 Add Profiling Configuration to JavaScriptCore gyp build 3968 https://bugs.webkit.org/show_bug.cgi?id=56862 3969 3970 It appears this is identical to Release, but I suspect 3971 there is someone/thing who uses the Profiling target 3972 so we're adding it for completeness. 3973 3974 * gyp/JavaScriptCore.gyp: 3975 3976 2011-03-22 Adam Barth <abarth (a] webkit.org> 3977 3978 Reviewed by Eric Seidel. 3979 3980 Remove os_win32_files variable from the GYP build 3981 https://bugs.webkit.org/show_bug.cgi?id=56804 3982 3983 Now that our understanding of GYP is sufficiently advanced, we don't 3984 need os_win32_files any more. (Turns out Eric was right, as he always 3985 is.) 3986 3987 * JavaScriptCore.gypi: 3988 3989 2011-03-22 Adam Barth <abarth (a] webkit.org> 3990 3991 Reviewed by Eric Seidel. 3992 3993 GYP build of JavaScriptCore should be able to link from an empty WebKitBuild directory 3994 https://bugs.webkit.org/show_bug.cgi?id=56803 3995 3996 Previously, we thought we should generate the derived source files in 3997 the shared intermediate build products directory, but there are 3998 assumptions built into other parts of the Mac build system that the 3999 derived source files will be generated in a particular subdirectory of 4000 the build products directory. 4001 4002 This patch is a partial revert of the change that moved the derived 4003 source files to the shared intermediate directory. After this patch, 4004 the GYP build can build JavaScriptCore without help from the main 4005 normal build system. 4006 4007 * JavaScriptCore.gypi: 4008 * gyp/JavaScriptCore.gyp: 4009 * gyp/generate-derived-sources.sh: 4010 * gyp/generate-dtrace-header.sh: 4011 4012 2011-03-22 Jay Civelli <jcivelli (a] chromium.org> 4013 4014 Reviewed by David Levin. 4015 4016 Adding a contains method to Vector. 4017 https://bugs.webkit.org/show_bug.cgi?id=55859 4018 4019 * wtf/Vector.h: 4020 (WTF::Vector::contains): 4021 4022 2011-03-22 Gabor Loki <loki (a] webkit.org> 4023 4024 Reviewed by Alexey Proskuryakov. 4025 4026 Fix a bunch of typos in DFG. 4027 https://bugs.webkit.org/show_bug.cgi?id=56813 4028 4029 * dfg/DFGByteCodeParser.cpp: 4030 (JSC::DFG::parse): 4031 * dfg/DFGGenerationInfo.h: 4032 (JSC::DFG::GenerationInfo::setSpilled): 4033 * dfg/DFGGraph.cpp: 4034 (JSC::DFG::Graph::dump): 4035 * dfg/DFGGraph.h: 4036 * dfg/DFGJITCodeGenerator.h: 4037 (JSC::DFG::JITCodeGenerator::setupStubArguments): 4038 * dfg/DFGJITCompiler.cpp: 4039 (JSC::DFG::JITCompiler::compileFunction): 4040 * dfg/DFGJITCompiler.h: 4041 * dfg/DFGNode.h: 4042 * dfg/DFGNonSpeculativeJIT.h: 4043 * dfg/DFGOperations.h: 4044 * dfg/DFGRegisterBank.h: 4045 (JSC::DFG::RegisterBank::allocate): 4046 * dfg/DFGScoreBoard.h: 4047 (JSC::DFG::ScoreBoard::~ScoreBoard): 4048 (JSC::DFG::ScoreBoard::allocate): 4049 * dfg/DFGSpeculativeJIT.cpp: 4050 (JSC::DFG::SpeculativeJIT::compile): 4051 * dfg/DFGSpeculativeJIT.h: 4052 4053 2011-03-22 Adam Barth <abarth (a] webkit.org> 4054 4055 Reviewed by Eric Seidel. 4056 4057 Production configuration in GYP isn't set up correctly 4058 https://bugs.webkit.org/show_bug.cgi?id=56786 4059 4060 Update JavaScriptCore.gyp with information mined from 4061 JavaScriptCore.xcodeproj. 4062 4063 * JavaScriptCore.gypi: 4064 * gyp/JavaScriptCore.gyp: 4065 4066 2011-03-22 Kent Tamura <tkent (a] chromium.org> 4067 4068 Reviewed by Eric Seidel. 4069 4070 REGRESSION(r80096): Number type input unexpectedly rounds fractional values 4071 https://bugs.webkit.org/show_bug.cgi?id=56367 4072 4073 Introduce clampToInteger(unsigned). 4074 4075 * wtf/MathExtras.h: 4076 (clampToInteger): Added. 4077 4078 2011-03-21 Adam Barth <abarth (a] webkit.org> 4079 4080 Reviewed by Eric Seidel. 4081 4082 GYP build should not have include paths that point within the source tree 4083 https://bugs.webkit.org/show_bug.cgi?id=56788 4084 4085 Turns out we don't need these include paths anymore now that we have 4086 header maps working properly. 4087 4088 * gyp/JavaScriptCore.gyp: 4089 - Also, remove jsc.cpp from the excluded list because it's not part 4090 of the jsc_files variable instead of the javascriptcore_files 4091 variable. 4092 4093 2011-03-21 Adam Barth <abarth (a] webkit.org> 4094 4095 Reviewed by Eric Seidel. 4096 4097 Solve the Assertions.cpp / -Wno-missing-format-attribute mystery 4098 https://bugs.webkit.org/show_bug.cgi?id=56780 4099 4100 The reason we couldn't resolve this warning in the GYP build was that 4101 the normal build disables this warning specifically for this file. 4102 This patch takes the same approach as the previous patch to 4103 WebCoreObjCExtras.mm in that it uses a pragma to suppress the warning 4104 (rather than a build system configuration). 4105 4106 * JavaScriptCore.xcodeproj/project.pbxproj: 4107 - Remove the special-case for this file. 4108 * gyp/JavaScriptCore.gyp: 4109 - Remove the work-around for this issue. 4110 * wtf/Assertions.cpp: 4111 - Add a pragma disabling this warning for this file. 4112 4113 2011-03-21 Adam Barth <abarth (a] webkit.org> 4114 4115 Reviewed by Dimitri Glazkov. 4116 4117 WebCore GYP build shouldn't crash on startup 4118 https://bugs.webkit.org/show_bug.cgi?id=56776 4119 4120 Debug builds shouldn't define NDEBUG. This same logic exists in the 4121 project.pbxproj file. 4122 4123 * gyp/JavaScriptCore.gyp: 4124 4125 2011-03-21 Robert Kroeger <rjkroege (a] chromium.org> 4126 4127 Reviewed by Antonio Gomes. 4128 4129 Flag to enable/disable a GestureReocognizer framework 4130 4131 https://bugs.webkit.org/show_bug.cgi?id=49345 4132 4133 * wtf/Platform.h: 4134 4135 2011-03-21 Adam Barth <abarth (a] webkit.org> 4136 4137 Reviewed by Dimitri Glazkov. 4138 4139 Add new files to JavaScriptCore.gypi 4140 https://bugs.webkit.org/show_bug.cgi?id=56766 4141 4142 * JavaScriptCore.gypi: 4143 4144 2011-03-21 Sheriff Bot <webkit.review.bot (a] gmail.com> 4145 4146 Unreviewed, rolling out r81377. 4147 http://trac.webkit.org/changeset/81377 4148 https://bugs.webkit.org/show_bug.cgi?id=56765 4149 4150 WebPageSerializerTest.MultipleFrames is broken (Requested by 4151 simonjam on #webkit). 4152 4153 * wtf/Vector.h: 4154 4155 2011-03-21 Gabor Loki <loki (a] webkit.org> 4156 4157 Reviewed by Csaba Osztrogonc. 4158 4159 Extend constant pool to be able to store 16 bit instructions with a constant 4160 https://bugs.webkit.org/show_bug.cgi?id=46796 4161 4162 The putShortWithConstantInt function inserts a 16 bit instruction which 4163 refers a 32 bits constant or literal. This is a vital function for those 4164 target which loads a PC relative value with a 16 bit instruction (like 4165 Thumb-2 instruction set and SH4 architecture). 4166 4167 * assembler/AssemblerBuffer.h: 4168 (JSC::AssemblerBuffer::putIntegral): 4169 (JSC::AssemblerBuffer::putIntegralUnchecked): 4170 * assembler/AssemblerBufferWithConstantPool.h: 4171 4172 2011-03-21 Philippe Normand <pnormand (a] igalia.com> 4173 4174 Unreviewed, GTK distcheck build fix. 4175 4176 * GNUmakefile.am: 4177 4178 2011-03-20 Bill Budge <bbudge (a] chromium.org> 4179 4180 Reviewed by Adam Barth. 4181 4182 Rename ThreadSafeShared to ThreadSafeRefCounted 4183 https://bugs.webkit.org/show_bug.cgi?id=56714 4184 4185 No new tests. Exposes no new functionality. 4186 4187 * API/JSClassRef.h: 4188 * API/OpaqueJSString.h: 4189 * GNUmakefile.am: 4190 * JavaScriptCore.gypi: 4191 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 4192 * JavaScriptCore.xcodeproj/project.pbxproj: 4193 * wtf/Atomics.h: 4194 * wtf/CMakeLists.txt: 4195 * wtf/CrossThreadRefCounted.h: 4196 (WTF::CrossThreadRefCounted::CrossThreadRefCounted): 4197 (WTF::::crossThreadCopy): 4198 * wtf/ThreadSafeRefCounted.h: Copied from wtf/ThreadSafeShared.h. 4199 (WTF::ThreadSafeRefCountedBase::ThreadSafeRefCountedBase): 4200 (WTF::ThreadSafeRefCountedBase::ref): 4201 (WTF::ThreadSafeRefCountedBase::refCount): 4202 (WTF::ThreadSafeRefCountedBase::derefBase): 4203 (WTF::ThreadSafeRefCounted::ThreadSafeRefCounted): 4204 * wtf/ThreadSafeShared.h: Removed. 4205 * wtf/Threading.h: 4206 4207 2011-03-19 Patrick Gansterer <paroga (a] webkit.org> 4208 4209 Reviewed by Darin Adler. 4210 4211 Remove StringImpl::computeHash() 4212 https://bugs.webkit.org/show_bug.cgi?id=49894 4213 4214 Replace remainig StringImpl::computeHash with StringImpl::computeHashStringHasher. 4215 4216 * wtf/text/AtomicString.cpp: 4217 (WTF::CStringTranslator::hash): 4218 (WTF::UCharBufferTranslator::hash): 4219 (WTF::HashAndCharactersTranslator::hash): 4220 * wtf/text/StringImpl.h: 4221 (WTF::StringImpl::setHash): 4222 (WTF::StringImpl::hash): 4223 4224 2011-03-19 Patrick Gansterer <paroga (a] webkit.org> 4225 4226 Reviewed by Darin Adler. 4227 4228 Rename WTF::StringHasher methods 4229 https://bugs.webkit.org/show_bug.cgi?id=53532 4230 4231 Rename createHash to computeHash and createBlobHash to hashMemory. 4232 Also add a using WTF::StringHasher in the header file. 4233 4234 * profiler/CallIdentifier.h: 4235 (JSC::CallIdentifier::Hash::hash): 4236 * runtime/Identifier.cpp: 4237 (JSC::IdentifierCStringTranslator::hash): 4238 (JSC::IdentifierUCharBufferTranslator::hash): 4239 * wtf/StringHasher.h: 4240 (WTF::StringHasher::computeHash): 4241 (WTF::StringHasher::hashMemory): 4242 * wtf/text/StringHash.h: 4243 (WTF::CaseFoldingHash::hash): 4244 * wtf/text/StringImpl.h: 4245 (WTF::StringImpl::computeHash): 4246 * wtf/unicode/UTF8.cpp: 4247 (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal): 4248 4249 2011-03-18 Geoffrey Garen <ggaren (a] apple.com> 4250 4251 Reviewed by Oliver Hunt. 4252 4253 [GTK] JSC crashes in 32bit Release bots after r80743 4254 https://bugs.webkit.org/show_bug.cgi?id=56180 4255 4256 The crash was caused by referencing GC memory from a GC destructor. This 4257 is not safe because destruction time / order is not guaranteed. 4258 4259 * profiler/ProfileGenerator.cpp: 4260 (JSC::ProfileGenerator::create): 4261 (JSC::ProfileGenerator::ProfileGenerator): 4262 (JSC::ProfileGenerator::willExecute): 4263 (JSC::ProfileGenerator::didExecute): 4264 * profiler/ProfileGenerator.h: 4265 (JSC::ProfileGenerator::origin): Made ExecState* the first argument, 4266 to match the rest of this class and JSC. 4267 4268 Use a JSGlobalObject* instead of an ExecState* with an indirect reference 4269 to a JSGlobalObject* to track our origin. This is simpler and more 4270 efficient, and it removes the destruction order dependency that was causing 4271 our crash. 4272 4273 * profiler/Profiler.cpp: 4274 (JSC::Profiler::startProfiling): Updated for change to JSGlobalObject*. 4275 (JSC::Profiler::stopProfiling): New function for stopping all profiles 4276 for a given global object. This is more straight-forward than multiplexing 4277 through the old function. 4278 4279 (JSC::dispatchFunctionToProfiles): Updated for change to JSGlobalObject*. 4280 * profiler/Profiler.h: Ditto. 4281 4282 * runtime/JSGlobalObject.cpp: 4283 (JSC::JSGlobalObject::~JSGlobalObject): Ditto. 4284 4285 2011-03-17 Geoffrey Garen <ggaren (a] apple.com> 4286 4287 Reviewed by Oliver Hunt. 4288 4289 1 Structure leaked beneath JSGlobalData::storeVPtrs() 4290 https://bugs.webkit.org/show_bug.cgi?id=56595 4291 4292 * runtime/Executable.cpp: 4293 (JSC::EvalExecutable::EvalExecutable): 4294 (JSC::ProgramExecutable::ProgramExecutable): 4295 (JSC::FunctionExecutable::FunctionExecutable): 4296 * runtime/Executable.h: 4297 (JSC::ExecutableBase::ExecutableBase): 4298 (JSC::NativeExecutable::NativeExecutable): 4299 (JSC::VPtrHackExecutable::VPtrHackExecutable): 4300 (JSC::ScriptExecutable::ScriptExecutable): Use a raw pointer instead of 4301 PassRefPtr, like JSString does, since JSGlobalData owns the singleton 4302 exectuable structure. 4303 4304 2011-03-17 Geoffrey Garen <ggaren (a] apple.com> 4305 4306 Reviewed by Mark Rowe. 4307 4308 Fixed some string leaks seen on the buildbot 4309 https://bugs.webkit.org/show_bug.cgi?id=56619 4310 4311 * runtime/PropertyMapHashTable.h: 4312 (JSC::PropertyTable::~PropertyTable): DEref! 4313 4314 2011-03-17 Oliver Hunt <oliver (a] apple.com> 4315 4316 Reviewed by Geoffrey Garen. 4317 4318 Crash in JSC::MarkStack::drain Under Stress 4319 https://bugs.webkit.org/show_bug.cgi?id=56470 4320 4321 We perform a number of gc allocations while when 4322 we are setting up new globals in a piece of global 4323 code. We do this by adding new properties to the 4324 symbol table, and then expanding the storage to fit 4325 at the end. 4326 4327 If a GC happens during this time we will report an 4328 incorrect size for the global object's symbol table 4329 storage. 4330 4331 This patch corrects this by growing the storage size 4332 before we starting adding entries to the symbol table. 4333 4334 * bytecompiler/BytecodeGenerator.cpp: 4335 (JSC::BytecodeGenerator::BytecodeGenerator): 4336 * runtime/JSGlobalObject.cpp: 4337 (JSC::JSGlobalObject::resizeRegisters): 4338 4339 2011-03-17 Geoffrey Garen <ggaren (a] apple.com> 4340 4341 Reviewed by Oliver Hunt. 4342 4343 1 Structure leaked beneath JSGlobalData::storeVPtrs() 4344 https://bugs.webkit.org/show_bug.cgi?id=56595 4345 4346 * runtime/JSGlobalData.cpp: 4347 (JSC::JSGlobalData::storeVPtrs): Take local ownership of the Structure 4348 we're using, since the Executable is not designed to own the Structure. 4349 4350 2011-03-17 Gavin Barraclough <barraclough (a] apple.com> 4351 4352 Rubber Stamped by Sam Weinig. 4353 4354 Add missing register-register branchTest8 to MacroAssemblerX86Common/X86Assembler. 4355 4356 * assembler/MacroAssemblerX86Common.h: 4357 (JSC::MacroAssemblerX86Common::branchTest8): 4358 * assembler/X86Assembler.h: 4359 (JSC::X86Assembler::testb_rr): 4360 4361 2011-03-17 Gavin Barraclough <barraclough (a] apple.com> 4362 4363 Reviewed by Sam Weinig. 4364 4365 Bug 56603 - DFG JIT related cleanup 4366 Move node generation out to separate function, move binarySearch algorithm out 4367 to StdLibExtras, fix Graph::dump() to print comma between non-node children, 4368 even if there are no node children. 4369 4370 * bytecode/CodeBlock.h: 4371 (JSC::getCallReturnOffset): 4372 (JSC::CodeBlock::getStubInfo): 4373 (JSC::CodeBlock::getCallLinkInfo): 4374 (JSC::CodeBlock::getMethodCallLinkInfo): 4375 (JSC::CodeBlock::bytecodeOffset): 4376 - Move binaryChop to binarySearch in StdLibExtras 4377 * dfg/DFGByteCodeParser.cpp: 4378 (JSC::DFG::ByteCodeParser::ByteCodeParser): 4379 (JSC::DFG::ByteCodeParser::parse): 4380 (JSC::DFG::parse): 4381 - Make m_noArithmetic a member, initialize m_currentIndex in the constructor. 4382 * dfg/DFGByteCodeParser.h: 4383 - Change parse() to not take a start index (always 0). 4384 * dfg/DFGGraph.cpp: 4385 (JSC::DFG::Graph::dump): 4386 - Fix Graph::dump() to print comma between non-node children, even if there are no node children. 4387 * dfg/DFGJITCodeGenerator.h: 4388 (JSC::DFG::JITCodeGenerator::JITCodeGenerator): 4389 - Initialize m_compileIndex in constructor. 4390 * dfg/DFGNonSpeculativeJIT.cpp: 4391 (JSC::DFG::NonSpeculativeJIT::compile): 4392 * dfg/DFGNonSpeculativeJIT.h: 4393 - Spilt out compilation of individual node. 4394 * dfg/DFGOperations.cpp: 4395 (JSC::DFG::operationConvertThis): 4396 * dfg/DFGOperations.h: 4397 - Cleanup parameter name. 4398 * dfg/DFGSpeculativeJIT.cpp: 4399 (JSC::DFG::SpeculativeJIT::compile): 4400 * dfg/DFGSpeculativeJIT.h: 4401 - Spilt out compilation of individual node. 4402 * runtime/Executable.cpp: 4403 (JSC::tryDFGCompile): 4404 - Change parse() to not take a start index (always 0). 4405 * wtf/StdLibExtras.h: 4406 (WTF::binarySearch): 4407 - Move binaryChop to binarySearch in StdLibExtras 4408 4409 2011-03-17 Anders Carlsson <andersca (a] apple.com> 4410 4411 Reviewed by Geoffrey Garen. 4412 4413 Fix clang build. 4414 4415 * runtime/JSGlobalData.cpp: 4416 (JSC::JSGlobalData::storeVPtrs): 4417 4418 2011-03-17 Geoffrey Garen <ggaren (a] apple.com> 4419 4420 Reviewed by Darin Adler. 4421 4422 1 Structure leaked beneath JSGlobalData::storeVPtrs() 4423 https://bugs.webkit.org/show_bug.cgi?id=56595 4424 4425 * JavaScriptCore.xcodeproj/project.pbxproj: 4426 * runtime/JSGlobalData.cpp: 4427 (JSC::JSGlobalData::storeVPtrs): Now that we have an executable, we need 4428 to explicitly run its destructor. 4429 4430 2011-03-17 Jeff Miller <jeffm (a] apple.com> 4431 4432 Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically: 4433 4434 *.mode* 4435 *.pbxuser 4436 *.perspective* 4437 project.xcworkspace 4438 xcuserdata 4439 4440 * JavaScriptCore.xcodeproj: Modified property svn:ignore. 4441 4442 2011-03-17 Gavin Barraclough <barraclough (a] apple.com> 4443 4444 Reverting r81197, breaks JIT + INTERPRETER build. 4445 4446 * bytecode/CodeBlock.cpp: 4447 (JSC::CodeBlock::hasGlobalResolveInstructionAtBytecodeOffset): 4448 (JSC::CodeBlock::hasGlobalResolveInfoAtBytecodeOffset): 4449 * bytecode/CodeBlock.h: 4450 (JSC::CodeBlock::addPropertyAccessInstruction): 4451 (JSC::CodeBlock::addGlobalResolveInstruction): 4452 (JSC::CodeBlock::addStructureStubInfo): 4453 * bytecode/Opcode.h: 4454 * bytecode/StructureStubInfo.h: 4455 * bytecompiler/BytecodeGenerator.cpp: 4456 (JSC::BytecodeGenerator::emitResolve): 4457 (JSC::BytecodeGenerator::emitResolveWithBase): 4458 (JSC::BytecodeGenerator::emitGetById): 4459 (JSC::BytecodeGenerator::emitPutById): 4460 (JSC::BytecodeGenerator::emitDirectPutById): 4461 (JSC::BytecodeGenerator::emitCall): 4462 (JSC::BytecodeGenerator::emitConstruct): 4463 (JSC::BytecodeGenerator::emitCatch): 4464 4465 2011-03-17 Ben Taylor <bentaylor.solx86 (a] gmail.com> 4466 4467 Reviewed by Alexey Proskuryakov. 4468 4469 Add a COMPILER(SUNCC) define for Sun Studio 12. 4470 https://bugs.webkit.org/show_bug.cgi?56444 4471 derived from patch 1 of 16 originally from https://bugs.webkit.org/show_bug.cgi?id=24932 4472 4473 * wtf/Platform.h: 4474 4475 2011-03-17 Jay Civelli <jcivelli (a] chromium.org> 4476 4477 Reviewed by David Levin. 4478 4479 Adding a contains method to Vector. 4480 https://bugs.webkit.org/show_bug.cgi?id=55859 4481 4482 * wtf/Vector.h: 4483 (WTF::::operator): 4484 (WTF::::contains): 4485 4486 2011-03-17 Patrick Gansterer <paroga (a] webkit.org> 4487 4488 Fix the interpreter build. 4489 4490 * interpreter/Interpreter.cpp: 4491 (JSC::Interpreter::privateExecute): Added globalData to inheritorID(). 4492 4493 2011-03-16 Sam Weinig <sam (a] webkit.org> 4494 4495 Fix the interpreter build. 4496 4497 * interpreter/Interpreter.cpp: 4498 (JSC::Interpreter::resolve): 4499 (JSC::Interpreter::resolveSkip): 4500 (JSC::Interpreter::resolveGlobal): 4501 (JSC::Interpreter::resolveGlobalDynamic): 4502 (JSC::Interpreter::resolveBaseAndProperty): 4503 (JSC::Interpreter::privateExecute): 4504 Remove .get()s. 4505 4506 2011-03-16 Adam Barth <abarth (a] webkit.org> 4507 4508 Reviewed by James Robinson. 4509 4510 Remove USE(BUILTIN_UTF8_CODEC) 4511 https://bugs.webkit.org/show_bug.cgi?id=56508 4512 4513 We added this recently when we were unsure about the stability of the 4514 built-in UTF-8 codec. However, the codec seems to be stable, so we 4515 don't need the macro. 4516 4517 * wtf/Platform.h: 4518 4519 2011-03-16 Daniel Bates <dbates (a] rim.com> 4520 4521 Reviewed by Darin Adler. 4522 4523 Make JIT build for ARM Thumb-2 with RVCT 4524 https://bugs.webkit.org/show_bug.cgi?id=56440 4525 4526 Derived from a patch by Dave Tapuska. 4527 4528 Also, modify the RVCT stub template to indicate that it preserves 8 byte stack alignment. 4529 4530 * jit/JITStubs.cpp: 4531 4532 2011-03-16 Chao-ying Fu <fu (a] mips.com> 4533 4534 Reviewed by Darin Adler. 4535 4536 Fix MIPS build with const *void 4537 https://bugs.webkit.org/show_bug.cgi?id=56513 4538 4539 * assembler/MacroAssemblerMIPS.h: 4540 (JSC::MacroAssemblerMIPS::load32): 4541 (JSC::MacroAssemblerMIPS::store32): 4542 4543 2011-03-16 Oliver Hunt <oliver (a] apple.com> 4544 4545 Reviewed by Darin Adler. 4546 4547 Remove unnecessary caller tracking shenanigans from CodeBlock 4548 https://bugs.webkit.org/show_bug.cgi?id=56483 4549 4550 This removes some leftover cruft from when we made CodeBlock 4551 mark its callees. Removing it gives us a 0.7% progression, 4552 reducing the overall regression to ~1.3%. 4553 4554 * bytecode/CodeBlock.cpp: 4555 (JSC::CodeBlock::shrinkToFit): 4556 * bytecode/CodeBlock.h: 4557 (JSC::CallLinkInfo::CallLinkInfo): 4558 * jit/JIT.cpp: 4559 (JSC::JIT::linkCall): 4560 (JSC::JIT::linkConstruct): 4561 4562 2011-03-15 Oliver Hunt <oliver (a] apple.com> 4563 4564 Reviewed by Geoffrey Garen. 4565 4566 Make Structure creation require a JSGlobalData 4567 https://bugs.webkit.org/show_bug.cgi?id=56438 4568 4569 Mechanical change to make Structure::create require JSGlobalData&, and 4570 require all users to provide the globalData. 4571 4572 * API/JSCallbackConstructor.h: 4573 (JSC::JSCallbackConstructor::createStructure): 4574 * API/JSCallbackFunction.h: 4575 (JSC::JSCallbackFunction::createStructure): 4576 * API/JSCallbackObject.h: 4577 (JSC::JSCallbackObject::createStructure): 4578 * API/JSContextRef.cpp: 4579 * JavaScriptCore.exp: 4580 * debugger/DebuggerActivation.cpp: 4581 (JSC::DebuggerActivation::DebuggerActivation): 4582 * debugger/DebuggerActivation.h: 4583 (JSC::DebuggerActivation::createStructure): 4584 * jit/JITStubs.cpp: 4585 (JSC::DEFINE_STUB_FUNCTION): 4586 * jsc.cpp: 4587 (GlobalObject::GlobalObject): 4588 (functionRun): 4589 (jscmain): 4590 * runtime/Arguments.h: 4591 (JSC::Arguments::createStructure): 4592 * runtime/ArrayPrototype.h: 4593 (JSC::ArrayPrototype::createStructure): 4594 * runtime/BooleanObject.h: 4595 (JSC::BooleanObject::createStructure): 4596 * runtime/DateInstance.h: 4597 (JSC::DateInstance::createStructure): 4598 * runtime/DatePrototype.h: 4599 (JSC::DatePrototype::createStructure): 4600 * runtime/ErrorInstance.h: 4601 (JSC::ErrorInstance::createStructure): 4602 * runtime/Executable.h: 4603 (JSC::ExecutableBase::createStructure): 4604 (JSC::EvalExecutable::createStructure): 4605 (JSC::ProgramExecutable::createStructure): 4606 (JSC::FunctionExecutable::createStructure): 4607 * runtime/FunctionPrototype.h: 4608 (JSC::FunctionPrototype::createStructure): 4609 * runtime/GetterSetter.h: 4610 (JSC::GetterSetter::createStructure): 4611 * runtime/InternalFunction.h: 4612 (JSC::InternalFunction::createStructure): 4613 * runtime/JSAPIValueWrapper.h: 4614 (JSC::JSAPIValueWrapper::createStructure): 4615 * runtime/JSActivation.h: 4616 (JSC::JSActivation::createStructure): 4617 * runtime/JSArray.cpp: 4618 (JSC::JSArray::JSArray): 4619 * runtime/JSArray.h: 4620 (JSC::JSArray::createStructure): 4621 * runtime/JSByteArray.cpp: 4622 (JSC::JSByteArray::createStructure): 4623 * runtime/JSByteArray.h: 4624 (JSC::JSByteArray::JSByteArray): 4625 * runtime/JSCell.h: 4626 (JSC::JSCell::JSCell::createDummyStructure): 4627 * runtime/JSFunction.h: 4628 (JSC::JSFunction::createStructure): 4629 * runtime/JSGlobalData.cpp: 4630 (JSC::JSGlobalData::storeVPtrs): 4631 (JSC::JSGlobalData::JSGlobalData): 4632 * runtime/JSGlobalObject.cpp: 4633 (JSC::JSGlobalObject::reset): 4634 * runtime/JSGlobalObject.h: 4635 (JSC::JSGlobalObject::JSGlobalObject): 4636 (JSC::JSGlobalObject::createStructure): 4637 * runtime/JSNotAnObject.h: 4638 (JSC::JSNotAnObject::createStructure): 4639 * runtime/JSONObject.h: 4640 (JSC::JSONObject::createStructure): 4641 * runtime/JSObject.cpp: 4642 (JSC::JSObject::createInheritorID): 4643 * runtime/JSObject.h: 4644 (JSC::JSObject::createStructure): 4645 (JSC::JSNonFinalObject::createStructure): 4646 (JSC::JSFinalObject::createStructure): 4647 (JSC::createEmptyObjectStructure): 4648 (JSC::JSObject::inheritorID): 4649 * runtime/JSObjectWithGlobalObject.h: 4650 (JSC::JSObjectWithGlobalObject::createStructure): 4651 * runtime/JSPropertyNameIterator.h: 4652 (JSC::JSPropertyNameIterator::createStructure): 4653 * runtime/JSStaticScopeObject.h: 4654 (JSC::JSStaticScopeObject::createStructure): 4655 * runtime/JSString.h: 4656 (JSC::RopeBuilder::createStructure): 4657 * runtime/JSVariableObject.h: 4658 (JSC::JSVariableObject::createStructure): 4659 * runtime/JSWrapperObject.h: 4660 (JSC::JSWrapperObject::createStructure): 4661 * runtime/JSZombie.h: 4662 (JSC::JSZombie::createStructure): 4663 * runtime/MathObject.h: 4664 (JSC::MathObject::createStructure): 4665 * runtime/NativeErrorConstructor.cpp: 4666 (JSC::NativeErrorConstructor::NativeErrorConstructor): 4667 * runtime/NativeErrorConstructor.h: 4668 (JSC::NativeErrorConstructor::createStructure): 4669 * runtime/NumberConstructor.h: 4670 (JSC::NumberConstructor::createStructure): 4671 * runtime/NumberObject.h: 4672 (JSC::NumberObject::createStructure): 4673 * runtime/ObjectConstructor.h: 4674 (JSC::ObjectConstructor::createStructure): 4675 * runtime/RegExpConstructor.h: 4676 (JSC::RegExpConstructor::createStructure): 4677 * runtime/RegExpObject.h: 4678 (JSC::RegExpObject::createStructure): 4679 * runtime/ScopeChain.h: 4680 (JSC::ScopeChainNode::createStructure): 4681 * runtime/StringObject.h: 4682 (JSC::StringObject::createStructure): 4683 * runtime/StringObjectThatMasqueradesAsUndefined.h: 4684 (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): 4685 * runtime/StringPrototype.h: 4686 (JSC::StringPrototype::createStructure): 4687 * runtime/Structure.h: 4688 (JSC::Structure::create): 4689 4690 2011-03-16 Geoffrey Garen <ggaren (a] apple.com> 4691 4692 Reviewed by Oliver Hunt. 4693 4694 Some conservative root gathering cleanup 4695 https://bugs.webkit.org/show_bug.cgi?id=56447 4696 4697 SunSpider says 0.5% - 1.8% faster. 4698 4699 * interpreter/RegisterFile.cpp: 4700 (JSC::RegisterFile::gatherConservativeRoots): 4701 * interpreter/RegisterFile.h: New helper function for doing the 4702 conservative gathering of the register file. It's still conservative, 4703 since the register file may contain uninitialized values, but it's 4704 moving-safe, because it only visits values tagged as pointers, so there's 4705 no risk of mistaking an integer for a pointer and accidentally changing it. 4706 4707 * runtime/ConservativeSet.cpp: 4708 (JSC::ConservativeRoots::add): 4709 * runtime/ConservativeSet.h: Added a single-value add function, used above. 4710 4711 * runtime/Heap.cpp: 4712 (JSC::Heap::markRoots): Separated machine stack conservative roots from 4713 register file conservative roots because machine stack roots must be 4714 pinned, but register file roots need not be pinned. 4715 4716 Adopted new interface for passing the current stack extent to the machine 4717 stack root gathering routine. This allows us to exclude marking-related 4718 data structures on the stack, and thus avoid double-marking the set of 4719 machine roots. 4720 4721 * runtime/MachineStackMarker.cpp: 4722 (JSC::MachineThreads::gatherFromCurrentThread): 4723 (JSC::MachineThreads::gatherConservativeRoots): 4724 * runtime/MachineStackMarker.h: Added new interface, described above. 4725 4726 * runtime/MarkedBlock.h: 4727 (JSC::MarkedBlock::firstAtom): 4728 * wtf/StdLibExtras.h: 4729 (WTF::roundUpToMultipleOf): Moved roundUpToMultipleOf so it could be used 4730 by MachineStacks. 4731 4732 2011-03-16 Geoffrey Garen <ggaren (a] apple.com> 4733 4734 Reviewed by Oliver Hunt. 4735 4736 A little bit of MarkStack cleanup 4737 https://bugs.webkit.org/show_bug.cgi?id=56443 4738 4739 Moved MarkStack functions into MarkStack.h/.cpp. 4740 4741 SunSpider reports no change. 4742 4743 * runtime/JSArray.h: 4744 * runtime/JSCell.h: Moved from here... 4745 * runtime/MarkStack.cpp: 4746 (JSC::MarkStack::markChildren): 4747 (JSC::MarkStack::drain): ...to here. Also, no need to inline drain. It's 4748 a huge function, and not called many times. 4749 4750 * runtime/MarkStack.h: 4751 (JSC::MarkStack::~MarkStack): Moved near constructor, per style guide. 4752 (JSC::MarkStack::append): 4753 (JSC::MarkStack::deprecatedAppend): 4754 (JSC::MarkStack::internalAppend): Moved to here. 4755 4756 2011-03-15 Geoffrey Garen <ggaren (a] apple.com> 4757 4758 Reviewed by Oliver Hunt. 4759 4760 Removed another deprecatedAppend 4761 https://bugs.webkit.org/show_bug.cgi?id=56429 4762 4763 * collector/handles/HandleHeap.cpp: 4764 (JSC::HandleHeap::markStrongHandles): 4765 * collector/handles/HandleHeap.h: Use HeapRootMarker, since handles are 4766 marked directly by the Heap. 4767 4768 * runtime/Heap.cpp: 4769 (JSC::Heap::markRoots): Ditto. 4770 4771 2011-03-15 Geoffrey Garen <ggaren (a] apple.com> 4772 4773 Reviewed by Oliver Hunt. 4774 4775 Removed some more deprecated / unsafe append 4776 https://bugs.webkit.org/show_bug.cgi?id=56428 4777 4778 * collector/handles/HandleStack.cpp: 4779 (JSC::HandleStack::mark): 4780 * collector/handles/HandleStack.h: Mark the handle stack using a HeapRoot 4781 marker, since it's a heap root. 4782 4783 * runtime/ArgList.cpp: 4784 (JSC::MarkedArgumentBuffer::markLists): 4785 (JSC::MarkedArgumentBuffer::slowAppend): 4786 * runtime/ArgList.h: Ditto. 4787 4788 * runtime/Heap.cpp: 4789 (JSC::Heap::markRoots): Added a mark call for marking the handle stack. 4790 It seems like Oliver forgot this in his last patch. (!) 4791 4792 * runtime/MarkStack.h: Removed appendSlots, since it would allow an 4793 object to embed JSValues directly instead of using WriteBarrier. 4794 4795 (JSC::MarkStack::append): Added a private append for a list of values. 4796 4797 (JSC::HeapRootMarker::mark): Access to the above. 4798 4799 2011-03-15 Geoffrey Garen <ggaren (a] apple.com> 4800 4801 Reviewed by Oliver Hunt. 4802 4803 Removed a few more deprecatedAppends, and removed HeapRoot<T> 4804 https://bugs.webkit.org/show_bug.cgi?id=56422 4805 4806 Added HeapRootMarker, a privileged class for marking direct heap roots 4807 that are iterated during each garbage collection. This is easier to use 4808 and more reliable than HeapRoot<T>, so I've removed HeapRoot<T>. 4809 4810 * debugger/Debugger.cpp: 4811 (JSC::evaluateInGlobalCallFrame): 4812 * debugger/DebuggerCallFrame.cpp: 4813 (JSC::DebuggerCallFrame::evaluate): 4814 * interpreter/CallFrame.h: 4815 (JSC::ExecState::exception): 4816 * jit/JITStubs.cpp: 4817 (JSC::DEFINE_STUB_FUNCTION): 4818 * runtime/Completion.cpp: 4819 (JSC::evaluate): exception is no longer a HeapRoot<T>, so no need to 4820 call .get() on it. 4821 4822 * runtime/Heap.cpp: 4823 (JSC::Heap::markProtectedObjects): 4824 (JSC::Heap::markTempSortVectors): 4825 (JSC::Heap::markRoots): 4826 * runtime/Heap.h: Updated to use HeapRootMarker. 4827 4828 * runtime/JSCell.h: 4829 (JSC::JSCell::MarkStack::append): Added private functions for 4830 HeapRootMarker to use. 4831 4832 * runtime/JSGlobalData.h: exception is no longer a HeapRoot<T>. 4833 4834 * runtime/MarkStack.h: 4835 (JSC::HeapRootMarker::HeapRootMarker): 4836 (JSC::HeapRootMarker::mark): Added private functions for 4837 HeapRootMarker to use. 4838 4839 * runtime/SmallStrings.cpp: 4840 (JSC::SmallStrings::markChildren): Updated to use HeapRootMarker. 4841 4842 * runtime/SmallStrings.h: 4843 (JSC::SmallStrings::emptyString): 4844 (JSC::SmallStrings::singleCharacterString): 4845 (JSC::SmallStrings::singleCharacterStrings): Updated to use HeapRootMarker. 4846 4847 * runtime/WriteBarrier.h: Removed HeapRoot<T>. 4848 4849 2011-03-14 Geoffrey Garen <ggaren (a] apple.com> 4850 4851 Reviewed by Oliver Hunt. 4852 4853 Made the global object moving-GC-safe 4854 https://bugs.webkit.org/show_bug.cgi?id=56348 4855 4856 SunSpider reports no change. 4857 4858 * runtime/JSGlobalObject.cpp: 4859 (JSC::JSGlobalObject::markChildren): Removed a dubious comment that 4860 suggested we do not need to visit all our references during GC, since 4861 that is not true in a moving GC. 4862 4863 Re-sorted data members by type, removed one duplicate, and added back 4864 the one missing mark I found. 4865 4866 * runtime/JSGlobalObject.h: Re-sorted data members by type. 4867 4868 2011-03-15 Oliver Hunt <oliver (a] apple.com> 4869 4870 Reviewed by Geoffrey Garen. 4871 4872 Introduce Local<T> to allow us to start moving to precise marking of locals 4873 https://bugs.webkit.org/show_bug.cgi?id=56394 4874 4875 Introduce a new handle type, Local<T> and a scoping mechanism 4876 LocalScope to allow us to start moving towards precise marking 4877 of temporaries and local variables. 4878 4879 We also start to use the new Local<> type in the JSON stringifier 4880 so that we can have some coverage of their behaviour in the initial 4881 checkin. 4882 4883 * GNUmakefile.am: 4884 * JavaScriptCore.gypi: 4885 * JavaScriptCore.pro: 4886 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 4887 * JavaScriptCore.xcodeproj/project.pbxproj: 4888 * collector/handles/Handle.h: 4889 (JSC::::asObject): 4890 * collector/handles/HandleStack.cpp: Added. 4891 (JSC::HandleStack::HandleStack): 4892 (JSC::HandleStack::mark): 4893 (JSC::HandleStack::grow): 4894 * collector/handles/HandleStack.h: Added. 4895 (JSC::HandleStack::enterScope): 4896 (JSC::HandleStack::zapTo): 4897 (JSC::HandleStack::leaveScope): 4898 (JSC::HandleStack::push): 4899 * collector/handles/Local.h: Added. 4900 (JSC::Local::internalSet): 4901 (JSC::::Local): 4902 (JSC::::operator): 4903 (JSC::LocalStack::LocalStack): 4904 (JSC::LocalStack::peek): 4905 (JSC::LocalStack::pop): 4906 (JSC::LocalStack::push): 4907 (JSC::LocalStack::isEmpty): 4908 (JSC::LocalStack::size): 4909 * collector/handles/LocalScope.h: Added. 4910 (JSC::LocalScope::LocalScope): 4911 (JSC::LocalScope::~LocalScope): 4912 (JSC::LocalScope::release): 4913 * runtime/Heap.cpp: 4914 (JSC::Heap::markRoots): 4915 * runtime/Heap.h: 4916 (JSC::Heap::allocateLocalHandle): 4917 (JSC::Heap::handleStack): 4918 * runtime/JSCell.h: 4919 (JSC::JSCell::::getString): 4920 * runtime/JSGlobalData.cpp: 4921 (JSC::JSGlobalData::JSGlobalData): 4922 * runtime/JSGlobalData.h: 4923 (JSC::JSGlobalData::allocateLocalHandle): 4924 * runtime/JSONObject.cpp: 4925 (JSC::Stringifier::Stringifier): 4926 (JSC::Stringifier::stringify): 4927 (JSC::Stringifier::appendStringifiedValue): 4928 (JSC::Stringifier::Holder::Holder): 4929 (JSC::Walker::Walker): 4930 (JSC::Walker::walk): 4931 (JSC::JSONProtoFuncParse): 4932 (JSC::JSONProtoFuncStringify): 4933 (JSC::JSONStringify): 4934 * runtime/JSONObject.h: 4935 * runtime/MarkStack.h: 4936 (JSC::MarkStack::appendValues): 4937 (JSC::MarkStack::appendSlots): 4938 4939 2011-03-15 Gavin Barraclough <barraclough (a] apple.com> 4940 4941 Rubber Stamped by Sam Weinig. 4942 4943 Bug 56420 - Remove ENABLE(JIT) code from ByteCompiler 4944 Some methods have unnecessary differences in name/arguments for interpreter/JIT. 4945 4946 * bytecode/CodeBlock.cpp: 4947 * bytecode/CodeBlock.h: 4948 (JSC::HandlerInfo::HandlerInfo): 4949 (JSC::CodeBlock::addPropertyAccessInfo): 4950 (JSC::CodeBlock::addGlobalResolveInfo): 4951 (JSC::CodeBlock::addCallLinkInfo): 4952 (JSC::CodeBlock::globalResolveInfo): 4953 * bytecode/Opcode.h: 4954 * bytecode/StructureStubInfo.h: 4955 * bytecompiler/BytecodeGenerator.cpp: 4956 (JSC::BytecodeGenerator::emitResolve): 4957 (JSC::BytecodeGenerator::emitResolveWithBase): 4958 (JSC::BytecodeGenerator::emitGetById): 4959 (JSC::BytecodeGenerator::emitPutById): 4960 (JSC::BytecodeGenerator::emitDirectPutById): 4961 (JSC::BytecodeGenerator::emitCall): 4962 (JSC::BytecodeGenerator::emitConstruct): 4963 (JSC::BytecodeGenerator::emitCatch): 4964 4965 2011-03-15 Gavin Barraclough <barraclough (a] apple.com> 4966 4967 Reviewed by Sam Weinig. 4968 4969 Fix broken assert in new code. 4970 4971 * dfg/DFGAliasTracker.h: 4972 (JSC::DFG::AliasTracker::recordPutByVal): 4973 - recordPutByVal is called for both PutByVal & PutByValAlias. 4974 4975 2011-03-15 Gavin Barraclough <barraclough (a] apple.com> 4976 4977 Rubber stamped by Sam Weinig. 4978 4979 Removed redundant code from BytecodeGenerator. 4980 4981 * bytecompiler/BytecodeGenerator.cpp: 4982 * bytecompiler/BytecodeGenerator.h: 4983 - delete uncalled code missed when reparsing was removed. 4984 4985 2011-03-15 Kevin Ollivier <kevino (a] theolliviers.com> 4986 4987 Reviewed by Darin Adler. 4988 4989 Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export 4990 info into the headers rather than in export symbol definition files, but disable it on 4991 all platforms initially so we can deal with port build issues one port at a time. 4992 4993 https://bugs.webkit.org/show_bug.cgi?id=27551 4994 4995 * API/JSBase.h: 4996 * config.h: 4997 * wtf/Assertions.h: 4998 * wtf/ExportMacros.h: Added. 4999 * wtf/Platform.h: 5000 5001 2011-03-14 Laszlo Gombos <laszlo.1.gombos (a] nokia.com> 5002 5003 Unreviewed build fix. 5004 5005 Buildfix when JIT is not enabled after r81079 5006 https://bugs.webkit.org/show_bug.cgi?id=56361 5007 5008 * runtime/Executable.cpp: 5009 5010 2011-03-14 Geoffrey Garen <ggaren (a] apple.com> 5011 5012 Reviewed by Oliver Hunt. 5013 5014 Made the global object moving-GC-safe 5015 https://bugs.webkit.org/show_bug.cgi?id=56348 5016 5017 SunSpider reports no change. 5018 5019 * runtime/JSGlobalObject.cpp: 5020 (JSC::JSGlobalObject::markChildren): Removed a dubious comment that 5021 suggested we do not need to visit all our references during GC, since 5022 that is not true in a moving GC. 5023 5024 Re-sorted data members by type, removed one duplicate, and added back 5025 the one missing mark I found. 5026 5027 * runtime/JSGlobalObject.h: Re-sorted data members by type. 5028 5029 2011-03-14 Geoffrey Garen <ggaren (a] apple.com> 5030 5031 Reviewed by Oliver Hunt. 5032 5033 Made JSWrapperObject and subclasses moving-GC-safe 5034 https://bugs.webkit.org/show_bug.cgi?id=56346 5035 5036 SunSpider reports no change. 5037 5038 * runtime/BooleanObject.cpp: 5039 (JSC::BooleanObject::BooleanObject): 5040 * runtime/DateInstance.cpp: 5041 (JSC::DateInstance::DateInstance): No more need for JSGlobalData, since 5042 we don't initialize the wrapped value in our constructor. 5043 5044 * runtime/DateInstance.h: Don't set the OverridesMarkChildren flag because 5045 we do not in fact override markChildren. 5046 5047 * runtime/DatePrototype.h: Declare an anonymous slot, since wrapper object 5048 no longer does so for us. Also added an ASSERT to catch a latent bug, 5049 where DatePrototype stomped on its base class's anonymous slot. Hard-coded 5050 anonymous slots are a plague on our code. This doesn't cause any problems 5051 in our existing code since the base class never reads the anonymous slot 5052 it declares, but it caused crashes when I tried to start using the slot 5053 in an initial version of this patch. 5054 5055 * runtime/JSWrapperObject.h: 5056 (JSC::JSWrapperObject::JSWrapperObject): 5057 (JSC::JSWrapperObject::internalValue): 5058 (JSC::JSWrapperObject::setInternalValue): Resolved a problem where 5059 our internal value was stored in two places: an anonymous slot, and a 5060 data member which was not always visited during GC. Now, we only use the 5061 data member, and we always visit it. (Instead of relying on certain 5062 subclasses to set the OverridesMarkChildren bit, we set it ourselves.) 5063 5064 * runtime/NumberObject.cpp: 5065 (JSC::NumberObject::NumberObject): No more need for JSGlobalData, since 5066 we don't initialize the wrapped value in our constructor. 5067 5068 * runtime/NumberObject.h: Removed meaningless declaration. 5069 5070 * runtime/StringObject.cpp: 5071 (JSC::StringObject::StringObject): No more need for JSGlobalData, since 5072 we don't initialize the wrapped value in our constructor. 5073 5074 * runtime/StringObject.h: Don't set the OverridesMarkChildren flag because 5075 we do not in fact override markChildren. 5076 5077 * runtime/StringPrototype.h: Declare an anonymous slot, since wrapper object 5078 no longer does so for us. Also added an ASSERT to catch a latent bug, 5079 where DatePrototype stomped on its base class's anonymous slot. Hard-coded 5080 anonymous slots are a plague on our code. 5081 5082 2011-03-14 Michael Saboff <msaboff (a] apple.com> 5083 5084 Reviewed by Gavin Barraclough. 5085 5086 Look-ahead assertions with back references dont work as expected 5087 https://bugs.webkit.org/show_bug.cgi?id=56082 5088 5089 Changed parentheses assertion processing to temporarily back out the 5090 number of known characters after the assertion while processing the 5091 assertion. This was done so that assertions don't fail due to 5092 checking the number of required characters as additional to the 5093 rest of the express since assertions don't "consume" input. 5094 Added a byte code to uncheck characters to support the change. 5095 5096 * yarr/YarrInterpreter.cpp: 5097 (JSC::Yarr::Interpreter::matchDisjunction): 5098 (JSC::Yarr::ByteCompiler::uncheckInput): 5099 (JSC::Yarr::ByteCompiler::emitDisjunction): 5100 * yarr/YarrInterpreter.h: 5101 (JSC::Yarr::ByteTerm::UncheckInput): 5102 5103 2011-03-14 Viatcheslav Ostapenko <ostapenko.viatcheslav (a] nokia.com> 5104 5105 Reviewed by Laszlo Gombos. 5106 5107 [Qt] Warning that round/roundf functions are already defined when compiled with RVCT 4 on symbian. 5108 https://bugs.webkit.org/show_bug.cgi?id=56133 5109 5110 Add condition to not compile webkit internal math round functions on RVCT compiler versions 5111 from 3.0.0 because they are already defined in compiler math library. 5112 5113 * wtf/MathExtras.h: 5114 5115 2011-03-14 Gavin Barraclough <barraclough (a] apple.com> 5116 5117 Reviewed by Geoffrey Garen & Oliver Hunt. 5118 5119 Bug 56284 - Add a dataflow intermediate representation for use in JIT generation. 5120 5121 The JSC JIT presently generates code directly from the bytecode used by the interpreter. 5122 This is not an optimal intermediate representation for JIT code generation, since it does 5123 not capture liveness information of values, and provides little opportunity to perform 5124 any static analysis for even primitive types. The JIT currently generates two code paths, 5125 a fast path handling common cases, and a slower path handling less common operand types. 5126 However the slow path jumps back into the fast path, meaning that information arising 5127 from the earlier type checks cannot be propagated to later operations. 5128 5129 This patch adds: 5130 * a dataflow intermediate representation capable of describing a single basic block 5131 of operations, 5132 * a mechanism to convert a simple, single-block bytecode functions to the new IR, 5133 * and a JIT code generator capable of generating code from this representation. 5134 5135 The JIT generates two code paths, with the slower path not reentering the fast path 5136 mid-block, allowing speculative optimizations to be made on the hot path, with type 5137 information arising from these speculative decisions able to be propagated through the 5138 dataflow. Code generation of both speculative and non-speculative paths exploits the type 5139 and liveness information represented in the dataflow graph to attempt to avoid redundant 5140 boxing and type-checking of values, and to remove unnecessary spills of temporary values 5141 to the RegisterFile. 5142 5143 The dataflow JIT currently can only support a subset of bytecode operations, limited to 5144 arithmetic, bit-ops, and basic property access. Functions that cannot be compiled by the 5145 dataflow JIT will be run using the existing JIT. The coverage of the dataflow JIT will be 5146 expanded to include, control-flow, function calls, and then the long-tail of remaining 5147 bytecode instructions. The JIT presently only support JSVALUE64, and as a consequence of 5148 this only supports x86-64. 5149 5150 The status of the dataflow JIT is currently work-in-progress. Limitations of the present 5151 JIT code generation may cause performance regressions, particularly: 5152 * the policy to only generate arithmetic code on the speculative path using integer 5153 instructions, never using floating point. 5154 * the policy to only generate arithmetic code on the non-speculative path using 5155 floating point instructions, never using integer. 5156 * always generating JSValue adds on the non-speculative path as a call out to a 5157 C-function, never handling this in JIT code. 5158 * always assuming by-Value property accesses on the speculative path to be array 5159 accesses. 5160 * generating all by-Value property accesses from the non-speculative path as a call 5161 out to a C-function. 5162 * generating all by-Indentifer property accesses as a call out to a C-function. 5163 Due to these regressions, the code is landed in a state where it is disabled in most 5164 cases by the ENABLE_DFG_JIT_RESTRICTIONS guard in Platform.h. As these regressions are 5165 addressed, the JIT will be allowed to trigger in more cases. 5166 5167 * JavaScriptCore.xcodeproj/project.pbxproj: 5168 - Added new files to Xcode project. 5169 * dfg: Added. 5170 - Added directory for new code. 5171 * dfg/DFGByteCodeParser.cpp: Added. 5172 * dfg/DFGByteCodeParser.h: Added. 5173 - Contruct a DFG::Graph representation from a bytecode CodeBlock. 5174 * dfg/DFGGenerationInfo.h: Added. 5175 - Track type & register information for VirtualRegisters during JIT code generation. 5176 * dfg/DFGGraph.cpp: Added. 5177 * dfg/DFGGraph.h: Added. 5178 - Dataflow graph intermediate representation for code generation. 5179 * dfg/DFGJITCodeGenerator.cpp: Added. 5180 * dfg/DFGJITCodeGenerator.h: Added. 5181 - Base class for SpeculativeJIT & NonSpeculativeJIT to share common functionality. 5182 * dfg/DFGJITCompiler.cpp: Added. 5183 * dfg/DFGJITCompiler.h: Added. 5184 - Class responsible for driving code generation of speculativeJIT & non-speculative 5185 code paths from the dataflow graph. 5186 * dfg/DFGNonSpeculativeJIT.cpp: Added. 5187 * dfg/DFGNonSpeculativeJIT.h: Added. 5188 - Used to generate the non-speculative code path, this make no assumptions 5189 about operand types. 5190 * dfg/DFGOperations.cpp: Added. 5191 * dfg/DFGOperations.h: Added. 5192 - Helper functions called from the JIT generated code. 5193 * dfg/DFGRegisterBank.h: Added. 5194 - Used to track contents of physical registers during JIT code generation. 5195 * dfg/DFGSpeculativeJIT.cpp: Added. 5196 * dfg/DFGSpeculativeJIT.h: Added. 5197 - Used to generate the speculative code path, this make assumptions about 5198 operand types to enable optimization. 5199 * runtime/Executable.cpp: 5200 - Add code to attempt to use the DFG JIT to compile a function, with fallback 5201 to the existing JIT. 5202 * wtf/Platform.h: 5203 - Added compile guards to enable the DFG JIT. 5204 5205 2011-03-14 Geoffrey Garen <ggaren (a] apple.com> 5206 5207 Reviewed by Oliver Hunt. 5208 5209 Removed more cases of DeprecatedPtr (exception, SmallStrings) 5210 https://bugs.webkit.org/show_bug.cgi?id=56332 5211 5212 * runtime/Identifier.cpp: 5213 (JSC::Identifier::add): 5214 (JSC::Identifier::addSlowCase): Use a variable instead of a hard-coded 5215 constant, to make this code less brittle. 5216 5217 * runtime/JSGlobalData.h: Use HeapRoot instead of DeprecatedPtr because 5218 this reference is owned and managed directly by the heap. 5219 5220 * runtime/JSString.cpp: 5221 (JSC::JSString::substringFromRope): 5222 * runtime/JSString.h: 5223 (JSC::jsSingleCharacterString): 5224 (JSC::jsSingleCharacterSubstring): 5225 (JSC::jsString): 5226 (JSC::jsStringWithFinalizer): 5227 (JSC::jsSubstring): 5228 (JSC::jsOwnedString): Use a variable instead of a hard-coded 5229 constant, to make this code less brittle. 5230 5231 * runtime/SmallStrings.cpp: 5232 (JSC::SmallStringsStorage::rep): 5233 (JSC::SmallStringsStorage::SmallStringsStorage): 5234 (JSC::SmallStrings::SmallStrings): 5235 (JSC::SmallStrings::markChildren): 5236 (JSC::SmallStrings::clear): 5237 (JSC::SmallStrings::count): Use a variable instead of a hard-coded 5238 constant, to make this code less brittle. 5239 5240 * runtime/SmallStrings.h: 5241 (JSC::SmallStrings::singleCharacterString): Use HeapRoot instead of 5242 DeprecatedPtr because these references are owned and managed directly by 5243 the heap. 5244 5245 Stop using FixedArray because we only want a very limited set 5246 of classes to be able to use HeapRoot. (Replaced with manual ASSERTs.) 5247 5248 * runtime/WriteBarrier.h: 5249 (JSC::operator==): 5250 (JSC::WriteBarrier::WriteBarrier): 5251 (JSC::HeapRoot::HeapRoot): 5252 (JSC::HeapRoot::operator=): Added HeapRoot, which is allowed to set 5253 without write barrier because we assume all HeapRoots are scanned during 5254 all GC passes. 5255 5256 2011-03-14 Brian Weinstein <bweinstein (a] apple.com> 5257 5258 Reviewed by Adam Roben and Gavin Barraclough. 5259 5260 FileSystemWin.cpp needs listDirectory() implementation 5261 https://bugs.webkit.org/show_bug.cgi?id=56331 5262 <rdar://problem/9126635> 5263 5264 Give StringConcatenate the ability to deal with const UChar*'s as a String type to append. 5265 5266 * wtf/text/StringConcatenate.h: 5267 5268 2011-03-14 Mark Rowe <mrowe (a] apple.com> 5269 5270 Reviewed by Oliver Hunt. 5271 5272 <http://webkit.org/b/56304> REGRESSION(r80892): 100,000+ leaks seen on the build bot 5273 5274 * API/JSClassRef.cpp: 5275 (OpaqueJSClass::OpaqueJSClass): Don't leak any existing entry for the given name if 5276 the class definition contains duplicates. This also removes what look to be leaks 5277 of the StringImpl instances that are used as keys: the HashMap key type is a RefPtr 5278 which retains / releases the instances at the appropriate time, so explicitly calling 5279 ref is not necessary. 5280 5281 2011-03-14 Oliver Hunt <oliver (a] apple.com> 5282 5283 Fix windows build 5284 5285 * jit/JSInterfaceJIT.h: 5286 (JSC::JSInterfaceJIT::emitLoadInt32): 5287 (JSC::JSInterfaceJIT::tagFor): 5288 (JSC::JSInterfaceJIT::payloadFor): 5289 (JSC::JSInterfaceJIT::intPayloadFor): 5290 (JSC::JSInterfaceJIT::intTagFor): 5291 (JSC::JSInterfaceJIT::addressFor): 5292 5293 2011-03-11 Oliver Hunt <oliver (a] apple.com> 5294 5295 Reviewed by Gavin Barraclough. 5296 5297 Ensure all values are correctly tagged in the registerfile 5298 https://bugs.webkit.org/show_bug.cgi?id=56214 5299 5300 This patch makes sure that all JSCell pointers written to 5301 the registerfile are correctly tagged as JSCells, and replaces 5302 raw int usage with the immediate representation. 5303 5304 For performance, register pressure, and general saneness reasons 5305 I've added abstractions for reading and writing the tag 5306 and payload of integer registers directly for the JSVALUE64 5307 encoding. 5308 5309 * interpreter/Register.h: 5310 (JSC::Register::withInt): 5311 (JSC::Register::withCallee): 5312 (JSC::Register::operator=): 5313 (JSC::Register::i): 5314 (JSC::Register::activation): 5315 (JSC::Register::function): 5316 (JSC::Register::propertyNameIterator): 5317 (JSC::Register::scopeChain): 5318 * jit/JIT.h: 5319 * jit/JITCall.cpp: 5320 (JSC::JIT::compileOpCallInitializeCallFrame): 5321 (JSC::JIT::compileOpCallVarargs): 5322 (JSC::JIT::compileOpCall): 5323 * jit/JITCall32_64.cpp: 5324 (JSC::JIT::compileOpCallInitializeCallFrame): 5325 (JSC::JIT::compileOpCallVarargs): 5326 (JSC::JIT::compileOpCall): 5327 (JSC::JIT::compileOpCallSlowCase): 5328 * jit/JITInlineMethods.h: 5329 (JSC::JIT::emitPutToCallFrameHeader): 5330 (JSC::JIT::emitPutCellToCallFrameHeader): 5331 (JSC::JIT::emitPutIntToCallFrameHeader): 5332 * jit/JITOpcodes.cpp: 5333 (JSC::JIT::privateCompileCTINativeCall): 5334 (JSC::JIT::emit_op_get_pnames): 5335 (JSC::JIT::emit_op_next_pname): 5336 (JSC::JIT::emit_op_load_varargs): 5337 (JSC::JIT::emitSlow_op_load_varargs): 5338 * jit/JITOpcodes32_64.cpp: 5339 (JSC::JIT::privateCompileCTINativeCall): 5340 (JSC::JIT::emit_op_get_pnames): 5341 (JSC::JIT::emit_op_next_pname): 5342 * jit/JSInterfaceJIT.h: 5343 (JSC::JSInterfaceJIT::intPayloadFor): 5344 (JSC::JSInterfaceJIT::intTagFor): 5345 * jit/SpecializedThunkJIT.h: 5346 (JSC::SpecializedThunkJIT::returnJSValue): 5347 (JSC::SpecializedThunkJIT::returnDouble): 5348 (JSC::SpecializedThunkJIT::returnInt32): 5349 (JSC::SpecializedThunkJIT::returnJSCell): 5350 5351 2011-03-13 Geoffrey Garen <ggaren (a] apple.com> 5352 5353 Reviewed by Sam Weinig. 5354 5355 A few Heap-related renames (sans file moves, which should come next) 5356 https://bugs.webkit.org/show_bug.cgi?id=56283 5357 5358 ConservativeSet => ConservativeRoots. "Set" was misleading, since items 5359 are not uniqued. Also, "Roots" is more specific about what's in the set. 5360 5361 MachineStackMarker => MachineThreads. "Threads" is more descriptive of 5362 the fact that this class maintains a set of all threads using JSC. 5363 "Stack" was misleading, since this class traverses stacks and registers. 5364 "Mark" was misleading, since this class doesn't mark anything anymore. 5365 5366 registerThread => addCurrentThread. "Current" is more specific. 5367 unregisterThread => removeCurrentThread. "Current" is more specific. 5368 5369 "currentThreadRegistrar" => threadSpecific. The only point of this data 5370 structure is to register a thread-specific destructor with a pointer to 5371 this. 5372 5373 "mark...Conservatively" => "gather". "Mark" is not true, since these 5374 functions don't mark anything. "Conservatively" is redundant, since they 5375 take "ConservativeRoots" as an argument. 5376 5377 * API/APIShims.h: 5378 (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): 5379 * JavaScriptCore.exp: 5380 * runtime/ConservativeSet.cpp: 5381 (JSC::ConservativeRoots::grow): 5382 (JSC::ConservativeRoots::add): 5383 * runtime/ConservativeSet.h: 5384 (JSC::ConservativeRoots::ConservativeRoots): 5385 (JSC::ConservativeRoots::~ConservativeRoots): 5386 (JSC::ConservativeRoots::size): 5387 (JSC::ConservativeRoots::roots): 5388 * runtime/Heap.cpp: 5389 (JSC::Heap::Heap): 5390 (JSC::Heap::markRoots): 5391 * runtime/Heap.h: 5392 (JSC::Heap::machineThreads): 5393 * runtime/JSGlobalData.h: 5394 (JSC::JSGlobalData::makeUsableFromMultipleThreads): 5395 * runtime/MachineStackMarker.cpp: 5396 (JSC::MachineThreads::MachineThreads): 5397 (JSC::MachineThreads::~MachineThreads): 5398 (JSC::MachineThreads::makeUsableFromMultipleThreads): 5399 (JSC::MachineThreads::addCurrentThread): 5400 (JSC::MachineThreads::removeThread): 5401 (JSC::MachineThreads::removeCurrentThread): 5402 (JSC::MachineThreads::gatherFromCurrentThreadInternal): 5403 (JSC::MachineThreads::gatherFromCurrentThread): 5404 (JSC::MachineThreads::gatherFromOtherThread): 5405 (JSC::MachineThreads::gatherConservativeRoots): 5406 * runtime/MachineStackMarker.h: 5407 * runtime/MarkStack.h: 5408 (JSC::MarkStack::append): 5409 5410 2011-03-13 David Kilzer <ddkilzer (a] apple.com> 5411 5412 BUILD FIX for armv7 after r80969 5413 5414 Bug 56270 - The JIT 'friend's many classes in JSC; start unwinding this. 5415 <https://bugs.webkit.org/show_bug.cgi?id=56270> 5416 5417 * assembler/MacroAssemblerARMv7.h: 5418 (JSC::MacroAssemblerARMv7::load32): Made void* address argument 5419 const. 5420 (JSC::MacroAssemblerARMv7::store32): Ditto. 5421 5422 2011-03-13 Geoffrey Garen <ggaren (a] apple.com> 5423 5424 Not reviewed. 5425 5426 Try to fix the Mac build. 5427 5428 * JavaScriptCore.xcodeproj/project.pbxproj: Make sure to forward 5429 ConervativeSet.h, since it's now visible when compiling other projects. 5430 5431 2011-03-13 Geoffrey Garen <ggaren (a] apple.com> 5432 5433 Reviewed by Oliver Hunt. 5434 5435 Removed another case of DeprecatedPtr (ConservativeSet) 5436 https://bugs.webkit.org/show_bug.cgi?id=56281 5437 5438 The ConservativeSet is an internal data structure used during marking, 5439 so direct pointers are fine. 5440 5441 * runtime/ConservativeSet.cpp: 5442 (JSC::ConservativeSet::grow): 5443 * runtime/ConservativeSet.h: Added some accessors, for use by MarkStack::append. 5444 (JSC::ConservativeSet::~ConservativeSet): Fixed a typo where we calculated 5445 the size of the set based on sizeof(DeprecatedPtr<T>*) instead of 5446 sizeof(DeprecatedPtr<T>). I'm not sure if this had real-world implications or not. 5447 (JSC::ConservativeSet::size): 5448 (JSC::ConservativeSet::set): Use direct pointers, as stated above. 5449 5450 * runtime/Heap.cpp: 5451 (JSC::Heap::markRoots): 5452 * runtime/MarkStack.h: 5453 (JSC::MarkStack::append): Created a special case of append for 5454 ConservativeSet. I didn't want to add back a generic "append JSCell*" 5455 function, since other class might start using that wrong. (In the end, 5456 this function might go away, since the Heap will want to do something 5457 slightly more interesting with the conservative set, but this is OK for 5458 now.) 5459 5460 2011-03-13 Geoffrey Garen <ggaren (a] apple.com> 5461 5462 Reviewed by Oliver Hunt. 5463 5464 Removed another case of DeprecatedPtr (PutPropertySlot) 5465 https://bugs.webkit.org/show_bug.cgi?id=56278 5466 5467 * runtime/PutPropertySlot.h: 5468 (JSC::PutPropertySlot::setExistingProperty): 5469 (JSC::PutPropertySlot::setNewProperty): 5470 (JSC::PutPropertySlot::base): Direct pointer is fine for PutPropertySlot, 5471 since it's a stack-allocated temporary. 5472 5473 2011-03-13 Geoffrey Garen <ggaren (a] apple.com> 5474 5475 Reviewed by Oliver Hunt. 5476 5477 Removed one case of DeprecatedPtr (ScopeChainIterator) 5478 https://bugs.webkit.org/show_bug.cgi?id=56277 5479 5480 * runtime/ScopeChain.h: Direct pointer is fine for ScopeChainIterator, 5481 since it's a stack-allocated temporary. 5482 5483 2011-03-13 Gavin Barraclough <barraclough (a] apple.com> 5484 5485 Reviewed by Sam Weinig. 5486 5487 Bug 56273 - Add three operand forms to MacroAssember operations. 5488 5489 Adding for X86(_64) for now, should be rolled out to other backends as necessary. 5490 These may allow more efficient code generation in some cases, avoiding the need 5491 for unnecessary register-register move instructions. 5492 5493 * assembler/AbstractMacroAssembler.h: 5494 (JSC::AbstractMacroAssembler::Jump::link): 5495 (JSC::AbstractMacroAssembler::Jump::linkTo): 5496 - marked these methods const. 5497 (JSC::AbstractMacroAssembler::Jump::isSet): 5498 - add a method to check whether a Jump object has been set to 5499 reference an instruction, or is in a null, unset state. 5500 * assembler/MacroAssemblerCodeRef.h: 5501 (JSC::FunctionPtr::FunctionPtr): 5502 - add non-explicit constructor, for FunctionPtr's to C/C++ functions. 5503 * assembler/MacroAssemblerX86Common.h: 5504 (JSC::MacroAssemblerX86Common::and32): 5505 (JSC::MacroAssemblerX86Common::lshift32): 5506 (JSC::MacroAssemblerX86Common::or32): 5507 (JSC::MacroAssemblerX86Common::rshift32): 5508 (JSC::MacroAssemblerX86Common::urshift32): 5509 (JSC::MacroAssemblerX86Common::xor32): 5510 (JSC::MacroAssemblerX86Common::moveDouble): 5511 (JSC::MacroAssemblerX86Common::addDouble): 5512 (JSC::MacroAssemblerX86Common::divDouble): 5513 (JSC::MacroAssemblerX86Common::subDouble): 5514 (JSC::MacroAssemblerX86Common::mulDouble): 5515 (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32): 5516 (JSC::MacroAssemblerX86Common::branchTest32): 5517 (JSC::MacroAssemblerX86Common::branchTest8): 5518 (JSC::MacroAssemblerX86Common::branchAdd32): 5519 (JSC::MacroAssemblerX86Common::branchMul32): 5520 (JSC::MacroAssemblerX86Common::branchSub32): 5521 - add three operand forms of these instructions. 5522 * assembler/MacroAssemblerX86_64.h: 5523 (JSC::MacroAssemblerX86_64::addDouble): 5524 (JSC::MacroAssemblerX86_64::convertInt32ToDouble): 5525 (JSC::MacroAssemblerX86_64::loadPtr): 5526 (JSC::MacroAssemblerX86_64::branchTestPtr): 5527 * assembler/X86Assembler.h: 5528 (JSC::X86Assembler::JmpSrc::isSet): 5529 - add a method to check whether a JmpSrc object has been set to 5530 reference an instruction, or is in a null, unset state. 5531 (JSC::X86Assembler::movsd_rr): 5532 - added FP register-register move. 5533 (JSC::X86Assembler::linkJump): 5534 - Add an assert to check jumps aren't linked more than once. 5535 * jit/JITInlineMethods.h: 5536 (JSC::JIT::emitLoadInt32ToDouble): 5537 - load integers to the FPU via regsiters on x86-64. 5538 5539 2011-03-13 Gavin Barraclough <barraclough (a] apple.com> 5540 5541 ARM build fix. 5542 5543 * assembler/MacroAssemblerARM.h: 5544 (JSC::MacroAssemblerARM::load32): 5545 5546 2011-03-13 Gavin Barraclough <barraclough (a] apple.com> 5547 5548 Reviewed by Sam Weinig. 5549 5550 Bug 56270 - The JIT 'friend's many classes in JSC; start unwinding this. 5551 5552 The JIT need to 'friend' other classes in order to be able to calculate offsets 5553 of various properties, or the absolute addresses of members within specific objects, 5554 in order to JIT generate code that will access members within the class when run. 5555 5556 Instead of using friends in these cases, switch to providing specific accessor 5557 methods to provide this information. In the case of offsets, these can be static 5558 functions, and in the case of pointers to members within a specific object these can 5559 be const methods returning pointers to const values, to prevent clients from 5560 modifying values otherwise encapsulated within classes. 5561 5562 * bytecode/SamplingTool.h: 5563 * interpreter/Register.h: 5564 * interpreter/RegisterFile.h: 5565 * runtime/JSArray.h: 5566 * runtime/JSCell.h: 5567 * runtime/JSTypeInfo.h: 5568 * runtime/JSVariableObject.h: 5569 * runtime/Structure.h: 5570 * wtf/RefCounted.h: 5571 - Change these classes to no longer friend the JIT, add accessors for member offsets. 5572 * jit/JIT.cpp: 5573 * jit/JITCall32_64.cpp: 5574 * jit/JITInlineMethods.h: 5575 * jit/JITOpcodes.cpp: 5576 * jit/JITOpcodes32_64.cpp: 5577 * jit/JITPropertyAccess.cpp: 5578 * jit/JITPropertyAccess32_64.cpp: 5579 - Change the JIT to use class accessors, rather than taking object ofsets directly. 5580 * assembler/AbstractMacroAssembler.h: 5581 * assembler/MacroAssemblerX86_64.h: 5582 * assembler/X86Assembler.h: 5583 - Since the accessors for objects members return const pointers to retain encapsulation, 5584 methods generating code with absolute addresses must be able to handle const pointers 5585 (the JIT doesn't write to these values, do dies treat the pointer to value as const 5586 from within the C++ code of the JIT, if not at runtime!). 5587 5588 2011-03-12 Sheriff Bot <webkit.review.bot (a] gmail.com> 5589 5590 Unreviewed, rolling out r80919. 5591 http://trac.webkit.org/changeset/80919 5592 https://bugs.webkit.org/show_bug.cgi?id=56251 5593 5594 all windows bots failed to compile this change (Requested by 5595 loislo on #webkit). 5596 5597 * JavaScriptCore.xcodeproj/project.pbxproj: 5598 * bytecode/StructureStubInfo.cpp: 5599 * interpreter/Register.h: 5600 (JSC::Register::withInt): 5601 (JSC::Register::withCallee): 5602 (JSC::Register::operator=): 5603 (JSC::Register::i): 5604 (JSC::Register::activation): 5605 (JSC::Register::function): 5606 (JSC::Register::propertyNameIterator): 5607 (JSC::Register::scopeChain): 5608 * jit/JIT.h: 5609 * jit/JITCall.cpp: 5610 (JSC::JIT::compileOpCallInitializeCallFrame): 5611 (JSC::JIT::compileOpCallVarargs): 5612 (JSC::JIT::compileOpCall): 5613 * jit/JITCall32_64.cpp: 5614 (JSC::JIT::compileOpCallInitializeCallFrame): 5615 (JSC::JIT::compileOpCallVarargs): 5616 (JSC::JIT::compileOpCall): 5617 (JSC::JIT::compileOpCallSlowCase): 5618 * jit/JITInlineMethods.h: 5619 (JSC::JIT::emitPutToCallFrameHeader): 5620 * jit/JITOpcodes.cpp: 5621 (JSC::JIT::privateCompileCTINativeCall): 5622 (JSC::JIT::emit_op_get_pnames): 5623 (JSC::JIT::emit_op_next_pname): 5624 (JSC::JIT::emit_op_load_varargs): 5625 (JSC::JIT::emitSlow_op_load_varargs): 5626 * jit/JITOpcodes32_64.cpp: 5627 (JSC::JIT::privateCompileCTINativeCall): 5628 (JSC::JIT::emit_op_get_pnames): 5629 (JSC::JIT::emit_op_next_pname): 5630 * jit/JSInterfaceJIT.h: 5631 (JSC::JSInterfaceJIT::payloadFor): 5632 * jit/SpecializedThunkJIT.h: 5633 (JSC::SpecializedThunkJIT::returnJSValue): 5634 (JSC::SpecializedThunkJIT::returnDouble): 5635 (JSC::SpecializedThunkJIT::returnInt32): 5636 (JSC::SpecializedThunkJIT::returnJSCell): 5637 * runtime/ArgList.cpp: 5638 * runtime/DateConversion.cpp: 5639 * runtime/GCActivityCallbackCF.cpp: 5640 * runtime/Identifier.cpp: 5641 * runtime/JSActivation.h: 5642 (JSC::asActivation): 5643 * runtime/JSLock.cpp: 5644 * runtime/JSNumberCell.cpp: 5645 * runtime/JSObject.h: 5646 * runtime/JSPropertyNameIterator.h: 5647 * runtime/JSValue.h: 5648 * runtime/JSZombie.cpp: 5649 * runtime/MarkedBlock.cpp: 5650 * runtime/MarkedSpace.cpp: 5651 * runtime/PropertyNameArray.cpp: 5652 * runtime/ScopeChain.h: 5653 (JSC::ExecState::globalThisValue): 5654 * wtf/DateMath.cpp: 5655 5656 2011-03-11 Oliver Hunt <oliver (a] apple.com> 5657 5658 Reviewed by Gavin Barraclough. 5659 5660 Ensure all values are correctly tagged in the registerfile 5661 https://bugs.webkit.org/show_bug.cgi?id=56214 5662 5663 This patch makes sure that all JSCell pointers written to 5664 the registerfile are correctly tagged as JSCells, and replaces 5665 raw int usage with the immediate representation. 5666 5667 For performance, register pressure, and general saneness reasons 5668 I've added abstractions for reading and writing the tag 5669 and payload of integer registers directly for the JSVALUE64 5670 encoding. 5671 5672 * interpreter/Register.h: 5673 (JSC::Register::withInt): 5674 (JSC::Register::withCallee): 5675 (JSC::Register::operator=): 5676 (JSC::Register::i): 5677 (JSC::Register::activation): 5678 (JSC::Register::function): 5679 (JSC::Register::propertyNameIterator): 5680 (JSC::Register::scopeChain): 5681 * jit/JIT.h: 5682 * jit/JITCall.cpp: 5683 (JSC::JIT::compileOpCallInitializeCallFrame): 5684 (JSC::JIT::compileOpCallVarargs): 5685 (JSC::JIT::compileOpCall): 5686 * jit/JITCall32_64.cpp: 5687 (JSC::JIT::compileOpCallInitializeCallFrame): 5688 (JSC::JIT::compileOpCallVarargs): 5689 (JSC::JIT::compileOpCall): 5690 (JSC::JIT::compileOpCallSlowCase): 5691 * jit/JITInlineMethods.h: 5692 (JSC::JIT::emitPutToCallFrameHeader): 5693 (JSC::JIT::emitPutCellToCallFrameHeader): 5694 (JSC::JIT::emitPutIntToCallFrameHeader): 5695 * jit/JITOpcodes.cpp: 5696 (JSC::JIT::privateCompileCTINativeCall): 5697 (JSC::JIT::emit_op_get_pnames): 5698 (JSC::JIT::emit_op_next_pname): 5699 (JSC::JIT::emit_op_load_varargs): 5700 (JSC::JIT::emitSlow_op_load_varargs): 5701 * jit/JITOpcodes32_64.cpp: 5702 (JSC::JIT::privateCompileCTINativeCall): 5703 (JSC::JIT::emit_op_get_pnames): 5704 (JSC::JIT::emit_op_next_pname): 5705 * jit/JSInterfaceJIT.h: 5706 (JSC::JSInterfaceJIT::intPayloadFor): 5707 (JSC::JSInterfaceJIT::intTagFor): 5708 * jit/SpecializedThunkJIT.h: 5709 (JSC::SpecializedThunkJIT::returnJSValue): 5710 (JSC::SpecializedThunkJIT::returnDouble): 5711 (JSC::SpecializedThunkJIT::returnInt32): 5712 (JSC::SpecializedThunkJIT::returnJSCell): 5713 5714 2011-03-11 Dimitri Glazkov <dglazkov (a] chromium.org> 5715 5716 Reviewed by Eric Seidel. 5717 5718 Introduce project_dir variable and make paths a whole lot saner. Ok, a little bit saner. 5719 https://bugs.webkit.org/show_bug.cgi?id=56231 5720 5721 * JavaScriptCore.gypi: Added project_dir variable. 5722 * gyp/JavaScriptCore.gyp: Changed to use project_dir, rather than DEPTH/JavaScriptCore. 5723 * gyp/generate-dtrace-header.sh: Changed to use project_dir. 5724 5725 2011-03-11 Dimitri Glazkov <dglazkov (a] chromium.org> 5726 5727 Reviewed by Adam Barth. 5728 5729 Start using derived sources correctly and link minidom with JavaScriptCore gyp project. 5730 https://bugs.webkit.org/show_bug.cgi?id=56217 5731 5732 * gyp/JavaScriptCore.gyp: Added derived source files and passing of shared directory 5733 to the scripts. 5734 * gyp/generate-derived-sources.sh: Changed to use passed directory. 5735 * gyp/generate-dtrace-header.sh: Ditto. 5736 5737 2011-03-11 Eric Carlson <eric.carlson (a] apple.com> 5738 5739 Reviewed by Sam Weinig. 5740 5741 <rdar://problem/8955589> Adopt AVFoundation media back end on Lion. 5742 5743 No new tests, existing media tests cover this. 5744 5745 * JavaScriptCore.exp: Export cancelCallOnMainThread 5746 * wtf/Platform.h: Define WTF_USE_AVFOUNDATION. 5747 5748 2011-03-11 Dimitri Glazkov <dglazkov (a] chromium.org> 5749 5750 Reviewed by Adam Barth. 5751 5752 Tweak dylib paths and add dtrace header generation action to JavaScriptCore gyp project. 5753 https://bugs.webkit.org/show_bug.cgi?id=56207 5754 5755 * JavaScriptCore.gypi: Added Tracing.d to the sources. 5756 * gyp/generate-dtrace-header.sh: Added. 5757 * gyp/JavaScriptCore.gyp: Updated dylib paths (now the project can see them), 5758 and added DTrace header generating step. 5759 5760 2011-03-10 Oliver Hunt <oliver (a] apple.com> 5761 5762 Reviewed by Gavin Barraclough. 5763 5764 Fix allocation of native function with a cached thunk 5765 https://bugs.webkit.org/show_bug.cgi?id=56127 5766 5767 Fix this race condition found while fixing zombies. 5768 5769 * collector/handles/HandleHeap.cpp: 5770 (JSC::HandleHeap::clearWeakPointers): 5771 * runtime/Heap.cpp: 5772 (JSC::Heap::reset): 5773 * runtime/JSFunction.cpp: 5774 (JSC::JSFunction::JSFunction): 5775 (JSC::JSFunction::markChildren): 5776 * runtime/JSValue.h: 5777 (JSC::JSValue::decode): 5778 * runtime/JSZombie.cpp: 5779 (JSC::JSZombie::leakedZombieStructure): 5780 * runtime/JSZombie.h: 5781 (JSC::JSZombie::createStructure): 5782 * runtime/MarkedBlock.cpp: 5783 5784 2011-03-10 Luiz Agostini <luiz.agostini (a] openbossa.org> 5785 5786 Reviewed by Andreas Kling. 5787 5788 [Qt] fast/workers/stress-js-execution.html is crashing on Qt bot (intermittently) 5789 https://bugs.webkit.org/show_bug.cgi?id=33008 5790 5791 Defining WTF_USE_PTHREAD_BASED_QT=1 for platforms where QThread uses pthread internally. 5792 Symbian is excluded because pthread_kill does not work on it. Mac is excluded because 5793 it has its own ways to do JSC threading. 5794 5795 Defining WTF_USE_PTHREADS inside MachineStackMarker.cpp if USE(PTHREAD_BASED_QT) is true. 5796 5797 * runtime/MachineStackMarker.cpp: 5798 * wtf/Platform.h: 5799 5800 2011-03-10 Gavin Barraclough <barraclough (a] apple.com> 5801 5802 Reviewed by Oliver Hunt. 5803 5804 Bug 56077 - ES5 conformance issues with RegExp.prototype 5805 5806 There are three issues causing test failures in sputnik. 5807 5808 (1) lastIndex should be converted at the point it is used, not the point it is set (this is visible if valueOf is overridden). 5809 (2) The 'length' property of the test/exec functions should be 1. 5810 (3) If no input is specified, the input to test()/exec() is "undefined" (i.e. ToString(undefined)) - not RegExp.input. 5811 5812 * runtime/RegExpObject.cpp: 5813 (JSC::RegExpObject::markChildren): 5814 - Added to mark lastIndex 5815 (JSC::regExpObjectLastIndex): 5816 (JSC::setRegExpObjectLastIndex): 5817 - lastIndex is now stored as a JSValue. 5818 (JSC::RegExpObject::match): 5819 - Use accessor methods to get/set lastIndex, add fast case for isUInt32 (don't convert to double). 5820 * runtime/RegExpObject.h: 5821 (JSC::RegExpObject::setLastIndex): 5822 (JSC::RegExpObject::setLastIndex): 5823 - Set lastIndex, either from a size_t or a JSValue. 5824 (JSC::RegExpObject::getLastIndex): 5825 - Get lastIndex. 5826 (JSC::RegExpObject::RegExpObjectData::RegExpObjectData): 5827 - Initialize as a JSValue. 5828 * runtime/RegExpPrototype.cpp: 5829 (JSC::RegExpPrototype::RegExpPrototype): 5830 - Add test/exec properties with length 1. 5831 * runtime/StringPrototype.cpp: 5832 (JSC::stringProtoFuncMatch): 5833 (JSC::stringProtoFuncSearch): 5834 - Do not read RegExp.input if none is provided. 5835 * tests/mozilla/js1_2/regexp/RegExp_input.js: 5836 * tests/mozilla/js1_2/regexp/RegExp_input_as_array.js: 5837 - Update these tests (they relied on non-ES5 behaviour). 5838 5839 2011-03-10 Geoffrey Garen <ggaren (a] apple.com> 5840 5841 Reviewed by Oliver Hunt. 5842 5843 Rolled back in 80277 and 80280 with event handler layout test failures fixed. 5844 https://bugs.webkit.org/show_bug.cgi?id=55653 5845 5846 The failures were caused by a last minute typo: assigning to currentEvent 5847 instead of m_currentEvent. 5848 5849 * JavaScriptCore.exp: 5850 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 5851 * JavaScriptCore.xcodeproj/project.pbxproj: 5852 * bytecompiler/BytecodeGenerator.cpp: 5853 * jit/JITOpcodes.cpp: 5854 * jit/JITOpcodes32_64.cpp: 5855 * runtime/Arguments.h: 5856 * runtime/JSActivation.cpp: 5857 * runtime/JSActivation.h: 5858 * runtime/JSCell.h: 5859 * runtime/JSGlobalObject.cpp: 5860 * runtime/JSGlobalObject.h: 5861 * runtime/JSObject.cpp: 5862 * runtime/JSStaticScopeObject.cpp: 5863 * runtime/JSStaticScopeObject.h: 5864 * runtime/JSVariableObject.h: 5865 * runtime/MarkedSpace.cpp: 5866 * runtime/MarkedSpace.h: 5867 5868 2011-03-09 Oliver Hunt <oliver (a] apple.com> 5869 5870 Reviewed by Gavin Barraclough. 5871 5872 jquery/manipulation.html fails after r80598 5873 https://bugs.webkit.org/show_bug.cgi?id=56019 5874 5875 When linking a call, codeblock now takes ownership of the linked function 5876 This removes the need for unlinking, and thus the incorrectness that was 5877 showing up in these tests. 5878 5879 * bytecode/CodeBlock.cpp: 5880 (JSC::CodeBlock::~CodeBlock): 5881 (JSC::CodeBlock::markAggregate): 5882 * bytecode/CodeBlock.h: 5883 (JSC::CallLinkInfo::CallLinkInfo): 5884 (JSC::CallLinkInfo::setUnlinked): 5885 (JSC::CodeBlock::addCaller): 5886 * jit/JIT.cpp: 5887 (JSC::JIT::privateCompile): 5888 (JSC::JIT::linkCall): 5889 (JSC::JIT::linkConstruct): 5890 * jit/JIT.h: 5891 * runtime/Executable.cpp: 5892 * runtime/Executable.h: 5893 5894 2011-03-09 Daniel Bates <dbates (a] rim.com> 5895 5896 Attempt to fix the WinCE build after changeset 80684 <http://trac.webkit.org/changeset/80684> 5897 (Bug #56041<https://bugs.webkit.org/show_bug.cgi?id=56041>). 5898 5899 * interpreter/Interpreter.cpp: 5900 (JSC::Interpreter::privateExecute): Substitute variable callFrame for exec in call to createSyntaxError(). 5901 5902 2011-03-09 Gavin Barraclough <barraclough (a] apple.com> 5903 5904 Reviewed by Sam Weinig. 5905 5906 Bug 56041 - RexExp constructor should only accept flags "gim" 5907 Fix for issues introduced in r80667. 5908 5909 Invalid flags to a RegExp literal are a late syntax error! 5910 5911 * bytecode/CodeBlock.h: 5912 (JSC::CodeBlock::addRegExp): 5913 - Pass a PassRefPtr<RegExp> 5914 * bytecompiler/BytecodeGenerator.cpp: 5915 (JSC::BytecodeGenerator::addRegExp): 5916 (JSC::BytecodeGenerator::emitNewRegExp): 5917 * bytecompiler/BytecodeGenerator.h: 5918 - Pass a PassRefPtr<RegExp> 5919 * bytecompiler/NodesCodegen.cpp: 5920 (JSC::RegExpNode::emitBytecode): 5921 - Should not be ASSERTing that the flags are valid - this is a late(er) error. 5922 * interpreter/Interpreter.cpp: 5923 (JSC::Interpreter::privateExecute): 5924 - Need to check for error from RegExp constructor. 5925 * jit/JITStubs.cpp: 5926 (JSC::DEFINE_STUB_FUNCTION): 5927 - Need to check for error from RegExp constructor. 5928 * runtime/RegExp.h: 5929 (JSC::RegExp::isValid): 5930 - Make isValid check that the regexp was created with valid flags. 5931 * runtime/RegExpKey.h: 5932 - Since we'll not create RegExp objects with invalid flags, separate out the deleted value. 5933 5934 2011-03-09 Gavin Barraclough <barraclough (a] apple.com> 5935 5936 Windows build fix part 2. 5937 5938 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 5939 5940 2011-03-09 Gavin Barraclough <barraclough (a] apple.com> 5941 5942 Windows build fix part 1. 5943 5944 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 5945 5946 2011-03-09 Gavin Barraclough <barraclough (a] apple.com> 5947 5948 Reviewed by Darin Adler. 5949 5950 Bug 56041 - RexExp constructor should only accept flags "gim" 5951 We also should be passing the flags around as a bitfield rather than a string, 5952 and should not have redundant, incompatible code for converting the string to a bitfield! 5953 5954 * JavaScriptCore.exp: 5955 * bytecompiler/NodesCodegen.cpp: 5956 (JSC::RegExpNode::emitBytecode): 5957 - Need to parse flags string to enum. 5958 * runtime/RegExp.cpp: 5959 (JSC::regExpFlags): 5960 (JSC::RegExp::RegExp): 5961 (JSC::RegExp::create): 5962 - Add method to parse flags string to enum, change constructor/create args to take enum. 5963 * runtime/RegExp.h: 5964 (JSC::RegExp::global): 5965 (JSC::RegExp::ignoreCase): 5966 (JSC::RegExp::multiline): 5967 - Change to use new enum values. 5968 * runtime/RegExpCache.cpp: 5969 (JSC::RegExpCache::lookupOrCreate): 5970 (JSC::RegExpCache::create): 5971 * runtime/RegExpCache.h: 5972 - Changed to use regExpFlags enum instead of int/const UString&. 5973 * runtime/RegExpConstructor.cpp: 5974 (JSC::constructRegExp): 5975 - Add use new enum parsing, check for error. 5976 * runtime/RegExpKey.h: 5977 (JSC::RegExpKey::RegExpKey): 5978 * runtime/RegExpPrototype.cpp: 5979 (JSC::RegExpPrototype::RegExpPrototype): 5980 - Pass NoFlags value instead of empty string. 5981 (JSC::regExpProtoFuncCompile): 5982 - Add use new enum parsing, check for error. 5983 * runtime/StringPrototype.cpp: 5984 (JSC::stringProtoFuncMatch): 5985 (JSC::stringProtoFuncSearch): 5986 - Pass NoFlags value instead of empty string. 5987 5988 2011-03-08 Gavin Barraclough <barraclough (a] apple.com> 5989 5990 Reviewed by Sam Weinig 5991 5992 Bug 55994 - Functions on Array.prototype should check length first. 5993 These methods are designed to work on generic objects too, and if 'length' 5994 is a getter that throws an exception, ensure this is correctly thrown 5995 (even if other exceptions would be thrown, too). 5996 5997 Make the length check the first thing we do. 5998 This change shows a progression on SunSpider on my machine, but this is likely bogus. 5999 6000 * runtime/ArrayPrototype.cpp: 6001 (JSC::arrayProtoFuncToString): 6002 (JSC::arrayProtoFuncToLocaleString): 6003 (JSC::arrayProtoFuncJoin): 6004 (JSC::arrayProtoFuncPop): 6005 (JSC::arrayProtoFuncPush): 6006 (JSC::arrayProtoFuncReverse): 6007 (JSC::arrayProtoFuncShift): 6008 (JSC::arrayProtoFuncSlice): 6009 (JSC::arrayProtoFuncSort): 6010 (JSC::arrayProtoFuncSplice): 6011 (JSC::arrayProtoFuncUnShift): 6012 (JSC::arrayProtoFuncFilter): 6013 (JSC::arrayProtoFuncMap): 6014 (JSC::arrayProtoFuncEvery): 6015 (JSC::arrayProtoFuncForEach): 6016 (JSC::arrayProtoFuncSome): 6017 (JSC::arrayProtoFuncReduce): 6018 (JSC::arrayProtoFuncReduceRight): 6019 (JSC::arrayProtoFuncIndexOf): 6020 (JSC::arrayProtoFuncLastIndexOf): 6021 6022 2011-03-07 Oliver Hunt <oliver (a] apple.com> 6023 6024 Reviewed by Gavin Barraclough. 6025 6026 Make CodeBlock GC write barrier safe 6027 https://bugs.webkit.org/show_bug.cgi?id=55910 6028 6029 In order to make CodeBlock WriteBarrier safe it was necessary 6030 to make it have a single GC owner, and for that reason I have 6031 made ExecutableBase a GC allocated object. This required 6032 updating their creation routines as well as all sites that hold 6033 a reference to them. GC objects that held Executable's have been 6034 converted to WriteBarriers, and all other sites now use Global<>. 6035 6036 As an added benefit this gets rid of JSGlobalData's list of 6037 GlobalCodeBlocks. 6038 6039 Perf testing shows a 0.5% progression on v8, vs. a 0.3% regression 6040 on SunSpider. Given none of the tests that show regressions 6041 demonstrate a regression on their own, and sampling shows up nothing. 6042 I suspect we're just getting one or two additional gc passes at 6043 the end of the run. 6044 6045 * bytecode/CodeBlock.cpp: 6046 (JSC::CodeBlock::dump): 6047 (JSC::CodeBlock::CodeBlock): 6048 (JSC::EvalCodeCache::markAggregate): 6049 (JSC::CodeBlock::markAggregate): 6050 * bytecode/CodeBlock.h: 6051 (JSC::CodeBlock::ownerExecutable): 6052 (JSC::CodeBlock::addConstant): 6053 (JSC::CodeBlock::constantRegister): 6054 (JSC::CodeBlock::getConstant): 6055 (JSC::CodeBlock::addFunctionDecl): 6056 (JSC::CodeBlock::addFunctionExpr): 6057 (JSC::GlobalCodeBlock::GlobalCodeBlock): 6058 (JSC::ExecState::r): 6059 * bytecode/EvalCodeCache.h: 6060 (JSC::EvalCodeCache::get): 6061 * bytecode/SamplingTool.h: 6062 (JSC::ScriptSampleRecord::ScriptSampleRecord): 6063 * bytecompiler/BytecodeGenerator.cpp: 6064 (JSC::BytecodeGenerator::addConstantValue): 6065 (JSC::BytecodeGenerator::emitEqualityOp): 6066 * bytecompiler/BytecodeGenerator.h: 6067 (JSC::BytecodeGenerator::makeFunction): 6068 * debugger/Debugger.cpp: 6069 (JSC::evaluateInGlobalCallFrame): 6070 * debugger/DebuggerCallFrame.cpp: 6071 (JSC::DebuggerCallFrame::evaluate): 6072 * interpreter/Interpreter.cpp: 6073 (JSC::Interpreter::callEval): 6074 * jit/JITInlineMethods.h: 6075 (JSC::JIT::emitLoadDouble): 6076 (JSC::JIT::emitLoadInt32ToDouble): 6077 * jit/JITStubs.cpp: 6078 (JSC::JITThunks::JITThunks): 6079 (JSC::JITThunks::hostFunctionStub): 6080 (JSC::JITThunks::clearHostFunctionStubs): 6081 * jit/JITStubs.h: 6082 * runtime/Completion.cpp: 6083 (JSC::checkSyntax): 6084 (JSC::evaluate): 6085 * runtime/Executable.cpp: 6086 (JSC::EvalExecutable::EvalExecutable): 6087 (JSC::ProgramExecutable::ProgramExecutable): 6088 (JSC::FunctionExecutable::FunctionExecutable): 6089 (JSC::FunctionExecutable::~FunctionExecutable): 6090 (JSC::EvalExecutable::markChildren): 6091 (JSC::ProgramExecutable::markChildren): 6092 (JSC::FunctionExecutable::markChildren): 6093 (JSC::FunctionExecutable::fromGlobalCode): 6094 * runtime/Executable.h: 6095 (JSC::ExecutableBase::ExecutableBase): 6096 (JSC::ExecutableBase::createStructure): 6097 (JSC::NativeExecutable::create): 6098 (JSC::NativeExecutable::NativeExecutable): 6099 (JSC::VPtrHackExecutable::VPtrHackExecutable): 6100 (JSC::ScriptExecutable::ScriptExecutable): 6101 (JSC::EvalExecutable::create): 6102 (JSC::EvalExecutable::createStructure): 6103 (JSC::ProgramExecutable::create): 6104 (JSC::ProgramExecutable::createStructure): 6105 (JSC::FunctionExecutable::create): 6106 (JSC::FunctionExecutable::createStructure): 6107 * runtime/FunctionConstructor.cpp: 6108 (JSC::constructFunction): 6109 * runtime/Heap.cpp: 6110 (JSC::Heap::destroy): 6111 (JSC::Heap::markRoots): 6112 * runtime/Heap.h: 6113 * runtime/JSActivation.cpp: 6114 (JSC::JSActivation::JSActivation): 6115 (JSC::JSActivation::markChildren): 6116 * runtime/JSActivation.h: 6117 (JSC::JSActivation::JSActivationData::JSActivationData): 6118 * runtime/JSCell.h: 6119 * runtime/JSFunction.cpp: 6120 (JSC::JSFunction::JSFunction): 6121 (JSC::JSFunction::~JSFunction): 6122 (JSC::JSFunction::markChildren): 6123 * runtime/JSFunction.h: 6124 * runtime/JSGlobalData.cpp: 6125 (JSC::JSGlobalData::storeVPtrs): 6126 (JSC::JSGlobalData::JSGlobalData): 6127 (JSC::JSGlobalData::getHostFunction): 6128 * runtime/JSGlobalData.h: 6129 * runtime/JSGlobalObjectFunctions.cpp: 6130 (JSC::globalFuncEval): 6131 * runtime/JSObject.cpp: 6132 * runtime/JSStaticScopeObject.cpp: 6133 (JSC::JSStaticScopeObject::markChildren): 6134 * runtime/JSStaticScopeObject.h: 6135 (JSC::JSStaticScopeObject::JSStaticScopeObjectData::JSStaticScopeObjectData): 6136 (JSC::JSStaticScopeObject::JSStaticScopeObject): 6137 * runtime/JSZombie.cpp: 6138 (JSC::JSZombie::leakedZombieStructure): 6139 * runtime/JSZombie.h: 6140 (JSC::JSZombie::createStructure): 6141 * runtime/MarkedSpace.h: 6142 6143 2011-03-07 Andy Estes <aestes (a] apple.com> 6144 6145 Reviewed by Dan Bernstein. 6146 6147 REGRESSION (r79060): Timestamp is missing from tweets in twitter. 6148 https://bugs.webkit.org/show_bug.cgi?id=55228 6149 6150 A change to the date parser to handle the case where the year is 6151 specified before the time zone inadvertently started accepting strings 6152 such as '+0000' as valid years. Those strings actually represent time 6153 zones in an offset of hours and minutes from UTC, not years. 6154 6155 * wtf/DateMath.cpp: 6156 (WTF::parseDateFromNullTerminatedCharacters): If the current character 6157 in dateString is '+' or '-', do not try to parse the next token as a 6158 year. 6159 6160 2011-03-06 Yuta Kitamura <yutak (a] chromium.org> 6161 6162 Reviewed by Kent Tamura. 6163 6164 Add SHA-1 for new WebSocket protocol 6165 https://bugs.webkit.org/show_bug.cgi?id=55039 6166 6167 The code is based on Chromium's portable SHA-1 implementation 6168 (src/base/sha1_portable.cc). Modifications were made in order 6169 to make the code comply with WebKit coding style. 6170 6171 * GNUmakefile.am: 6172 * JavaScriptCore.exp: 6173 * JavaScriptCore.gypi: 6174 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 6175 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 6176 * JavaScriptCore.xcodeproj/project.pbxproj: 6177 * wtf/CMakeLists.txt: 6178 * wtf/MD5.cpp: 6179 (WTF::MD5::MD5): 6180 * wtf/SHA1.cpp: Added. 6181 (WTF::testSHA1): This function will be run the first time SHA1 6182 constructor is called. This function computes a few hash values 6183 and checks the results in debug builds. However, constructor is 6184 probably not a good place to run these tests, so we need to find 6185 a good place for it (bug 55853). 6186 (WTF::expectSHA1): 6187 (WTF::f): 6188 (WTF::k): 6189 (WTF::rotateLeft): 6190 (WTF::SHA1::SHA1): 6191 (WTF::SHA1::addBytes): 6192 (WTF::SHA1::computeHash): 6193 (WTF::SHA1::finalize): 6194 (WTF::SHA1::processBlock): 6195 (WTF::SHA1::reset): 6196 * wtf/SHA1.h: Added. 6197 (WTF::SHA1::addBytes): 6198 * wtf/wtf.pri: 6199 6200 2011-03-05 Adam Barth <abarth (a] webkit.org> 6201 6202 Reviewed by Dimitri Glazkov. 6203 6204 Add Derived Sources to WebCore GYP build 6205 https://bugs.webkit.org/show_bug.cgi?id=55813 6206 6207 Rename the action to be friendlier. 6208 6209 * gyp/JavaScriptCore.gyp: 6210 6211 2011-03-04 Viatcheslav Ostapenko <ostapenko.viatcheslav (a] nokia.com> 6212 6213 Reviewed by Laszlo Gombos. 6214 6215 [Qt] Need symbian version of cryptographicallyRandomValuesFromOS 6216 https://bugs.webkit.org/show_bug.cgi?id=55782 6217 6218 Implement Symbian version of cryptographicallyRandomValuesFromOS 6219 6220 * wtf/OSRandomSource.cpp: 6221 (WTF::cryptographicallyRandomValuesFromOS): 6222 6223 2011-03-04 Gavin Barraclough <barraclough (a] apple.com> 6224 6225 Reviewed by Cameron Zwarich. 6226 6227 Bug 55815 - Should throw an exception from JSObject::defineOwnProperty if !isExtensible(). 6228 6229 * runtime/JSObject.cpp: 6230 (JSC::JSObject::defineOwnProperty): 6231 Add missing check. 6232 6233 2011-03-04 Gavin Barraclough <barraclough (a] apple.com> 6234 6235 Rubber stamped by olliej. 6236 6237 Bug 54945 - The web page hangs towards the end of page load in Interpreter enabled javascript code in the latest webkit trunk. 6238 6239 * interpreter/Interpreter.cpp: 6240 (JSC::Interpreter::privateExecute): 6241 (1) don't infinite loop. 6242 (2) goto 1. 6243 6244 2011-03-04 Gavin Barraclough <barraclough (a] apple.com> 6245 6246 cmake build fix. 6247 6248 * CMakeLists.txt: 6249 6250 2011-03-04 Adam Barth <abarth (a] webkit.org> 6251 6252 Reviewed by Dimitri Glazkov. 6253 6254 Add Copy Files step to JavaScriptCore GYP build for apitest and minidom 6255 https://bugs.webkit.org/show_bug.cgi?id=55798 6256 6257 * JavaScriptCore.gypi: 6258 * gyp/JavaScriptCore.gyp: 6259 6260 2011-03-04 Adam Barth <abarth (a] webkit.org> 6261 6262 Reviewed by Dimitri Glazkov. 6263 6264 Remove unneeded round-trips through ../Source in the Chromium GYP build 6265 https://bugs.webkit.org/show_bug.cgi?id=55795 6266 6267 * JavaScriptCore.gyp/JavaScriptCore.gyp: 6268 6269 2011-03-04 Adam Barth <abarth (a] webkit.org> 6270 6271 Reviewed by Dimitri Glazkov. 6272 6273 Use target_defaults to reduce boilerplate in GYP build system 6274 https://bugs.webkit.org/show_bug.cgi?id=55790 6275 6276 Instead of setting up the configuration in each target, just defer to 6277 target_defaults. Also, removed a define that was redundant with the 6278 xcconfig. 6279 6280 * gyp/JavaScriptCore.gyp: 6281 6282 2011-03-03 Gavin Barraclough <barraclough (a] apple.com> 6283 6284 Reviewed by Sam Weinig. 6285 6286 Bug 55736 - Implement seal/freeze/preventExtensions for normal object types. 6287 Provide basic functionallity from section 15.2.4 of ECMA-262. 6288 This support will need expanding to cover arrays, too. 6289 6290 Shows a 0.5% progression on SunSpidey, this seems to be due to changing 6291 ObjectConstructor to use a static table. 6292 6293 * DerivedSources.make: 6294 * JavaScriptCore.exp: 6295 * interpreter/CallFrame.h: 6296 (JSC::ExecState::objectConstructorTable): 6297 Add a static table for ObjectConstructor. 6298 * runtime/CommonIdentifiers.h: 6299 * runtime/JSGlobalData.cpp: 6300 (JSC::JSGlobalData::JSGlobalData): 6301 (JSC::JSGlobalData::~JSGlobalData): 6302 Add a static table for ObjectConstructor. 6303 * runtime/JSGlobalData.h: 6304 * runtime/JSGlobalObject.cpp: 6305 (JSC::JSGlobalObject::reset): 6306 Add a static table for ObjectConstructor. 6307 * runtime/JSObject.cpp: 6308 (JSC::JSObject::seal): 6309 (JSC::JSObject::freeze): 6310 (JSC::JSObject::preventExtensions): 6311 Transition the object's structure. 6312 (JSC::JSObject::defineOwnProperty): 6313 Check isExtensible. 6314 * runtime/JSObject.h: 6315 (JSC::JSObject::isSealed): 6316 (JSC::JSObject::isFrozen): 6317 (JSC::JSObject::isExtensible): 6318 These wrap method on structure. 6319 (JSC::JSObject::putDirectInternal): 6320 Check isExtensible. 6321 * runtime/ObjectConstructor.cpp: 6322 (JSC::ObjectConstructor::ObjectConstructor): 6323 (JSC::ObjectConstructor::getOwnPropertySlot): 6324 (JSC::ObjectConstructor::getOwnPropertyDescriptor): 6325 Change ObjectConstructor to use a static table. 6326 (JSC::objectConstructorSeal): 6327 (JSC::objectConstructorFreeze): 6328 (JSC::objectConstructorPreventExtensions): 6329 (JSC::objectConstructorIsSealed): 6330 (JSC::objectConstructorIsFrozen): 6331 (JSC::objectConstructorIsExtensible): 6332 Add new methods on Object. 6333 * runtime/ObjectConstructor.h: 6334 (JSC::ObjectConstructor::createStructure): 6335 * runtime/Structure.cpp: 6336 (JSC::Structure::Structure): 6337 init/propagate m_preventExtensions 6338 (JSC::Structure::sealTransition): 6339 (JSC::Structure::freezeTransition): 6340 (JSC::Structure::preventExtensionsTransition): 6341 transition the structure, materializing the property map, setting m_preventExtensions & changing attributes. 6342 (JSC::Structure::isSealed): 6343 (JSC::Structure::isFrozen): 6344 check attributes to detect if object is sealed/frozen. 6345 * runtime/Structure.h: 6346 (JSC::Structure::isExtensible): 6347 checks the m_preventExtensions flag. 6348 6349 2011-03-04 Steve Falkenburg <sfalken (a] apple.com> 6350 6351 Reviewed by Jon Honeycutt. 6352 6353 Adopt VersionStamper tool for Windows WebKit DLLs 6354 https://bugs.webkit.org/show_bug.cgi?id=55784 6355 <rdar://problem/9021273> 6356 6357 We now use a tool to stamp the version number onto the Apple WebKit DLLs 6358 during the post-build step. 6359 6360 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: Removed. 6361 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: 6362 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd: 6363 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd: 6364 6365 2011-03-04 Adam Barth <abarth (a] webkit.org> 6366 6367 Reviewed by Dimitri Glazkov. 6368 6369 JavaScriptCore GYP build should use a header map 6370 https://bugs.webkit.org/show_bug.cgi?id=55712 6371 6372 This patch moves the os-win32 files into their own variable so that we 6373 can use a header map in the Apple Mac Xcode build. The problem is that 6374 the header map searches the whole project rather than just the files 6375 included in a given target. Another solution to this problem is to 6376 make GYP smarter about filtering out what files are added to the 6377 project file. 6378 6379 * JavaScriptCore.gypi: 6380 * gyp/JavaScriptCore.gyp: 6381 6382 2011-03-03 Ryosuke Niwa <rniwa (a] webkit.org> 6383 6384 Reviewed by Darin Adler. 6385 6386 Remove LOOSE_PASS_OWN_ARRAY_PTR from PassOwnArrayPtr.h 6387 https://bugs.webkit.org/show_bug.cgi?id=55554 6388 6389 * runtime/JSGlobalObject.cpp: 6390 (JSC::JSGlobalObject::copyGlobalsTo): Pass nullptr instead of 0. 6391 (JSC::JSGlobalObject::resizeRegisters): Ditto; also use OwnArrayPtr instead of a raw pointer. 6392 * runtime/JSGlobalObject.h: 6393 (JSC::JSGlobalObject::addStaticGlobals): Ditto. 6394 * wtf/PassOwnArrayPtr.h: Removed #define LOOSE_PASS_OWN_ARRAY_PTR 6395 (WTF::PassOwnArrayPtr::PassOwnArrayPtr): Added a constructor that takes nullptr_t. 6396 6397 2011-03-03 Adam Barth <abarth (a] webkit.org> 6398 6399 Reviewed by Dimitri Glazkov. 6400 6401 Add jsc to JavaScriptCore GYP build 6402 https://bugs.webkit.org/show_bug.cgi?id=55711 6403 6404 * JavaScriptCore.gypi: 6405 - Move jsc.cpp into jsc_files because it's really part of the jsc 6406 target. 6407 * JavaScriptCore.xcodeproj/project.pbxproj: 6408 - Remove extraneous files from the normal jsc build. I probably 6409 added these by mistake at some point. 6410 * gyp/JavaScriptCore.gyp: 6411 - Add the jsc target to the GYP file. 6412 6413 2011-03-03 Adam Barth <abarth (a] webkit.org> 6414 6415 Reviewed by Dimitri Glazkov. 6416 6417 Add testapi to JavaScriptCore GYP build 6418 https://bugs.webkit.org/show_bug.cgi?id=55707 6419 6420 The new testapi target is slightly incomplete. There's a resource 6421 copying step that we don't quite have yet. 6422 6423 This patch also cleans up some of the configuration issues in 6424 JavaScriptCore.xcodeproj. It seems kind of wordy to repeat these for 6425 each target. I suspect there's a more compact way of defining the 6426 configurations, but this removes the "Default" configuration, which is 6427 progress. 6428 6429 * JavaScriptCore.gypi: 6430 * gyp/JavaScriptCore.gyp: 6431 6432 2011-03-03 Adam Barth <abarth (a] webkit.org> 6433 6434 Reviewed by Eric Seidel. 6435 6436 Teach JavaScriptCore GYP build about private headers 6437 https://bugs.webkit.org/show_bug.cgi?id=55532 6438 6439 This patch distinguishes between public and private framework headers 6440 so that public headers are copied into the Headers directory and 6441 private headers are copied into the PrivateHeaders directory. 6442 6443 * gyp/JavaScriptCore.gyp: 6444 6445 2011-03-03 Geoffrey Garen <ggaren (a] apple.com> 6446 6447 Rolled out 80277 and 80280 because they caused event handler layout test 6448 failures. 6449 6450 * JavaScriptCore.exp: 6451 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 6452 * JavaScriptCore.xcodeproj/project.pbxproj: 6453 * bytecompiler/BytecodeGenerator.cpp: 6454 * jit/JITOpcodes.cpp: 6455 * jit/JITOpcodes32_64.cpp: 6456 * runtime/Arguments.h: 6457 * runtime/JSActivation.cpp: 6458 * runtime/JSActivation.h: 6459 * runtime/JSCell.h: 6460 * runtime/JSGlobalObject.cpp: 6461 * runtime/JSGlobalObject.h: 6462 * runtime/JSObject.cpp: 6463 * runtime/JSStaticScopeObject.cpp: 6464 * runtime/JSStaticScopeObject.h: 6465 * runtime/JSVariableObject.h: 6466 * runtime/MarkedSpace.cpp: 6467 * runtime/MarkedSpace.h: 6468 6469 2011-03-03 Kevin Ollivier <kevino (a] theolliviers.com> 6470 6471 [wx] Build fix. Alter order of headers included to make sure windows.h 6472 is configured by wx, and skip Posix implementation file we don't use on Win. 6473 6474 * wscript: 6475 * wtf/wx/StringWx.cpp: 6476 6477 2011-03-03 Oliver Hunt <oliver (a] apple.com> 6478 6479 Reviewed by Geoffrey Garen. 6480 6481 JSVariableObject needs to use WriteBarrier for symboltable property storage 6482 https://bugs.webkit.org/show_bug.cgi?id=55698 6483 6484 Replace the direct usage of Register in JSVariableObject (and descendents) 6485 with WriteBarrier. This requires updating the Arguments object to use 6486 WriteBarrier as well. 6487 6488 * interpreter/Interpreter.cpp: 6489 (JSC::Interpreter::unwindCallFrame): 6490 (JSC::Interpreter::privateExecute): 6491 (JSC::Interpreter::retrieveArguments): 6492 * jit/JITStubs.cpp: 6493 (JSC::DEFINE_STUB_FUNCTION): 6494 * runtime/ArgList.h: 6495 (JSC::MarkedArgumentBuffer::initialize): 6496 * runtime/Arguments.cpp: 6497 (JSC::Arguments::markChildren): 6498 (JSC::Arguments::copyToRegisters): 6499 (JSC::Arguments::fillArgList): 6500 (JSC::Arguments::getOwnPropertySlot): 6501 (JSC::Arguments::getOwnPropertyDescriptor): 6502 (JSC::Arguments::put): 6503 * runtime/Arguments.h: 6504 (JSC::Arguments::setActivation): 6505 (JSC::Arguments::Arguments): 6506 (JSC::Arguments::copyRegisters): 6507 (JSC::JSActivation::copyRegisters): 6508 * runtime/JSActivation.cpp: 6509 (JSC::JSActivation::markChildren): 6510 (JSC::JSActivation::symbolTableGet): 6511 (JSC::JSActivation::symbolTablePut): 6512 (JSC::JSActivation::symbolTablePutWithAttributes): 6513 (JSC::JSActivation::put): 6514 (JSC::JSActivation::putWithAttributes): 6515 (JSC::JSActivation::argumentsGetter): 6516 * runtime/JSActivation.h: 6517 * runtime/JSGlobalObject.cpp: 6518 (JSC::JSGlobalObject::put): 6519 (JSC::JSGlobalObject::putWithAttributes): 6520 (JSC::JSGlobalObject::markChildren): 6521 (JSC::JSGlobalObject::copyGlobalsFrom): 6522 (JSC::JSGlobalObject::copyGlobalsTo): 6523 (JSC::JSGlobalObject::resizeRegisters): 6524 * runtime/JSGlobalObject.h: 6525 (JSC::JSGlobalObject::setRegisters): 6526 (JSC::JSGlobalObject::addStaticGlobals): 6527 * runtime/JSStaticScopeObject.cpp: 6528 (JSC::JSStaticScopeObject::put): 6529 (JSC::JSStaticScopeObject::putWithAttributes): 6530 * runtime/JSVariableObject.cpp: 6531 (JSC::JSVariableObject::symbolTableGet): 6532 * runtime/JSVariableObject.h: 6533 (JSC::JSVariableObject::registerAt): 6534 (JSC::JSVariableObject::JSVariableObjectData::JSVariableObjectData): 6535 (JSC::JSVariableObject::symbolTableGet): 6536 (JSC::JSVariableObject::symbolTablePut): 6537 (JSC::JSVariableObject::symbolTablePutWithAttributes): 6538 (JSC::JSVariableObject::copyRegisterArray): 6539 (JSC::JSVariableObject::setRegisters): 6540 6541 2011-03-03 Geoffrey Garen <ggaren (a] apple.com> 6542 6543 Try to fix Windows build. 6544 6545 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Removed obsolete symbol. 6546 6547 * runtime/JSStaticScopeObject.cpp: 6548 (JSC::JSStaticScopeObject::getOwnPropertySlot): Don't mark this function 6549 inline -- it's virtual. 6550 6551 2011-03-02 Geoffrey Garen <ggaren (a] apple.com> 6552 6553 Reviewed by Darin Adler. 6554 6555 Moved all variable object storage inline -- upping the object size limit to 1K 6556 https://bugs.webkit.org/show_bug.cgi?id=55653 6557 6558 * JavaScriptCore.exp: 6559 * bytecompiler/BytecodeGenerator.cpp: 6560 * jit/JITOpcodes.cpp: 6561 * runtime/Arguments.h: 6562 * runtime/JSActivation.h: Removed out-of-line storage. Changed d-> to m_. 6563 6564 * runtime/JSCell.h: 6565 (JSC::JSCell::MarkedSpace::sizeClassFor): Added an imprecise size class 6566 to accomodate objects up to 1K. 6567 6568 * runtime/JSGlobalObject.cpp: 6569 * runtime/JSGlobalObject.h: Removed out-of-line storage. Changed d-> to m_. 6570 6571 * runtime/JSObject.cpp: Don't ASSERT that JSFinalObject fills the maximum 6572 object size, since it doesn't anymore. 6573 6574 * runtime/JSStaticScopeObject.cpp: 6575 * runtime/JSStaticScopeObject.h: 6576 * runtime/JSVariableObject.h: Removed out-of-line storage. Changed d-> to m_. 6577 6578 * runtime/MarkedSpace.cpp: 6579 (JSC::MarkedSpace::MarkedSpace): 6580 (JSC::MarkedSpace::reset): 6581 * runtime/MarkedSpace.h: Added an imprecise size class to accomodate objects up to 1K. 6582 6583 2011-03-03 Timothy Hatcher <timothy (a] apple.com> 6584 6585 Make APIShims usable from WebCore. 6586 6587 Reviewed by Oliver Hunt. 6588 6589 * ForwardingHeaders/JavaScriptCore/APIShims.h: Added. 6590 * GNUmakefile.am: 6591 * JavaScriptCore.exp: 6592 * JavaScriptCore.gypi: 6593 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: 6594 * JavaScriptCore.xcodeproj/project.pbxproj: 6595 6596 2011-03-03 Peter Varga <pvarga (a] webkit.org> 6597 6598 Reviewed by Oliver Hunt. 6599 6600 Begin Characters Optimization Causes YARR Interpreter Errors 6601 https://bugs.webkit.org/show_bug.cgi?id=55479 6602 6603 The addBeginTerm function is removed because it doesn't correctly handle those 6604 cases when an "invalid" term has been 6605 collected (e.g. CharacterClass). Move the removed function to the 6606 setupAlternativeBeginTerms method's switch-case 6607 where the non-allowed cases are correctly handled. 6608 6609 Reenable the Beginning Character Optimization in the YARR Interpreter again. 6610 6611 * yarr/YarrPattern.cpp: 6612 (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms): 6613 (JSC::Yarr::YarrPattern::compile): 6614 6615 2011-03-02 Jessie Berlin <jberlin (a] apple.com> 6616 6617 Reviewed by Adam Roben. 6618 6619 WebKit2: Use CFNetwork Sessions API. 6620 https://bugs.webkit.org/show_bug.cgi?id=55435 6621 6622 Add the ability to create a Private Browsing storage session. 6623 6624 * wtf/Platform.h: 6625 Add a new #define for using CF Storage Sessions. 6626 6627 2011-03-02 Oliver Hunt <oliver (a] apple.com> 6628 6629 Reviewed by Gavin Barraclough. 6630 6631 Remove "register slot" concept from PropertySlot 6632 https://bugs.webkit.org/show_bug.cgi?id=55621 6633 6634 PropertySlot had already stopped storing Register "slots" 6635 so this patch is simply removing that api entirely. 6636 This exposed a problem in the ProgramNode constructor for 6637 BytecodeGenerator where it reads from the registerfile 6638 before it has initialised it. 6639 6640 This bug wasn't a problem before as we were merely testing 6641 for property existence rather than the actual value, and 6642 used to work because setRegisterSlot didn't check that the 6643 provided slot contained an initialised value. 6644 6645 To get around this issue we now use symbolTableHasProperty 6646 to do the symbol table check without trying to read the 6647 RegisterFile. 6648 6649 * JavaScriptCore.xcodeproj/project.pbxproj: 6650 * bytecompiler/BytecodeGenerator.cpp: 6651 (JSC::BytecodeGenerator::BytecodeGenerator): 6652 * runtime/Arguments.cpp: 6653 (JSC::Arguments::getOwnPropertySlot): 6654 * runtime/JSActivation.cpp: 6655 (JSC::JSActivation::symbolTableGet): 6656 * runtime/JSGlobalObject.h: 6657 (JSC::JSGlobalObject::symbolTableHasProperty): 6658 * runtime/JSVariableObject.h: 6659 (JSC::JSVariableObject::symbolTableGet): 6660 * runtime/PropertySlot.h: 6661 6662 2011-03-02 Daniel Cheng <dcheng (a] chromium.org> 6663 6664 Reviewed by David Levin. 6665 6666 Add feature define for data transfer items 6667 https://bugs.webkit.org/show_bug.cgi?id=55510 6668 6669 * Configurations/FeatureDefines.xcconfig: 6670 * wtf/Platform.h: 6671 6672 2011-03-02 Adam Roben <aroben (a] apple.com> 6673 6674 Delete old .res files whenever any .vsprops file changes 6675 6676 Prospective fix for <http://webkit.org/b/55599> r80079 caused incremental Windows builds to 6677 fail 6678 6679 Reviewed by Tony Chang. 6680 6681 * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: 6682 (main): Restructured code to loop over a set of file extensions, deleting any old files that 6683 have that extension. Now deletes .res files, too. (We previously deleted any file matching 6684 *.manifest*, but that turned out to just be the union of *.manifest and *.res.) 6685 6686 2011-03-02 Adam Barth <abarth (a] webkit.org> 6687 6688 Reviewed by Dimitri Glazkov. 6689 6690 Teach JavaScriptCore GYP build how to build minidom 6691 https://bugs.webkit.org/show_bug.cgi?id=55536 6692 6693 * JavaScriptCore.gypi: 6694 * gyp/JavaScriptCore.gyp: 6695 6696 2011-03-01 Adam Barth <abarth (a] webkit.org> 6697 6698 Reviewed by Eric Seidel. 6699 6700 JavaScriptCore GYP build should copy some headers into the target framework 6701 https://bugs.webkit.org/show_bug.cgi?id=55524 6702 6703 After this patch, all the framework headers are exported as public 6704 headers. We need to teach GYP how to handle private headers. 6705 6706 I struggled to determine how to store the information about whether a 6707 header was public, private, or project (i.e., not exported). 6708 Generally, the GYPI should just list the files, but it seemed siliy to 6709 have an almost duplicated list of files in the GYP file itself. If 6710 this design doesn't scale, we might have to revisit it in the future. 6711 6712 * JavaScriptCore.gyp/JavaScriptCore.gyp: 6713 * JavaScriptCore.gypi: 6714 * gyp/JavaScriptCore.gyp: 6715 6716 2011-03-01 Sheriff Bot <webkit.review.bot (a] gmail.com> 6717 6718 Unreviewed, rolling out r80079. 6719 http://trac.webkit.org/changeset/80079 6720 https://bugs.webkit.org/show_bug.cgi?id=55547 6721 6722 "Broke the Win debug build?" (Requested by dcheng on #webkit). 6723 6724 * wtf/Platform.h: 6725 6726 2011-03-01 Daniel Cheng <dcheng (a] chromium.org> 6727 6728 Reviewed by David Levin. 6729 6730 Add feature define for data transfer items 6731 https://bugs.webkit.org/show_bug.cgi?id=55510 6732 6733 * wtf/Platform.h: 6734 6735 2011-03-01 Oliver Hunt <oliver (a] apple.com> 6736 6737 Reviewed by Joseph Pecoraro. 6738 6739 Misaligned memory access in CloneDeserializer on all ARM arch. 6740 https://bugs.webkit.org/show_bug.cgi?id=48742 6741 6742 Add a CPU class for architectures that need aligned addresses 6743 for memory access. 6744 6745 * wtf/Platform.h: 6746 6747 2011-03-01 Adam Barth <abarth (a] webkit.org> 6748 6749 Reviewed by Dimitri Glazkov. 6750 6751 Add pre- and post-build actions for JavaScriptCore GYP build 6752 https://bugs.webkit.org/show_bug.cgi?id=55507 6753 6754 After this patch, we have all the steps for building the main 6755 JavaScriptCore framework except the "copy headers" step, which I'll do 6756 next. 6757 6758 * gyp/JavaScriptCore.gyp: 6759 6760 2011-03-01 Geoffrey Garen <ggaren (a] apple.com> 6761 6762 Reviewed by Sam Weinig. 6763 6764 Rolled back in r79627 now that the underlying cause for it crashing is fixed. 6765 https://bugs.webkit.org/show_bug.cgi?id=55159 6766 6767 * JavaScriptCore.exp: 6768 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 6769 * JavaScriptCore.xcodeproj/project.pbxproj: 6770 * runtime/Heap.cpp: 6771 (JSC::Heap::allocateSlowCase): 6772 * runtime/Heap.h: 6773 * runtime/JSCell.h: 6774 (JSC::JSCell::MarkedSpace::sizeClassFor): 6775 (JSC::JSCell::Heap::allocate): 6776 (JSC::JSCell::JSCell::operator new): 6777 * runtime/MarkedBlock.h: 6778 * runtime/MarkedSpace.cpp: 6779 (JSC::MarkedSpace::MarkedSpace): 6780 (JSC::MarkedSpace::allocateBlock): 6781 (JSC::MarkedSpace::reset): 6782 * runtime/MarkedSpace.h: 6783 (JSC::MarkedSpace::SizeClass::SizeClass): 6784 6785 2011-03-01 Mark Rowe <mrowe (a] apple.com> 6786 6787 Reviewed by Sam Weinig. 6788 6789 Replace two script phases that do nothing but copy files with copy files build phases. 6790 6791 This speeds up the build by a few seconds on high-end Mac Pros. 6792 6793 * JavaScriptCore.xcodeproj/project.pbxproj: 6794 6795 2011-03-01 David Kilzer <ddkilzer (a] apple.com> 6796 6797 Spring cleaning! 6798 6799 Rubber-stamped by Mark Rowe. 6800 6801 * JavaScriptCore.xcodeproj/project.pbxproj: 6802 (Copy Into Framework): Remove "set -x" and its comment. 6803 6804 2011-03-01 Michael Saboff <msaboff (a] apple.com> 6805 6806 Reviewed by Darin Adler. 6807 6808 TinyMCE not working in nightlies 6809 https://bugs.webkit.org/show_bug.cgi?id=54978 6810 6811 Disabling setupBeginChars() to temporarily work arround the test 6812 failure. Filed https://bugs.webkit.org/show_bug.cgi?id=55479 6813 to track fixing the issue. 6814 6815 * yarr/YarrPattern.cpp: 6816 (JSC::Yarr::YarrPattern::compile): 6817 6818 2011-02-23 Joseph Pecoraro <joepeck (a] webkit.org> 6819 6820 Reviewed by Kenneth Rohde Christiansen. 6821 6822 Viewport parsing no longer accepts "1.0;" value as valid. 6823 https://bugs.webkit.org/show_bug.cgi?id=53705 6824 6825 Include a didReadNumber parameter to String -> float / double 6826 conversion functions. This way, if the "ok" boolean out 6827 parameter is false, you can check to see if there in fact 6828 was a valid number parsed with garbage at the end. Examples 6829 of that would be parsing "123x456" would have ok = false, 6830 but didReadNumber = true. 6831 6832 * JavaScriptCore.exp: 6833 * wtf/text/StringImpl.cpp: 6834 (WTF::StringImpl::toDouble): 6835 (WTF::StringImpl::toFloat): 6836 * wtf/text/StringImpl.h: 6837 * wtf/text/WTFString.cpp: 6838 (WTF::String::toDouble): 6839 (WTF::String::toFloat): 6840 (WTF::charactersToDouble): 6841 (WTF::charactersToFloat): 6842 * wtf/text/WTFString.h: 6843 6844 2011-02-28 Geoffrey Garen <ggaren (a] apple.com> 6845 6846 Reviewed by Gavin Barraclough. 6847 6848 Past-the-end writes in VM exceptions (caused crashes in r79627) 6849 https://bugs.webkit.org/show_bug.cgi?id=55448 6850 6851 Some exceptions had the wrong structures, so they misoverestimated their 6852 inline storage sizes. 6853 6854 * runtime/JSGlobalData.cpp: 6855 (JSC::JSGlobalData::JSGlobalData): Use the right structure. 6856 6857 * runtime/JSObject.h: 6858 (JSC::JSNonFinalObject::JSNonFinalObject): 6859 (JSC::JSFinalObject::JSFinalObject): ASSERT that our structure capacity 6860 is correct to verify this doesn't happen again. 6861 6862 2011-03-01 Andras Becsi <abecsi (a] webkit.org> 6863 6864 Reviewed by Csaba Osztrogonc. 6865 6866 [Qt] Clean up the project files and move common options to WebKit.pri. 6867 6868 * JavaScriptCore.pri: Move options also needed in WebCore into WebKit.pri. 6869 * JavaScriptCore.pro: Deduplicate options. 6870 * jsc.pro: Ditto. 6871 6872 2011-03-01 Adam Barth <abarth (a] webkit.org> 6873 6874 Reviewed by Eric Seidel. 6875 6876 Teach JavaScriptCore GYP build about DEPTH 6877 https://bugs.webkit.org/show_bug.cgi?id=55425 6878 6879 In addition to teaching the JavaScriptCore GYP build about DEPTH, this 6880 change overrides the GCC warning configuration to disable a warning 6881 that's causing probems in Assertions.cpp. With that warning disabled, 6882 JavaScriptCore builds again. 6883 6884 * gyp/JavaScriptCore.gyp: 6885 6886 2011-02-28 Gavin Barraclough <barraclough (a] apple.com> 6887 6888 Windows build fix. 6889 6890 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 6891 6892 2011-02-28 Sheriff Bot <webkit.review.bot (a] gmail.com> 6893 6894 Unreviewed, rolling out r79948. 6895 http://trac.webkit.org/changeset/79948 6896 https://bugs.webkit.org/show_bug.cgi?id=55439 6897 6898 "caused crashes on the SL release bot" (Requested by ggaren on 6899 #webkit). 6900 6901 * runtime/JSGlobalData.h: 6902 * runtime/WriteBarrier.h: 6903 6904 2011-02-28 Gavin Barraclough <barraclough (a] apple.com> 6905 6906 Windows build fix. 6907 6908 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 6909 6910 2011-02-28 Gavin Barraclough <barraclough (a] apple.com> 6911 6912 Reviewed by Sam Weinig & Darin Adler. 6913 6914 Bug 55423 - Clean up property tables in Structure 6915 6916 Encapsulate, reduce duplication of table search code, 6917 and reduce the size of the tables (remove the index, 6918 just maintain the tables in the correct order). 6919 6920 Shows a 0.5% - 1% progression on sunspider. 6921 6922 * JavaScriptCore.exp: 6923 * runtime/PropertyMapHashTable.h: 6924 (JSC::isPowerOf2): 6925 (JSC::nextPowerOf2): 6926 bit ops used to calculate table size. 6927 (JSC::PropertyMapEntry::PropertyMapEntry): 6928 (JSC::PropertyTable::ordered_iterator::operator++): 6929 (JSC::PropertyTable::ordered_iterator::operator==): 6930 (JSC::PropertyTable::ordered_iterator::operator!=): 6931 (JSC::PropertyTable::ordered_iterator::operator*): 6932 (JSC::PropertyTable::ordered_iterator::operator->): 6933 (JSC::PropertyTable::ordered_iterator::ordered_iterator): 6934 implementation of the iterator types 6935 (JSC::PropertyTable::PropertyTable): 6936 (JSC::PropertyTable::~PropertyTable): 6937 constructors take an initial capacity for the table, 6938 a table to copy, or both. 6939 (JSC::PropertyTable::begin): 6940 (JSC::PropertyTable::end): 6941 create in-order iterators. 6942 (JSC::PropertyTable::find): 6943 search the hash table 6944 (JSC::PropertyTable::add): 6945 add a value to the hash table 6946 (JSC::PropertyTable::remove): 6947 remove a value from the hash table 6948 (JSC::PropertyTable::size): 6949 (JSC::PropertyTable::isEmpty): 6950 accessors. 6951 (JSC::PropertyTable::propertyStorageSize): 6952 (JSC::PropertyTable::clearDeletedOffsets): 6953 (JSC::PropertyTable::hasDeletedOffset): 6954 (JSC::PropertyTable::getDeletedOffset): 6955 (JSC::PropertyTable::addDeletedOffset): 6956 cache deleted (available) offsets in the property storage array. 6957 (JSC::PropertyTable::copy): 6958 take a copy of the PropertyTable, potentially expanding the capacity. 6959 (JSC::PropertyTable::sizeInMemory): 6960 used for DEBUG build statistics 6961 (JSC::PropertyTable::reinsert): 6962 (JSC::PropertyTable::rehash): 6963 (JSC::PropertyTable::tableCapacity): 6964 (JSC::PropertyTable::deletedEntryIndex): 6965 (JSC::PropertyTable::skipDeletedEntries): 6966 (JSC::PropertyTable::table): 6967 (JSC::PropertyTable::usedCount): 6968 (JSC::PropertyTable::dataSize): 6969 (JSC::PropertyTable::sizeForCapacity): 6970 (JSC::PropertyTable::canInsert): 6971 these methods provide internal implementation. 6972 * runtime/Structure.cpp: 6973 (JSC::Structure::dumpStatistics): 6974 (JSC::Structure::~Structure): 6975 (JSC::Structure::materializePropertyMap): 6976 (JSC::Structure::despecifyDictionaryFunction): 6977 (JSC::Structure::addPropertyTransition): 6978 (JSC::Structure::flattenDictionaryStructure): 6979 (JSC::Structure::copyPropertyTable): 6980 (JSC::Structure::get): 6981 (JSC::Structure::despecifyFunction): 6982 (JSC::Structure::despecifyAllFunctions): 6983 (JSC::Structure::put): 6984 (JSC::Structure::remove): 6985 (JSC::Structure::createPropertyMap): 6986 (JSC::Structure::getPropertyNames): 6987 (JSC::PropertyTable::checkConsistency): 6988 (JSC::Structure::checkConsistency): 6989 factored out code to PropertyMapHashTable.h 6990 * runtime/Structure.h: 6991 (JSC::Structure::propertyStorageSize): 6992 (JSC::Structure::isEmpty): 6993 (JSC::Structure::get): 6994 factored out code to PropertyMapHashTable.h 6995 6996 2011-02-28 Xan Lopez <xlopez (a] igalia.com> 6997 6998 Another fix build :( 6999 7000 Fix typo. 7001 7002 * runtime/MachineStackMarker.cpp: 7003 (JSC::freePlatformThreadRegisters): 7004 7005 2011-02-28 Xan Lopez <xlopez (a] igalia.com> 7006 7007 Unreviewed build fix for Snow Leopard. 7008 7009 * runtime/MachineStackMarker.cpp: 7010 (JSC::freePlatformThreadRegisters): 7011 7012 2011-02-28 Alejandro G. Castro <alex (a] igalia.com> 7013 7014 Unreviewed, fix SnowLeopard compilation after r79952. 7015 7016 * runtime/MachineStackMarker.cpp: 7017 (JSC::freePlatformThreadRegisters): 7018 7019 2011-02-28 Mark Rowe <mrowe (a] apple.com> 7020 7021 Reviewed by Darin Adler. 7022 7023 <http://webkit.org/b/55430> OwnArrayPtr.h's LOOSE_OWN_ARRAY_PTR results in link errors. 7024 7025 * wtf/OwnArrayPtr.h: 7026 (WTF::::set): Implement OwnArrayPtr::set. 7027 7028 2011-02-28 Martin Zoubek <martin.zoubek (a] acision.com> and Alejandro G. Castro <alex (a] igalia.com> 7029 7030 Reviewed by Martin Robinson. 7031 7032 Multithread support for JSC on UNIX 7033 https://bugs.webkit.org/show_bug.cgi?id=26838 7034 7035 Implement suspendThread() and resumeThread() for systems with 7036 pthread.h using thread signal handler. 7037 7038 * runtime/MachineStackMarker.cpp: 7039 (JSC::pthreadSignalHandlerSuspendResume): 7040 (JSC::MachineStackMarker::Thread::Thread): 7041 (JSC::getCurrentPlatformThread): 7042 (JSC::suspendThread): 7043 (JSC::resumeThread): 7044 (JSC::getPlatformThreadRegisters): 7045 (JSC::otherThreadStackPointer): 7046 (JSC::freePlatformThreadRegisters): 7047 (JSC::MachineStackMarker::markOtherThreadConservatively): 7048 * wtf/Platform.h: Added Gtk port to use 7049 ENABLE_JSC_MULTIPLE_THREADS. 7050 7051 2011-02-28 Oliver Hunt <oliver (a] apple.com> 7052 7053 Reviewed by Darin Adler. 7054 7055 Stop using DeprecatedPtr for the global exception slot 7056 https://bugs.webkit.org/show_bug.cgi?id=55424 7057 7058 Create GCRootPtr to signify that the exception slot is 7059 a gcroot, and so is exempt from the usual writebarrier 7060 restrictions. 7061 7062 * runtime/JSGlobalData.h: 7063 * runtime/WriteBarrier.h: 7064 (JSC::GCRootPtr::GCRootPtr): 7065 (JSC::GCRootPtr::operator=): 7066 7067 2011-02-28 Adam Barth <abarth (a] webkit.org> 7068 7069 Reviewed by Dimitri Glazkov. 7070 7071 Use more xcconfig files in JavaScriptCore gyp build 7072 https://bugs.webkit.org/show_bug.cgi?id=55391 7073 7074 The GYP experts tell me that we have have a total of two xcconfig 7075 files: one for the xcodeproj as a whole and one for each target. This 7076 patch uses that technique to re-use the existing xcconfig files and 7077 eliminate the duplication. 7078 7079 Technically, this patch introduces some build errors because the 7080 xcconfig files assume that the xcodeproj file is one level higher in 7081 the directory hierarchy. Specifically, the xcodeproj file can no 7082 longer find the Info.plist or the prefix header. I plan to fix that in 7083 a subsequent patch. 7084 7085 Also, this patch introduces the Release and Production configurations, 7086 which should work correctly now. 7087 7088 * gyp/JavaScriptCore.gyp: 7089 7090 2011-02-28 Jon Honeycutt <jhoneycutt (a] apple.com> 7091 7092 Windows build fix. 7093 7094 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 7095 Add symbol to export. 7096 7097 2011-02-28 Oliver Hunt <oliver (a] apple.com> 7098 7099 Reviewed by Gavin Barraclough. 7100 7101 Make ScopeChainNode GC allocated 7102 https://bugs.webkit.org/show_bug.cgi?id=55283 7103 7104 Simplify lifetime and other issues with the scopechain 7105 by making it gc allocated. This allows us to simplify 7106 function exit and unwinding, as well as making the 7107 current iterative refcounting go away. 7108 7109 * JavaScriptCore.exp: 7110 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 7111 * bytecode/CodeBlock.cpp: 7112 (JSC::CodeBlock::createActivation): 7113 * bytecode/StructureStubInfo.cpp: 7114 * bytecompiler/BytecodeGenerator.cpp: 7115 (JSC::BytecodeGenerator::generate): 7116 (JSC::BytecodeGenerator::BytecodeGenerator): 7117 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): 7118 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): 7119 * bytecompiler/BytecodeGenerator.h: 7120 * debugger/Debugger.cpp: 7121 (JSC::Recompiler::operator()): 7122 * debugger/DebuggerCallFrame.h: 7123 (JSC::DebuggerCallFrame::scopeChain): 7124 * interpreter/CachedCall.h: 7125 (JSC::CachedCall::CachedCall): 7126 * interpreter/CallFrame.h: 7127 * interpreter/Interpreter.cpp: 7128 (JSC::depth): 7129 (JSC::Interpreter::unwindCallFrame): 7130 (JSC::Interpreter::throwException): 7131 (JSC::Interpreter::execute): 7132 (JSC::Interpreter::executeCall): 7133 (JSC::Interpreter::executeConstruct): 7134 (JSC::Interpreter::privateExecute): 7135 * jit/JITCall.cpp: 7136 (JSC::JIT::compileOpCallInitializeCallFrame): 7137 (JSC::JIT::compileOpCall): 7138 * jit/JITCall32_64.cpp: 7139 (JSC::JIT::compileOpCallInitializeCallFrame): 7140 (JSC::JIT::emit_op_ret): 7141 (JSC::JIT::emit_op_ret_object_or_this): 7142 (JSC::JIT::compileOpCall): 7143 * jit/JITOpcodes.cpp: 7144 (JSC::JIT::emit_op_end): 7145 (JSC::JIT::emit_op_ret): 7146 (JSC::JIT::emit_op_ret_object_or_this): 7147 * jit/JITOpcodes32_64.cpp: 7148 (JSC::JIT::emit_op_end): 7149 * jit/JITStubs.cpp: 7150 (JSC::DEFINE_STUB_FUNCTION): 7151 * jit/JITStubs.h: 7152 * runtime/ArgList.cpp: 7153 * runtime/Completion.cpp: 7154 (JSC::evaluate): 7155 * runtime/Completion.h: 7156 * runtime/DateConversion.cpp: 7157 * runtime/Executable.cpp: 7158 (JSC::EvalExecutable::compileInternal): 7159 (JSC::ProgramExecutable::compileInternal): 7160 (JSC::FunctionExecutable::compileForCallInternal): 7161 (JSC::FunctionExecutable::compileForConstructInternal): 7162 * runtime/FunctionConstructor.cpp: 7163 (JSC::constructFunction): 7164 * runtime/GCActivityCallbackCF.cpp: 7165 * runtime/Identifier.cpp: 7166 * runtime/JSCell.h: 7167 * runtime/JSChunk.cpp: Added. 7168 * runtime/JSChunk.h: Added. 7169 * runtime/JSFunction.cpp: 7170 (JSC::JSFunction::JSFunction): 7171 (JSC::JSFunction::markChildren): 7172 (JSC::JSFunction::getCallData): 7173 (JSC::JSFunction::getOwnPropertySlot): 7174 (JSC::JSFunction::getConstructData): 7175 * runtime/JSFunction.h: 7176 (JSC::JSFunction::scope): 7177 (JSC::JSFunction::setScope): 7178 * runtime/JSGlobalData.cpp: 7179 (JSC::JSGlobalData::JSGlobalData): 7180 * runtime/JSGlobalData.h: 7181 * runtime/JSGlobalObject.cpp: 7182 (JSC::JSGlobalObject::init): 7183 (JSC::JSGlobalObject::markChildren): 7184 * runtime/JSGlobalObject.h: 7185 (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): 7186 (JSC::JSGlobalObject::globalScopeChain): 7187 * runtime/JSGlobalObjectFunctions.cpp: 7188 (JSC::globalFuncEval): 7189 * runtime/JSLock.cpp: 7190 * runtime/JSNumberCell.cpp: 7191 * runtime/JSZombie.cpp: 7192 * runtime/MarkedBlock.cpp: 7193 * runtime/MarkedSpace.cpp: 7194 * runtime/PropertyNameArray.cpp: 7195 * runtime/ScopeChain.cpp: 7196 (JSC::ScopeChainNode::print): 7197 (JSC::ScopeChainNode::localDepth): 7198 (JSC::ScopeChainNode::markChildren): 7199 * runtime/ScopeChain.h: 7200 (JSC::ScopeChainNode::ScopeChainNode): 7201 (JSC::ScopeChainNode::createStructure): 7202 (JSC::ScopeChainNode::push): 7203 (JSC::ScopeChainNode::pop): 7204 (JSC::ScopeChainIterator::ScopeChainIterator): 7205 (JSC::ScopeChainIterator::operator*): 7206 (JSC::ScopeChainIterator::operator->): 7207 (JSC::ScopeChainIterator::operator++): 7208 (JSC::ScopeChainNode::begin): 7209 (JSC::ScopeChainNode::end): 7210 (JSC::ExecState::globalData): 7211 (JSC::ExecState::lexicalGlobalObject): 7212 (JSC::ExecState::globalThisValue): 7213 * runtime/ScopeChainMark.h: 7214 * wtf/DateMath.cpp: 7215 7216 2011-02-27 Adam Barth <abarth (a] webkit.org> 7217 7218 Reviewed by Eric Seidel. 7219 7220 Implement WTF::randomNumber in terms of WTF::cryptographicallyRandomNumber when possible 7221 https://bugs.webkit.org/show_bug.cgi?id=55326 7222 7223 Currently, randomNumber does a bunch of platform-specific work that to 7224 get a cryptographic randomness when available. Instead, we should use 7225 cryptographicallyRandomNumber, which abstracts this work. 7226 Unfortunately, we can't remove all of the WTF::randomNumber 7227 implementation because not every port has access to cryptographically 7228 random numbers. 7229 7230 * wtf/RandomNumber.cpp: 7231 (WTF::randomNumber): 7232 7233 2011-02-27 Benjamin Poulain <ikipou (a] gmail.com> 7234 7235 Reviewed by Darin Adler. 7236 7237 Eliminate DeprecatedPtrList from RenderBlock 7238 https://bugs.webkit.org/show_bug.cgi?id=54972 7239 7240 Add methods find() and contains() using an adaptor to ListHashSet. 7241 Those method are like the one of HashSet, they allow to find objects 7242 based on a different key than the one used to define the set. 7243 7244 Add convenience methods for direct access to the head and tail of the list. 7245 Those methods are providing similar API/behavior as Vector. 7246 7247 * wtf/ListHashSet.h: 7248 (WTF::::first): 7249 (WTF::::last): 7250 (WTF::::removeLast): 7251 (WTF::ListHashSetTranslatorAdapter::hash): 7252 (WTF::ListHashSetTranslatorAdapter::equal): 7253 (WTF::::find): 7254 (WTF::::contains): 7255 7256 2011-02-26 Patrick Gansterer <paroga (a] webkit.org> 7257 7258 Reviewed by Andreas Kling. 7259 7260 Add support for DragonFly BSD 7261 https://bugs.webkit.org/show_bug.cgi?id=54407 7262 7263 DragonFly BSD is based on FreeBSD, so handle it like FreeBSD. 7264 7265 * wtf/Platform.h: 7266 7267 2011-02-26 Adam Barth <abarth (a] webkit.org> 7268 7269 Reviewed by Dimitri Glazkov. 7270 7271 JavaScriptCore should use the xcconfig file instead of importing that information into GYP 7272 https://bugs.webkit.org/show_bug.cgi?id=55282 7273 7274 Technically, this breaks the build because I had removed one of the 7275 warnings in this config file, but this change seems like an 7276 improvement. 7277 7278 * gyp/JavaScriptCore.gyp: 7279 7280 2011-02-26 Thouraya ANDOLSI <thouraya.andolsi (a] st.com> 7281 7282 Reviewed by Nikolas Zimmermann. 7283 7284 SH4 JIT SUPPORT 7285 https://bugs.webkit.org/show_bug.cgi?id=44329 7286 7287 Provide an ExecutableAllocater::cacheFlush() implementation for 7288 Linux/SH4. 7289 7290 * jit/ExecutableAllocator.h: 7291 (JSC::ExecutableAllocator::cacheFlush): 7292 7293 2011-02-25 Sheriff Bot <webkit.review.bot (a] gmail.com> 7294 7295 Unreviewed, rolling out r79627. 7296 http://trac.webkit.org/changeset/79627 7297 https://bugs.webkit.org/show_bug.cgi?id=55274 7298 7299 broke worker tests (Requested by olliej on #webkit). 7300 7301 * JavaScriptCore.exp: 7302 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 7303 * runtime/Heap.cpp: 7304 (JSC::Heap::allocate): 7305 * runtime/Heap.h: 7306 * runtime/JSCell.h: 7307 (JSC::JSCell::JSCell::operator new): 7308 (JSC::JSCell::MarkedSpace::sizeClassFor): 7309 (JSC::JSCell::MarkedSpace::allocate): 7310 * runtime/MarkedBlock.h: 7311 * runtime/MarkedSpace.cpp: 7312 (JSC::MarkedSpace::MarkedSpace): 7313 (JSC::MarkedSpace::allocateBlock): 7314 (JSC::MarkedSpace::reset): 7315 * runtime/MarkedSpace.h: 7316 (JSC::MarkedSpace::SizeClass::SizeClass): 7317 7318 2011-02-25 Michael Saboff <msaboff (a] apple.com> 7319 7320 Reviewed by Darin Adler. 7321 7322 Leak in JSParser::Scope of ScopeLabelInfo Vector 7323 https://bugs.webkit.org/show_bug.cgi?id=55249 7324 7325 Changed m_labels to be an OwnPtr<>. Added VectorTraits 7326 and Scope copy constructor to support this change. 7327 7328 * parser/JSParser.cpp: 7329 (JSC::JSParser::Scope::~Scope): 7330 7331 2011-02-25 Fumitoshi Ukai <ukai (a] chromium.org> 7332 7333 Reviewed by Adam Barth. 7334 7335 WebSocket uses insecure random numbers 7336 https://bugs.webkit.org/show_bug.cgi?id=54714 7337 7338 * JavaScriptCore.exp: Export WTF::cryptographicallyRandomNumber() 7339 7340 2011-02-25 Patrick Gansterer <paroga (a] webkit.org> 7341 7342 Reviewed by Adam Roben. 7343 7344 Move timeBeginPeriod into OS(WINDOWS) section 7345 https://bugs.webkit.org/show_bug.cgi?id=55247 7346 7347 * jsc.cpp: 7348 (main): timeBeginPeriod is available on all Windows versions and not compiler specific. 7349 7350 2011-02-25 Patrick Gansterer <paroga (a] webkit.org> 7351 7352 Unreviewed WinCE build fix for r79695. 7353 7354 * jsc.cpp: 7355 (main): SetErrorMode isn't available on WinCE. 7356 7357 2011-02-25 Adam Roben <aroben (a] apple.com> 7358 7359 Work around Cygwin's crash-suppression behavior 7360 7361 Cygwin calls ::SetErrorMode(SEM_FAILCRITICALERRORS), which any processes it launches will 7362 inherit. This is bad for testing/debugging, as it causes the post-mortem debugger not to be 7363 invoked. (Cygwin does this because it makes crashes more UNIX-y.) We reset the error mode 7364 when our test apps launch to work around Cygwin's behavior. 7365 7366 Fixes <http://webkit.org/b/55222> Test apps crash silently (without invoking post-mortem 7367 debugger) when launched from Cygwin 1.7 7368 7369 Reviewed by Darin Adler. 7370 7371 * API/tests/testapi.c: Added a now-needed #include. 7372 (main): 7373 * jsc.cpp: 7374 (main): 7375 Call ::SetErrorMode(0) to undo Cygwin's folly. 7376 7377 * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Define NOMINMAX like many of our 7378 other projects do so that windows.h won't define min/max macros that interfere with 7379 std::numeric_limits<T>::min/max. 7380 7381 2011-02-24 Adam Barth <abarth (a] webkit.org> 7382 7383 Reviewed by Eric Seidel. 7384 7385 Add GYP project for JavaScriptCore 7386 https://bugs.webkit.org/show_bug.cgi?id=55027 7387 7388 Again, this GYP files is very rough, but it succeeds in building 7389 JavaScriptCore. There's a lot more work to do here, especially in the 7390 area of sharing with JavaScriptGlue.gyp. This patch is more of a 7391 checkpoint so that other folks can help out if they wish. 7392 7393 * gyp: Added. 7394 * gyp/JavaScriptCore.gyp: Added. 7395 * gyp/generate-derived-sources.sh: Added. 7396 7397 2011-02-24 Adam Barth <abarth (a] webkit.org> 7398 7399 Reviewed by Eric Seidel. 7400 7401 Add missing files to JavaScriptCore.gypi 7402 https://bugs.webkit.org/show_bug.cgi?id=55193 7403 7404 I forgot to add mm files in my previous patch. 7405 7406 * JavaScriptCore.gyp/JavaScriptCore.gyp: 7407 * JavaScriptCore.gypi: 7408 7409 2011-02-24 Adam Barth <abarth (a] webkit.org> 7410 7411 Reviewed by Eric Seidel. 7412 7413 Remove unused parameter name in GCActivityCallback.cpp 7414 https://bugs.webkit.org/show_bug.cgi?id=55194 7415 7416 This change is not strictly required for the GYP-based build system, 7417 but I noticed this error when working on the new build system. 7418 7419 * runtime/GCActivityCallback.cpp: 7420 (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback): 7421 7422 2011-02-24 James Robinson <jamesr (a] chromium.org> 7423 7424 Reviewed by Darin Fisher. 7425 7426 Add a USE() macro to control use of the built-in UTF8 codec 7427 https://bugs.webkit.org/show_bug.cgi?id=55189 7428 7429 Defaults USE(BUILTIN_UTF8_CODEC) to true for all platforms except chromium, which controls the flag via features.gypi. 7430 7431 * wtf/Platform.h: 7432 7433 2011-02-24 Geoffrey Garen <ggaren (a] apple.com> 7434 7435 Reviewed by Darin Adler. 7436 7437 Variable-sized allocation (but still capped at 64 bytes) 7438 https://bugs.webkit.org/show_bug.cgi?id=55159 7439 7440 SunSpider reports no change. 7441 7442 * JavaScriptCore.exp: Some day, I hope not to have to edit this file. 7443 7444 * runtime/Heap.cpp: 7445 (JSC::Heap::allocateSlowCase): Split allocation into a fast and slow 7446 case, so the fast case can inline size class selection and turn it into 7447 a compile-time constant. 7448 7449 Changed the collect-on-every allocation debugging switch to collect only 7450 on every slow allocation, so you can still flip the switch without 7451 recompiling the world. This may also be preferable for debugging purposes, 7452 since collecting after every single allocation can be unusably slow, 7453 and can mask problems by running destructors early. 7454 7455 * runtime/Heap.h: Ditto. 7456 7457 * runtime/JSCell.h: 7458 (JSC::JSCell::MarkedSpace::sizeClassFor): 7459 (JSC::JSCell::Heap::allocate): 7460 (JSC::JSCell::JSCell::operator new): The inlining mentioned above. 7461 7462 * runtime/MarkedBlock.h: Dropped the block size from 256KB to 16KB. With 7463 multiple size classes, allocating a full 256KB for the first allocation 7464 in a given class can be pathologically wasteful. (8KB, or 4KB Mac and 7465 8KB Windows, would be even better, but that seems to be a peformance 7466 regression for now.) 7467 7468 * runtime/MarkedSpace.cpp: 7469 (JSC::MarkedSpace::MarkedSpace): 7470 (JSC::MarkedSpace::allocateBlock): 7471 (JSC::MarkedSpace::reset): There's more than one size class now, and its 7472 cell size is not constant. 7473 7474 * runtime/MarkedSpace.h: 7475 (JSC::MarkedSpace::SizeClass::SizeClass): Ditto. 7476 7477 2011-02-23 Oliver Hunt <oliver (a] apple.com> 7478 7479 Reviewed by Geoffrey Garen. 7480 7481 Make WeakGCMap use new handle infrastructure 7482 https://bugs.webkit.org/show_bug.cgi?id=55100 7483 7484 Remove old WeakGCMap implementation and move over to new handle 7485 based logic. 7486 7487 This has a number of benefits, most notably it makes a WeakGCMap 7488 always reflect the true state of the world by as all entries are 7489 removed at the first gc cycle that makes them dead. This allows 7490 us to get rid of code in a wide variety of objects where the only 7491 purpose was to remove themselves from maps. 7492 7493 It also means that we no longer need to have special "unchecked" 7494 versions of any functions on WeakGCMap. Alas in order to maintain 7495 compatibility with the JSWeakObjectMapClear API it is still 7496 necessary to have an api that resembles uncheckedRemove, this is 7497 now deprecatedRemove and will be dealt with in a later patch. 7498 7499 In order to get correct semantics in WeakGCMap we need more 7500 contextual information in the finalizer, so we've added an 7501 abstract class based finaliser and a context parameter to the 7502 calls. 7503 7504 The new an improved WeakGCMap also results in sigificantly more 7505 churn in the weak handle lists so exposed some potential problems 7506 during the post mark phase which have been rectified as well. 7507 7508 * API/JSWeakObjectMapRefPrivate.cpp: 7509 * API/JSWeakObjectMapRefPrivate.h: 7510 * runtime/Heap.cpp: 7511 (JSC::Heap::globalObjectCount): 7512 (JSC::Heap::protectedGlobalObjectCount): 7513 * runtime/JSGlobalData.cpp: 7514 (JSC::JSGlobalData::JSGlobalData): 7515 * runtime/JSGlobalData.h: 7516 * runtime/JSGlobalObject.cpp: 7517 (JSC::JSGlobalObject::~JSGlobalObject): 7518 (JSC::JSGlobalObject::init): 7519 * runtime/WeakGCMap.h: 7520 (JSC::WeakGCMap::iterator::iterator): 7521 (JSC::WeakGCMap::iterator::get): 7522 (JSC::WeakGCMap::iterator::getSlot): 7523 (JSC::WeakGCMap::iterator::operator++): 7524 (JSC::WeakGCMap::iterator::operator==): 7525 (JSC::WeakGCMap::iterator::operator!=): 7526 (JSC::WeakGCMap::WeakGCMap): 7527 (JSC::WeakGCMap::isEmpty): 7528 (JSC::WeakGCMap::clear): 7529 (JSC::WeakGCMap::get): 7530 (JSC::WeakGCMap::getSlot): 7531 (JSC::WeakGCMap::set): 7532 (JSC::WeakGCMap::take): 7533 (JSC::WeakGCMap::size): 7534 (JSC::WeakGCMap::deprecatedRemove): 7535 (JSC::WeakGCMap::begin): 7536 (JSC::WeakGCMap::end): 7537 (JSC::WeakGCMap::~WeakGCMap): 7538 (JSC::WeakGCMap::finalize): 7539 * runtime/WeakGCPtr.h: 7540 (JSC::WeakGCPtr::WeakGCPtr): 7541 (JSC::WeakGCPtr::set): 7542 7543 2011-02-24 Oliver Hunt <oliver (a] apple.com> 7544 7545 Reviewed by Gavin Barraclough. 7546 7547 Make weaklist processing deal with weak handles being removed during the iteration 7548 https://bugs.webkit.org/show_bug.cgi?id=55105 7549 7550 It is possible for the handle heap to end up in a broken state if 7551 a handle's finalizer removes either the current or next handle 7552 to be visited during the post-gc cleanup. This patch removes that 7553 problem by allowing the deallocate(Node*) routine to update the 7554 iterator if it is called during finalization. 7555 7556 * collector/handles/HandleHeap.cpp: 7557 (JSC::HandleHeap::HandleHeap): 7558 (JSC::HandleHeap::updateAfterMark): 7559 (JSC::HandleHeap::clearWeakPointers): 7560 (JSC::HandleHeap::writeBarrier): 7561 (JSC::HandleHeap::protectedGlobalObjectCount): 7562 * collector/handles/HandleHeap.h: 7563 (JSC::Finalizer::~Finalizer): 7564 (JSC::HandleHeap::getFinalizer): 7565 (JSC::HandleHeap::deallocate): 7566 (JSC::HandleHeap::makeWeak): 7567 (JSC::HandleHeap::makeSelfDestroying): 7568 (JSC::HandleHeap::Node::Node): 7569 (JSC::HandleHeap::Node::setFinalizer): 7570 (JSC::HandleHeap::Node::finalizer): 7571 (JSC::HandleHeap::Node::finalizerContext): 7572 * interpreter/RegisterFile.cpp: 7573 (JSC::RegisterFile::setGlobalObject): 7574 (JSC::GlobalObjectNotifier::finalize): 7575 (JSC::RegisterFile::globalObjectCollectedNotifier): 7576 * interpreter/RegisterFile.h: 7577 (JSC::RegisterFile::RegisterFile): 7578 * runtime/Heap.cpp: 7579 (JSC::Heap::destroy): 7580 * runtime/WeakGCPtr.h: 7581 (JSC::WeakGCPtr::WeakGCPtr): 7582 (JSC::WeakGCPtr::set): 7583 7584 2011-02-24 Michael Saboff <msaboff (a] apple.com> 7585 7586 Reviewed by Oliver Hunt. 7587 7588 PatternAlternative leaked in YarrPatternConstructor::atomParenthesesEnd() 7589 https://bugs.webkit.org/show_bug.cgi?id=55156 7590 7591 Added code to delete unneeded PatternAlternative after it is removed 7592 from m_alternatives Vector. 7593 7594 * yarr/YarrPattern.cpp: 7595 (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd): 7596 7597 2011-02-24 Eric Seidel <eric (a] webkit.org> 7598 7599 Reviewed by Anders Carlsson. 7600 7601 VectorBuffer should not call malloc(0) 7602 https://bugs.webkit.org/show_bug.cgi?id=55091 7603 7604 Turns out the malloc() call which was so hot in: 7605 https://bugs.webkit.org/show_bug.cgi?id=55005 7606 was actually just malloc(0). 7607 7608 We shouldn't be calling malloc(0) anyway, since there is no need to 7609 and it might actually do work on some systems. 7610 I believe on Mac it ends up taking the standard spinlocks (expensive) 7611 and the code on Brew actually does a malloc(1) instead. Neither is desirable. 7612 7613 * wtf/Vector.h: 7614 (WTF::VectorBufferBase::allocateBuffer): 7615 (WTF::VectorBufferBase::tryAllocateBuffer): 7616 7617 2011-02-24 Patrick Gansterer <paroga (a] webkit.org> 7618 7619 Reviewed by Darin Adler. 7620 7621 Remove obsolete PLATFORM(CI) 7622 https://bugs.webkit.org/show_bug.cgi?id=55082 7623 7624 * wtf/Platform.h: 7625 7626 2011-02-24 Martin Robinson <mrobinson (a] igalia.com> 7627 7628 Reviewed by Xan Lopez. 7629 7630 [GTK] Remove the GFile GOwnPtr specialization 7631 https://bugs.webkit.org/show_bug.cgi?id=55154 7632 7633 Remove the GFile specialization of GOwnPtr. It's sufficient to use GRefPtr 7634 to track GFiles since they are just regular reference-counted GObjects. 7635 7636 * wtf/gobject/GOwnPtr.cpp: Remove GFile specialization. 7637 * wtf/gobject/GOwnPtr.h: Ditto. 7638 7639 2011-02-24 Patrick Gansterer <paroga (a] webkit.org> 7640 7641 Reviewed by Eric Seidel. 7642 7643 Rename PLATFORM(SKIA) to USE(SKIA) 7644 https://bugs.webkit.org/show_bug.cgi?id=55090 7645 7646 * wtf/Platform.h: 7647 7648 2011-02-24 Patrick Gansterer <paroga (a] webkit.org> 7649 7650 Reviewed by Alexey Proskuryakov. 7651 7652 Remove pthreads dependecy for JSLock 7653 https://bugs.webkit.org/show_bug.cgi?id=54832 7654 7655 JSLock is only needed to support an obsolete execution model where JavaScriptCore 7656 automatically protected against concurrent access from multiple threads. 7657 So it's safe to disable it on non-mac platforms where we don't have native pthreads. 7658 7659 * runtime/JSLock.cpp: 7660 7661 2011-02-24 Chao-ying Fu <fu (a] mips.com> 7662 7663 Reviewed by Eric Seidel. 7664 7665 Fix MIPS build with new patchOffsetPut/GetByIdPropertyMapOffset1/2 values 7666 https://bugs.webkit.org/show_bug.cgi?id=54997 7667 7668 * jit/JIT.h: 7669 * jit/JITStubs.cpp: 7670 (JSC::JITThunks::JITThunks): 7671 7672 2011-02-24 Andras Becsi <abecsi (a] webkit.org> 7673 7674 Reviewed by Laszlo Gombos. 7675 7676 [Qt] MinGW build fails to link 7677 https://bugs.webkit.org/show_bug.cgi?id=55050 7678 7679 Prepend the libraries of subcomponents instead of appending them 7680 to fix the library order according to the dependency of the libraries 7681 7682 * JavaScriptCore.pri: rename addJavaScriptCore to prependJavaScriptCore 7683 * jsc.pro: ditto 7684 7685 2011-02-24 Eric Seidel <eric (a] webkit.org> 7686 7687 Reviewed by Adam Barth. 7688 7689 Deque<T> should support inline capacity 7690 https://bugs.webkit.org/show_bug.cgi?id=55032 7691 7692 The title says it all. There are currently no places 7693 which use this code yet, however it's been tested in conjunction 7694 with code for bug 55005. 7695 7696 This also adds an ASSERT that capacity is never 1. If you were able 7697 to set the capacity equal to 1, the Deque would just get confused 7698 and happily append your item but still think it had size 0. 7699 7700 * wtf/Deque.h: 7701 (WTF::DequeIterator::DequeIterator): 7702 (WTF::DequeConstIterator::DequeConstIterator): 7703 (WTF::DequeReverseIterator::DequeReverseIterator): 7704 (WTF::DequeConstReverseIterator::DequeConstReverseIterator): 7705 (WTF::::checkValidity): 7706 (WTF::::checkIndexValidity): 7707 (WTF::::invalidateIterators): 7708 (WTF::::Deque): 7709 (WTF::deleteAllValues): 7710 (WTF::::operator): 7711 (WTF::::destroyAll): 7712 (WTF::::~Deque): 7713 (WTF::::swap): 7714 (WTF::::clear): 7715 (WTF::::findIf): 7716 (WTF::::expandCapacityIfNeeded): 7717 (WTF::::expandCapacity): 7718 (WTF::::takeFirst): 7719 (WTF::::append): 7720 (WTF::::prepend): 7721 (WTF::::removeFirst): 7722 (WTF::::remove): 7723 (WTF::::addToIteratorsList): 7724 (WTF::::removeFromIteratorsList): 7725 (WTF::::DequeIteratorBase): 7726 (WTF::::~DequeIteratorBase): 7727 (WTF::::isEqual): 7728 (WTF::::increment): 7729 (WTF::::decrement): 7730 (WTF::::after): 7731 (WTF::::before): 7732 * wtf/Vector.h: 7733 7734 2011-02-22 Adam Barth <abarth (a] webkit.org> 7735 7736 Reviewed by Ojan Vafai. 7737 7738 Add missing files to JavaScriptCore.gypi 7739 https://bugs.webkit.org/show_bug.cgi?id=55020 7740 7741 gypi files are supposed to list every file under the sun. This patch 7742 adds some missing files and sorts the rest. 7743 7744 * JavaScriptCore.gypi: 7745 7746 2011-02-23 Geoffrey Garen <ggaren (a] apple.com> 7747 7748 Reviewed by Darin Adler. 7749 7750 Refactored MarkedSpace to operate in terms of size classes 7751 https://bugs.webkit.org/show_bug.cgi?id=55106 7752 7753 SunSpider reports no change. 7754 7755 * runtime/JSCell.h: 7756 (JSC::JSCell::MarkedSpace::sizeClassFor): 7757 (JSC::JSCell::MarkedSpace::allocate): Delegate allocation based on size 7758 class. Since these functions are inline, the compiler can constant fold 7759 them. 7760 7761 * runtime/MarkedBlock.h: 7762 (JSC::MarkedBlock::cellSize): 7763 (JSC::MarkedBlock::size): Factored out a cellSize() helper. 7764 7765 * runtime/MarkedSpace.cpp: 7766 (JSC::MarkedSpace::allocateBlock): 7767 (JSC::MarkedSpace::allocateFromSizeClass): 7768 (JSC::MarkedSpace::shrink): 7769 (JSC::MarkedSpace::reset): 7770 * runtime/MarkedSpace.h: 7771 (JSC::MarkedSpace::SizeClass::SizeClass): 7772 (JSC::MarkedSpace::SizeClass::reset): Changed to operate in terms of 7773 abstract SizeClass objects, which are independent linked lists of blocks 7774 of a certain size class, instead of a single m_heap object. 7775 7776 2011-02-23 Adam Barth <abarth (a] webkit.org> 7777 7778 Reviewed by James Robinson. 7779 7780 [Chromium] Use WebKitClient for OSRandomSource instead of trying to talk to the file system in the sandbox 7781 https://bugs.webkit.org/show_bug.cgi?id=55093 7782 7783 Exclude OSRandomSource.cpp from the Chromium build. This function is 7784 implemented in WebKit/chromium/src instead. 7785 7786 * JavaScriptCore.gyp/JavaScriptCore.gyp: 7787 7788 2011-02-23 Oliver Hunt <oliver (a] apple.com> 7789 7790 Roll out r64156 as it introduces incorrect behaviour. 7791 7792 * runtime/JSByteArray.h: 7793 (JSC::JSByteArray::setIndex): 7794 7795 2011-02-23 Geoffrey Garen <ggaren (a] apple.com> 7796 7797 Reviewed by Oliver Hunt. 7798 7799 Moved the "nextAtom" allocation pointer into MarkedBlock for better encapsulation 7800 https://bugs.webkit.org/show_bug.cgi?id=55079 7801 7802 SunSpider reports no change. 7803 7804 * runtime/Heap.cpp: 7805 (JSC::Heap::reset): Moved Zombie sweeping here, up from MarkedSpace, 7806 since we want Heap to logically control MarkedSpace. MarkedSpace should 7807 never choose to sweep itself. 7808 7809 * runtime/JSCell.h: 7810 (JSC::JSCell::MarkedBlock::allocate): Updated for nextAtom becoming a 7811 member of MarkedBlock. No need to reset nextAtom to firstAtom() when 7812 we reach the end of a block, since there's now an explicit reset pass 7813 during GC. 7814 7815 * runtime/MarkedBlock.cpp: 7816 (JSC::MarkedBlock::MarkedBlock): 7817 * runtime/MarkedBlock.h: 7818 (JSC::MarkedBlock::reset): Added the nextAtom data member, and reordered 7819 some data members to improve cache locality. 7820 7821 * runtime/MarkedSpace.cpp: 7822 (JSC::MarkedSpace::MarkedSpace): 7823 (JSC::MarkedSpace::allocate): 7824 (JSC::MarkedSpace::reset): 7825 * runtime/MarkedSpace.h: 7826 (JSC::CollectorHeap::CollectorHeap): Removed nextAtom, and added an 7827 explicit reset pass. 7828 7829 2011-02-23 James Robinson <jamesr (a] chromium.org> 7830 7831 Unreviewed, rolling out r79428. 7832 http://trac.webkit.org/changeset/79428 7833 https://bugs.webkit.org/show_bug.cgi?id=54714 7834 7835 Does not work in the Chromium sandbox 7836 7837 * JavaScriptCore.exp: 7838 7839 2011-02-23 Adam Roben <aroben (a] apple.com> 7840 7841 Fix an off-by-one error in JSC::appendSourceToError 7842 7843 Looks like this bug has been around since the code was first added in r35245. 7844 7845 Fixes <http://webkit.org/b/55052> <rdar://problem/9043512> Crash in JSC::appendSourceToError 7846 when running fast/dom/objc-big-method-name.html on Windows with full page heap enabled 7847 7848 Reviewed by Darin Adler. 7849 7850 * interpreter/Interpreter.cpp: 7851 (JSC::appendSourceToError): When trimming whitespace off the end of the string, examine the 7852 character at stop-1 rather than at stop. At this point in the code, stop represents the 7853 index just past the end of the characters we care about, and can even be just past the end 7854 of the entire data buffer. 7855 7856 2011-02-23 Geoffrey Garen <ggaren (a] apple.com> 7857 7858 Reviewed by Darin Adler. 7859 7860 Rolled back in r79367 with SnowLeopard Release bot crash fixed. 7861 https://bugs.webkit.org/show_bug.cgi?id=54999 7862 7863 The crash was caused by failure to update the "nextBlock" pointer when 7864 removing a block from the list while shrinking. The fix is to update the 7865 "nextBlock" pointer. 7866 7867 This crash was very rare because it only happened in cases where the very 7868 first block in the heap contained no marked cells. 7869 7870 2011-02-23 Dan Bernstein <mitz (a] apple.com> 7871 7872 Reviewed by Gavin Barraclough. 7873 7874 Include frame numbers in backtraces. 7875 https://bugs.webkit.org/show_bug.cgi?id=55060 7876 7877 * wtf/Assertions.cpp: 7878 7879 2011-02-23 Xan Lopez <xlopez (a] igalia.com> 7880 7881 Reviewed by Gavin Barraclough. 7882 7883 latest jsc for armv7 crashes in sunspider tests 7884 https://bugs.webkit.org/show_bug.cgi?id=54667 7885 7886 Update JIT offset values in ARMv7 after r78732. Fixes crashes in 7887 SunSpider and JavaScript tests. 7888 7889 * jit/JIT.h: update values. 7890 7891 2011-02-23 Sheriff Bot <webkit.review.bot (a] gmail.com> 7892 7893 Unreviewed, rolling out r79418. 7894 http://trac.webkit.org/changeset/79418 7895 https://bugs.webkit.org/show_bug.cgi?id=55043 7896 7897 "breaks shlib linux build" (Requested by morrita on #webkit). 7898 7899 * JavaScriptCore.gyp/JavaScriptCore.gyp: 7900 * JavaScriptCore.gypi: 7901 7902 2011-02-23 Patrick Gansterer <paroga (a] webkit.org> 7903 7904 Reviewed by Alexey Proskuryakov. 7905 7906 Use DEFINE_STATIC_LOCAL for ignoreSetMutex in Structure.cpp 7907 https://bugs.webkit.org/show_bug.cgi?id=54831 7908 7909 * runtime/InitializeThreading.cpp: 7910 (JSC::initializeThreadingOnce): 7911 * runtime/Structure.cpp: 7912 (JSC::ignoreSetMutex): 7913 (JSC::Structure::Structure): 7914 (JSC::Structure::~Structure): 7915 (JSC::Structure::initializeThreading): 7916 * runtime/Structure.h: 7917 7918 2011-02-23 Patrick Gansterer <paroga (a] webkit.org> 7919 7920 Reviewed by Darin Adler. 7921 7922 Rename PLATFORM(CF) to USE(CF) 7923 https://bugs.webkit.org/show_bug.cgi?id=53540 7924 7925 * runtime/DatePrototype.cpp: 7926 * runtime/GCActivityCallbackCF.cpp: 7927 * runtime/JSGlobalData.cpp: 7928 (JSC::JSGlobalData::JSGlobalData): 7929 * wtf/CurrentTime.cpp: 7930 * wtf/Platform.h: 7931 * wtf/text/AtomicString.h: 7932 * wtf/text/StringImpl.h: 7933 (WTF::StringImpl::computeHash): 7934 * wtf/text/WTFString.h: 7935 * wtf/unicode/icu/CollatorICU.cpp: 7936 (WTF::Collator::userDefault): 7937 7938 2011-02-23 Fumitoshi Ukai <ukai (a] chromium.org> 7939 7940 Unreviewed build fix for Windows. 7941 7942 WebSocket uses insecure random numbers 7943 https://bugs.webkit.org/show_bug.cgi?id=54714 7944 7945 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export WTF::cryptographicallyRandomNumber() 7946 7947 2011-02-23 Fumitoshi Ukai <ukai (a] chromium.org> 7948 7949 Reviewed by Adam Barth. 7950 7951 WebSocket uses insecure random numbers 7952 https://bugs.webkit.org/show_bug.cgi?id=54714 7953 7954 * JavaScriptCore.exp: Export WTF::cryptographicallyRandomNumber() 7955 7956 2011-02-22 Adam Barth <abarth (a] webkit.org> 7957 7958 Reviewed by Ojan Vafai. 7959 7960 Add missing files to JavaScriptCore.gypi 7961 https://bugs.webkit.org/show_bug.cgi?id=55020 7962 7963 gypi files are supposed to list every file under the sun. This patch 7964 adds some missing files and sorts the rest. 7965 7966 * JavaScriptCore.gypi: 7967 7968 2011-02-22 Sheriff Bot <webkit.review.bot (a] gmail.com> 7969 7970 Unreviewed, rolling out r79367. 7971 http://trac.webkit.org/changeset/79367 7972 https://bugs.webkit.org/show_bug.cgi?id=55012 7973 7974 all layout tests are crashing on Snow Leopard (Requested by 7975 rniwa on #webkit). 7976 7977 * GNUmakefile.am: 7978 * JavaScriptCore.gypi: 7979 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 7980 * JavaScriptCore.xcodeproj/project.pbxproj: 7981 * runtime/MarkedBlock.cpp: 7982 (JSC::MarkedBlock::MarkedBlock): 7983 * runtime/MarkedBlock.h: 7984 * runtime/MarkedSpace.cpp: 7985 (JSC::MarkedSpace::destroy): 7986 (JSC::MarkedSpace::allocateBlock): 7987 (JSC::MarkedSpace::freeBlock): 7988 (JSC::MarkedSpace::allocate): 7989 (JSC::MarkedSpace::shrink): 7990 (JSC::MarkedSpace::reset): 7991 * runtime/MarkedSpace.h: 7992 (JSC::CollectorHeap::collectorBlock): 7993 * wtf/CMakeLists.txt: 7994 * wtf/DoublyLinkedList.h: Removed. 7995 7996 2011-02-22 Geoffrey Garen <ggaren (a] apple.com> 7997 7998 Reviewed by Oliver Hunt. 7999 8000 Manage MarkedBlocks in a linked list instead of a vector, so arbitrary removal is O(1) 8001 https://bugs.webkit.org/show_bug.cgi?id=54999 8002 8003 SunSpider reports no change. 8004 8005 * GNUmakefile.am: 8006 * JavaScriptCore.gypi: 8007 * JavaScriptCore.vcproj/WTF/WTF.vcproj: 8008 * JavaScriptCore.xcodeproj/project.pbxproj: So many build systems, so little time. 8009 * wtf/CMakeLists.txt: 8010 8011 * runtime/MarkedBlock.cpp: 8012 (JSC::MarkedBlock::MarkedBlock): 8013 * runtime/MarkedBlock.h: 8014 (JSC::MarkedBlock::setPrev): 8015 (JSC::MarkedBlock::setNext): 8016 (JSC::MarkedBlock::prev): 8017 (JSC::MarkedBlock::next): Added linked list data members and accessors. 8018 8019 * runtime/MarkedSpace.cpp: 8020 (JSC::MarkedSpace::destroy): 8021 (JSC::MarkedSpace::allocateBlock): Stop using vector, since it doesn't exist anymore. 8022 8023 (JSC::MarkedSpace::freeBlocks): New helper function for updating relevant 8024 data structures when freeing blocks. 8025 8026 (JSC::MarkedSpace::allocate): Updated for nextBlock being a pointer and 8027 not a vector index. 8028 8029 (JSC::MarkedSpace::shrink): Construct a temporary list of empties and 8030 then free them, to avoid modifying our hash table while iterating it. 8031 This wasn't a concern before because we were using indirect array 8032 indexing, not direct pointer indexing. 8033 8034 (JSC::MarkedSpace::reset): Updated for nextBlock being a pointer and 8035 not a vector index. 8036 8037 * runtime/MarkedSpace.h: 8038 (JSC::CollectorHeap::CollectorHeap): Changed data type from vector to linked list. 8039 8040 * wtf/DoublyLinkedList.h: Added. New linked list class. 8041 (WTF::::DoublyLinkedList): 8042 (WTF::::isEmpty): 8043 (WTF::::head): 8044 (WTF::::append): 8045 (WTF::::remove): 8046 8047 2011-02-22 Gavin Barraclough <barraclough (a] apple.com> 8048 8049 Windows build fix. 8050 8051 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 8052 8053 2011-02-22 Gavin Barraclough <barraclough (a] apple.com> 8054 8055 Reviewed by Sam Weinig. 8056 8057 Bug 54988 - Re-create StructureTransitionTable class, encapsulate transition table 8058 8059 The Structure class keeps a table of transitions to derived Structure types. Since 8060 this table commonly contains a single entry we employ an optimization where instead 8061 of holding a map, we may hold a pointer directly to a single instance of the mapped 8062 type. We use an additional bit of data to flag whether the pointer is currently 8063 pointing to a table of transitions, or a singleton transition. Previously we had 8064 commonly used a pattern of storing data in the low bits of pointers, but had moved 8065 away from this since it causes false leaks to be reported by the leaks tool. However 8066 in this case, the entries in the map are weak links - this pointer will never be 8067 responsible for keeping an object alive. As such we can use this approach provided 8068 that the bit is set when a table is not in use (otherwise the table would appear to 8069 be leaked). 8070 8071 Additionally, the transition table currently allows two entries to exist for a given 8072 key - one specialized to a particular value, and one not specialized. This is 8073 unnecessary, wasteful, and a little inconsistent. (If you create an entry for a 8074 specialized value, then a non-specialized entry, both will exist. If you create an 8075 entry for a non-specialized value, then try to create a specialized entry, only a 8076 non-specialized form will be allowed.) 8077 8078 This shows a small progression on v8. 8079 8080 * JavaScriptCore.exp: 8081 * runtime/JSObject.h: 8082 (JSC::JSObject::putDirectInternal): 8083 * runtime/Structure.cpp: 8084 (JSC::StructureTransitionTable::contains): 8085 (JSC::StructureTransitionTable::get): 8086 (JSC::StructureTransitionTable::remove): 8087 (JSC::StructureTransitionTable::add): 8088 (JSC::Structure::dumpStatistics): 8089 (JSC::Structure::Structure): 8090 (JSC::Structure::~Structure): 8091 (JSC::Structure::addPropertyTransitionToExistingStructure): 8092 (JSC::Structure::addPropertyTransition): 8093 * runtime/Structure.h: 8094 (JSC::Structure::get): 8095 * runtime/StructureTransitionTable.h: 8096 (JSC::StructureTransitionTable::Hash::hash): 8097 (JSC::StructureTransitionTable::Hash::equal): 8098 (JSC::StructureTransitionTable::HashTraits::emptyValue): 8099 (JSC::StructureTransitionTable::HashTraits::constructDeletedValue): 8100 (JSC::StructureTransitionTable::HashTraits::isDeletedValue): 8101 (JSC::StructureTransitionTable::StructureTransitionTable): 8102 (JSC::StructureTransitionTable::~StructureTransitionTable): 8103 (JSC::StructureTransitionTable::isUsingSingleSlot): 8104 (JSC::StructureTransitionTable::map): 8105 (JSC::StructureTransitionTable::setMap): 8106 (JSC::StructureTransitionTable::singleTransition): 8107 (JSC::StructureTransitionTable::setSingleTransition): 8108 8109 2011-02-22 Andras Becsi <abecsi (a] webkit.org> 8110 8111 Reviewed by Laszlo Gombos. 8112 8113 [Qt] Redesign the build system 8114 https://bugs.webkit.org/show_bug.cgi?id=51339 8115 8116 Part 2. 8117 8118 Build WebCore as a static library, compile the WebKit API and WebKit2 API 8119 in a final step and link to WebKit2, WebCore and JSC libraries to fix 8120 linking issues resulting from stripped away symbols. 8121 8122 * JavaScriptCore.pri: Remove the workaround. 8123 8124 2011-02-21 Adam Roben <aroben (a] apple.com> 8125 8126 Fix linker warning on Windows 8127 8128 r79135 tried to export JSObject::s_info by adding it to JavaScriptCore.def. This is the 8129 obvious way (since it's how we export functions), but unfortunately it doesn't work correct. 8130 r79222 made us export it the right way (using the JS_EXPORTDATA macro), but forgot to remove 8131 it from JavaScriptCore.def. This caused us to get linker warnings about exporting the symbol 8132 multiple times. 8133 8134 Rubber-stamped by Anders Carlsson. 8135 8136 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Removed JSObject::s_info. 8137 8138 2011-02-21 Brian Weinstein <bweinstein (a] apple.com> 8139 8140 Reviewed by Adam Roben. 8141 8142 WebResourceCacheManager should be responsible for managing the CFURLCache as well 8143 as the WebCore memory cache. 8144 https://bugs.webkit.org/show_bug.cgi?id=54886 8145 Part of <rdar://problem/8971738> 8146 8147 Add a new use flag for using the CFURLCache. 8148 8149 * wtf/Platform.h: 8150 8151 2011-02-21 Xan Lopez <xlopez (a] igalia.com> 8152 8153 Reviewed by Gavin Barraclough. 8154 8155 Use ASSERT_JIT_OFFSET in JITPropertyAccess32_64.cpp 8156 https://bugs.webkit.org/show_bug.cgi?id=54901 8157 8158 * jit/JIT.h: swap actual and expected values in message, they were 8159 reversed. 8160 * jit/JITCall32_64.cpp: 8161 (JSC::JIT::compileOpCall): use ASSERT_JIT_OFFSET instead of 8162 a simple ASSERT. 8163 * jit/JITPropertyAccess32_64.cpp: 8164 (JSC::JIT::emit_op_method_check): ditto. 8165 (JSC::JIT::compileGetByIdHotPath): ditto. 8166 (JSC::JIT::compileGetByIdSlowCase): ditto. 8167 (JSC::JIT::emit_op_put_by_id): ditto. 8168 8169 2011-02-21 Gavin Barraclough <barraclough (a] apple.com> 8170 8171 Ruber stamped by Sam Weinig 8172 8173 Bug 54899 - Math.LOG10E should be 0.4342944819032518 8174 This value is quoted in section 15.8.1.5 of the spec. 8175 8176 * runtime/MathObject.cpp: 8177 (JSC::MathObject::MathObject): 8178 8179 2011-02-21 Gavin Barraclough <barraclough (a] apple.com> 8180 8181 Reviewed by Sam Weinig. 8182 8183 Bug 54894 - Make inheritance structure described by ClassInfo match C++ class hierarchy. 8184 8185 The ClassInfo objects describe an inheritance hierarchy, with each ClassInfo instance 8186 containing a pointer to its parent class. These links should reflect the inheritance 8187 hierarchy of C++ classes below JSObject. For the large part it does, but in some cases 8188 entries in the C++ hierarchy are skipped over. This presently likely doesn't matter, 8189 since intervening C++ classes may not have ClassInfo - but would be a potential bug 8190 were ClassInfo were to be added. 8191 8192 * API/JSCallbackConstructor.cpp: 8193 * API/JSCallbackFunction.cpp: 8194 * API/JSCallbackObjectFunctions.h: 8195 * runtime/Arguments.h: 8196 * runtime/ArrayPrototype.cpp: 8197 * runtime/BooleanObject.cpp: 8198 * runtime/DateInstance.cpp: 8199 * runtime/DatePrototype.cpp: 8200 * runtime/ErrorInstance.cpp: 8201 * runtime/InternalFunction.cpp: 8202 * runtime/JSActivation.cpp: 8203 * runtime/JSArray.cpp: 8204 * runtime/JSFunction.cpp: 8205 * runtime/JSONObject.cpp: 8206 * runtime/JSObject.h: 8207 * runtime/JSZombie.h: 8208 * runtime/MathObject.cpp: 8209 * runtime/NativeErrorConstructor.cpp: 8210 * runtime/NumberConstructor.cpp: 8211 * runtime/NumberObject.cpp: 8212 * runtime/RegExpConstructor.cpp: 8213 * runtime/RegExpObject.cpp: 8214 * runtime/StringObject.cpp: 8215 * runtime/StringPrototype.cpp: 8216 8217 2011-02-21 Adam Roben <aroben (a] apple.com> 8218 8219 Export JSObject::s_info from JavaScriptCore.dll 8220 8221 This matches what we do for all other ClassInfo objects that WebCore needs access to. 8222 8223 Fixes <http://webkit.org/b/54881> REGRESSION (r79132): Lots of tests crashing in 8224 JSCell::inherits on Windows 8225 8226 Reviewed by Sam Weinig. 8227 8228 * runtime/JSObject.h: Added JS_EXPORTDATA to s_info. 8229 8230 2011-02-21 Kristian Amlie <kristian.amlie (a] nokia.com> 8231 8232 Reviewed by Andreas Kling. 8233 8234 Switched to compiler based detection, where the error actually is. 8235 8236 It is not the platform that needs the workaround, it is the compiler. 8237 8238 QtWebKit fails to compile on Windows XP with msvc-2008 8239 https://bugs.webkit.org/show_bug.cgi?id=54746 8240 8241 * bytecode/CodeBlock.h: 8242 * runtime/RegExpObject.h: 8243 8244 2011-02-20 Gavin Barraclough <barraclough (a] apple.com> 8245 8246 Reviewed by Oliver Hunt. 8247 8248 https://bugs.webkit.org/show_bug.cgi?id=54839 8249 Remove PrototypeFunction, NativeFunctionWrapper, and GlobalEvalFunction. 8250 8251 Historically, Native functions used to be represented by PrototypeFunctions, however 8252 since introducing call optimizations to the JIT this has used JSFunctions for host 8253 calls too. At the point this change was made, the interpreter continued to use 8254 PrototypeFunctions, however since fallback from the JIT to interpreter was introduced 8255 the interpreter has had to be able to run using host functions represented using 8256 JSFunctions - leading to an unnecessary and redundant divergence in behaviour between 8257 interpreter only builds, and situations where the JIT has fallen back to interpreting. 8258 8259 NativeFunctionWrapper only existed to select between PrototypeFunction and JSFunction 8260 for wrappers for host functions, and as such can also be removed. 8261 8262 GlobalEvalFunction is a redundant wrapper that happens to be derived from 8263 PrototypeFunction. It existed to hold a reference to the global object - but since all 8264 functions how derive from JSObjectWithGlobalObject, this no longer requires an 8265 additional class to provide this functionality. 8266 8267 * JavaScriptCore.JSVALUE32_64only.exp: 8268 * JavaScriptCore.JSVALUE64only.exp: 8269 * JavaScriptCore.xcodeproj/project.pbxproj: 8270 Removed symbols / references to files. 8271 8272 * runtime/GlobalEvalFunction.cpp: Removed. 8273 * runtime/GlobalEvalFunction.h: Removed. 8274 * runtime/NativeFunctionWrapper.h: Removed. 8275 * runtime/PrototypeFunction.cpp: Removed. 8276 * runtime/PrototypeFunction.h: Removed. 8277 Removed. 8278 8279 * runtime/Executable.cpp: 8280 (JSC::NativeExecutable::~NativeExecutable): 8281 * runtime/Executable.h: 8282 (JSC::NativeExecutable::create): 8283 (JSC::NativeExecutable::NativeExecutable): 8284 (JSC::JSFunction::nativeFunction): 8285 * runtime/JSFunction.cpp: 8286 (JSC::callHostFunctionAsConstructor): 8287 (JSC::JSFunction::JSFunction): 8288 (JSC::JSFunction::getCallData): 8289 * runtime/JSFunction.h: 8290 * runtime/JSGlobalData.cpp: 8291 (JSC::JSGlobalData::getHostFunction): 8292 * runtime/JSGlobalData.h: 8293 (JSC::JSGlobalData::getCTIStub): 8294 Added interpreter-friendly constructors for NativeExecutables. 8295 8296 * bytecompiler/BytecodeGenerator.cpp: 8297 * interpreter/Interpreter.cpp: 8298 * jit/JITStubs.cpp: 8299 * jsc.cpp: 8300 * runtime/ArrayConstructor.cpp: 8301 * runtime/BooleanPrototype.cpp: 8302 * runtime/BooleanPrototype.h: 8303 * runtime/CallData.h: 8304 * runtime/DateConstructor.cpp: 8305 * runtime/DateConstructor.h: 8306 * runtime/ErrorPrototype.cpp: 8307 * runtime/ErrorPrototype.h: 8308 * runtime/FunctionPrototype.cpp: 8309 * runtime/FunctionPrototype.h: 8310 * runtime/JSGlobalObject.cpp: 8311 * runtime/JSGlobalObject.h: 8312 * runtime/JSGlobalObjectFunctions.cpp: 8313 * runtime/Lookup.cpp: 8314 * runtime/NumberPrototype.cpp: 8315 * runtime/NumberPrototype.h: 8316 * runtime/ObjectConstructor.cpp: 8317 * runtime/ObjectConstructor.h: 8318 * runtime/ObjectPrototype.cpp: 8319 * runtime/ObjectPrototype.h: 8320 * runtime/RegExpPrototype.cpp: 8321 * runtime/RegExpPrototype.h: 8322 * runtime/SmallStrings.h: 8323 * runtime/StringConstructor.cpp: 8324 * runtime/StringConstructor.h: 8325 Removed use of redundant classes. 8326 8327 2011-02-19 Laszlo Gombos <laszlo.1.gombos (a] nokia.com> 8328 8329 Unreviewed build fix for Symbian. 8330 8331 [Symbian] Revert the removal of linking 8332 against hal after r79126. 8333 8334 Dependency on the hal library can not be removed 8335 as it is still used (e.g. in MarkStackSymbian.cpp). 8336 8337 * JavaScriptCore.pri: 8338 8339 2011-02-19 Gavin Barraclough <barraclough (a] apple.com> 8340 8341 Interpreter build fix. 8342 8343 * runtime/ArrayConstructor.cpp: 8344 * runtime/BooleanPrototype.cpp: 8345 * runtime/DateConstructor.cpp: 8346 * runtime/ErrorPrototype.cpp: 8347 * runtime/FunctionPrototype.cpp: 8348 * runtime/Lookup.cpp: 8349 * runtime/NumberPrototype.cpp: 8350 * runtime/ObjectConstructor.cpp: 8351 * runtime/ObjectPrototype.cpp: 8352 * runtime/RegExpPrototype.cpp: 8353 * runtime/StringConstructor.cpp: 8354 8355 2011-02-19 Gavin Barraclough <barraclough (a] apple.com> 8356 8357 Build fix!! 8358 8359 * JavaScriptCore.exp: 8360 8361 2011-02-19 Gavin Barraclough <barraclough (a] apple.com> 8362 8363 Windows build fix!! 8364 8365 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 8366 8367 2011-02-19 Gavin Barraclough <barraclough (a] apple.com> 8368 8369 Windows build fix! 8370 8371 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 8372 8373 2011-02-19 Gavin Barraclough <barraclough (a] apple.com> 8374 8375 Build fix! 8376 8377 * JavaScriptCore.exp: 8378 8379 2011-02-18 Gavin Barraclough <barraclough (a] apple.com> 8380 8381 Reviewed by Sam Weinig. 8382 8383 Bug 54786 - Devirtualize JSCell::classInfo() 8384 8385 Instead of making a virtual function call, add a pointer to the ClassInfo 8386 onto Structure. 8387 8388 This removes a virtual function call, and paves the way towards removing all 8389 the createStructure methods, and StructureFlags/AnonymousSlotCount properties 8390 (these should be able to move onto ClassInfo). 8391 8392 Calls to Structure::create must now pass a pointer to the ClassInfo for the 8393 structure. All objects now have a ClassInfo pointer, non-object cell types 8394 still do not. 8395 8396 Changes are most mechanical, involving three steps: 8397 * Remove virtual classInfo() methods. 8398 * Add &s_info parameter to calls to Structure::create. 8399 * Rename ClassInfo static members on classes from 'info' to 's_info', 8400 for consistency. 8401 8402 * API/JSCallbackConstructor.cpp: 8403 * API/JSCallbackConstructor.h: 8404 * API/JSCallbackFunction.cpp: 8405 * API/JSCallbackFunction.h: 8406 * API/JSCallbackObject.cpp: 8407 * API/JSCallbackObject.h: 8408 * API/JSCallbackObjectFunctions.h: 8409 * API/JSObjectRef.cpp: 8410 * API/JSValueRef.cpp: 8411 * API/JSWeakObjectMapRefPrivate.cpp: 8412 * JavaScriptCore.exp: 8413 * debugger/Debugger.cpp: 8414 * debugger/DebuggerActivation.h: 8415 * debugger/DebuggerCallFrame.cpp: 8416 * interpreter/Interpreter.cpp: 8417 * jit/JITCall32_64.cpp: 8418 * jit/JITOpcodes.cpp: 8419 * jit/JITStubs.cpp: 8420 * profiler/Profiler.cpp: 8421 * runtime/Arguments.cpp: 8422 * runtime/Arguments.h: 8423 * runtime/ArrayConstructor.cpp: 8424 * runtime/ArrayPrototype.cpp: 8425 * runtime/ArrayPrototype.h: 8426 * runtime/BooleanObject.cpp: 8427 * runtime/BooleanObject.h: 8428 * runtime/BooleanPrototype.cpp: 8429 * runtime/DateConstructor.cpp: 8430 * runtime/DateInstance.cpp: 8431 * runtime/DateInstance.h: 8432 * runtime/DatePrototype.cpp: 8433 * runtime/DatePrototype.h: 8434 * runtime/ErrorInstance.cpp: 8435 * runtime/ErrorInstance.h: 8436 * runtime/ErrorPrototype.cpp: 8437 * runtime/FunctionPrototype.cpp: 8438 * runtime/FunctionPrototype.h: 8439 * runtime/GetterSetter.h: 8440 * runtime/GlobalEvalFunction.h: 8441 * runtime/InternalFunction.cpp: 8442 * runtime/InternalFunction.h: 8443 * runtime/JSAPIValueWrapper.h: 8444 * runtime/JSActivation.cpp: 8445 * runtime/JSActivation.h: 8446 * runtime/JSArray.cpp: 8447 * runtime/JSArray.h: 8448 * runtime/JSByteArray.cpp: 8449 * runtime/JSByteArray.h: 8450 * runtime/JSCell.cpp: 8451 * runtime/JSCell.h: 8452 * runtime/JSFunction.cpp: 8453 * runtime/JSFunction.h: 8454 * runtime/JSGlobalData.cpp: 8455 * runtime/JSGlobalObject.cpp: 8456 * runtime/JSGlobalObject.h: 8457 * runtime/JSNotAnObject.h: 8458 * runtime/JSONObject.cpp: 8459 * runtime/JSONObject.h: 8460 * runtime/JSObject.cpp: 8461 * runtime/JSObject.h: 8462 * runtime/JSObjectWithGlobalObject.h: 8463 * runtime/JSPropertyNameIterator.h: 8464 * runtime/JSStaticScopeObject.h: 8465 * runtime/JSString.h: 8466 * runtime/JSVariableObject.h: 8467 * runtime/JSWrapperObject.h: 8468 * runtime/JSZombie.cpp: 8469 * runtime/JSZombie.h: 8470 * runtime/Lookup.cpp: 8471 * runtime/MathObject.cpp: 8472 * runtime/MathObject.h: 8473 * runtime/NativeErrorConstructor.cpp: 8474 * runtime/NativeErrorConstructor.h: 8475 * runtime/NumberConstructor.cpp: 8476 * runtime/NumberConstructor.h: 8477 * runtime/NumberObject.cpp: 8478 * runtime/NumberObject.h: 8479 * runtime/NumberPrototype.cpp: 8480 * runtime/ObjectConstructor.cpp: 8481 * runtime/ObjectPrototype.cpp: 8482 * runtime/RegExpConstructor.cpp: 8483 * runtime/RegExpConstructor.h: 8484 * runtime/RegExpObject.cpp: 8485 * runtime/RegExpObject.h: 8486 * runtime/RegExpPrototype.cpp: 8487 * runtime/ScopeChain.cpp: 8488 * runtime/StringConstructor.cpp: 8489 * runtime/StringObject.cpp: 8490 * runtime/StringObject.h: 8491 * runtime/StringObjectThatMasqueradesAsUndefined.h: 8492 * runtime/StringPrototype.cpp: 8493 * runtime/StringPrototype.h: 8494 * runtime/Structure.cpp: 8495 * runtime/Structure.h: 8496 8497 2011-02-19 David Kilzer <ddkilzer (a] apple.com> 8498 8499 <http://webkit.org/b/54808> Change jsc target to build directly into JavaScriptCore.framework/Resources/jsc 8500 8501 Reviewed by Dan Bernstein. 8502 8503 * Configurations/Base.xcconfig: Added 8504 JAVASCRIPTCORE_FRAMEWORKS_DIR variable. 8505 * Configurations/JavaScriptCore.xcconfig: Used 8506 JAVASCRIPTCORE_FRAMEWORKS_DIR to define INSTALL_PATH. 8507 * JavaScriptCore.xcodeproj/project.pbxproj: Set the INSTALL_PATH 8508 for Production configuration of jsc target. 8509 (Copy Into Framework): Removed old build phase. 8510 (Fix Framework Reference): Renamed build phase to "Copy Into 8511 Framework". Added "set -x" call to make the script print the 8512 commands it is running. Added code to exit early for Production 8513 builds since this was never intended for them. Added code to 8514 copy jsc into the JavaScriptCore.framework/Resources directory. 8515 8516 2011-02-19 Siddharth Mathur <siddharth.mathur (a] nokia.com> 8517 8518 Reviewed by Laszlo Gombos. 8519 8520 [Symbian] OSAllocator implementation for Symbian OS. 8521 Manages both data and code region requests. V8 and Sunspider tested 8522 OK with interpreter. Not tested with JSC JIT yet as it has unrelated 8523 failures. Also no thread safety yet. 8524 https://bugs.webkit.org/show_bug.cgi?id=51128 8525 8526 * JavaScriptCore.pri: removed HAL linkage 8527 * wtf/Bitmap.h: 8528 (WTF::::findRunOfZeros): find run of zeros in a bitmap. quick n dirty 8529 * wtf/OSAllocator.h: 8530 (WTF::OSAllocator::decommitAndRelease): decommit explicitly 8531 * wtf/OSAllocatorSymbian.cpp: Impl. of OSAllocator interface 8532 (WTF::allocateCodeChunk): utility for code chunks 8533 (WTF::deallocateCodeChunk): utility for code chunks 8534 (WTF::dataAllocatorInstance): getter for data allocator instance 8535 (WTF::OSAllocator::reserveUncommitted): 8536 (WTF::OSAllocator::releaseDecommitted): 8537 (WTF::OSAllocator::commit): 8538 (WTF::OSAllocator::decommit): 8539 (WTF::OSAllocator::reserveAndCommit): 8540 (WTF::PageAllocatorSymbian::PageAllocatorSymbian): maps requests 8541 to one underlying Symbian chunk 8542 (WTF::PageAllocatorSymbian::~PageAllocatorSymbian): 8543 (WTF::PageAllocatorSymbian::reserve): 8544 (WTF::PageAllocatorSymbian::release): 8545 (WTF::PageAllocatorSymbian::commit): 8546 (WTF::PageAllocatorSymbian::decommit): 8547 (WTF::PageAllocatorSymbian::contains): 8548 * wtf/PageAllocatorSymbian.h: Added. 8549 (WTF::SymbianChunk::SymbianChunk): wrapper around RChunk 8550 (WTF::SymbianChunk::~SymbianChunk): 8551 (WTF::SymbianChunk::contains): 8552 8553 2011-02-19 Yong Li <yoli (a] rim.com> 8554 8555 Reviewed by Eric Seidel. 8556 8557 https://bugs.webkit.org/show_bug.cgi?id=54687 8558 When being built with armcc, "int" bit fields are treated as 8559 unsigned integers, which will fail the comparisons like "m_offset == -1". 8560 Using "signed" fixes the problem. 8561 8562 * assembler/ARMAssembler.h: 8563 * assembler/ARMv7Assembler.h: 8564 8565 2011-02-18 Geoffrey Garen <ggaren (a] apple.com> 8566 8567 Reviewed by Sam Weinig. 8568 8569 Made MarkedSpace block iteration size-class agnostic 8570 https://bugs.webkit.org/show_bug.cgi?id=54792 8571 8572 SunSpider reports no change. 8573 8574 * runtime/MarkedSpace.cpp: 8575 (JSC::MarkedSpace::clearMarks): 8576 (JSC::MarkedSpace::sweep): 8577 (JSC::MarkedSpace::objectCount): 8578 (JSC::MarkedSpace::size): 8579 (JSC::MarkedSpace::capacity): 8580 * runtime/MarkedSpace.h: 8581 (JSC::MarkedSpace::forEach): Iterate blocks in hashing order instead of 8582 size class list order. This is a much simpler convention in a world 8583 of many different size classes. 8584 8585 2011-02-18 Kristian Amlie <kristian.amlie (a] nokia.com> 8586 8587 Reviewed by Andreas Kling. 8588 8589 Added friend exception to Qt platform, which also compiles Windows. 8590 8591 QtWebKit fails to compile on Windows XP with msvc-2008 8592 https://bugs.webkit.org/show_bug.cgi?id=54746 8593 8594 * bytecode/CodeBlock.h: 8595 * runtime/RegExpObject.h: 8596 8597 2011-02-18 Geoffrey Garen <ggaren (a] apple.com> 8598 8599 (Rolled back in r79022 with crash fixed.) 8600 8601 Reviewed by Sam Weinig. 8602 8603 Use hashing instead of linear search in the conservative pointer test 8604 https://bugs.webkit.org/show_bug.cgi?id=54767 8605 8606 SunSpider reports no change. 8607 8608 * runtime/MarkedSpace.cpp: 8609 (JSC::MarkedSpace::destroy): No need to explicitly clear the blocks array, 8610 since freeBlock removes items for us. 8611 8612 (JSC::MarkedSpace::freeBlock): Fixed a typo that always removed the last 8613 block from the block set instead of the block being freed. Changed to 8614 remove a block from our data structures before deallocating it, since 8615 this is slightly cleaner. 8616 8617 * runtime/MarkedSpace.h: 8618 (JSC::MarkedSpace::contains): Variable-sized objects will use more, 8619 smaller blocks, so it's important for the contains check not to be O(n) 8620 in the number of blocks. 8621 8622 2011-02-18 chris reiss <christopher.reiss (a] nokia.com> 8623 8624 Reviewed by Andreas Kling. 8625 8626 REGRESSION: Date.parse("Tue Nov 23 20:40:05 2010 GMT") returns NaN 8627 https://bugs.webkit.org/show_bug.cgi?id=49989 8628 8629 updated test fast/js/script-tests/date-parse-test.js 8630 8631 * wtf/DateMath.cpp: 8632 (WTF::parseDateFromNullTerminatedCharacters): 8633 8634 2011-02-18 Sheriff Bot <webkit.review.bot (a] gmail.com> 8635 8636 Unreviewed, rolling out r79022. 8637 http://trac.webkit.org/changeset/79022 8638 https://bugs.webkit.org/show_bug.cgi?id=54775 8639 8640 It broke the whole world (Requested by Ossy on #webkit). 8641 8642 * runtime/MarkedSpace.h: 8643 (JSC::MarkedSpace::contains): 8644 8645 2011-02-18 Yael Aharon <yael.aharon (a] nokia.com> 8646 8647 Reviewed by Dave Hyatt. 8648 8649 Add support for dir=auto 8650 https://bugs.webkit.org/show_bug.cgi?id=50916 8651 8652 Change defaultWritingDirection() to return if the writing direction 8653 was determined from a letter with strong directionality or not. 8654 8655 * JavaScriptCore.exp: 8656 * JavaScriptCore.order: 8657 * wtf/text/StringImpl.cpp: 8658 (WTF::StringImpl::defaultWritingDirection): 8659 * wtf/text/StringImpl.h: 8660 * wtf/text/WTFString.h: 8661 (WTF::String::defaultWritingDirection): 8662 8663 2011-02-18 Geoffrey Garen <ggaren (a] apple.com> 8664 8665 Reviewed by Sam Weinig. 8666 8667 Use hashing instead of linear search in the conservative pointer test 8668 https://bugs.webkit.org/show_bug.cgi?id=54767 8669 8670 SunSpider reports no change. 8671 8672 * runtime/MarkedSpace.h: 8673 (JSC::MarkedSpace::contains): Variable-sized objects will use more, 8674 smaller blocks, so it's important for the contains check not to be O(n) 8675 in the number of blocks. 8676 8677 2011-02-18 Geoffrey Garen <ggaren (a] apple.com> 8678 8679 Reviewed by Sam Weinig. 8680 8681 Tightened some usage accounting code in MarkedSpace 8682 https://bugs.webkit.org/show_bug.cgi?id=54761 8683 8684 SunSpider reports no change. 8685 8686 * runtime/Heap.cpp: 8687 (JSC::Heap::Heap): Initialize the marked space high water mark on 8688 construction, instead of relying on some implicit subtleties to make 8689 not initializing it work out OK. 8690 8691 * runtime/Heap.h: Fixed up includes. 8692 8693 * runtime/MarkedBlock.h: Made firstAtom() static so clients can call it 8694 even without having allocated a block. 8695 8696 * runtime/MarkedSpace.cpp: 8697 (JSC::MarkedSpace::MarkedSpace): Don't pre-allocate a block, since this 8698 would be prohibitively expensive with multiple size classes. 8699 8700 (JSC::MarkedSpace::allocateBlock): 8701 (JSC::MarkedSpace::freeBlock): Track allocated blocks in a hash set, 8702 since linear search in the contains check will be prohibitively 8703 expensive once we're using lots of smaller blocks. 8704 8705 (JSC::MarkedSpace::allocate): Don't assume that we always have a block 8706 allocated, since we don't anymore. (See above.) 8707 8708 (JSC::MarkedSpace::reset): 8709 * runtime/MarkedSpace.h: Updated for changes mentioned above. 8710 8711 2011-02-17 Geoffrey Garen <ggaren (a] apple.com> 8712 8713 Reviewed by Sam Weinig. 8714 8715 Made object allocation secretly variable-sized (Shhhh!) 8716 https://bugs.webkit.org/show_bug.cgi?id=54721 8717 8718 SunSpider reports no change. 8719 8720 Internally, MarkedBlock now makes variable-sized allocations, even 8721 though MarkedSpace doesn't take advantage of this yet. 8722 8723 * runtime/MarkedBlock.cpp: 8724 (JSC::MarkedBlock::MarkedBlock): No need to ASSERT that allocations are 8725 fixed-sized. 8726 8727 * runtime/MarkedBlock.h: Shrunk the atom size so we can allocate things 8728 that are not multiples of 64 bytes. 8729 8730 2011-02-17 Geoffrey Garen <ggaren (a] apple.com> 8731 8732 Reviewed by Sam Weinig. 8733 8734 Fixed some math errors when when using variable-sized cells 8735 https://bugs.webkit.org/show_bug.cgi?id=54717 8736 8737 SunSpider reports no change. 8738 8739 Computer Science Barbie says, "Math is not so hard afterall!" 8740 8741 * runtime/JSCell.h: 8742 (JSC::JSCell::MarkedBlock::allocate): Round up when calculating the 8743 minimum number of atoms required for a cell, since rounding down 8744 will get you splinched. 8745 8746 * runtime/MarkedBlock.cpp: 8747 (JSC::MarkedBlock::MarkedBlock): 8748 (JSC::MarkedBlock::sweep): 8749 * runtime/MarkedBlock.h: 8750 (JSC::MarkedBlock::forEach): Changed a bunch of != tests to < tests 8751 because m_endAtom is actually a fuzzy end -- iterating from firstAtom() 8752 may not hit m_endAtom exactly. 8753 8754 2011-02-17 Geoffrey Garen <ggaren (a] apple.com> 8755 8756 Reviewed by Sam Weinig. 8757 8758 A little more abstraction for MarkedSpace::contains 8759 https://bugs.webkit.org/show_bug.cgi?id=54715 8760 8761 * runtime/MarkedBlock.h: 8762 (JSC::MarkedBlock::contains): Added a contains function, so MarkedSpace 8763 doesn't have to know how MarkedBlock tracks containment internally. 8764 8765 * runtime/MarkedSpace.h: 8766 (JSC::MarkedSpace::contains): Call through to MarkedBlock to figure out 8767 if a cell that seems to be in a block is valid. 8768 8769 2011-02-17 Geoffrey Garen <ggaren (a] apple.com> 8770 8771 Reviewed by Sam Weinig. 8772 8773 Removed the invariant that the last cell in a block is always marked 8774 https://bugs.webkit.org/show_bug.cgi?id=54713 8775 8776 SunSpider reports no change. 8777 8778 This adds one branch to allocation, but simplifies the mark invariant, 8779 especially in a world of variable-sized cells. Now, it really is true 8780 that any cell whose mark bit is set is a valid, live cell whose 8781 constructor has run and whose destructor has not run. 8782 8783 * runtime/JSCell.h: 8784 (JSC::JSCell::MarkedBlock::allocate): Changed this do-while into a while 8785 since we can no longer rely on a set mark bit to break out of this loop 8786 before it reaches the end of the block. 8787 8788 * runtime/MarkedBlock.cpp: 8789 (JSC::MarkedBlock::MarkedBlock): 8790 (JSC::MarkedBlock::sweep): 8791 * runtime/MarkedBlock.h: 8792 (JSC::MarkedBlock::isEmpty): 8793 (JSC::MarkedBlock::clearMarks): 8794 (JSC::MarkedBlock::markCount): 8795 (JSC::MarkedBlock::forEach): No need to set a special last mark bit. 8796 8797 2011-02-17 Sheriff Bot <webkit.review.bot (a] gmail.com> 8798 8799 Unreviewed, rolling out r78856 and r78907. 8800 http://trac.webkit.org/changeset/78856 8801 http://trac.webkit.org/changeset/78907 8802 https://bugs.webkit.org/show_bug.cgi?id=54705 8803 8804 These seem to break tests on 32-bit builds. (Requested by 8805 aroben on #webkit). 8806 8807 * JavaScriptCore.xcodeproj/project.pbxproj: 8808 * collector/handles/Global.h: 8809 (JSC::Global::internalSet): 8810 * collector/handles/Handle.h: 8811 (JSC::HandleTypes::getFromSlot): 8812 (JSC::HandleTypes::toJSValue): 8813 (JSC::HandleTypes::validateUpcast): 8814 (JSC::HandleConverter::operator->): 8815 (JSC::HandleConverter::operator*): 8816 (JSC::Handle::Handle): 8817 (JSC::Handle::get): 8818 * runtime/JSArray.cpp: 8819 (JSC::JSArray::sortNumeric): 8820 * runtime/JSObject.h: 8821 (JSC::JSObject::inlineGetOwnPropertySlot): 8822 * runtime/SlotAccessor.h: Removed. 8823 * runtime/WeakGCPtr.h: 8824 (JSC::WeakGCPtr::get): 8825 (JSC::WeakGCPtr::internalSet): 8826 * runtime/WriteBarrier.h: 8827 (JSC::DeprecatedPtr::DeprecatedPtr): 8828 (JSC::DeprecatedPtr::get): 8829 (JSC::DeprecatedPtr::operator*): 8830 (JSC::DeprecatedPtr::operator->): 8831 (JSC::DeprecatedPtr::slot): 8832 (JSC::DeprecatedPtr::operator UnspecifiedBoolType*): 8833 (JSC::DeprecatedPtr::operator!): 8834 (JSC::WriteBarrierBase::set): 8835 (JSC::WriteBarrierBase::get): 8836 (JSC::WriteBarrierBase::operator*): 8837 (JSC::WriteBarrierBase::operator->): 8838 (JSC::WriteBarrierBase::clear): 8839 (JSC::WriteBarrierBase::slot): 8840 (JSC::WriteBarrierBase::operator UnspecifiedBoolType*): 8841 (JSC::WriteBarrierBase::operator!): 8842 (JSC::WriteBarrierBase::setWithoutWriteBarrier): 8843 (JSC::WriteBarrier::WriteBarrier): 8844 8845 2011-02-17 Csaba Osztrogonc <ossy (a] webkit.org> 8846 8847 Unreviewed. 8848 8849 [Qt] Buildfix. 8850 8851 * wtf/RetainPtr.h: Add missing PLATFORM(CF) guard. 8852 8853 2011-02-17 Geoffrey Garen <ggaren (a] apple.com> 8854 8855 Reviewed by Oliver Hunt. 8856 8857 Made MarkedBlock variable-sized 8858 https://bugs.webkit.org/show_bug.cgi?id=54692 8859 8860 SunSpider reports no change. 8861 8862 Each MarkedBlock is now composed of a set of fixed-sized atoms, with one 8863 mark bit per atom. A given cell may be composed of one or more atoms. 8864 8865 * runtime/Heap.cpp: 8866 (JSC::Heap::allocate): Made fixed-sizedness a property of MarkedSpace, 8867 bubbling it up from MarkedBlock, since MarkedBlock now supports variable- 8868 sizedness. 8869 8870 * runtime/JSCell.h: 8871 (JSC::JSCell::MarkedBlock::allocate): Removed use of CELLS_PER_BLOCK and 8872 (implicit) one constants -- these quantities are not constant anymore. 8873 Updated for switch from cell to atom. 8874 8875 * runtime/MarkedBlock.cpp: 8876 (JSC::MarkedBlock::create): 8877 (JSC::MarkedBlock::destroy): 8878 (JSC::MarkedBlock::MarkedBlock): 8879 (JSC::MarkedBlock::sweep): 8880 * runtime/MarkedBlock.h: 8881 (JSC::MarkedBlock::firstAtom): 8882 (JSC::MarkedBlock::atoms): 8883 (JSC::MarkedBlock::isAtomAligned): 8884 (JSC::MarkedBlock::blockFor): 8885 (JSC::MarkedBlock::isEmpty): 8886 (JSC::MarkedBlock::clearMarks): 8887 (JSC::MarkedBlock::size): 8888 (JSC::MarkedBlock::capacity): 8889 (JSC::MarkedBlock::atomNumber): 8890 (JSC::MarkedBlock::isMarked): 8891 (JSC::MarkedBlock::testAndSetMarked): 8892 (JSC::MarkedBlock::setMarked): 8893 (JSC::MarkedBlock::forEach): Same as above. Also removed use of CELL_SIZE 8894 and BLOCK_SIZE, and switched away from calling arbitrary pointers cells. 8895 8896 * runtime/MarkedSpace.cpp: 8897 (JSC::MarkedSpace::MarkedSpace): 8898 (JSC::MarkedSpace::allocateBlock): 8899 (JSC::MarkedSpace::allocate): 8900 (JSC::MarkedSpace::reset): 8901 * runtime/MarkedSpace.h: 8902 (JSC::CollectorHeap::CollectorHeap): 8903 (JSC::MarkedSpace::contains): Updated for renames. Made fixed-sizedness 8904 a property of MarkedSpace. 8905 8906 2011-02-17 Oliver Hunt <oliver (a] apple.com> 8907 8908 Attempt to fix windows build 8909 8910 * runtime/WriteBarrier.h: 8911 8912 2011-02-17 Oliver Hunt <oliver (a] apple.com> 8913 8914 Reviewed by Geoffrey Garen. 8915 8916 Refactor WriteBarrier and DeprecatedPtr to have less code duplication. 8917 https://bugs.webkit.org/show_bug.cgi?id=54608 8918 8919 Make use of the tricks used for Handle, et al to avoid duplicating all 8920 of the logic for DeprecatedPtr and WriteBarrier simply to support known 8921 vs. unknown types. 8922 8923 * JavaScriptCore.xcodeproj/project.pbxproj: 8924 * collector/handles/Global.h: 8925 (JSC::Global::internalSet): 8926 * collector/handles/Handle.h: 8927 (JSC::Handle::Handle): 8928 (JSC::Handle::get): 8929 * runtime/JSArray.cpp: 8930 (JSC::JSArray::sortNumeric): 8931 * runtime/JSObject.h: 8932 (JSC::JSObject::inlineGetOwnPropertySlot): 8933 * runtime/SlotAccessor.h: Added. 8934 (JSC::SlotTypes::getFromBaseType): 8935 (JSC::SlotTypes::convertToBaseType): 8936 (JSC::SlotTypes::getFromSlot): 8937 (JSC::SlotTypes::toJSValue): 8938 (JSC::SlotTypes::validateUpcast): 8939 (JSC::SlotAccessor::operator->): 8940 (JSC::SlotAccessor::operator*): 8941 * runtime/WeakGCPtr.h: 8942 (JSC::WeakGCPtr::get): 8943 (JSC::WeakGCPtr::internalSet): 8944 * runtime/WriteBarrier.h: 8945 (JSC::DeprecatedPtr::DeprecatedPtr): 8946 (JSC::DeprecatedPtr::get): 8947 (JSC::DeprecatedPtr::slot): 8948 (JSC::DeprecatedPtr::operator=): 8949 (JSC::WriteBarrierTranslator::convertToStorage): 8950 (JSC::WriteBarrierTranslator::convertFromStorage): 8951 (JSC::WriteBarrierBase::set): 8952 (JSC::WriteBarrierBase::get): 8953 (JSC::WriteBarrierBase::clear): 8954 (JSC::WriteBarrierBase::slot): 8955 (JSC::WriteBarrierBase::operator UnspecifiedBoolType*): 8956 (JSC::WriteBarrierBase::operator!): 8957 (JSC::WriteBarrierBase::setWithoutWriteBarrier): 8958 (JSC::WriteBarrier::WriteBarrier): 8959 8960 2011-02-17 Kevin Ollivier <kevino (a] theolliviers.com> 8961 8962 [wx] Revert incorrect blind fix and restore previous working code. 8963 8964 * wtf/wx/StringWx.cpp: 8965 (WTF::String::String): 8966 8967 2011-02-16 Geoffrey Garen <ggaren (a] apple.com> 8968 8969 Reviewed by Maciej Stachowiak. 8970 8971 Intermittent crashes beneath MarkStack::drain 8972 https://bugs.webkit.org/show_bug.cgi?id=54614 8973 <rdar://problem/8971070> 8974 8975 The crashes were caused by a GC happening after the global object's 8976 property table had grown (due to compilation), but before the properties 8977 had been fully initialized by program execution. 8978 8979 * bytecompiler/BytecodeGenerator.cpp: 8980 (JSC::BytecodeGenerator::BytecodeGenerator): Explicitly resize the global 8981 object's register storage immediately, without waiting for program 8982 execution to do it for us. This ensures that the global object's count 8983 of global variables is consistent with the size of its global variable 8984 storage at all times, and it ensures that all global variables are 8985 properly initialized from the get-go. 8986 8987 * runtime/JSGlobalObject.cpp: 8988 (JSC::JSGlobalObject::resizeRegisters): 8989 * runtime/JSGlobalObject.h: Added a helper function for growing the 8990 global object's register storage, and initializing new registers. 8991 8992 == Rolled over to ChangeLog-2011-02-16 == 8993