ChangeLog 388 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2009-10-01  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Take one branch instead of two to test for JSValue().
        
        1.1% SunSpider speedup.

        * jit/JITCall.cpp:
        (JSC::JIT::compileOpCall):
        * jit/JITOpcodes.cpp:
        (JSC::JIT::emit_op_to_jsnumber):
        (JSC::JIT::emit_op_create_arguments):
        * jit/JITPropertyAccess.cpp:
        (JSC::JIT::emitSlow_op_get_by_val):
        (JSC::JIT::emit_op_put_by_val): Test for the empty value tag, instead
        of testing for the cell tag with a 0 payload.

        * runtime/JSValue.cpp:
        (JSC::JSValue::description): Added support for dumping the new empty value,
        and deleted values, in debug builds.

        * runtime/JSValue.h:
        (JSC::JSValue::JSValue()): Construct JSValue() with the empty value tag.

        (JSC::JSValue::JSValue(JSCell*)): Convert null pointer to the empty value
        tag, to avoid having two different c++ versions of null / empty.

        (JSC::JSValue::operator bool): Test for the empty value tag, instead
        of testing for the cell tag with a 0 payload.

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
2009-10-01  Yongjun Zhang  <yongjun.zhang@nokia.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=29187

        Don't inline ~ListRefPtr() to work around winscw compiler forward declaration
        bug regarding templated classes.

        The compiler bug is reported at:
        https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812

        The change will be reverted when the above bug is fixed in winscw compiler.

        * wtf/ListRefPtr.h:
        (WTF::::~ListRefPtr):

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
2009-10-01  Zoltan Horvath  <zoltan@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] Allow custom memory allocation control for the whole JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=27029

        Since in JavaScriptCore almost every class which has been instantiated by operator new is
        inherited from FastAllocBase (bug #20422), we disable customizing global operator new for the Qt-port
        when USE_SYSTEM_MALLOC=0.

        Add #include <unistd.h> to FastMalloc.cpp because it's used by TCMalloc_PageHeap::scavengerThread().
        (It's needed for the functionality of TCmalloc.)

        Add TCSystemAlloc.cpp to JavaScriptCore.pri if USE_SYSTEM_MALLOC is disabled.

        * JavaScriptCore.pri:
        * wtf/FastMalloc.cpp:
        (WTF::sleep):
        * wtf/FastMalloc.h:

70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
2009-09-30  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by George Staikos.

        Defines two pseudo-platforms for ARM and Thumb-2 instruction set.
        https://bugs.webkit.org/show_bug.cgi?id=29122

        Introduces WTF_PLATFORM_ARM_TRADITIONAL and WTF_PLATFORM_ARM_THUMB2
        macros on ARM platforms. The PLATFORM(ARM_THUMB2) should be used
        when Thumb-2 instruction set is the required target. The
        PLATFORM(ARM_TRADITIONAL) is for generic ARM instruction set. In
        case where the code is common the PLATFORM(ARM) have to be used.

        Modified by George Wright  <gwright@rim.com> to correctly work
        with the RVCT-defined __TARGET_ARCH_ARM and __TARGET_ARCH_THUMB
        compiler macros, as well as adding readability changes.

        * wtf/Platform.h:

89 90 91 92 93 94 95 96 97 98 99 100
2009-09-30  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        Devirtualise array toString conversion

        Tweak the implementation of Array.prototype.toString to have a fast path
        when acting on a true JSArray.

        * runtime/ArrayPrototype.cpp:
        (JSC::arrayProtoFuncToString):

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
2009-09-30  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>

        Reviewed by Geoffrey Garen.

        Buildfix for platforms using JSVALUE32.
        https://bugs.webkit.org/show_bug.cgi?id=29915

        After http://trac.webkit.org/changeset/48905 the build broke in JSVALUE32 case.
        Also removed unreachable code.

        * jit/JITArithmetic.cpp:
        (JSC::JIT::emit_op_add):
         - Declaration of "OperandTypes types" moved before first use.
         - Typos fixed: dst modified to result, regT2 added.
         - Unreachable code removed.
        (JSC::JIT::emitSlow_op_add):
         - Missing declaration of "OperandTypes types" added.

119 120 121 122 123 124 125 126 127 128 129 130 131
2009-09-30  Janne Koskinen  <janne.p.koskinen@digia.com> 

        Reviewed by Simon Hausmann.

        Reduce heap size on Symbian from 64MB to 8MB.

        This is not a perfect fix, it requires more fine tuning.
        But this makes it possible again to debug in the emulator,
        which is more important in order to be able to fix other
        run-time issues.

        * runtime/Collector.h:

132 133 134 135 136 137 138 139
2009-09-30  Janne Koskinen  <janne.p.koskinen@digia.com> 

        Reviewed by Simon Hausmann.

        Fix CRASH() macro for Symbian build.

        * wtf/Assertions.h: Added missing }

140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
2009-09-29  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Gavin Barraclough.

        Inlined a few math operations.
        
        ~1% SunSpider speedup.

        * jit/JIT.h:
        * jit/JITArithmetic.cpp:
        (JSC::JIT::compileBinaryArithOpSlowCase):
        (JSC::JIT::emitSlow_op_add):
        (JSC::JIT::emitSlow_op_mul):
        (JSC::JIT::emit_op_sub):
        (JSC::JIT::emitSlow_op_sub): Don't take a stub call when operating on
        a constant int and a double.

oliver@apple.com's avatar
oliver@apple.com committed
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
2009-09-28  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Tidy up codeblock sampler
        https://bugs.webkit.org/show_bug.cgi?id=29836

        Some rather simple refactoring of codeblock sampler so that
        it's easier for us to use it to find problems in non-jsc
        environments

        * JavaScriptCore.exp:
        * bytecode/SamplingTool.h:
        * debugger/Debugger.cpp:
        (JSC::evaluateInGlobalCallFrame):
        * debugger/DebuggerCallFrame.cpp:
        (JSC::DebuggerCallFrame::evaluate):
        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::Interpreter):
        (JSC::Interpreter::execute):
        (JSC::Interpreter::privateExecute):
        (JSC::Interpreter::enableSampler):
        (JSC::Interpreter::dumpSampleData):
        (JSC::Interpreter::startSampling):
        (JSC::Interpreter::stopSampling):
        * interpreter/Interpreter.h:
        (JSC::Interpreter::sampler):
        * jit/JIT.h:
        * jsc.cpp:
        (runWithScripts):
        * runtime/Completion.cpp:
        (JSC::checkSyntax):
        (JSC::evaluate):
        * runtime/Executable.h:
        (JSC::EvalExecutable::EvalExecutable):
        (JSC::ProgramExecutable::create):
        (JSC::ProgramExecutable::ProgramExecutable):
        * runtime/JSGlobalData.cpp:
        (JSC::JSGlobalData::startSampling):
        (JSC::JSGlobalData::stopSampling):
        (JSC::JSGlobalData::dumpSampleData):
        * runtime/JSGlobalData.h:
        * runtime/JSGlobalObjectFunctions.cpp:
        (JSC::globalFuncEval):

202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
2009-09-29  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add GYP generated files to svn:ignore
        https://bugs.webkit.org/show_bug.cgi?id=29895

        The following files are generated by JavaScriptCore's GYP file and should be ignored:

        pcre.mk
        wtf.scons
        wtf.mk
        SConstruct
        wtf_config.scons
        wtf_config.mk
        pcre.scons

        * JavaScriptCore.gyp: Changed property svn:ignore.

221 222 223 224 225 226 227 228 229 230 231 232
2009-09-29  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Standardized an optimization for adding non-numbers.
        
        SunSpider says maybe a tiny speedup.

        * jit/JITArithmetic.cpp:
        (JSC::JIT::emit_op_add):
        (JSC::JIT::emitSlow_op_add):

233 234 235 236 237 238 239
2009-09-29  Geoffrey Garen  <ggaren@apple.com>

        Windows build fix: export a new symbol.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
2009-09-28  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Removed virtual destructor from JSGlobalObjectData to eliminate pointer
        fix-ups when accessing JSGlobalObject::d.
        
        Replaced with an explicit destructor function pointer.
        
        6% speedup on bench-alloc-nonretained.js.

        * JavaScriptCore.exp:
        * runtime/JSGlobalObject.cpp:
        (JSC::JSGlobalObject::~JSGlobalObject):
        (JSC::JSGlobalObject::destroyJSGlobalObjectData):
        * runtime/JSGlobalObject.h:
        (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
        (JSC::JSGlobalObject::JSGlobalObject):

259 260 261 262 263 264 265 266 267 268 269 270 271
2009-09-29  Janne Koskinen  <janne.p.koskinen@digia.com>

        Reviewed by David Kilzer.

        [Qt] Assert messages prints visible in Symbian
        https://bugs.webkit.org/show_bug.cgi?id=29808

        Asserts use vprintf to print the messages to stderr.
        In Symbian Open C it is not possible to see stderr so
        I routed the messages to stdout instead.

        * wtf/Assertions.cpp:

272 273 274 275 276 277 278 279 280 281 282 283 284
2009-09-29  Janne Koskinen  <janne.p.koskinen@digia.com>

        Reviewed by Darin Adler.

        [Qt] Symbian CRASH macro implementation

        Added Symbian specific crash macro that
        stops to crash line if JIT debugging is used.
        Additional differentiation of access violation
        (KERN-EXEC 3) and CRASH panic.

        * wtf/Assertions.h:

mrowe@apple.com's avatar
mrowe@apple.com committed
285 286 287 288 289 290
2009-09-28  Mark Rowe  <mrowe@apple.com>

        Fix the PowerPC build.

        * JavaScriptCore.exp:

291 292 293 294 295 296 297 298 299 300
2009-09-28  Mark Rowe  <mrowe@apple.com>

        Reviewed by Gavin Barraclough.

        <rdar://problem/7195704> JavaScriptCore fails to mark registers when built for x86_64 using LLVM GCC.

        * runtime/Collector.cpp:
        (JSC::Heap::markCurrentThreadConservatively): Force jmp_buf to use the appropriate alignment for a pointer
        to ensure that we correctly interpret the contents of registers during marking.

301 302 303 304 305 306 307
2009-09-28  Geoffrey Garen  <ggaren@apple.com>

        Windows build fix: added new exports.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

308 309 310 311 312 313 314
2009-09-28  Geoffrey Garen  <ggaren@apple.com>

        Windows build fix: removed exports that no longer exist.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470
2009-09-28  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        NotNullPassRefPtr: smart pointer optimized for passing references that are not null
        https://bugs.webkit.org/show_bug.cgi?id=29822
        
        Added NotNullPassRefPtr, and deployed it in all places that initialize
        JavaScript objects.
        
        2.2% speedup on bench-allocate-nonretained.js.

        * API/JSCallbackConstructor.cpp:
        (JSC::JSCallbackConstructor::JSCallbackConstructor):
        * API/JSCallbackConstructor.h:
        * API/JSCallbackObject.h:
        * API/JSCallbackObjectFunctions.h:
        (JSC::JSCallbackObject::JSCallbackObject):
        * JavaScriptCore.exp:
        * bytecode/CodeBlock.h:
        (JSC::CodeBlock::addFunctionDecl):
        (JSC::CodeBlock::addFunctionExpr):
        * runtime/ArrayConstructor.cpp:
        (JSC::ArrayConstructor::ArrayConstructor):
        * runtime/ArrayConstructor.h:
        * runtime/ArrayPrototype.cpp:
        (JSC::ArrayPrototype::ArrayPrototype):
        * runtime/ArrayPrototype.h:
        * runtime/BooleanConstructor.cpp:
        (JSC::BooleanConstructor::BooleanConstructor):
        * runtime/BooleanConstructor.h:
        * runtime/BooleanObject.cpp:
        (JSC::BooleanObject::BooleanObject):
        * runtime/BooleanObject.h:
        * runtime/BooleanPrototype.cpp:
        (JSC::BooleanPrototype::BooleanPrototype):
        * runtime/BooleanPrototype.h:
        * runtime/DateConstructor.cpp:
        (JSC::DateConstructor::DateConstructor):
        * runtime/DateConstructor.h:
        * runtime/DateInstance.cpp:
        (JSC::DateInstance::DateInstance):
        * runtime/DateInstance.h:
        * runtime/DatePrototype.cpp:
        (JSC::DatePrototype::DatePrototype):
        * runtime/DatePrototype.h:
        * runtime/ErrorConstructor.cpp:
        (JSC::ErrorConstructor::ErrorConstructor):
        * runtime/ErrorConstructor.h:
        * runtime/ErrorInstance.cpp:
        (JSC::ErrorInstance::ErrorInstance):
        * runtime/ErrorInstance.h:
        * runtime/ErrorPrototype.cpp:
        (JSC::ErrorPrototype::ErrorPrototype):
        * runtime/ErrorPrototype.h:
        * runtime/FunctionConstructor.cpp:
        (JSC::FunctionConstructor::FunctionConstructor):
        * runtime/FunctionConstructor.h:
        * runtime/FunctionPrototype.cpp:
        (JSC::FunctionPrototype::FunctionPrototype):
        * runtime/FunctionPrototype.h:
        * runtime/GlobalEvalFunction.cpp:
        (JSC::GlobalEvalFunction::GlobalEvalFunction):
        * runtime/GlobalEvalFunction.h:
        * runtime/InternalFunction.cpp:
        (JSC::InternalFunction::InternalFunction):
        * runtime/InternalFunction.h:
        (JSC::InternalFunction::InternalFunction):
        * runtime/JSActivation.cpp:
        (JSC::JSActivation::JSActivation):
        * runtime/JSActivation.h:
        (JSC::JSActivation::JSActivationData::JSActivationData):
        * runtime/JSArray.cpp:
        (JSC::JSArray::JSArray):
        * runtime/JSArray.h:
        * runtime/JSByteArray.cpp:
        (JSC::JSByteArray::JSByteArray):
        * runtime/JSByteArray.h:
        * runtime/JSFunction.cpp:
        (JSC::JSFunction::JSFunction):
        * runtime/JSFunction.h:
        * runtime/JSGlobalObject.h:
        (JSC::JSGlobalObject::JSGlobalObject):
        * runtime/JSONObject.h:
        (JSC::JSONObject::JSONObject):
        * runtime/JSObject.h:
        (JSC::JSObject::JSObject):
        (JSC::JSObject::setStructure):
        * runtime/JSVariableObject.h:
        (JSC::JSVariableObject::JSVariableObject):
        * runtime/JSWrapperObject.h:
        (JSC::JSWrapperObject::JSWrapperObject):
        * runtime/MathObject.cpp:
        (JSC::MathObject::MathObject):
        * runtime/MathObject.h:
        * runtime/NativeErrorConstructor.cpp:
        (JSC::NativeErrorConstructor::NativeErrorConstructor):
        * runtime/NativeErrorConstructor.h:
        * runtime/NativeErrorPrototype.cpp:
        (JSC::NativeErrorPrototype::NativeErrorPrototype):
        * runtime/NativeErrorPrototype.h:
        * runtime/NumberConstructor.cpp:
        (JSC::NumberConstructor::NumberConstructor):
        * runtime/NumberConstructor.h:
        * runtime/NumberObject.cpp:
        (JSC::NumberObject::NumberObject):
        * runtime/NumberObject.h:
        * runtime/NumberPrototype.cpp:
        (JSC::NumberPrototype::NumberPrototype):
        * runtime/NumberPrototype.h:
        * runtime/ObjectConstructor.cpp:
        (JSC::ObjectConstructor::ObjectConstructor):
        * runtime/ObjectConstructor.h:
        * runtime/ObjectPrototype.cpp:
        (JSC::ObjectPrototype::ObjectPrototype):
        * runtime/ObjectPrototype.h:
        * runtime/PropertyNameArray.h:
        (JSC::PropertyNameArrayData::setCachedPrototypeChain):
        * runtime/PrototypeFunction.cpp:
        (JSC::PrototypeFunction::PrototypeFunction):
        * runtime/PrototypeFunction.h:
        * runtime/RegExpConstructor.cpp:
        (JSC::RegExpConstructor::RegExpConstructor):
        * runtime/RegExpConstructor.h:
        * runtime/RegExpObject.cpp:
        (JSC::RegExpObject::RegExpObject):
        * runtime/RegExpObject.h:
        (JSC::RegExpObject::RegExpObjectData::RegExpObjectData):
        * runtime/RegExpPrototype.cpp:
        (JSC::RegExpPrototype::RegExpPrototype):
        * runtime/RegExpPrototype.h:
        * runtime/StringConstructor.cpp:
        (JSC::StringConstructor::StringConstructor):
        * runtime/StringConstructor.h:
        * runtime/StringObject.cpp:
        (JSC::StringObject::StringObject):
        * runtime/StringObject.h:
        * runtime/StringObjectThatMasqueradesAsUndefined.h:
        (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
        * runtime/StringPrototype.cpp:
        (JSC::StringPrototype::StringPrototype):
        * runtime/StringPrototype.h:
        * wtf/PassRefPtr.h:
        (WTF::NotNullPassRefPtr::NotNullPassRefPtr):
        (WTF::NotNullPassRefPtr::~NotNullPassRefPtr):
        (WTF::NotNullPassRefPtr::get):
        (WTF::NotNullPassRefPtr::clear):
        (WTF::NotNullPassRefPtr::releaseRef):
        (WTF::NotNullPassRefPtr::operator*):
        (WTF::NotNullPassRefPtr::operator->):
        (WTF::NotNullPassRefPtr::operator!):
        (WTF::NotNullPassRefPtr::operator UnspecifiedBoolType):
        * wtf/RefPtr.h:
        (WTF::RefPtr::RefPtr):
        (WTF::operator==):

471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486
2009-09-28  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        Hard dependency on SSE2 instruction set with JIT
        https://bugs.webkit.org/show_bug.cgi?id=29779

        Add floating point support checks to op_jfalse and op_jtrue, and
        fix the logic for the slow case of op_add

        * jit/JITArithmetic.cpp:
        (JSC::JIT::emitSlow_op_add):
        * jit/JITOpcodes.cpp:
        (JSC::JIT::emit_op_jfalse):
        (JSC::JIT::emit_op_jtrue):

487 488 489 490 491 492 493 494 495 496 497 498
2009-09-28  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Dimitri Glazkov.

        Chromium port - recognize we are being built independently
        of chromium and look for dependencies under webkit/chromium rather
        than chromium/src.

        https://bugs.webkit.org/show_bug.cgi?id=29722

        * JavaScriptCore.gyp/JavaScriptCore.gyp:

499 500 501 502 503 504 505 506 507
2009-09-28  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Implement XSLT support with QtXmlPatterns.
        https://bugs.webkit.org/show_bug.cgi?id=28303

        * wtf/Platform.h: Add a WTF_USE_QXMLQUERY #define.

508 509 510 511 512 513 514 515 516 517 518 519 520
2009-09-28  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by Simon Hausmann.

        Remove __clear_cache which is an internal function of GCC
        https://bugs.webkit.org/show_bug.cgi?id=28886

        Although __clear_cache is exported from GCC, this is an internal
        function. GCC makes no promises about it.

        * jit/ExecutableAllocator.h:
        (JSC::ExecutableAllocator::cacheFlush):

521 522 523 524 525 526 527 528 529
2009-09-28  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Fix an absolute path to somewhere in Oliver's machine to a relative path
        for derived JSONObject.lut.h.

        * JavaScriptCore.xcodeproj/project.pbxproj:

530 531 532 533 534 535 536 537
2009-09-28  Joerg Bornemann  <joerg.bornemann@nokia.com>

        Reviewed by Simon Hausmann.

        Add ARM version detection for Windows CE.

        * wtf/Platform.h:

538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557
2009-09-26  Yongjun Zhang  <yongjun.zhang@nokia.com>

        Reviewed by Simon Hausmann.

        Add MarkStackSymbian.cpp to build JavascriptCore for Symbian.

        Re-use Windows shrinkAllocation implementation because Symbian doesn't
        support releasing part of memory region.
        
        Use fastMalloc and fastFree to implement allocateStack and releaseStack
        for Symbian port.

        * JavaScriptCore.pri:
        * runtime/MarkStack.h:
        (JSC::MarkStack::MarkStackArray::shrinkAllocation):
        * runtime/MarkStackSymbian.cpp: Added.
        (JSC::MarkStack::initializePagesize):
        (JSC::MarkStack::allocateStack):
        (JSC::MarkStack::releaseStack):

558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587
2009-09-25  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by Gavin Barraclough.

        Fix unaligned data access in YARR_JIT on ARMv5 and below.
        https://bugs.webkit.org/show_bug.cgi?id=29695

        On ARMv5 and below all data access should be naturally aligned.
        In the YARR_JIT there is a case when character pairs are
        loaded from the input string, but this data access is not
        naturally aligned. This fix introduces load32WithUnalignedHalfWords
        and branch32WithUnalignedHalfWords functions which contain
        naturally aligned memory loads - half word loads - on ARMv5 and below.

        * assembler/MacroAssemblerARM.cpp:
        (JSC::MacroAssemblerARM::load32WithUnalignedHalfWords):
        * assembler/MacroAssemblerARM.h:
        (JSC::MacroAssemblerARM::load32WithUnalignedHalfWords):
        (JSC::MacroAssemblerARM::branch32WithUnalignedHalfWords):
        * assembler/MacroAssemblerARMv7.h:
        (JSC::MacroAssemblerARMv7::load32WithUnalignedHalfWords):
        (JSC::MacroAssemblerARMv7::branch32):
        (JSC::MacroAssemblerARMv7::branch32WithUnalignedHalfWords):
        * assembler/MacroAssemblerX86Common.h:
        (JSC::MacroAssemblerX86Common::load32WithUnalignedHalfWords):
        (JSC::MacroAssemblerX86Common::branch32WithUnalignedHalfWords):
        * wtf/Platform.h:
        * yarr/RegexJIT.cpp:
        (JSC::Yarr::RegexGenerator::generatePatternCharacterPair):

588 589 590 591 592 593 594 595 596 597
2009-09-25  Jeremy Orlow  <jorlow@chromium.org>

        This is breaking Chromium try bots, so I'm counting this as a build fix.

        Add more svn:ignore exceptions.  On different platforms, these files are
        generated with different case for JavaScriptCore.  Also there are some
        wtf project files that get built apparently.

        * JavaScriptCore.gyp: Changed property svn:ignore.

adachan@apple.com's avatar
adachan@apple.com committed
598 599 600 601 602 603 604
2009-09-25  Ada Chan  <adachan@apple.com>

        Build fix.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644
2009-09-25  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        Inlined some object creation code, including lexicalGlobalObject access
        https://bugs.webkit.org/show_bug.cgi?id=29750
        
        SunSpider says 0.5% faster.
        
        0.8% speedup on bench-alloc-nonretained.js.
        2.5% speedup on v8-splay.js.

        * interpreter/CachedCall.h:
        (JSC::CachedCall::CachedCall):
        * interpreter/CallFrame.h:
        (JSC::ExecState::lexicalGlobalObject):
        (JSC::ExecState::globalThisValue):
        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::dumpRegisters):
        (JSC::Interpreter::execute):
        (JSC::Interpreter::privateExecute):
        * jit/JITStubs.cpp:
        (JSC::DEFINE_STUB_FUNCTION):
        * runtime/FunctionConstructor.cpp:
        (JSC::constructFunction):
        * runtime/ScopeChain.cpp:
        (JSC::ScopeChainNode::print):
        * runtime/ScopeChain.h:
        (JSC::ScopeChainNode::ScopeChainNode):
        (JSC::ScopeChainNode::~ScopeChainNode):
        (JSC::ScopeChainNode::push):
        (JSC::ScopeChain::ScopeChain):
        (JSC::ScopeChain::globalObject): Added a globalObject data member to ScopeChainNode.
        Replaced accessor function for globalObject() with data member. Replaced
        globalThisObject() accessor with direct access to globalThis, to match.

        * runtime/JSGlobalObject.cpp:
        (JSC::JSGlobalObject::init):
        * runtime/JSGlobalObject.h: Inlined array and object construction.

645 646 647 648 649 650 651 652 653
2009-09-25  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Gavin Barraclough.

        Add ARM version detection rules for Symbian
        https://bugs.webkit.org/show_bug.cgi?id=29715

        * wtf/Platform.h:

654 655 656 657 658 659 660 661 662
2009-09-24  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Mark "Do It!" Rowe.

        Some GCC versions don't like C++-style comments in preprocessor
        directives, change to C-style to shut them up.

        * wtf/Platform.h:

663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686
2009-09-24  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Division is needlessly slow in 64-bit
        https://bugs.webkit.org/show_bug.cgi?id=29723

        Add codegen for op_div on x86-64

        * jit/JIT.cpp:
        (JSC::JIT::privateCompileMainPass):
        (JSC::JIT::privateCompileSlowCases):
        * jit/JIT.h:
        * jit/JITArithmetic.cpp:
        (JSC::JIT::compileBinaryArithOpSlowCase):
        (JSC::JIT::emit_op_div):
        (JSC::JIT::emitSlow_op_div):
        * jit/JITInlineMethods.h:
        (JSC::JIT::isOperandConstantImmediateDouble):
        (JSC::JIT::addressFor):
        (JSC::JIT::emitLoadDouble):
        (JSC::JIT::emitLoadInt32ToDouble):
        (JSC::JIT::emitJumpSlowCaseIfNotImmediateNumber):

687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713
2009-09-24  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add GYP generated files to svn:ignore
        https://bugs.webkit.org/show_bug.cgi?id=29724

        Adding the following files to the svn:ignore list (all in the
        JavaScriptCore/JavaScriptCore.gyp directory)

        JavaScriptCore.xcodeproj
        JavaScriptCore.sln
        JavaScriptCore.vcproj
        JavaScriptCore_Debug.rules
        JavaScriptCore_Release.rules
        JavaScriptCore_Release - no tcmalloc.rules
        JavaScriptCore_Purify.rules
        JavaScriptCore.mk
        JavaScriptCore_Debug_rules.mk
        JavaScriptCore_Release_rules.mk
        JavaScriptCore_Release - no tcmalloc_rules.mk
        JavaScriptCore_Purify_rules.mk
        JavaScriptCore.scons
        JavaScriptCore_main.scons

        * JavaScriptCore.gyp: Changed property svn:ignore.

714 715 716 717 718 719 720 721 722 723 724 725 726 727
2009-09-24  Yong Li  <yong.li@torchmobile.com>

        Reviewed by Adam Barth.

        Replace platform-dependent code with WTF::currentTime()
        https://bugs.webkit.org/show_bug.cgi?id=29148

        * jsc.cpp:
        (StopWatch::start):
        (StopWatch::stop):
        (StopWatch::getElapsedMS):
        * runtime/TimeoutChecker.cpp:
        (JSC::getCPUTime):

728 729 730 731 732 733 734 735 736 737 738 739
2009-09-24  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/7215058> FastMalloc scavenging thread should be named

        * wtf/FastMalloc.cpp:
        (WTF::TCMalloc_PageHeap::scavengerThread): Set the thread name.
        * wtf/Platform.h: Move the knowledge of whether pthread_setname_np exists to here as HAVE(PTHREAD_SETNAME_NP).
        * wtf/ThreadingPthreads.cpp:
        (WTF::setThreadNameInternal): Use HAVE(PTHREAD_SETNAME_NP).

740 741 742 743 744 745 746 747 748
2009-09-24  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Renamed clear to removeAll, as suggested by Darin Adler.

        * wtf/HashCountedSet.h:
        (WTF::::removeAll):

749 750 751 752 753 754 755 756 757 758 759
2009-09-24  Mark Rowe  <mrowe@apple.com>

        Reviewed by Gavin Barraclough.

        Fix FastMalloc to build with assertions enabled.

        * wtf/FastMalloc.cpp:
        (WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
        * wtf/TCSpinLock.h:
        (TCMalloc_SpinLock::IsHeld):

ggaren@apple.com's avatar
ggaren@apple.com committed
760 761 762 763 764 765 766 767
2009-09-24  Geoffrey Garen  <ggaren@apple.com>

        Suggested by Darin Adler.

        Removed some unnecessary parameter names.

        * wtf/HashCountedSet.h:

768 769 770 771 772 773 774 775 776 777 778
2009-09-24  Janne Koskinen  <janne.p.koskinen@digia.com>

        Reviewed by Simon Hausmann.

        On Windows JSChar is typedef'ed to wchar_t.

        When building with WINSCW for Symbian we need to do the
        same typedef.

        * API/JSStringRef.h:

779 780 781 782 783 784 785
2009-09-23  Geoffrey Garen  <ggaren@apple.com>

        A piece of my last patch that I forgot.

        * wtf/HashCountedSet.h:
        (WTF::::clear): Added HashCountedSet::clear.

786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802
2009-09-24  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by Gavin Barraclough.

        Avoid __clear_cache built-in function if DISABLE_BUILTIN_CLEAR_CACHE define is set
        https://bugs.webkit.org/show_bug.cgi?id=28886

        There are some GCC packages (for example GCC-2006q3 from CodeSourcery)
        which contain __clear_cache built-in function only for C while the C++
        version of __clear_cache is missing on ARM architectures.

        Fixed a small bug in the inline assembly of cacheFlush function on
        ARM_TRADITIONAL.

        * jit/ExecutableAllocator.h:
        (JSC::ExecutableAllocator::cacheFlush):

803 804 805 806 807 808 809 810 811 812 813
2009-09-23  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Added the ability to swap vectors with inline capacities, so you can
        store a vector with inline capacity in a hash table.

        * wtf/Vector.h:
        (WTF::swap):
        (WTF::VectorBuffer::swap):

814 815 816 817 818 819 820 821 822
2009-09-23  David Kilzer  <ddkilzer@apple.com>

        Move definition of USE(PLUGIN_HOST_PROCESS) from WebKitPrefix.h to Platform.h

        Reviewed by Mark Rowe.

        * wtf/Platform.h: Define WTF_USE_PLUGIN_HOST_PROCESS to 1 when
        building on 64-bit SnowLeopard.  Define to 0 elsewhere.

823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870
2009-09-22  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        Code sampling builds are broken.
        https://bugs.webkit.org/show_bug.cgi?id=29662

        Fix build.

        * bytecode/EvalCodeCache.h:
        (JSC::EvalCodeCache::get):
        * bytecode/SamplingTool.cpp:
        (JSC::ScriptSampleRecord::sample):
        (JSC::SamplingTool::doRun):
        (JSC::SamplingTool::notifyOfScope):
        (JSC::compareScriptSampleRecords):
        (JSC::SamplingTool::dump):
        * bytecode/SamplingTool.h:
        (JSC::ScriptSampleRecord::ScriptSampleRecord):
        (JSC::ScriptSampleRecord::~ScriptSampleRecord):
        (JSC::SamplingTool::SamplingTool):
        * bytecompiler/BytecodeGenerator.cpp:
        (JSC::BytecodeGenerator::BytecodeGenerator):
        (JSC::BytecodeGenerator::emitNewFunction):
        (JSC::BytecodeGenerator::emitNewFunctionExpression):
        * bytecompiler/BytecodeGenerator.h:
        (JSC::BytecodeGenerator::makeFunction):
        * debugger/Debugger.cpp:
        (JSC::evaluateInGlobalCallFrame):
        * debugger/DebuggerCallFrame.cpp:
        (JSC::DebuggerCallFrame::evaluate):
        * parser/Nodes.cpp:
        (JSC::ScopeNode::ScopeNode):
        * runtime/Completion.cpp:
        (JSC::checkSyntax):
        (JSC::evaluate):
        * runtime/Executable.cpp:
        (JSC::FunctionExecutable::fromGlobalCode):
        * runtime/Executable.h:
        (JSC::ScriptExecutable::ScriptExecutable):
        (JSC::EvalExecutable::EvalExecutable):
        (JSC::EvalExecutable::create):
        (JSC::ProgramExecutable::ProgramExecutable):
        (JSC::FunctionExecutable::create):
        (JSC::FunctionExecutable::FunctionExecutable):
        * runtime/JSGlobalObjectFunctions.cpp:
        (JSC::globalFuncEval):

871 872 873 874 875 876
2009-09-22  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        * wtf/Forward.h: Added PassOwnPtr.

877 878 879 880 881 882 883 884 885 886
2009-09-22  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by David Levin.

        Ported chromium.org's javascriptcore.gyp for the webkit chromium port.

        https://bugs.webkit.org/show_bug.cgi?id=29617

        * JavaScriptCore.gyp/JavaScriptCore.gyp: Added.

887 888 889 890 891 892 893 894 895 896 897
2009-09-22  Thiago Macieira  <thiago.macieira@nokia.com>

        Reviewed by Simon Hausmann.

        Fix compilation with WINSCW: no varargs macros

        Disable variadic arguments for WINSCW just like we do
        for MSVC7.

        * wtf/Assertions.h:

898 899 900 901 902 903 904 905 906 907 908
2009-09-22  Kent Hansen  <khansen@trolltech.com>

        Reviewed by Simon Hausmann.

        Disable variadic macros on MSVC7.

        This was originally added in r26589 but not extended
        when LOG_DISABLED/ASSERT_DISABLED was introduced.

        * wtf/Assertions.h:

909 910 911 912 913 914 915 916 917
2009-09-22  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed build fix for Windows CE < 5

        Define WINCEBASIC to disable the IsDebuggerPresent() code in
        wtf/Assertions.cpp.

        * JavaScriptCore.pri:

918 919 920 921 922 923 924 925 926 927 928 929 930 931 932
2009-09-22  Joerg Bornemann  <joerg.bornemann@nokia.com>

        Reviewed by Simon Hausmann.

        Fix major memory leak in JavaScriptCore RegisterFile on Windows CE

        https://bugs.webkit.org/show_bug.cgi?id=29367

        On Widows CE we must decommit all committed pages before we release
        them. See VirtualFree documentation.
        Desktop Windows behaves much smoother in this situation.

        * interpreter/RegisterFile.cpp:
        (JSC::RegisterFile::~RegisterFile):

933 934 935 936 937 938 939 940 941
2009-09-21  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Simon Fraser & Sam Weinig.

        Add ENABLE(ORIENTATION_EVENTS)
        https://bugs.webkit.org/show_bug.cgi?id=29508

        * wtf/Platform.h: Also sort PLATFORM(IPHONE) #defines.

942 943 944 945 946 947 948 949 950 951 952 953 954 955
2009-09-21  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>

        Reviewed by Eric Seidel.

        [Fix] SourceCode's uninitialized member
        
        Potential source of crashes and bugs was fixed. Default constructor
        didn't initialized m_provider member.

        https://bugs.webkit.org/show_bug.cgi?id=29364

        * parser/SourceCode.h:
        (JSC::SourceCode::SourceCode):

956 957 958 959 960 961 962 963 964 965 966 967 968 969 970
2009-09-21  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        REGRESSION (r48582): Crash in StructureStubInfo::initPutByIdTransition when reloading trac.webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=29599

        It is unsafe to attempt to cache new property transitions on
        dictionaries of any type.

        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::tryCachePutByID):
        * jit/JITStubs.cpp:
        (JSC::JITThunks::tryCachePutByID):

971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007
2009-09-21  Oliver Hunt  <oliver@apple.com>

        RS=Maciej Stachowiak.

        Re-land SNES fix with corrected assertion.

        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::resolveGlobal):
        (JSC::Interpreter::tryCachePutByID):
        (JSC::Interpreter::tryCacheGetByID):
        * jit/JITStubs.cpp:
        (JSC::JITThunks::tryCachePutByID):
        (JSC::JITThunks::tryCacheGetByID):
        (JSC::DEFINE_STUB_FUNCTION):
        * runtime/BatchedTransitionOptimizer.h:
        (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
        * runtime/JSObject.cpp:
        (JSC::JSObject::removeDirect):
        * runtime/Structure.cpp:
        (JSC::Structure::Structure):
        (JSC::Structure::getEnumerablePropertyNames):
        (JSC::Structure::despecifyDictionaryFunction):
        (JSC::Structure::addPropertyTransitionToExistingStructure):
        (JSC::Structure::addPropertyTransition):
        (JSC::Structure::removePropertyTransition):
        (JSC::Structure::toDictionaryTransition):
        (JSC::Structure::toCacheableDictionaryTransition):
        (JSC::Structure::toUncacheableDictionaryTransition):
        (JSC::Structure::fromDictionaryTransition):
        (JSC::Structure::removePropertyWithoutTransition):
        * runtime/Structure.h:
        (JSC::Structure::isDictionary):
        (JSC::Structure::isUncacheableDictionary):
        (JSC::Structure::):
        * runtime/StructureChain.cpp:
        (JSC::StructureChain::isCacheable):

1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019
2009-09-21  Adam Roben  <aroben@apple.com>

        Revert r48573, as it caused many assertion failures

        * interpreter/Interpreter.cpp:
        * jit/JITStubs.cpp:
        * runtime/BatchedTransitionOptimizer.h:
        * runtime/JSObject.cpp:
        * runtime/Structure.cpp:
        * runtime/Structure.h:
        * runtime/StructureChain.cpp:

1020 1021 1022 1023 1024 1025
2009-09-21  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed make dist build fix. Missing files.

        * GNUmakefile.am:

1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039
2009-09-19  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Sam 'Cabin Boy' Weinig.

        Fix stack alignment with ARM THUMB2 JIT.
        https://bugs.webkit.org/show_bug.cgi?id=29526
        
        Stack is currently being decremented by 0x3c, bump this to 0x40 to make this a
        multiple of 16 bytes.

        * jit/JITStubs.cpp:
        (JSC::JITThunks::JITThunks):
        * jit/JITStubs.h:

1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097
2009-09-20  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        SNES is too slow
        https://bugs.webkit.org/show_bug.cgi?id=29534

        The problem was that the emulator used multiple classes with
        more properties than our dictionary cutoff allowed, this resulted
        in more or less all critical logic inside the emulator requiring
        uncached property access.

        Rather than simply bumping the dictionary cutoff, this patch
        recognises that there are two ways to create a "dictionary"
        structure.  Either by adding a large number of properties, or
        by removing a property.  In the case of adding properties we
        know all the existing properties will maintain their existing
        offsets, so we could cache access to those properties, if we
        know they won't be removed.

        To make this possible, this patch adds the logic required to
        distinguish a dictionary created by addition from one created
        by removal.  With this logic in place we can now cache access
        to objects with large numbers of properties.

        SNES performance improved by more than 6x.

        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::resolveGlobal):
        (JSC::Interpreter::tryCachePutByID):
        (JSC::Interpreter::tryCacheGetByID):
        * jit/JITStubs.cpp:
        (JSC::JITThunks::tryCachePutByID):
        (JSC::JITThunks::tryCacheGetByID):
        (JSC::DEFINE_STUB_FUNCTION):
        * runtime/BatchedTransitionOptimizer.h:
        (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
        * runtime/JSObject.cpp:
        (JSC::JSObject::removeDirect):
        * runtime/Structure.cpp:
        (JSC::Structure::Structure):
        (JSC::Structure::getEnumerablePropertyNames):
        (JSC::Structure::despecifyDictionaryFunction):
        (JSC::Structure::addPropertyTransitionToExistingStructure):
        (JSC::Structure::addPropertyTransition):
        (JSC::Structure::removePropertyTransition):
        (JSC::Structure::toDictionaryTransition):
        (JSC::Structure::toCacheableDictionaryTransition):
        (JSC::Structure::toUncacheableDictionaryTransition):
        (JSC::Structure::fromDictionaryTransition):
        (JSC::Structure::removePropertyWithoutTransition):
        * runtime/Structure.h:
        (JSC::Structure::isDictionary):
        (JSC::Structure::isUncacheableDictionary):
        (JSC::Structure::):
        * runtime/StructureChain.cpp:
        (JSC::StructureChain::isCacheable):

1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112
2009-09-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Implement ES5 Object.create function
        https://bugs.webkit.org/show_bug.cgi?id=29524

        Implement Object.create.  Very simple patch, effectively Object.defineProperties
        only creating the target object itself.

        * runtime/CommonIdentifiers.h:
        * runtime/ObjectConstructor.cpp:
        (JSC::ObjectConstructor::ObjectConstructor):
        (JSC::objectConstructorCreate):

mitz@apple.com's avatar
mitz@apple.com committed
1113 1114 1115 1116 1117 1118
2009-09-19  Dan Bernstein  <mitz@apple.com>

        Fix clean debug builds.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136
2009-09-19  Joerg Bornemann  <joerg.bornemann@nokia.com>

        Reviewed by George Staikos.

        QtWebKit Windows CE compile fix

        https://bugs.webkit.org/show_bug.cgi?id=29379

        There is no _aligned_alloc or _aligned_free on Windows CE.
        We just use the Windows code that was there before and use VirtualAlloc.
        But that also means that the BLOCK_SIZE must be 64K as this function
        allocates on 64K boundaries.

        * runtime/Collector.cpp:
        (JSC::Heap::allocateBlock):
        (JSC::Heap::freeBlock):
        * runtime/Collector.h:

1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152
2009-09-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        Implement ES5 Object.defineProperties function
        https://bugs.webkit.org/show_bug.cgi?id=29522

        Implement Object.defineProperties.  Fairly simple patch, simply makes use of
        existing functionality used for defineProperty.

        * runtime/CommonIdentifiers.h:
        * runtime/ObjectConstructor.cpp:
        (JSC::ObjectConstructor::ObjectConstructor):
        (JSC::defineProperties):
        (JSC::objectConstructorDefineProperties):

oliver@apple.com's avatar
oliver@apple.com committed
1153 1154 1155 1156 1157 1158 1159 1160 1161
2009-09-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Windows build fix part2

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

oliver@apple.com's avatar
oliver@apple.com committed
1162 1163 1164 1165 1166 1167 1168 1169 1170
2009-09-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Buildfix).

        Windows build fix part 1.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247
2009-09-18  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        Implement ES5 Object.defineProperty function
        https://bugs.webkit.org/show_bug.cgi?id=29503

        Implement Object.defineProperty.  This requires adding the API to
        ObjectConstructor, along with a helper function that implements the
        ES5 internal [[ToPropertyDescriptor]] function.  It then adds
        JSObject::defineOwnProperty that implements the appropriate ES5 semantics.
        Currently defineOwnProperty uses a delete followed by a put to redefine
        attributes of a property, clearly this is less efficient than it could be
        but we can improve this if it needs to be possible in future.

        * JavaScriptCore.exp:
        * debugger/DebuggerActivation.cpp:
        (JSC::DebuggerActivation::defineGetter):
        (JSC::DebuggerActivation::defineSetter):
        * debugger/DebuggerActivation.h:
        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::privateExecute):
        * jit/JITStubs.cpp:
          Update defineGetter/Setter calls
        * runtime/CommonIdentifiers.h:
        * runtime/JSArray.cpp:
        (JSC::JSArray::getOwnPropertySlot):
        * runtime/JSGlobalObject.cpp:
        (JSC::JSGlobalObject::defineGetter):
        (JSC::JSGlobalObject::defineSetter):
        * runtime/JSGlobalObject.h:
        * runtime/JSObject.cpp:
        (JSC::JSObject::defineGetter):
        (JSC::JSObject::defineSetter):
        (JSC::putDescriptor):
        (JSC::JSObject::defineOwnProperty):
        * runtime/JSObject.h:
        * runtime/ObjectConstructor.cpp:
        (JSC::ObjectConstructor::ObjectConstructor):
        (JSC::objectConstructorGetOwnPropertyDescriptor):
        (JSC::toPropertyDescriptor):
        (JSC::objectConstructorDefineProperty):
        * runtime/ObjectPrototype.cpp:
        (JSC::objectProtoFuncDefineGetter):
        (JSC::objectProtoFuncDefineSetter):
        * runtime/PropertyDescriptor.cpp:
        (JSC::PropertyDescriptor::writable):
        (JSC::PropertyDescriptor::enumerable):
        (JSC::PropertyDescriptor::configurable):
        (JSC::PropertyDescriptor::isDataDescriptor):
        (JSC::PropertyDescriptor::isGenericDescriptor):
        (JSC::PropertyDescriptor::isAccessorDescriptor):
        (JSC::PropertyDescriptor::getter):
        (JSC::PropertyDescriptor::setter):
        (JSC::PropertyDescriptor::setDescriptor):
        (JSC::PropertyDescriptor::setAccessorDescriptor):
        (JSC::PropertyDescriptor::setWritable):
        (JSC::PropertyDescriptor::setEnumerable):
        (JSC::PropertyDescriptor::setConfigurable):
        (JSC::PropertyDescriptor::setSetter):
        (JSC::PropertyDescriptor::setGetter):
        (JSC::PropertyDescriptor::equalTo):
        (JSC::PropertyDescriptor::attributesEqual):
        (JSC::PropertyDescriptor::attributesWithOverride):
        * runtime/PropertyDescriptor.h:
        (JSC::PropertyDescriptor::PropertyDescriptor):
        (JSC::PropertyDescriptor::value):
        (JSC::PropertyDescriptor::setValue):
        (JSC::PropertyDescriptor::isEmpty):
        (JSC::PropertyDescriptor::writablePresent):
        (JSC::PropertyDescriptor::enumerablePresent):
        (JSC::PropertyDescriptor::configurablePresent):
        (JSC::PropertyDescriptor::setterPresent):
        (JSC::PropertyDescriptor::getterPresent):
        (JSC::PropertyDescriptor::operator==):
        (JSC::PropertyDescriptor::):

1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259
2009-09-18  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by Gavin Barraclough.

        Build fix to enable ARM_THUMB2 on Linux
        https://bugs.webkit.org/show_bug.cgi?id=

        * jit/ExecutableAllocator.h:
        (JSC::ExecutableAllocator::cacheFlush):
        * jit/JITStubs.cpp:
        * wtf/Platform.h:

1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296
2009-09-18  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by Gavin Barraclough.

        Defines two pseudo-platforms for ARM and Thumb-2 instruction set.
        https://bugs.webkit.org/show_bug.cgi?id=29122

        Introduces WTF_PLATFORM_ARM_TRADITIONAL and WTF_PLATFORM_ARM_THUMB2
        macros on ARM platforms. The PLATFORM(ARM_THUMB2) should be used
        when Thumb-2 instruction set is the required target. The
        PLATFORM(ARM_TRADITIONAL) is for generic ARM instruction set. In
        case where the code is common the PLATFORM(ARM) have to be used.

        * assembler/ARMAssembler.cpp:
        * assembler/ARMAssembler.h:
        * assembler/ARMv7Assembler.h:
        * assembler/MacroAssembler.h:
        * assembler/MacroAssemblerARM.cpp:
        * assembler/MacroAssemblerARM.h:
        * assembler/MacroAssemblerCodeRef.h:
        (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
        * jit/ExecutableAllocator.h:
        * jit/JIT.h:
        * jit/JITInlineMethods.h:
        (JSC::JIT::beginUninterruptedSequence):
        (JSC::JIT::preserveReturnAddressAfterCall):
        (JSC::JIT::restoreReturnAddressBeforeReturn):
        (JSC::JIT::restoreArgumentReference):
        (JSC::JIT::restoreArgumentReferenceForTrampoline):
        * jit/JITOpcodes.cpp:
        * jit/JITStubs.cpp:
        (JSC::JITThunks::JITThunks):
        * jit/JITStubs.h:
        * wtf/Platform.h:
        * yarr/RegexJIT.cpp:
        (JSC::Yarr::RegexGenerator::generateEnter):

1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307
2009-09-18  Joerg Bornemann  <joerg.bornemann@nokia.com>

        Reviewed by Simon Hausmann.

        Fix the Qt/Windows CE build.

        * JavaScriptCore.pri: Build the ce_time.cpp functions from
        within Qt externally.
        * wtf/DateMath.cpp: Removed unnecessary Qt #ifdef, for the
        Qt build these functions are no external, too.

1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320
2009-09-17  Janne Koskinen  <janne.p.koskinen@digia.com>

        Reviewed by Simon Hausmann.

        Symbian/WINSCW build fox.

        Repeat Q_OS_WIN wchar_t hack for WINSCW, similar to
        revision 24774.

        WINSCW defines wchar_t, thus UChar has to be wchar_t

        * wtf/unicode/qt4/UnicodeQt4.h:

1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332
2009-09-17  Janne Koskinen  <janne.p.koskinen@digia.com>

        Reviewed by Simon Hausmann.

        Symbian/WINSCW build fix.

        https://bugs.webkit.org/show_bug.cgi?id=29186

        WINSCW Template specialisation name in declaration must the be the same as in implementation.

        * runtime/LiteralParser.h:

1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351
2009-09-15  Norbert Leser  <norbert.leser@nokia.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=27060

        Symbian compiler for emulator target (WINSCW) fails with
        "illegal operand" for m_attributesInPrevious in structure.ccp
        (when calling make_pair functions).
        This error is apparently due to the compiler not properly
        resolving the unsigned type of the declared bitfield.

        Initial patch explicitly casted m_attributesInPrevious
        to unsigned, but since bitfield optimization is not critical for
        the emulator target, this conditional change in header file
        appears to be least intrusive.

        * runtime/Structure.h:

1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363
2009-09-16  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by Darin Adler.

        Fix GCC warnings on ARM_THUMB2 platform

        * assembler/ARMv7Assembler.h:
        (JSC::ARMThumbImmediate::countLeadingZerosPartial):
        * assembler/MacroAssemblerARMv7.h:
        (JSC::MacroAssemblerARMv7::branchTruncateDoubleToInt32):
        (JSC::MacroAssemblerARMv7::moveFixedWidthEncoding):

bolsinga@apple.com's avatar
bolsinga@apple.com committed
1364 1365 1366 1367 1368 1369 1370 1371 1372
2009-09-16  Greg Bolsinga  <bolsinga@apple.com>

        Add ENABLE(INSPECTOR)
        https://bugs.webkit.org/show_bug.cgi?id=29260

        Reviewed by David Kilzer.

        * wtf/Platform.h:

bolsinga@apple.com's avatar
bolsinga@apple.com committed
1373 1374 1375 1376 1377 1378 1379 1380 1381
2009-09-16  Greg Bolsinga  <bolsinga@apple.com>

        Add ENABLE(CONTEXT_MENUS)
        https://bugs.webkit.org/show_bug.cgi?id=29225

        Reviewed by David Kilzer.

        * wtf/Platform.h:

1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392
2009-09-16  Benjamin C Meyer  <benjamin.meyer@torchmobile.com>

        Reviewed by Eric Seidel.

        The webkit stdint and stdbool headers exists because
        the compiler MSVC doesn't include them.  The check
        should not check for PLATFORM(WIN_OS) but for MSVC.

        * os-win32/stdbool.h:
        * os-win32/stdint.h:

bolsinga@apple.com's avatar
bolsinga@apple.com committed
1393 1394 1395 1396 1397 1398 1399 1400 1401
2009-09-16  Greg Bolsinga  <bolsinga@apple.com>

        Add ENABLE(DRAG_SUPPORT)
        https://bugs.webkit.org/show_bug.cgi?id=29233

        Reviewed by David Kilzer.

        * wtf/Platform.h:

1402 1403 1404 1405 1406 1407
2009-09-16  Kevin Ollivier  <kevino@theolliviers.com>

        waf build fix after flag was moved to correct place.

        * wscript:

1408 1409 1410 1411 1412 1413 1414 1415
2009-09-16  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Build fix for 64-bit Qt on Mac OS X

        * wtf/Platform.h: Use JSVALUE64 on DARWIN, not only on MAC

zoltan@webkit.org's avatar
 
zoltan@webkit.org committed
1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440
2009-09-16  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Fix wtf/ThreadSpecific.h under Qt to free thread local objects.
        https://bugs.webkit.org/show_bug.cgi?id=29295

        This is an important fix when JavaScript workers are in use, since
        unfreed ThreadGlobalDatas leak a big amount of memory (50-100k each).
        QThreadStorage calls the destructor of a given object, which is the
        ThreadSpecific::Data. Unlike pthread, Qt is object oriented, and does
        not support the calling of a static utility function when the thread
        is about to close. In this patch we call the ThreadSpecific::destroy()
        utility function from the destructor of ThreadSpecific::Data. Moreover,
        since Qt resets all thread local values to 0 before the calling of the
        appropriate destructors, we set back the pointer to its original value.
        This is necessary because the get() method of the ThreadSpecific
        object may be called during the exuction of the destructor.

        * wtf/ThreadSpecific.h:
        (WTF::ThreadSpecific::Data::~Data):
        (WTF::::~ThreadSpecific):
        (WTF::::set):
        (WTF::::destroy):

1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484
2009-09-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        Allow anonymous storage inside JSObject
        https://bugs.webkit.org/show_bug.cgi?id=29168

        Add the concept of anonymous slots to Structures so that it is
        possible to store references to values that need marking in the
        standard JSObject storage buffer.  This allows us to reduce the
        malloc overhead of some objects (by allowing them to store JS
        values in the inline storage of the object) and reduce the 
        dependence of custom mark functions (if all an objects children
        are in the standard object property storage there's no need to
        mark them manually).

        * JavaScriptCore.exp:
        * runtime/JSObject.h:
        (JSC::JSObject::putAnonymousValue):
        (JSC::JSObject::getAnonymousValue):
        (JSC::JSObject::addAnonymousSlots):
        * runtime/JSWrapperObject.h:
        (JSC::JSWrapperObject::createStructure):
        (JSC::JSWrapperObject::JSWrapperObject):
        (JSC::JSWrapperObject::setInternalValue):
        * runtime/PropertyMapHashTable.h:
        * runtime/Structure.cpp:
        (JSC::Structure::~Structure):
        (JSC::Structure::materializePropertyMap):
        (JSC::Structure::addAnonymousSlotsTransition):
        (JSC::Structure::copyPropertyTable):
        (JSC::Structure::put):
        (JSC::Structure::rehashPropertyMapHashTable):
        * runtime/Structure.h:
        (JSC::Structure::propertyStorageSize):
        (JSC::StructureTransitionTable::reifySingleTransition):
        * runtime/StructureTransitionTable.h:
        (JSC::StructureTransitionTable::TransitionTable::addSlotTransition):
        (JSC::StructureTransitionTable::TransitionTable::removeSlotTransition):
        (JSC::StructureTransitionTable::TransitionTable::getSlotTransition):
        (JSC::StructureTransitionTable::getAnonymousSlotTransition):
        (JSC::StructureTransitionTable::addAnonymousSlotTransition):
        (JSC::StructureTransitionTable::removeAnonymousSlotTransition):

1485 1486 1487 1488 1489 1490 1491 1492
2009-09-15  Alex Milowski  <alex@milowski.com>

        Reviewed by Tor Arne Vestbø.

        Added the ENABLE_MATHML define to the features

        * Configurations/FeatureDefines.xcconfig:

1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505
2009-09-15 Csaba Osztrogonac <oszi@inf.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Build fix for windows.

        After http://trac.webkit.org/changeset/47795 the MinGW build broke,
        because MinGW has __mingw_aligned_malloc instead of _aligned_malloc.

        * runtime/Collector.cpp:
        (JSC::Heap::allocateBlock): MinGW case added.
        (JSC::Heap::freeBlock): MinGW case added.

1506 1507 1508 1509 1510 1511 1512 1513 1514 1515
2009-09-15  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Build fix for Windows/MinGW

        https://bugs.webkit.org/show_bug.cgi?id=29268

        * wtf/Platform.h: JSVALUE32_64 temporarily disabled on PLATFORM(WIN_OS) with COMPILER(MINGW)

1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528
2009-09-14  Gabor Loki  <loki@inf.u-szeged.hu>

        Reviewed by Gavin Barraclough.

        Detect VFP at runtime in generic ARM port on Linux platform.
        https://bugs.webkit.org/show_bug.cgi?id=29076

        * JavaScriptCore.pri:
        * assembler/MacroAssemblerARM.cpp: Added.
        (JSC::isVFPPresent):
        * assembler/MacroAssemblerARM.h:
        (JSC::MacroAssemblerARM::supportsFloatingPoint):

1529 1530 1531 1532 1533 1534 1535 1536 1537
2009-09-14  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Build fix for windows build.

        * JavaScriptCore.pri: Correct a logic error.
        * pcre/dftables: Add missing paranthesis for tmpdir function.

1538 1539 1540 1541 1542 1543 1544 1545 1546
2009-09-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Build fix for windows exports (again).

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

1547 1548 1549 1550 1551 1552 1553 1554 1555
2009-09-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Build fix for windows exports.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

1556 1557 1558 1559 1560 1561 1562 1563
2009-09-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Correct fix for non-allinonefile builds

        * runtime/ObjectConstructor.cpp:

oliver@apple.com's avatar
oliver@apple.com committed
1564 1565 1566 1567 1568 1569 1570 1571
2009-09-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Fix non-allinonefile builds

        * runtime/ObjectConstructor.cpp:

oliver@apple.com's avatar
oliver@apple.com committed
1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620
2009-09-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        [ES5] Implement Object.keys
        https://bugs.webkit.org/show_bug.cgi?id=29170

        This patch basically requires two separate steps, the first is to split getPropertyNames
        into two functions -- getOwnPropertyNames and getPropertyNames, basically making them behave
        in the same way as getOwnPropertySlot and getPropertySlot.  In essence getOwnPropertyNames
        produces the list of properties on an object excluding its prototype chain and getPropertyNames
        just iterates the the object and its prototype chain calling getOwnPropertyNames at each level.

        * API/JSCallbackObject.h:
        * API/JSCallbackObjectFunctions.h:
        (JSC::::getOwnPropertyNames):
        * JavaScriptCore.exp:
        * debugger/DebuggerActivation.cpp:
        (JSC::DebuggerActivation::getOwnPropertyNames):
        * debugger/DebuggerActivation.h:
        * runtime/CommonIdentifiers.h:
        * runtime/JSArray.cpp:
        (JSC::JSArray::getOwnPropertyNames):
        * runtime/JSArray.h:
        * runtime/JSByteArray.cpp:
        (JSC::JSByteArray::getOwnPropertyNames):
        * runtime/JSByteArray.h:
        * runtime/JSNotAnObject.cpp:
        (JSC::JSNotAnObject::getOwnPropertyNames):
        * runtime/JSNotAnObject.h:
        * runtime/JSObject.cpp:
        (JSC::JSObject::getOwnPropertyNames):
        * runtime/JSObject.h:
        * runtime/JSVariableObject.cpp:
        (JSC::JSVariableObject::getOwnPropertyNames):
        * runtime/JSVariableObject.h:
        * runtime/ObjectConstructor.cpp:
        (JSC::ObjectConstructor::ObjectConstructor):
        (JSC::objectConstructorKeys):
        * runtime/RegExpMatchesArray.h:
        (JSC::RegExpMatchesArray::getOwnPropertyNames):
        * runtime/StringObject.cpp:
        (JSC::StringObject::getOwnPropertyNames):
        * runtime/StringObject.h:
        * runtime/Structure.cpp:
        (JSC::Structure::getOwnEnumerablePropertyNames):
        (JSC::Structure::getEnumerablePropertyNames):
        * runtime/Structure.h:

1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663
2009-09-11  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        getPropertyNames caching is invalid when the prototype chain contains objects with custom getPropertyNames
        https://bugs.webkit.org/show_bug.cgi?id=29214

        Add a flag to TypeInfo to indicate whether a type overrides getPropertyNames.
        This flag is used to make sure that caching of the property name data is safe.

        * API/JSCallbackConstructor.h:
        (JSC::JSCallbackConstructor::createStructure):
        * debugger/DebuggerActivation.h:
        (JSC::DebuggerActivation::createStructure):
        * runtime/BooleanObject.h:
        (JSC::BooleanObject::createStructure):
        * runtime/DatePrototype.h:
        (JSC::DatePrototype::createStructure):
        * runtime/FunctionPrototype.h:
        (JSC::FunctionPrototype::createStructure):
        * runtime/JSONObject.h:
        (JSC::JSONObject::createStructure):
        * runtime/JSObject.h:
        (JSC::JSObject::createStructure):
        * runtime/JSTypeInfo.h:
        (JSC::TypeInfo::hasDefaultGetPropertyNames):
        * runtime/JSVariableObject.h:
        (JSC::JSVariableObject::createStructure):
        * runtime/JSWrapperObject.h:
        (JSC::JSWrapperObject::createStructure):
        * runtime/MathObject.h:
        (JSC::MathObject::createStructure):
        * runtime/NumberConstructor.h:
        (JSC::NumberConstructor::createStructure):
        * runtime/NumberObject.h:
        (JSC::NumberObject::createStructure):
        * runtime/RegExpConstructor.h:
        (JSC::RegExpConstructor::createStructure):
        * runtime/RegExpObject.h:
        (JSC::RegExpObject::createStructure):
        * runtime/StructureChain.cpp:
        (JSC::StructureChain::isCacheable):

ap@apple.com's avatar
ap@apple.com committed
1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677
2009-09-11  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Geoff Garen.

        https://bugs.webkit.org/show_bug.cgi?id=29207
        Add checks for using WebCore JS context on secondary threads

        * runtime/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData):
        * runtime/JSGlobalData.h:
        Added a new mainThreadOnly flag that WebCore would set.

        * runtime/Collector.cpp: (JSC::Heap::registerThread): JSC API methods always call this,
        so this is a good place to check that the API isn't used form a wrong thread.

1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696
2009-09-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Reviewed by Simon Hausmann.

        Compiling JavaScriptCore on sparc 64 with gcc fails.

        ThreadSafeShared uses the atomic __gnu_cxx::__exchange_and_add with an int,
        however on sparc 64 the _Atomic_word argument is typedefed to long (8 bytes).

        The patch disables WTF_USE_LOCKFREE_THREADSAFESHARED in ThreadSafeShared to use
        a mutex instead when compiling for sparc 64 with gcc.

        https://bugs.webkit.org/show_bug.cgi?id=29175

        * wtf/Platform.h:
        __sparc64__ is not defined on all OS.
        Uses instead: __sparc__ && __arch64__ || __sparcv9
        * wtf/Threading.h:

1697 1698 1699 1700 1701 1702 1703 1704 1705 1706
2009-09-11  Prasanth Ullattil  <prasanth.ullattil@nokia.com>

        Reviewed by Simon Hausmann.

        Fix compile error on Windows7(64Bit) with latest SDK.

        Added the missing include file.

        * runtime/UString.cpp:

1707 1708 1709 1710 1711 1712 1713 1714 1715
2009-09-11  Joerg Bornemann  <joerg.bornemann@trolltech.com>

        Reviewed by Simon Hausmann.

        Qt/Windows CE compile fix, include the executable allocator and
        markstack implementation in the windows build.

        * JavaScriptCore.pri:

jam@chromium.org's avatar
jam@chromium.org committed
1716 1717 1718 1719 1720 1721 1722 1723 1724
2009-09-08  John Abd-El-Malek  <jam@chromium.org>

        Reviewed by Dimitri Glazkov.

        Remove unneeded define for ActiveX.
        https://bugs.webkit.org/show_bug.cgi?id=29054

        * wtf/Platform.h:

1725 1726 1727 1728 1729 1730 1731 1732
2009-09-10  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Sam Weinig.

        Update JavaScriptCore and WebKit's FeatureDefines.xcconfig so that they are in sync with WebCore as they need to be.

        * Configurations/FeatureDefines.xcconfig:

1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743
2009-09-10  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Export WTF::tryFastMalloc used in WebSocketChannel.
        https://bugs.webkit.org/show_bug.cgi?id=28038

        * JavaScriptCore.exp:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

oliver@apple.com's avatar
oliver@apple.com committed
1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755
2009-09-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Make StructureTransitionTable use an enum for the PtrAndFlags member
        used for the single transition slot optimisation.

        * runtime/StructureTransitionTable.h:
        (JSC::StructureTransitionTable::StructureTransitionTable):
        (JSC::StructureTransitionTable::usingSingleTransitionSlot):
        (JSC::StructureTransitionTable::):

1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791
2009-09-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        Refactor StructureTransitionTable and Structure to unify handling of the single slot optimization
        https://bugs.webkit.org/show_bug.cgi?id=29141

        Make StructureTransitionTable encapsulate the single transition slot optimization.

        * runtime/Structure.cpp:
        (JSC::Structure::Structure):
        (JSC::Structure::~Structure):
        (JSC::Structure::addPropertyTransitionToExistingStructure):
        (JSC::Structure::addPropertyTransition):
        (JSC::Structure::addPropertyWithoutTransition):
        (JSC::Structure::removePropertyWithoutTransition):
        (JSC::Structure::hasTransition):
        * runtime/Structure.h:
        (JSC::StructureTransitionTable::contains):
        (JSC::StructureTransitionTable::get):
        (JSC::StructureTransitionTable::hasTransition):
        (JSC::StructureTransitionTable::reifySingleTransition):
        * runtime/StructureTransitionTable.h:
        (JSC::StructureTransitionTable::StructureTransitionTable):
        (JSC::StructureTransitionTable::~StructureTransitionTable):
        (JSC::StructureTransitionTable::remove):
        (JSC::StructureTransitionTable::add):
        (JSC::StructureTransitionTable::table):
        (JSC::StructureTransitionTable::singleTransition):
        (JSC::StructureTransitionTable::usingSingleTransitionSlot):
        (JSC::StructureTransitionTable::setSingleTransition):
        (JSC::StructureTransitionTable::setTransitionTable):
        (JSC::StructureTransitionTable::):
        * wtf/PtrAndFlags.h:
        (WTF::PtrAndFlags::PtrAndFlags):

1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807
2009-09-10  Zoltan Horvath  <zoltan@webkit.org>

        Reviewed by Darin Adler.

        Implement fastDeleteSkippingDestructor for FastAllocBase and fastDeleteAllValues for HashSet
        https://bugs.webkit.org/show_bug.cgi?id=25930

        FastAllocBase has been extended with fastDeleteSkippingDestructor function which
        releases memory without destructor call. fastDeleteAllValues has been implemented 
        similar as deleteAllValues but it uses fastDelete function to release memory.

        * wtf/FastAllocBase.h:
        (WTF::fastDeleteSkippingDestructor):
        * wtf/HashSet.h:
        (WTF::fastDeleteAllValues):

1808 1809 1810 1811 1812 1813 1814 1815 1816 1817
2009-09-10  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Darin Adler.

        ARM compiler does not understand GCC visibility attribute
        https://bugs.webkit.org/show_bug.cgi?id=29079

        * API/JSBase.h: Make the test more specific to hit only
        the GCC compiler

1818 1819 1820 1821 1822 1823 1824
2009-09-10  Adam Barth  <abarth@webkit.org>

        Unreviewed revert of the previous change.  It broke the tests.

        * wtf/dtoa.cpp:
        (WTF::dtoa):

1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835
2009-09-10  Ben Laurie  <benl@google.com>

        Reviewed by Adam Barth.

        <https://bugs.webkit.org/show_bug.cgi?id=26836>

        If dtoa was given a small buffer and the number was either infinite or
        NaN, then the buffer would be overflowed.

        * wtf/dtoa.cpp:

1836 1837 1838 1839 1840 1841 1842 1843 1844
2009-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Darin Adler.

        Change reinterpret_cast to static_cast in r48212.

        * jit/ExecutableAllocator.h:
        (JSC::ExecutableAllocator::cacheFlush):

1845 1846 1847 1848 1849 1850 1851 1852 1853
2009-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Darin Adler.

        Remove WTF_PLATFORM_FORCE_PACK as it is no longer used
        https://bugs.webkit.org/show_bug.cgi?id=29066

        * wtf/Platform.h:

1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864
2009-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Ariya Hidayat.

        Implement flushing the instruction cache for Symbian
        https://bugs.webkit.org/show_bug.cgi?id=29075

        * jit/ExecutableAllocator.h:
        (JSC::ExecutableAllocator::cacheFlush): Call IMB_Range to flush
        the instruction cache on Symbian

1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879
2009-09-09  Kent Hansen  <khansen@trolltech.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=29024
        Make JavaScriptCore compile on platforms with case-insensitive file systems and typeinfo.h in STL

        These platforms include Microsoft Visual Studio 2003, and Symbian with Metrowerks compiler.

        * JavaScriptCore.gypi:
        * JavaScriptCore.xcodeproj/project.pbxproj:
        * runtime/JSTypeInfo.h: Copied from JavaScriptCore/runtime/TypeInfo.h.
        * runtime/Structure.h:
        * runtime/TypeInfo.h: Removed.

1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891
2009-09-08  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        JSON.stringify(Date) loses the milliseconds information
        https://bugs.webkit.org/show_bug.cgi?id=29063

        Make sure we include milliseconds in the output of toISOString.

        * runtime/DatePrototype.cpp:
        (JSC::dateProtoFuncToISOString):

1892 1893 1894 1895 1896 1897 1898
2009-09-08  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix, generate derived sources earlier in order to make sure
        they're found by the build system when generating the list of sources to build.

        * wscript:

1899 1900 1901 1902 1903 1904 1905 1906 1907 1908
2009-09-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Simon Hausmann.

        Build fix when USE(LOCKFREE_THREADSAFESHARED) is not defined
        https://bugs.webkit.org/show_bug.cgi?id=29011

        * wtf/Threading.h: Use LOCKFREE_THREADSAFESHARED guard for 
        atomicIncrement and atomicDecrement

1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926
2009-09-07  Zoltan Horvath  <zoltan@webkit.org>

        Reviewed by Darin Adler.

        Allow custom memory allocation control in Yarr's RegexInterpreter
        https://bugs.webkit.org/show_bug.cgi?id=29025

        Inherits RegexInterpreter classes from FastAllocBase (bug #20422), which has
        been instantiated by 'new':

        class ByteDisjunction
        -> instantiated in JavaScriptCore/yarr/RegexInterpreter.cpp:1462

        struct BytecodePattern
        -> instantiated in JavaScriptCore/yarr/RegexInterpreter.cpp:1279

        * yarr/RegexInterpreter.h:

1927 1928 1929 1930 1931 1932
2009-09-07  Drew Wilson  <atwilson@google.com>

        Reverting r48121 to fix Windows build errors.

        * JavaScriptCore.exp:

1933 1934 1935 1936 1937 1938 1939 1940 1941
2009-09-07  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Enable SHARED_WORKERS by default
        https://bugs.webkit.org/show_bug.cgi?id=28959

        * Configurations/FeatureDefines.xcconfig:

1942 1943 1944 1945 1946 1947 1948 1949 1950
2009-09-07  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Export WTF::tryFastMalloc used in WebSocketChannel.
        https://bugs.webkit.org/show_bug.cgi?id=28038

        * JavaScriptCore.exp:

oliver@apple.com's avatar
oliver@apple.com committed
1951 1952 1953 1954 1955 1956 1957 1958 1959
2009-09-04  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Fix windows export files

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971
2009-09-04  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        [[ToString]] conversion should use the actual toString function for String objects.

        Remove incorrect specialisations of toString conversions on StringObject.

        * JavaScriptCore.exp:
        * runtime/StringObject.cpp:
        * runtime/StringObject.h:

sfalken@apple.com's avatar
sfalken@apple.com committed
1972 1973 1974 1975 1976 1977 1978
2009-09-04  Steve Falkenburg  <sfalken@apple.com>

        Windows build fix.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Add new export.
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Add new export.

sfalken@apple.com's avatar
sfalken@apple.com committed
1979 1980 1981 1982 1983 1984 1985
2009-09-04  Steve Falkenburg  <sfalken@apple.com>

        Windows build fix.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Remove unneeded export.
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Remove unneeded export.

1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082
2009-09-04  Darin Adler  <darin@apple.com>

        Reviewed by Geoff Garen.

        DateInstance object collected on ARM JIT (JSValue: WTF_USE_JSVALUE32)
        https://bugs.webkit.org/show_bug.cgi?id=28909

        Part two.

        Make some improvements to garbage collection code:

            1) Create a runtime assertion that catches any classes that
               override markChildren but have the HasDefaultMark bit set.
            2) Remove checks of the mark bit outside the MarkStack::append
               function; they are redundant.
            3) Improve the efficiency of the asObject and asArray functions
               when called on JSCell* to avoid a round trip to JSValue.
            4) Make more callers use the checked asCell and asObject
               casting functions rather than unchecked casts.
            5) Removed the JSCell::marked function and other GC-related
               functions because these operations are no longer things that
               code other than the core GC code needs to do directly. Fixed
               callers that were calling them.

        * runtime/Collector.cpp:
        (JSC::Heap::markConservatively): Removed unneeded call to MarkStack::drain.
        (JSC::Heap::markProtectedObjects): Removed unneeded check of the mark
        bit and call to MarkStack::drain.
        (JSC::Heap::collect): Removed unneeded checks of the mark bit and also
        changed call to SmallStrings::mark to call markChildren instead to match
        the rest of the objects.
        (JSC::typeName): Removed unneeded cast to JSObject*.

        * runtime/JSArray.h:
        (JSC::asArray): Added an overload for JSCell* and changed the JSValue
        version to call it. Removed some unneeded casts.
        (JSC::JSArray::markChildrenDirect): Marked this function inline. It's in
        a header, and if not marked inline this could lead to linking problems.
        (JSC::MarkStack::markChildren): Added. This helper function is used by
        the drain function to avoid repating code. Also added the code here to
        check fro default mark violations in debug code. If a markChildren
        function adds something to the mark stack, but the type info claimed
        hasDefaultMark was true, then we will get an assertion now. Also fixed
        the assertion about the mark bit to use the Heap function directly
        because we don't have a JSCell::marked function any more.
        (JSC::MarkStack::drain): Changed a local variable from "v" to "value",
        and from "currentCell" to "cell". Changed to call markChildren in two
        places instead of repeating a chain of if statements twice. Changed
        code that reads and writes the mark bit to use Heap::isCellMarked and
        Heap::markCell so we can eliminate the JSCell::marked and
        JSCell::markCellDirect functions.

        * runtime/JSCell.h: Removed JSCell's markCellDirect and marked member
        functions. Added a comment explaining that asCell should be deprecated
        in favor of the JSValue asCell member function.
        (JSC::MarkStack::append): Added the assertion that catches callers
        that have set the HasDefaultMark bit incorrectly. Changed
        code that reads and writes the mark bit to use Heap::isCellMarked and
        Heap::markCell so we can eliminate the JSCell::marked and
        JSCell::markCellDirect functions. Moved the overload of
        MarkStack::append for JSValue here so it can call through to the cell
        version. The old version had a copy of all the code instead, but that
        repeated the conversion from JSValue to JSCell* and the check for
        whether a value is a cell multiple times.
        (JSC::Structure::markAggregate): Moved this function here to avoid
        dependencies for Structure.h, since this calls MarkStack::append.

        * runtime/JSObject.cpp:
        (JSC::JSObject::markChildren): Added code to clear
        m_isCheckingForDefaultMarkViolation so the marking done by JSObject
        doesn't trigger the assertion.

        * runtime/JSValue.h: Moved some stray includes that were outside the
        header guard inside it. Not sure how that happened! Removed the
        GC-related member functions markChildren, hasChildren, marked, and
        markDirect.

        * runtime/JSWrapperObject.h: Made markChildren private.
        (JSC::JSWrapperObject::createStructure): Added. Fixes a bug where the
        HasDefaultMark bit was set.

        * runtime/MarkStack.h: Added m_isCheckingForDefaultMarkViolation and
        initialized it to false. Moved the append function body from here to
        JSCell.h. Added a declaration of a private markChildren function used
        inside the drain function.

        * runtime/SmallStrings.cpp:
        (JSC::SmallStrings::markChildren): Changed the name and style of this
        function to match other functions. This allows us to share the normal
        mark stack code path.

        * runtime/SmallStrings.h: Changed the name and interface of mark to
        the more-normal markChildren style.

        * runtime/Structure.h: Moved the body of markAggregate into the
        JSCell.h to avoid a circular dependency with JSCell.h.

2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140
2009-09-04  Darin Adler  <darin@apple.com>

        Reviewed by Geoff Garen.

        DateInstance object collected on ARM JIT (JSValue: WTF_USE_JSVALUE32)
        https://bugs.webkit.org/show_bug.cgi?id=28909

        Part one.

        Make some improvements to garbage collection code:

            1) Fix the two classes that had the default mark bit set but
               should not.
            2) Remove checks of the mark bit outside the MarkStack::append
               function; they are redundant.
            3) Make more callers use the checked asCell and asObject
               casting functions rather than unchecked casts.
            4) Removed some GC-related functions because these operations are
               no longer things that code other than the core GC code needs
               to do directly. Fixed callers that were calling them.

        * bytecode/CodeBlock.cpp:
        (JSC::CodeBlock::markAggregate): Removed unneeded check of the mark
        bit before calling MarkStack::append.

        * interpreter/Register.h: Removed unneeded marked and markChildren
        functions.

        * jit/JITStubs.cpp:
        (op_eq): Removed unneeded assertions, instead using checked casting
        functions such as asObject.

        * runtime/ArgList.h: Added now-needed forward declaration of MarkStack.

        * runtime/GetterSetter.cpp:
        (JSC::GetterSetter::markChildren): Remmoved unneeded check of the mark bit.

        * runtime/GlobalEvalFunction.h:
        (JSC::GlobalEvalFunction::createStructure): Added. Fixes a bug where the
        HasDefaultMark bit was set.

        * runtime/JSCell.cpp:
        (JSC::JSCell::getObject): Use asObject to avoid a direct static_cast.

        * runtime/JSObject.h:
        (JSC::asObject): Added an overload for JSCell* and changed the JSValue
        version to call it.
        (JSC::JSValue::get): Use asObject to avoid a direct static_cast.

        * runtime/JSWrapperObject.h: Made markChildren private.
        (JSC::JSWrapperObject::createStructure): Added. Fixes a bug where the
        HasDefaultMark bit was set. Later we may want to optimize this for
        wrapper types that never have cells in their internal values, but there
        is no measured performance regression in SunSpider or V8 doing this
        all the time.

        * runtime/MarkStack.cpp: Tweaked formatting.

2141 2142 2143 2144 2145 2146 2147
2009-09-04  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix. Switch USE_ defines over to the compiler so that they can be
        checked by files not including config.h (like WebCorePrefix.h).

        * wtf/Platform.h:

2148 2149 2150 2151 2152 2153 2154 2155 2156
2009-09-03  Yong Li  <yong.li@torchmobile.com>

        Reviewed by David Levin.

        Remove unnecessary dependency on unistd.h
        https://bugs.webkit.org/show_bug.cgi?id=28962

        * runtime/Completion.cpp:

2157 2158 2159 2160 2161 2162 2163 2164 2165 2166
2009-09-03  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Eric Seidel.

        Add strnstr for Linux and Windows in StringExtras.h
        https://bugs.webkit.org/show_bug.cgi?id=28901

        * wtf/StringExtras.h:
        (strnstr):

2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178
2009-09-03  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>

        Reviewed by Darin Adler.

        Allow custom memory allocation control for JavaScriptCore's HashEntry class
        https://bugs.webkit.org/show_bug.cgi?id=27830

        Inherits HashEntry class from FastAllocBase because it has been
        instantiated by 'new' JavaScriptCore/runtime/Lookup.cpp:32.

        * runtime/Lookup.h:

2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190
2009-09-02  Gavin Barraclough  <barraclough@apple.com>

        Should crash if JIT code buffer allocation fails.

        https://bugs.webkit.org/show_bug.cgi?id=28926
        <rdar://problem/7031922>

        * jit/ExecutableAllocatorPosix.cpp:
        (JSC::ExecutablePool::systemAlloc):
        * jit/ExecutableAllocatorWin.cpp:
        (JSC::ExecutablePool::systemAlloc):

2191 2192 2193 2194 2195 2196
2009-09-02  Kevin Ollivier  <kevino@theolliviers.com>

        waf build fixes for Windows/MSVC.

        * wscript:

2197 2198 2199 2200 2201 2202
2009-09-02  Kevin Ollivier  <kevino@theolliviers.com>

        Build fix for building on Windows.

        * wtf/ThreadingPthreads.cpp:

2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221
2009-09-02  Norbert Leser  <norbert.leser@nokia.com>

        Reviewed by Eric Seidel.

        Use fastMalloc when neither MMAP nor VIRTUALALLOC are enabled
        
        RegisterFile constructor currently throws #error when both
        MMAP and VIRTUALALLOC conditions fail.
        On any platform that does not provide these features
        (for instance, Symbian),
        the fallback should be regular malloc (or fastMalloc).
        It is functionally equivalent in this case, even though it may
        have certain drawbacks such as lack of dynamic pre-allocation.

        * interpreter/RegisterFile.cpp:
        (JSC::RegisterFile::~RegisterFile):
        * interpreter/RegisterFile.h:
        (JSC::RegisterFile::RegisterFile):

barraclough@apple.com's avatar
barraclough@apple.com committed
2222 2223 2224 2225 2226 2227 2228 2229 2230 2231
2009-08-31  Robert Agoston  <Agoston.Robert@stud.u-szeged.hu>

        Reviewed by Gavin Barraclough.

        Fixed typo.
        https://bugs.webkit.org/show_bug.cgi?id=28691

        * parser/Parser.h:
        (JSC::Parser::parse):

2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247
2009-08-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        JSON Stringifier does not follow ES5 spec for handling of Number, String and Boolean objects
        https://bugs.webkit.org/show_bug.cgi?id=28797

        Fixed unwrapBoxedPrimitive to do the right thing, which necessitated a couple of new exception
        checks, and corrected the logic in gap to correctly convert Number and String objects.

        * runtime/JSONObject.cpp:
        (JSC::unwrapBoxedPrimitive):
        (JSC::gap):
        (JSC::Stringifier::Stringifier):
        (JSC::Stringifier::appendStringifiedValue):

2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262
2009-08-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Adam Roben.

        JSON.stringify replacer array does not accept values that are not string primitives.
        https://bugs.webkit.org/show_bug.cgi?id=28788

        Update the JSON stringifier to initialise its replacer array according to the most
        recent version of the spec.

        * runtime/Identifier.h:
        (JSC::Identifier::from):
        * runtime/JSONObject.cpp:
        (JSC::Stringifier::Stringifier):

ap@apple.com's avatar
ap@apple.com committed
2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273
2009-08-27  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=28753
        <rdar://problem/7173448> Excessive number of threads (and a crash)

        * wtf/Threading.h: (WTF::atomicIncrement): Changed atomicIncrement to match decrement
        and return the new value. Also added using directives for these functions, to match
        te rest of WTF.

2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287
2009-08-27  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Adam Roben.

        Link the testapi against CFLite when building the WinCairo port.

        * JavaScriptCore.vcproj/testapi/testapi.vcproj: Add new Release_CFLite
          target.  Update all targets to inherit from either the
          JavaScriptCF.vsprops (Apple target) or the JavaScriptCFLite.vsprops
          file (WinCairo target).
        * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Remove
          input file CoreFoundation.lib. This is provided by either the
          JavaScriptCF.vsprops or JavaScriptCFLite.vsprops file.

2288 2289 2290 2291 2292 2293 2294 2295 2296
2009-08-27  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Geoff Garen.
        
        Fix Windows-specific crash due to missing memory clearing call.
        
        * runtime/Collector.cpp:
        (JSC::Heap::allocateBlock):

2297 2298 2299 2300 2301 2302 2303
2009-08-27  Brent Fulgham  <bfulgham@webkit.org>

        Build fix: JavaScriptCore_debug.def missing some exports.  Apple
        Windows build does not use this file, so it was not noticed previously.

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:

2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317
2009-08-27  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Oliver Hunt.

        x86-64 GTK broken due to code offsets changing, pointers sometimes packed into immediates.
        https://bugs.webkit.org/show_bug.cgi?id=28317

        Missed one, fix part II.

        * assembler/MacroAssemblerX86Common.h:
        (JSC::MacroAssemblerX86Common::move):
        * assembler/X86Assembler.h:
        (JSC::CAN_SIGN_EXTEND_8_32):

2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332
2009-08-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Adam Roben.

        JSON.stringify replacer array does not accept values that are not string primitives.
        https://bugs.webkit.org/show_bug.cgi?id=28788

        Update the JSON stringifier to initialise its replacer array according to the most
        recent version of the spec.

        * runtime/Identifier.h:
        (JSC::Identifier::from):
        * runtime/JSONObject.cpp:
        (JSC::Stringifier::Stringifier):

2333 2334 2335 2336 2337 2338