JavaScriptCore/ChangeLog
changeset 0 4f2f89ce4247
child 2 303757a437d3
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 2009-10-30  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
       
     2 
       
     3         Reviewed by Kenneth Rohde Christiansen.
       
     4 
       
     5         [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml()
       
     6 
       
     7         This ensures that long-running JavaScript (for example due to a modal alert() dialog),
       
     8         will not trigger a deferred load after only 500ms (the default tokenizer delay) while
       
     9         still giving a reasonable timeout (10 seconds) to prevent deadlock.
       
    10 
       
    11         https://bugs.webkit.org/show_bug.cgi?id=29381
       
    12 
       
    13         * runtime/TimeoutChecker.h: Add getter for the timeout interval
       
    14 
       
    15 2010-07-20  Steve Falkenburg  <sfalken@apple.com>
       
    16 
       
    17         Reviewed by Adam Roben.
       
    18 
       
    19         WebKit on Windows should build optionally with an unversioned ICU DLL
       
    20         https://bugs.webkit.org/show_bug.cgi?id=42722
       
    21         <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU
       
    22         
       
    23         Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh.
       
    24         Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API
       
    25         should be namespaced with the current ICU version number. Proper value is determined
       
    26         by checking for the presence of libicuuc.lib, the unversioned copy of ICU.
       
    27         
       
    28         To get the proper value for U_DISABLE_RENAMING into all source files, we force
       
    29         the include of ICUVersion.h (our generated header) via the compiler options.
       
    30         
       
    31         Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib)
       
    32         we copy the ICU lib to an intermediate location under obj with a common name. This
       
    33         allows us to link properly with either without adding a new build configuration.
       
    34 
       
    35         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
       
    36         Copy ICU libs into a common location with a common name.
       
    37         Add additional library search path to pick up icu lib.
       
    38         Change ICU library filename specified to linker.
       
    39         Add forced include of ICUVersion.h.
       
    40         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h
       
    41         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h.
       
    42         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
       
    43         Copy ICU libs into a common location with a common name.
       
    44         Add additional library search path to pick up icu lib.
       
    45         Change ICU library filename specified to linker.
       
    46         Add forced include of ICUVersion.h.
       
    47         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
       
    48         Copy ICU libs into a common location with a common name.
       
    49         Add additional library search path to pick up icu lib.
       
    50         Change ICU library filename specified to linker.
       
    51         Add forced include of ICUVersion.h.
       
    52 
       
    53 2010-07-20  Steve Falkenburg  <sfalken@apple.com>
       
    54 
       
    55         Re-save vsprops files after no-op edits in Visual Studio
       
    56         to fix manual edit issues.
       
    57 
       
    58 2010-07-20  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
       
    59 
       
    60         Reviewed by Steve Block.
       
    61 
       
    62         Need to be able to configure Geolocation policy regarding user permissions
       
    63         https://bugs.webkit.org/show_bug.cgi?id=42068
       
    64 
       
    65         If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
       
    66         by default 
       
    67 
       
    68         * wtf/Platform.h:
       
    69         
       
    70 2010-07-20  Sheriff Bot  <webkit.review.bot@gmail.com>
       
    71 
       
    72         Unreviewed, rolling out r63742.
       
    73         http://trac.webkit.org/changeset/63742
       
    74         https://bugs.webkit.org/show_bug.cgi?id=42641
       
    75 
       
    76         Broke Leopard Intel build. (Requested by bbandix on #webkit).
       
    77 
       
    78         * wtf/Platform.h:
       
    79 
       
    80 2010-07-20  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
       
    81 
       
    82         Reviewed by Steve Block.
       
    83 
       
    84         Need to be able to configure Geolocation policy regarding user permissions
       
    85         https://bugs.webkit.org/show_bug.cgi?id=42068
       
    86 
       
    87         If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
       
    88         by default 
       
    89 
       
    90         * wtf/Platform.h:
       
    91         
       
    92 2010-07-19  Dirk Schulze  <krit@webkit.org>
       
    93 
       
    94         Reviewed by Nikolas Zimmermann.
       
    95 
       
    96         SVG CleanUp of SVGPathData parsing
       
    97         https://bugs.webkit.org/show_bug.cgi?id=41410
       
    98 
       
    99         Added piOverTwo to MathExtras.
       
   100 
       
   101         * wtf/MathExtras.h:
       
   102 
       
   103 2010-07-19  Mike Moretti  <mike.moretti@nokia.com>
       
   104 
       
   105         Reviewed by Laszlo Gombos.
       
   106 
       
   107         [Symbian] Build fix after r63404.
       
   108 
       
   109         Implement isValid() function for the Symbian executable allocator.
       
   110 
       
   111         * jit/ExecutableAllocatorSymbian.cpp:
       
   112         (JSC::ExecutableAllocator::isValid):
       
   113 
       
   114 2010-07-19  Chris Marrin  <cmarrin@apple.com>
       
   115 
       
   116         Reviewed by Darin Adler.
       
   117 
       
   118         https://bugs.webkit.org/show_bug.cgi?id=42118
       
   119         Disable WebGL on Leopard for now. 
       
   120 
       
   121         LayoutTests fail on some graphics hardware on Leopard because one of the features we use,
       
   122         GL_ARB_framebuffer_object, is not universally available in Leopard like it is in
       
   123         SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a
       
   124         software OpenGL driver on machines without this support.
       
   125 
       
   126         * Configurations/FeatureDefines.xcconfig:
       
   127 
       
   128 2010-07-16  Darin Adler  <darin@apple.com>
       
   129 
       
   130         Reviewed by Sam Weinig.
       
   131 
       
   132         Use OwnPtr for CodeBlock objects
       
   133         https://bugs.webkit.org/show_bug.cgi?id=42490
       
   134 
       
   135         * runtime/Executable.cpp:
       
   136         (JSC::EvalExecutable::EvalExecutable): Moved this here and made it non-inline.
       
   137         Eliminated the code that used to initialize the raw pointer since it's now
       
   138         an OwnPtr.
       
   139         (JSC::EvalExecutable::~EvalExecutable): Removed the explicit delete here.
       
   140         (JSC::ProgramExecutable::ProgramExecutable): Ditto.
       
   141         (JSC::ProgramExecutable::~ProgramExecutable): Ditto.
       
   142         (JSC::FunctionExecutable::FunctionExecutable): Ditto.
       
   143         (JSC::FunctionExecutable::~FunctionExecutable): Ditto.
       
   144         (JSC::EvalExecutable::compileInternal): Added use of adoptPtr and get.
       
   145         (JSC::ProgramExecutable::compileInternal): Ditto.
       
   146         (JSC::FunctionExecutable::compileForCallInternal): Ditto.
       
   147         (JSC::FunctionExecutable::compileForConstructInternal): Ditto.
       
   148         (JSC::FunctionExecutable::recompile): Use clear instead of delete followed
       
   149         by assignment of 0.
       
   150 
       
   151         * runtime/Executable.h: Moved constructors to the cpp file and changed
       
   152         raw pointers to OwnPtr.
       
   153 
       
   154 2010-07-19  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
       
   155 
       
   156         Reviewed by Kenneth Rohde Christiansen.
       
   157 
       
   158         [EFL] Fix build on 64-bit systems. According to
       
   159         JavaScriptCore/wtf/Platform.h, x86_64 uses fixed allocator, which
       
   160         needs jit/ExecutableAllocatorFixedVMPool.cpp to be included in build
       
   161         system.
       
   162         https://bugs.webkit.org/show_bug.cgi?id=42559
       
   163 
       
   164         * CMakeListsEfl.txt: add missing file for x86_64.
       
   165 
       
   166 2010-07-16  Leandro Pereira  <leandro@profusion.mobi>
       
   167 
       
   168         [EFL] Unreviewed build system cleanup.
       
   169 
       
   170         Move ExecutableAllocator{FixedVMPool,Posix,Symbian,Win}.cpp from
       
   171         root CMakeLists.txt to the platform CMakeLists.txt.
       
   172 
       
   173         * CMakeLists.txt:
       
   174         * CMakeListsEfl.txt: Add ExecutableAllocatorPosix.cpp.
       
   175 
       
   176 2010-07-16  Oliver Hunt  <oliver@apple.com>
       
   177 
       
   178         Reviewed by Geoffrey Garen.
       
   179 
       
   180         ES5 allows use of reserved words as IdentifierName
       
   181         https://bugs.webkit.org/show_bug.cgi?id=42471
       
   182 
       
   183         Modify the lexer to allow us to avoid identifying reserved
       
   184         words in those contexts where they are valid identifiers, and
       
   185         we know it's safe.  Additionally tag the reserved word tokens
       
   186         so we can easily identify them in those cases where we can't
       
   187         guarantee that we've skipped reserved word identification.
       
   188 
       
   189         * parser/JSParser.cpp:
       
   190         (JSC::JSParser::next):
       
   191         (JSC::JSParser::parseProperty):
       
   192         (JSC::JSParser::parseMemberExpression):
       
   193         * parser/JSParser.h:
       
   194         (JSC::):
       
   195         * parser/Lexer.cpp:
       
   196         (JSC::Lexer::lex):
       
   197         * parser/Lexer.h:
       
   198         (JSC::Lexer::):
       
   199 
       
   200 2010-07-16  Anders Carlsson  <andersca@apple.com>
       
   201 
       
   202         Reviewed by Sam Weinig.
       
   203 
       
   204         clang++ build fixes for JavaScriptCore and WebCore
       
   205         https://bugs.webkit.org/show_bug.cgi?id=42478
       
   206 
       
   207         * runtime/RegExpKey.h:
       
   208         (JSC::operator==):
       
   209         Move the RegExpKey equals operator into the JSC namespace so it can be found by ADL.
       
   210 
       
   211 2010-07-16  Anders Carlsson  <andersca@apple.com>
       
   212 
       
   213         Reviewed by David Levin.
       
   214 
       
   215         Really add WARN_UNUSED_RESULT to leakRef
       
   216         https://bugs.webkit.org/show_bug.cgi?id=42464
       
   217 
       
   218         * wtf/PassRefPtr.h:
       
   219         (WTF::PassRefPtr::):
       
   220         (WTF::NonNullPassRefPtr::):
       
   221         Put the WARN_UNUSED_RESULT attribute at the right place.
       
   222 
       
   223         * wtf/RetainPtr.h:
       
   224         (WTF::RetainPtr::releaseRef):
       
   225         Remove WARN_UNUSED_RESULT here for now, it leads to two warnings that need
       
   226         to be fixed first.
       
   227 
       
   228 2010-07-15  Victor Wang  <victorw@chromium.org>
       
   229 
       
   230         Reviewed by David Levin.
       
   231 
       
   232         [Chromium] Disable c4291 for chromium windows multi dll build.
       
   233 
       
   234         https://bugs.webkit.org/show_bug.cgi?id=42177
       
   235 
       
   236         * JavaScriptCore.gyp/JavaScriptCore.gyp:
       
   237 
       
   238 2010-07-15  Geoffrey Garen  <ggaren@apple.com>
       
   239 
       
   240         Reviewed by Maciej Stachowiak.
       
   241 
       
   242         Crash entering mail.yahoo.com
       
   243         https://bugs.webkit.org/show_bug.cgi?id=42394
       
   244     
       
   245         * bytecompiler/BytecodeGenerator.cpp:
       
   246         (JSC::BytecodeGenerator::argumentNumberFor): Added a NULL check. If the
       
   247         identifier we're resolving is not a local variable, registerFor returns
       
   248         NULL.
       
   249 
       
   250         * bytecompiler/NodesCodegen.cpp:
       
   251         (JSC::FunctionBodyNode::emitBytecode): Unrelated to the crash, but I
       
   252         noticed this while working on it: No need to NULL-check returnNode,
       
   253         since an early return has already done so.
       
   254 
       
   255 2010-07-15  Martin Robinson  <mrobinson@igalia.com>
       
   256 
       
   257         Reviewed by Oliver Hunt.
       
   258 
       
   259         [GTK] Simplify the distribution step
       
   260         https://bugs.webkit.org/show_bug.cgi?id=42414
       
   261 
       
   262         * GNUmakefile.am: Add extra dist files directly to EXTRA_DIST instead
       
   263         of adding them by proxy via javascriptcore_dist. Sort the EXTRA_DIST list.
       
   264         Refer to create_hash_table and create_regexp_tables directly, as is the
       
   265         behavior with other code generation scripts.
       
   266 
       
   267 2010-07-15  Oliver Hunt  <oliver@apple.com>
       
   268 
       
   269         Reviewed by Geoff Garen.
       
   270 
       
   271         Fix dumping of op_put_by_id.
       
   272 
       
   273         * bytecode/CodeBlock.cpp:
       
   274         (JSC::CodeBlock::printPutByIdOp):
       
   275 
       
   276 2010-07-15  Zoltan Herczeg  <zherczeg@webkit.org>
       
   277 
       
   278         Reviewed by Darin Adler.
       
   279 
       
   280         Refactoring some parts of the lexer
       
   281         https://bugs.webkit.org/show_bug.cgi?id=41845
       
   282 
       
   283         This patch is a precursor of refactoring the identifier
       
   284         parsing, which currently slows down the lexer, and not
       
   285         ready for landing. This patch contains those sources,
       
   286         which does not slow down the lexer (mainly style changes).
       
   287 
       
   288         SunSpider: no change (529.4ms to 528.7ms)
       
   289         --parse-only: no change (31.0ms to 31.2ms)
       
   290 
       
   291         * parser/Lexer.cpp:
       
   292         (JSC::isIdentStart): using typesOfASCIICharacters to determine
       
   293              whether the current character is in identifier start
       
   294         (JSC::isIdentPart): using typesOfASCIICharacters to determine
       
   295              whether the current character is in identifier part
       
   296         (JSC::Lexer::parseString): style fix
       
   297         (JSC::Lexer::lex): removing the else after the main which
       
   298              which reduces code duplication
       
   299 
       
   300 2010-07-15  Mark Rowe  <mrowe@apple.com>
       
   301 
       
   302         Update the sorting in the Xcode project files.
       
   303 
       
   304         * JavaScriptCore.xcodeproj/project.pbxproj:
       
   305 
       
   306 2010-07-14  Oliver Hunt  <oliver@apple.com>
       
   307 
       
   308         Reviewed by Gavin Barraclough.
       
   309 
       
   310         Make sure that mixed interpreter/jit builds don't try to use the jit if the allocator fails
       
   311         https://bugs.webkit.org/show_bug.cgi?id=42310
       
   312 
       
   313         Add some null checks to deal with the Fixed VM allocator failing
       
   314         to get the requested executable region, delay the creation of the
       
   315         JITStubs in JSGlobalData until after we know whether we're using
       
   316         the JIT.
       
   317 
       
   318         * jit/ExecutableAllocator.h:
       
   319         (JSC::ExecutableAllocator::ExecutableAllocator):
       
   320         (JSC::ExecutableAllocator::poolForSize):
       
   321         * jit/ExecutableAllocatorFixedVMPool.cpp:
       
   322         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
       
   323         (JSC::FixedVMPoolAllocator::alloc):
       
   324         (JSC::FixedVMPoolAllocator::free):
       
   325         (JSC::FixedVMPoolAllocator::isValid):
       
   326         (JSC::ExecutableAllocator::isValid):
       
   327         (JSC::ExecutablePool::systemAlloc):
       
   328         (JSC::ExecutablePool::systemRelease):
       
   329         * jit/ExecutableAllocatorPosix.cpp:
       
   330         (JSC::ExecutableAllocator::isValid):
       
   331         * jit/ExecutableAllocatorWin.cpp:
       
   332         (JSC::ExecutableAllocator::isValid):
       
   333         * jit/JIT.cpp:
       
   334         (JSC::JIT::linkCall):
       
   335         (JSC::JIT::linkConstruct):
       
   336         * jit/JIT.h:
       
   337         (JSC::JIT::compileCTIMachineTrampolines):
       
   338         (JSC::JIT::compileCTINativeCall):
       
   339         * jit/JITArithmetic.cpp:
       
   340         (JSC::JIT::emit_op_mod):
       
   341         * jit/JITArithmetic32_64.cpp:
       
   342         (JSC::JIT::emit_op_mod):
       
   343         * jit/JITCall.cpp:
       
   344         (JSC::JIT::compileOpCallVarargs):
       
   345         (JSC::JIT::compileOpCall):
       
   346         (JSC::JIT::compileOpCallSlowCase):
       
   347         * jit/JITCall32_64.cpp:
       
   348         (JSC::JIT::compileOpCallVarargs):
       
   349         (JSC::JIT::compileOpCall):
       
   350         (JSC::JIT::compileOpCallSlowCase):
       
   351         * jit/JITOpcodes.cpp:
       
   352         (JSC::JIT::privateCompileCTINativeCall):
       
   353         * jit/JITStubs.cpp:
       
   354         (JSC::JITThunks::JITThunks):
       
   355         (JSC::JITThunks::tryCacheGetByID):
       
   356         (JSC::JITThunks::hostFunctionStub):
       
   357         * jit/ThunkGenerators.cpp:
       
   358         (JSC::charCodeAtThunkGenerator):
       
   359         (JSC::charAtThunkGenerator):
       
   360         (JSC::fromCharCodeThunkGenerator):
       
   361         (JSC::sqrtThunkGenerator):
       
   362         (JSC::powThunkGenerator):
       
   363         * runtime/Executable.h:
       
   364         (JSC::NativeExecutable::create):
       
   365         * runtime/JSGlobalData.cpp:
       
   366         (JSC::JSGlobalData::JSGlobalData):
       
   367         (JSC::JSGlobalData::getHostFunction):
       
   368         * runtime/JSGlobalData.h:
       
   369         (JSC::JSGlobalData::getCTIStub):
       
   370         * yarr/RegexJIT.cpp:
       
   371         (JSC::Yarr::jitCompileRegex):
       
   372 
       
   373 2010-07-14  Gavin Barraclough  <barraclough@apple.com>
       
   374 
       
   375         Speculative Qt/Windows build fix.
       
   376 
       
   377         * jit/JITStubs.h:
       
   378 
       
   379 2010-07-14  Gavin Barraclough  <barraclough@apple.com>
       
   380 
       
   381         Reviewed by Oliver Hunt.
       
   382 
       
   383         https://bugs.webkit.org/show_bug.cgi?id=42280
       
   384         JIT_STUB_ARGUMENT_VA_LIST is only slowing us down! Remove it!
       
   385 
       
   386         * jit/JIT.h:
       
   387         * jit/JITInlineMethods.h:
       
   388         (JSC::JIT::restoreArgumentReferenceForTrampoline):
       
   389         * jit/JITStubs.cpp:
       
   390         * jit/JITStubs.h:
       
   391         * wtf/Platform.h:
       
   392 
       
   393 2010-07-14  Oliver Hunt  <oliver@apple.com>
       
   394 
       
   395         RS=Geoff Garen.
       
   396 
       
   397         Guard the CF path of interpreter vs. jit selection with PLATFORM(CF)
       
   398 
       
   399         This allows the code to work on windows as well.  Also unifies the
       
   400         environment variable with the preference name.
       
   401 
       
   402         * runtime/JSGlobalData.cpp:
       
   403         (JSC::JSGlobalData::JSGlobalData):
       
   404 
       
   405 2010-07-14  Oliver Hunt  <oliver@apple.com>
       
   406 
       
   407         Reviewed by Don Melton.
       
   408 
       
   409         Crash when trying to enable JIT and Interpreter in a single build.
       
   410 
       
   411         CFPreferences code added at the last minute failed to account for
       
   412         the preference not being present and then attempted to CFRelease
       
   413         a null value.
       
   414 
       
   415         * runtime/JSGlobalData.cpp:
       
   416         (JSC::JSGlobalData::JSGlobalData):
       
   417 
       
   418 2010-07-14  Zoltan Herczeg  <zherczeg@webkit.org>
       
   419 
       
   420         Reviewed by Darin Adler.
       
   421 
       
   422         Change indentations in the lexer
       
   423         https://bugs.webkit.org/show_bug.cgi?id=41845
       
   424 
       
   425         This patch fixes an old, indentation error comes from kjs,
       
   426         as webkit has a different style rule for switches, and change
       
   427         the indentation of the main switch, which is a temporary
       
   428         style error. This change makes easier to see the behavioural
       
   429         changes in the follow-up patch.
       
   430 
       
   431         No behavioural changes.
       
   432 
       
   433         * parser/Lexer.cpp:
       
   434         (JSC::singleEscape):
       
   435         (JSC::Lexer::lex):
       
   436 
       
   437 2010-07-13  Sheriff Bot  <webkit.review.bot@gmail.com>
       
   438 
       
   439         Unreviewed, rolling out r63262.
       
   440         http://trac.webkit.org/changeset/63262
       
   441         https://bugs.webkit.org/show_bug.cgi?id=42229
       
   442 
       
   443         broke Windows compile (Requested by bweinstein on #webkit).
       
   444 
       
   445         * API/tests/testapi.c:
       
   446         (assertEqualsAsCharactersPtr):
       
   447         (main):
       
   448         * testapi.pro: Removed.
       
   449 
       
   450 2010-07-13  Oliver Hunt  <oliver@apple.com>
       
   451 
       
   452         Reviewed by Gavin Barraclough.
       
   453 
       
   454         ES5 requires BOMs to be treated as whitespace
       
   455         https://bugs.webkit.org/show_bug.cgi?id=42218
       
   456 
       
   457         Add BOM character to the Lexer's definition of whitespace,
       
   458         and remove the logic that dealt with stripping BOMs and
       
   459         caching the cleaned string.
       
   460 
       
   461         * parser/Lexer.h:
       
   462         (JSC::Lexer::isWhiteSpace):
       
   463         * parser/SourceProvider.h:
       
   464         (JSC::UStringSourceProvider::create):
       
   465         (JSC::UStringSourceProvider::UStringSourceProvider):
       
   466         * wtf/text/StringImpl.h:
       
   467 
       
   468 2010-07-13  Andreas Kling  <andreas.kling@nokia.com>
       
   469 
       
   470         Reviewed by Darin Adler.
       
   471 
       
   472         Avoid slow-path for put() in Array.splice()
       
   473         https://bugs.webkit.org/show_bug.cgi?id=41920
       
   474 
       
   475         Defer creation of the returned array until its final size is known
       
   476         to avoid growing it while adding elements.
       
   477 
       
   478         * runtime/JSArray.cpp:
       
   479         (JSC::JSArray::JSArray): Add two modes of creation, CreateInitialized (old)
       
   480         and CreateCompact (which should only be used when constructing arrays whose
       
   481         size and contents are known at the time of creation.)
       
   482         (JSC::JSArray::setLength): Skip first consistency check if in CreateCompact
       
   483         initialization mode. (Only applies to non-empty arrays.)
       
   484         (JSC::JSArray::checkConsistency): Build fix (JSValue::type() is gone)
       
   485         * runtime/JSArray.h:
       
   486         (JSC::JSArray::uncheckedSetIndex): Added for fast initialization of compact
       
   487         arrays. Does no bounds or other sanity checking.
       
   488         * runtime/ArrayPrototype.cpp:
       
   489         (JSC::arrayProtoFuncSplice): Optimized creation of the returned JSArray.
       
   490         * runtime/ArrayConstructor.cpp:
       
   491         (JSC::constructArrayWithSizeQuirk): Pass CreateInitialized to ctor.
       
   492         * runtime/JSGlobalObject.h:
       
   493         (JSC::constructEmptyArray): Pass CreateInitialized to ctor.
       
   494         * runtime/RegExpConstructor.cpp:
       
   495         (JSC::RegExpMatchesArray::RegExpMatchesArray): Pass CreateInitialized to ctor.
       
   496 
       
   497 2010-07-13  Gavin Barraclough  <barraclough@apple.com>
       
   498 
       
   499         Reviewed by Oliver Hunt.
       
   500 
       
   501         Bug 42207 - Clean up interface to compile executables, always check for exceptions
       
   502 
       
   503         Presently interface to compile executable is inconsistent between eval/program and
       
   504         function code, and is error prone in allowing a caller to byte compile without JIT
       
   505         compiling an executable (we rely on all executables with codeblocks having JIT code).
       
   506         Unify on an interface where all compilation is performed by a single compile (with
       
   507         ForCall|ForConstruct variants) method, and make all clients check for errors.
       
   508 
       
   509         * interpreter/Interpreter.cpp:
       
   510         (JSC::Interpreter::unwindCallFrame):
       
   511         (JSC::Interpreter::execute):
       
   512         (JSC::Interpreter::executeCall):
       
   513         (JSC::Interpreter::executeConstruct):
       
   514         (JSC::Interpreter::prepareForRepeatCall):
       
   515         (JSC::Interpreter::privateExecute):
       
   516         * jit/JITStubs.cpp:
       
   517         (JSC::DEFINE_STUB_FUNCTION):
       
   518         * parser/Parser.h:
       
   519         (JSC::Parser::isFunctionBodyNode):
       
   520         (JSC::Parser::parse):
       
   521         * runtime/ArrayPrototype.cpp:
       
   522         (JSC::isNumericCompareFunction):
       
   523         * runtime/ExceptionHelpers.cpp:
       
   524         (JSC::createStackOverflowError):
       
   525         * runtime/ExceptionHelpers.h:
       
   526         * runtime/Executable.cpp:
       
   527         (JSC::EvalExecutable::compileInternal):
       
   528         (JSC::ProgramExecutable::checkSyntax):
       
   529         (JSC::ProgramExecutable::compileInternal):
       
   530         (JSC::FunctionExecutable::compileForCallInternal):
       
   531         (JSC::FunctionExecutable::compileForConstructInternal):
       
   532         (JSC::FunctionExecutable::reparseExceptionInfo):
       
   533         (JSC::EvalExecutable::reparseExceptionInfo):
       
   534         (JSC::FunctionExecutable::fromGlobalCode):
       
   535         * runtime/Executable.h:
       
   536         (JSC::EvalExecutable::compile):
       
   537         (JSC::EvalExecutable::generatedBytecode):
       
   538         (JSC::EvalExecutable::generatedJITCode):
       
   539         (JSC::ProgramExecutable::compile):
       
   540         (JSC::ProgramExecutable::generatedBytecode):
       
   541         (JSC::ProgramExecutable::generatedJITCode):
       
   542         (JSC::FunctionExecutable::generatedBytecode):
       
   543         (JSC::FunctionExecutable::compileForCall):
       
   544         (JSC::FunctionExecutable::compileForConstruct):
       
   545         (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
       
   546         * runtime/FunctionConstructor.cpp:
       
   547         (JSC::constructFunction):
       
   548         * runtime/JSActivation.cpp:
       
   549         (JSC::JSActivation::argumentsGetter):
       
   550         * runtime/JSGlobalData.h:
       
   551         (JSC::JSGlobalData::canUseJIT):
       
   552 
       
   553 2010-07-13  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
       
   554 
       
   555         Reviewed by Oliver Hunt.
       
   556 
       
   557         testapi.c depends on the Core Foundation.
       
   558         https://bugs.webkit.org/show_bug.cgi?id=40058
       
   559 
       
   560         Separate CoreFoundation specific tests in JSC's testapi.c. Enabling it
       
   561         to compile in Qt environments.
       
   562 
       
   563         All tests should work except for the JSStringCreateWithCharacters() function,
       
   564         because its tests depend on Core Foundation specific functions.
       
   565 
       
   566         * API/tests/testapi.c:
       
   567         (testJSStringRefCF): moved CoreFoundation specific tests to this function.
       
   568         (main): The moves plus some minor tweaks.
       
   569         * testapi.pro: Added.
       
   570 
       
   571 2010-07-13  Gavin Barraclough  <barraclough@apple.com>
       
   572 
       
   573         Reviewed by Oliver Hunt.
       
   574 
       
   575         Bug 42182 - Change how numeric compare functions are detected
       
   576 
       
   577         There are three problems with the current mechanism:
       
   578           * It requires that a function executable be bytecode compiled without
       
   579             being JIT generated (in order to copy the bytecode from the numeric
       
   580             compare function).  This is a problem since we have an invariant when
       
   581             running with the JIT that functions are never bytecode compiled without
       
   582             also being JIT generated (after checking the codeblock we assume the
       
   583             function has JIT code).  To help maintain this invariant 
       
   584           * This implementation will prevent us from experimenting with alternate
       
   585             compilation paths which do not compile via bytecode.
       
   586           * It doesn't work.  Functions passing more than two arguments will match
       
   587             if they are comparing their last two arguments, not the first two.
       
   588             Generally the mapping back from bytecode to semantics may be more
       
   589             complex then initially expected.
       
   590 
       
   591         * bytecompiler/BytecodeGenerator.cpp:
       
   592         (JSC::BytecodeGenerator::generate):
       
   593         (JSC::BytecodeGenerator::setIsNumericCompareFunction):
       
   594         (JSC::BytecodeGenerator::argumentNumberFor):
       
   595         * bytecompiler/BytecodeGenerator.h:
       
   596         * bytecompiler/NodesCodegen.cpp:
       
   597         (JSC::BlockNode::singleStatement):
       
   598         (JSC::FunctionBodyNode::emitBytecode):
       
   599         * parser/Nodes.h:
       
   600         (JSC::ExpressionNode::isSubtract):
       
   601         (JSC::BinaryOpNode::lhs):
       
   602         (JSC::BinaryOpNode::rhs):
       
   603         (JSC::SubNode::isSubtract):
       
   604         (JSC::ReturnNode::value):
       
   605         * runtime/JSGlobalData.cpp:
       
   606         (JSC::JSGlobalData::JSGlobalData):
       
   607         * runtime/JSGlobalData.h:
       
   608 
       
   609 2010-07-12  Oliver Hunt  <oliver@apple.com>
       
   610 
       
   611         Reviewed by Gavin Barraclough.
       
   612 
       
   613         REGRESSION: Crash at JSC::JIT::privateCompile(JSC::MacroAssemblerCodePtr*)
       
   614         https://bugs.webkit.org/show_bug.cgi?id=41763
       
   615 
       
   616         There are two parts to this patch, the first is to fix the actual
       
   617         problem.  When calling copyStringWithoutBOMs on a string we know
       
   618         to contain BOMs we return a value indicating that there are no
       
   619         BOMs.
       
   620 
       
   621         The second part of this fix is simply to harden the path that
       
   622         led to a crash when parsing failed.
       
   623 
       
   624         * jit/JITOpcodes.cpp:
       
   625         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
   626         * jit/JITOpcodes32_64.cpp:
       
   627         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
   628         * jit/JITStubs.cpp:
       
   629         (JSC::DEFINE_STUB_FUNCTION):
       
   630            Harden compilation stubs against parser failure.
       
   631         * parser/Lexer.cpp:
       
   632         (JSC::Lexer::sourceCode):
       
   633            Add assertions to ensure that subranges into a source provider
       
   634            are always actually braces.  Hopefully this should catch similar
       
   635            failures in future.  These assertions fire on existing tests
       
   636            without this fix.
       
   637         * runtime/Executable.h:
       
   638         (JSC::FunctionExecutable::tryJitCodeForCall):
       
   639         (JSC::FunctionExecutable::tryJitCodeForConstruct):
       
   640         * wtf/text/StringImpl.h:
       
   641         (WebCore::StringImpl::copyStringWithoutBOMs):
       
   642            Make copyStringWithBOMs do the right thing.
       
   643 
       
   644 2010-07-13  Gabor Loki  <loki@webkit.org>
       
   645 
       
   646         Reviewed by Gavin Barraclough.
       
   647 
       
   648         Fix the constant encoding in data transfer instructions on ARM
       
   649         https://bugs.webkit.org/show_bug.cgi?id=42166
       
   650 
       
   651         The getImm function is designed to produce modified immediate constant
       
   652         for data processing instructions. It should not be used to encode
       
   653         any constant for data transfer. In the current situation there is no
       
   654         way to use any immediate constant for data transfer. So, the moveImm
       
   655         function is the desired method to pass the offset value to the data
       
   656         transfer instructions.
       
   657 
       
   658         Reported by Jacob Bramley.
       
   659 
       
   660         * assembler/ARMAssembler.cpp:
       
   661         (JSC::ARMAssembler::dataTransfer32):
       
   662         * assembler/MacroAssemblerARM.h:
       
   663         (JSC::MacroAssemblerARM::call32):
       
   664 
       
   665 2010-07-09  Darin Adler  <darin@apple.com>
       
   666 
       
   667         Reviewed by Geoffrey Garen.
       
   668 
       
   669         String to number coercion is not spec compliant
       
   670         https://bugs.webkit.org/show_bug.cgi?id=31349
       
   671 
       
   672         ToNumber should ignore NBSP (\u00a0)
       
   673         https://bugs.webkit.org/show_bug.cgi?id=25490
       
   674 
       
   675         * runtime/JSGlobalObjectFunctions.cpp:
       
   676         (JSC::parseIntOverflow): Added a version that works on UChar.
       
   677         * runtime/JSGlobalObjectFunctions.h: Ditto.
       
   678 
       
   679         * runtime/UString.cpp:
       
   680         (JSC::isInfinity): Added helper functions.
       
   681         (JSC::UString::toDouble): Use isStrWhiteSpace instead of
       
   682         isSASCIISpace to define what we should skip. Got rid of the
       
   683         code that used CString and UTF8String, instead processing the
       
   684         UChar of the string directly, except for when we call strtod.
       
   685         For strtod, use our own home-grown conversion function that
       
   686         does not try to do any UTF-16 processing. Tidied up the logic
       
   687         a bit as well.
       
   688 
       
   689 2010-07-12  Martin Robinson  <mrobinson@igalia.com>
       
   690 
       
   691         Reviewed by Xan Lopez.
       
   692 
       
   693         [GTK] make dist is broken because of missing headers and other miscellaneous reasons
       
   694         https://bugs.webkit.org/show_bug.cgi?id=42107
       
   695 
       
   696         * GNUmakefile.am: Add missing header to the sources list.
       
   697 
       
   698 2010-07-12  Adam Roben  <aroben@apple.com>
       
   699 
       
   700         Stop generating stripped symbols for Release builds
       
   701 
       
   702         It turns out we can strip the symbols after-the-fact using PDBCopy.
       
   703 
       
   704         Fixes <http://webkit.org/b/42085>.
       
   705 
       
   706         Reviewed by Steve Falkenburg.
       
   707 
       
   708         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
       
   709         Removed the pre-link event, which just created the public\sym
       
   710         directory.
       
   711 
       
   712 2010-07-12  Anders Carlsson  <andersca@apple.com>
       
   713 
       
   714         Reviewed by Dan Bernstein.
       
   715 
       
   716         Add WARN_UNUSED_RETURN to the smart pointer "leak" member functions
       
   717         https://bugs.webkit.org/show_bug.cgi?id=42086
       
   718 
       
   719         * wtf/OwnPtr.h:
       
   720         * wtf/PassOwnPtr.h:
       
   721         * wtf/PassRefPtr.h:
       
   722         (WTF::PassRefPtr::releaseRef):
       
   723         (WTF::NonNullPassRefPtr::leakRef):
       
   724         (WTF::NonNullPassRefPtr::releaseRef):
       
   725         * wtf/RetainPtr.h:
       
   726         (WTF::RetainPtr::releaseRef):
       
   727 
       
   728 2010-07-10  Oliver Hunt  <oliver@apple.com>
       
   729 
       
   730         Reviewed by Maciej Stachowiak.
       
   731 
       
   732         HAVE_COMPUTED_GOTO is dependent on the interpreter being enabled
       
   733         https://bugs.webkit.org/show_bug.cgi?id=42039
       
   734 
       
   735         Separate the existence of computed goto support in the compiler
       
   736         from whether or not we are using the interpreter.  All the current
       
   737         HAVE(COMPUTED_GOTO) guards are for the interpreter, but I'd like
       
   738         the option of using it elsewhere.  The interpreter now uses
       
   739         ENABLE(COMPUTED_GOTO_INTERPRETER) 
       
   740 
       
   741         * bytecode/Instruction.h:
       
   742         (JSC::Instruction::Instruction):
       
   743         * bytecode/Opcode.h:
       
   744         * interpreter/Interpreter.cpp:
       
   745         (JSC::Interpreter::Interpreter):
       
   746         (JSC::Interpreter::isOpcode):
       
   747         (JSC::Interpreter::privateExecute):
       
   748         * interpreter/Interpreter.h:
       
   749         (JSC::Interpreter::getOpcode):
       
   750         (JSC::Interpreter::getOpcodeID):
       
   751         * wtf/Platform.h:
       
   752 
       
   753 2010-07-10  Oliver Hunt  <oliver@apple.com>
       
   754 
       
   755         Reviewed by Gavin Barraclough.
       
   756 
       
   757         Remove switches from inner expression loops in the parser
       
   758         https://bugs.webkit.org/show_bug.cgi?id=42035
       
   759 
       
   760         Use bitmasks and flags on the token types to identify unary and
       
   761         binary operators, rather than switching on the token type to
       
   762         identify them.
       
   763 
       
   764         * parser/JSParser.cpp:
       
   765         (JSC::isUnaryOp):
       
   766         (JSC::JSParser::isBinaryOperator):
       
   767         * parser/JSParser.h:
       
   768         (JSC::):
       
   769 
       
   770 2010-07-09  Leon Clarke  <leonclarke@google.com>
       
   771 
       
   772         Reviewed by Adam Barth.
       
   773 
       
   774         add support for link prefetching
       
   775         https://bugs.webkit.org/show_bug.cgi?id=3652
       
   776 
       
   777         * Configurations/FeatureDefines.xcconfig:
       
   778 
       
   779 2010-07-09  Oliver Hunt  <oliver@apple.com>
       
   780 
       
   781         Reviewed by Darin Adler.
       
   782 
       
   783         Tidy up lexer token ids
       
   784         https://bugs.webkit.org/show_bug.cgi?id=42014
       
   785 
       
   786         Stop using character literals to identify single character tokens
       
   787         and instead use symbolic names for all tokens.
       
   788 
       
   789         * parser/ASTBuilder.h:
       
   790         (JSC::ASTBuilder::makeBinaryNode):
       
   791         * parser/JSParser.cpp:
       
   792         (JSC::JSParser::consume):
       
   793         (JSC::JSParser::match):
       
   794         (JSC::JSParser::autoSemiColon):
       
   795         (JSC::JSParser::JSParser):
       
   796         (JSC::JSParser::parseProgram):
       
   797         (JSC::JSParser::allowAutomaticSemicolon):
       
   798         (JSC::JSParser::parseDoWhileStatement):
       
   799         (JSC::JSParser::parseWhileStatement):
       
   800         (JSC::JSParser::parseVarDeclarationList):
       
   801         (JSC::JSParser::parseConstDeclarationList):
       
   802         (JSC::JSParser::parseForStatement):
       
   803         (JSC::JSParser::parseReturnStatement):
       
   804         (JSC::JSParser::parseWithStatement):
       
   805         (JSC::JSParser::parseSwitchStatement):
       
   806         (JSC::JSParser::parseSwitchClauses):
       
   807         (JSC::JSParser::parseSwitchDefaultClause):
       
   808         (JSC::JSParser::parseTryStatement):
       
   809         (JSC::JSParser::parseDebuggerStatement):
       
   810         (JSC::JSParser::parseStatement):
       
   811         (JSC::JSParser::parseFormalParameters):
       
   812         (JSC::JSParser::parseFunctionInfo):
       
   813         (JSC::JSParser::parseExpressionOrLabelStatement):
       
   814         (JSC::JSParser::parseIfStatement):
       
   815         (JSC::JSParser::parseExpression):
       
   816         (JSC::JSParser::parseAssignmentExpression):
       
   817         (JSC::JSParser::parseConditionalExpression):
       
   818         (JSC::isUnaryOp):
       
   819         (JSC::JSParser::isBinaryOperator):
       
   820         (JSC::JSParser::parseBinaryExpression):
       
   821         (JSC::JSParser::parseProperty):
       
   822         (JSC::JSParser::parseObjectLiteral):
       
   823         (JSC::JSParser::parseStrictObjectLiteral):
       
   824         (JSC::JSParser::parseArrayLiteral):
       
   825         (JSC::JSParser::parsePrimaryExpression):
       
   826         (JSC::JSParser::parseArguments):
       
   827         (JSC::JSParser::parseMemberExpression):
       
   828         (JSC::JSParser::parseUnaryExpression):
       
   829         * parser/JSParser.h:
       
   830         (JSC::):
       
   831         * parser/Lexer.cpp:
       
   832         (JSC::):
       
   833         (JSC::Lexer::lex):
       
   834         * parser/Lexer.h:
       
   835 
       
   836 2010-07-09  Gavin Barraclough  <barraclough@apple.com>
       
   837 
       
   838         Reviewed by Oliver Hunt.
       
   839 
       
   840         Bug 42015 - Enable JSValue32_64 on ARMv7
       
   841 
       
   842         * Configurations/JavaScriptCore.xcconfig:
       
   843         * jit/JIT.h:
       
   844         * jit/JITStubs.cpp:
       
   845         * wtf/Platform.h:
       
   846 
       
   847 2010-07-09  Kenneth Russell  <kbr@google.com>
       
   848 
       
   849         Reviewed by Dimitri Glazkov.
       
   850 
       
   851         Assertion failure in String::utf8() for certain invalid UTF16 inputs
       
   852         https://bugs.webkit.org/show_bug.cgi?id=41983
       
   853 
       
   854         * wtf/text/WTFString.cpp:
       
   855         (WebCore::String::utf8):
       
   856          - Fixed assertion when sourceExhausted is returned from convertUTF16ToUTF8.
       
   857 
       
   858 2010-07-09  Oliver Hunt  <oliver@apple.com>
       
   859 
       
   860         Reviewed by Geoffrey Garen.
       
   861 
       
   862         Remove a couple of excess writes from the lexer
       
   863         https://bugs.webkit.org/show_bug.cgi?id=41981
       
   864 
       
   865         Remove a couple of fields from JSTokenInfo, and rename the remaining ones
       
   866         to something more accurate
       
   867 
       
   868         * parser/JSParser.cpp:
       
   869         (JSC::JSParser::next):
       
   870         (JSC::JSParser::tokenStart):
       
   871         (JSC::JSParser::tokenLine):
       
   872         (JSC::JSParser::tokenEnd):
       
   873         * parser/JSParser.h:
       
   874         (JSC::JSTokenInfo::JSTokenInfo):
       
   875         * parser/Lexer.cpp:
       
   876         (JSC::Lexer::lex):
       
   877 
       
   878 2010-07-08  Oliver Hunt  <oliver@apple.com>
       
   879 
       
   880         Reviewed by Sam Weinig.
       
   881 
       
   882         Property declarations in an object literal should not consider the prototype chain when being added to the new object
       
   883         https://bugs.webkit.org/show_bug.cgi?id=41929
       
   884 
       
   885         To fix this all we need to do is ensure that all new properties are
       
   886         added with putDirect rather than a fully generic call to put.  This
       
   887         is safe as an object literal is by definition going to produce a
       
   888         completely normal object.
       
   889 
       
   890         Rather than duplicating all the put_by_id logic we add an additional
       
   891         flag to op_put_by_id to indicate it should be using putDirect.  In
       
   892         the interpreter this adds a runtime branch, but in the jit this is
       
   893         essentially free as the branch is taken at compile time.  This does
       
   894         actually improve object literal creation time even in the interpreter
       
   895         as we no longer need to walk the prototype chain to verify that the
       
   896         cached put is safe.
       
   897 
       
   898         We still emit normal put_by_id code when emitting __proto__ as we want
       
   899         to get the correct handling for changing the prototype.
       
   900 
       
   901         Sunspider claims this is a 0.7% speedup which is conceivably real due
       
   902         to the performance improvement in object literals, but I suspect its
       
   903         really just the result of code motion.
       
   904 
       
   905         * bytecode/Opcode.h:
       
   906         * bytecompiler/BytecodeGenerator.cpp:
       
   907         (JSC::BytecodeGenerator::emitPutById):
       
   908         (JSC::BytecodeGenerator::emitDirectPutById):
       
   909         * bytecompiler/BytecodeGenerator.h:
       
   910         * bytecompiler/NodesCodegen.cpp:
       
   911         (JSC::PropertyListNode::emitBytecode):
       
   912         * interpreter/Interpreter.cpp:
       
   913         (JSC::Interpreter::privateExecute):
       
   914         * jit/JIT.h:
       
   915         (JSC::JIT::compilePutByIdTransition):
       
   916         * jit/JITPropertyAccess.cpp:
       
   917         (JSC::JIT::emit_op_put_by_id):
       
   918         (JSC::JIT::emitSlow_op_put_by_id):
       
   919         (JSC::JIT::privateCompilePutByIdTransition):
       
   920         (JSC::JIT::patchPutByIdReplace):
       
   921         * jit/JITPropertyAccess32_64.cpp:
       
   922         (JSC::JIT::emitSlow_op_put_by_id):
       
   923         (JSC::JIT::privateCompilePutByIdTransition):
       
   924         (JSC::JIT::patchPutByIdReplace):
       
   925         * jit/JITStubs.cpp:
       
   926         (JSC::JITThunks::tryCachePutByID):
       
   927         (JSC::DEFINE_STUB_FUNCTION):
       
   928         * jit/JITStubs.h:
       
   929         (JSC::):
       
   930         * runtime/JSGlobalData.cpp:
       
   931         (JSC::JSGlobalData::JSGlobalData):
       
   932         * runtime/JSObject.h:
       
   933         (JSC::JSObject::putDirect):
       
   934         (JSC::JSValue::putDirect):
       
   935         * runtime/JSValue.h:
       
   936 
       
   937 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
       
   938 
       
   939         Reviewed by Sam Weinig.
       
   940 
       
   941         String.prototype methods should CheckObjectCoercible (test this is not null or undefined).
       
   942 
       
   943         * runtime/StringPrototype.cpp:
       
   944         (JSC::stringProtoFuncCharAt):
       
   945         (JSC::stringProtoFuncCharCodeAt):
       
   946         (JSC::stringProtoFuncConcat):
       
   947         (JSC::stringProtoFuncIndexOf):
       
   948         (JSC::stringProtoFuncLastIndexOf):
       
   949         (JSC::stringProtoFuncMatch):
       
   950         (JSC::stringProtoFuncSearch):
       
   951         (JSC::stringProtoFuncSlice):
       
   952         (JSC::stringProtoFuncSplit):
       
   953         (JSC::stringProtoFuncSubstr):
       
   954         (JSC::stringProtoFuncSubstring):
       
   955         (JSC::stringProtoFuncToLowerCase):
       
   956         (JSC::stringProtoFuncToUpperCase):
       
   957         (JSC::stringProtoFuncLocaleCompare):
       
   958         (JSC::trimString):
       
   959 
       
   960 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
       
   961 
       
   962         Reviewed by Sam Weinig.
       
   963 
       
   964         Date.prototype.toJSON takes one argument, report this correctly.
       
   965 
       
   966         * runtime/DatePrototype.cpp:
       
   967 
       
   968 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
       
   969 
       
   970         Reviewed by Sam Weinig.
       
   971 
       
   972         RegExp's prototype should be an object of type RegExp.
       
   973 
       
   974         * runtime/RegExpPrototype.cpp:
       
   975         (JSC::RegExpPrototype::RegExpPrototype):
       
   976         * runtime/RegExpPrototype.h:
       
   977 
       
   978 2010-07-08  Oliver Hunt  <oliver@apple.com>
       
   979 
       
   980         Reviewed by Gavin Barraclough.
       
   981 
       
   982         JavaScript parser violates ECMA automatic semicolon insertion rule
       
   983         https://bugs.webkit.org/show_bug.cgi?id=41844
       
   984 
       
   985         Remove (very) old and bogus logic that automatically inserted a semicolon
       
   986         at the end of a script's source.
       
   987 
       
   988         * parser/Lexer.cpp:
       
   989         (JSC::Lexer::lex):
       
   990 
       
   991 2010-07-08  Oliver Hunt  <oliver@apple.com>
       
   992 
       
   993         Reviewed by Anders Carlson.
       
   994 
       
   995         Tidy up the lexer
       
   996 
       
   997         Remove some of the old yacc/lex-isms still present in the lexer
       
   998 
       
   999         * parser/JSParser.h:
       
  1000         (JSC::):
       
  1001         * parser/Lexer.cpp:
       
  1002         (JSC::Lexer::parseString):
       
  1003         (JSC::Lexer::lex):
       
  1004         * parser/Lexer.h:
       
  1005 
       
  1006 2010-07-08  Oliver Hunt  <oliver@apple.com>
       
  1007 
       
  1008         Reviewed by Gavin Barraclough.
       
  1009 
       
  1010         Make object-literal parsing conformant with the spec.
       
  1011         https://bugs.webkit.org/show_bug.cgi?id=41892
       
  1012 
       
  1013         Bring our parsing of object literals into conformance with the ES5 spec.
       
  1014         Basically disallow conflicting accessor vs. normal property definitions
       
  1015         The bulk of this patch is just fiddling to maintain performance.
       
  1016 
       
  1017         * parser/ASTBuilder.h:
       
  1018         (JSC::ASTBuilder::createGetterOrSetterProperty):
       
  1019         (JSC::ASTBuilder::createProperty):
       
  1020         (JSC::ASTBuilder::getName):
       
  1021         (JSC::ASTBuilder::getType):
       
  1022         * parser/JSParser.cpp:
       
  1023         (JSC::jsParse):
       
  1024         (JSC::JSParser::JSParser):
       
  1025         (JSC::JSParser::parseProperty):
       
  1026         (JSC::JSParser::parseObjectLiteral):
       
  1027         (JSC::JSParser::parseStrictObjectLiteral):
       
  1028         * parser/JSParser.h:
       
  1029         * parser/Lexer.cpp:
       
  1030         (JSC::Lexer::clear):
       
  1031         * parser/Lexer.h:
       
  1032         (JSC::Lexer::currentOffset):
       
  1033         (JSC::Lexer::setOffset):
       
  1034           Add logic to allow us to roll the lexer back in the input stream.
       
  1035         * parser/Nodes.h:
       
  1036         (JSC::PropertyNode::):
       
  1037         (JSC::PropertyNode::type):
       
  1038         * parser/Parser.cpp:
       
  1039         (JSC::Parser::parse):
       
  1040         * parser/SourceProvider.h:
       
  1041         (JSC::SourceProvider::SourceProvider):
       
  1042         (JSC::SourceProvider::isValid):
       
  1043         (JSC::SourceProvider::setValid):
       
  1044           SourceProvider now records whether the input text
       
  1045           has already been validated.
       
  1046         * parser/SyntaxChecker.h:
       
  1047         (JSC::SyntaxChecker::SyntaxChecker):
       
  1048         (JSC::SyntaxChecker::Property::Property):
       
  1049         (JSC::SyntaxChecker::Property::operator!):
       
  1050         (JSC::SyntaxChecker::createProperty):
       
  1051         (JSC::SyntaxChecker::createPropertyList):
       
  1052         (JSC::SyntaxChecker::createGetterOrSetterProperty):
       
  1053           The SyntaxChecker mode now needs to maintain a bit more information
       
  1054           to ensure that we can validate object literals correctly.
       
  1055 
       
  1056 2010-07-08  Darin Adler  <darin@apple.com>
       
  1057 
       
  1058         * runtime/JSGlobalData.cpp:
       
  1059         (JSC::JSGlobalData::sharedInstance): Fix typo.
       
  1060 
       
  1061 2010-07-08  Darin Adler  <darin@apple.com>
       
  1062 
       
  1063         Reviewed by Oliver Hunt.
       
  1064 
       
  1065         Fix assertion seen on the Leopard buildbot.
       
  1066         The single shared instance of JSGlobalData was not being
       
  1067         adopted after creation.
       
  1068 
       
  1069         * runtime/JSGlobalData.cpp:
       
  1070         (JSC::JSGlobalData::sharedInstance): Do adoptRef and then leakRef.
       
  1071 
       
  1072 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
       
  1073 
       
  1074         Reviewed by Sam Weinig.
       
  1075 
       
  1076         BOMs are whitespace.
       
  1077 
       
  1078         * runtime/JSGlobalObjectFunctions.cpp:
       
  1079         (JSC::isStrWhiteSpace):
       
  1080 
       
  1081 2010-07-08  Martin Robinson  <mrobinson@igalia.com>
       
  1082 
       
  1083         Unreviewed.
       
  1084 
       
  1085         Try fix the GTK+ build by touching this file.
       
  1086 
       
  1087         * jit/ExecutableAllocatorFixedVMPool.cpp:
       
  1088 
       
  1089 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
       
  1090 
       
  1091         GTK build fix take two.
       
  1092 
       
  1093         * GNUmakefile.am:
       
  1094 
       
  1095 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
       
  1096 
       
  1097         GTK build fix.
       
  1098 
       
  1099         * GNUmakefile.am:
       
  1100 
       
  1101 2010-07-08  Gavin Barraclough  <barraclough@apple.com>
       
  1102 
       
  1103         Reviewed by Sam Weinig.
       
  1104 
       
  1105         https://bugs.webkit.org/show_bug.cgi?id=41641
       
  1106 
       
  1107         Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
       
  1108         other than x86-64 (this may be useful on 32-bit platforms, too).
       
  1109 
       
  1110         Simplify ifdefs by dividing into thwo broad allocation strategies
       
  1111         (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
       
  1112 
       
  1113         Rename constant used in the code to have names descriptive of their purpose,
       
  1114         rather than their specific value on a given platform.
       
  1115 
       
  1116         * jit/ExecutableAllocator.cpp:
       
  1117         (JSC::ExecutableAllocator::reprotectRegion):
       
  1118         (JSC::ExecutableAllocator::cacheFlush):
       
  1119         * jit/ExecutableAllocatorFixedVMPool.cpp:
       
  1120         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
       
  1121         (JSC::FixedVMPoolAllocator::free):
       
  1122         (JSC::ExecutablePool::systemAlloc):
       
  1123         * jit/ExecutableAllocatorPosix.cpp:
       
  1124         * jit/ExecutableAllocatorSymbian.cpp:
       
  1125         * jit/ExecutableAllocatorWin.cpp:
       
  1126         * wtf/Platform.h:
       
  1127 
       
  1128 2010-07-08  Xan Lopez  <xlopez@igalia.com>
       
  1129 
       
  1130         Reviewed by Gustavo Noronha.
       
  1131 
       
  1132         Silence a few noisy build rules.
       
  1133 
       
  1134         * GNUmakefile.am:
       
  1135 
       
  1136 2010-07-08  Sheriff Bot  <webkit.review.bot@gmail.com>
       
  1137 
       
  1138         Unreviewed, rolling out r62765.
       
  1139         http://trac.webkit.org/changeset/62765
       
  1140         https://bugs.webkit.org/show_bug.cgi?id=41840
       
  1141 
       
  1142         All jscore and layout tests crash on Qt bot (Requested by Ossy
       
  1143         on #webkit).
       
  1144 
       
  1145         * wtf/FastMalloc.cpp:
       
  1146         (WTF::TCMalloc_PageHeap::initializeScavenger):
       
  1147         (WTF::TCMalloc_PageHeap::signalScavenger):
       
  1148         (WTF::TCMalloc_PageHeap::scavengerThread):
       
  1149 
       
  1150 2010-07-08  Andreas Kling  <andreas.kling@nokia.com>
       
  1151 
       
  1152         Reviewed by Oliver Hunt.
       
  1153 
       
  1154         Interpreter: Crash in op_load_varargs on 64-bit
       
  1155         https://bugs.webkit.org/show_bug.cgi?id=41795
       
  1156 
       
  1157         Added missing cast of argCount to int32_t in op_load_varargs.
       
  1158 
       
  1159         * interpreter/Interpreter.cpp:
       
  1160         (JSC::Interpreter::privateExecute):
       
  1161 
       
  1162 2010-07-08  Patrick Gansterer  <paroga@paroga.com>
       
  1163 
       
  1164         Reviewed by Geoffrey Garen.
       
  1165 
       
  1166         Make FastMalloc more portable.
       
  1167         https://bugs.webkit.org/show_bug.cgi?id=41790
       
  1168 
       
  1169         Use WTF::Mutex instead of pthread_mutex_t and
       
  1170         replace pthread_cond_t with WTF::ThreadCondition.
       
  1171 
       
  1172         * wtf/FastMalloc.cpp:
       
  1173         (WTF::TCMalloc_PageHeap::initializeScavenger):
       
  1174         (WTF::TCMalloc_PageHeap::signalScavenger):
       
  1175         (WTF::TCMalloc_PageHeap::scavengerThread):
       
  1176 
       
  1177 2010-07-08  Patrick Gansterer  <paroga@paroga.com>
       
  1178 
       
  1179         Reviewed by Darin Adler.
       
  1180 
       
  1181         Remove needless #include <fcntl.h> from TCSystemAlloc.cpp.
       
  1182         https://bugs.webkit.org/show_bug.cgi?id=41777
       
  1183 
       
  1184         * wtf/TCSystemAlloc.cpp:
       
  1185 
       
  1186 2010-07-07  Darin Adler  <darin@apple.com>
       
  1187 
       
  1188         Fixed build in configurations like PowerPC.
       
  1189 
       
  1190         * runtime/RegExpConstructor.cpp: Added include of PassOwnPtr.h.
       
  1191         * runtime/RegExpObject.cpp: Ditto.
       
  1192         * wtf/SizeLimits.cpp: Changed compile time assertion to work
       
  1193         even on platforms where two bool members do not end up taking
       
  1194         the same size as one int member!
       
  1195 
       
  1196 2010-07-07  Oliver Hunt  <oliver@apple.com>
       
  1197 
       
  1198         Reviewed by Geoffrey Garen.
       
  1199 
       
  1200         Lazy mode of parser allows invalid syntax in object literals.
       
  1201         https://bugs.webkit.org/show_bug.cgi?id=41809
       
  1202 
       
  1203         Make the parser itself validate getter and setter syntax rather
       
  1204         than offloading it to the AST builder.
       
  1205 
       
  1206         * parser/ASTBuilder.h:
       
  1207         (JSC::ASTBuilder::createGetterOrSetterProperty):
       
  1208         * parser/JSParser.cpp:
       
  1209         (JSC::JSParser::parseProperty):
       
  1210 
       
  1211 2010-07-07  Dumitru Daniliuc  <dumi@chromium.org>
       
  1212 
       
  1213         Reviewed by Adam Roben.
       
  1214 
       
  1215         Revert r62689.
       
  1216         https://bugs.webkit.org/show_bug.cgi?id=41804
       
  1217 
       
  1218         * runtime/Collector.cpp:
       
  1219         (JSC::Heap::freeBlocks):
       
  1220 
       
  1221 2010-07-07  Adam Barth  <abarth@webkit.org>
       
  1222 
       
  1223         Reviewed by Sam Weinig.
       
  1224 
       
  1225         Add reverseFind to Vector and deploy in HTML5 parser
       
  1226         https://bugs.webkit.org/show_bug.cgi?id=41778
       
  1227 
       
  1228         This method seems generally useful.  I'm slightly surprised we don't
       
  1229         have it already.
       
  1230 
       
  1231         * wtf/Vector.h:
       
  1232         (WTF::::reverseFind):
       
  1233 
       
  1234 2010-07-07  Darin Adler  <darin@apple.com>
       
  1235 
       
  1236         Reviewed by Adam Barth.
       
  1237 
       
  1238         Turn on adoptRef assertion for RefCounted
       
  1239         https://bugs.webkit.org/show_bug.cgi?id=41547
       
  1240 
       
  1241         * wtf/CrossThreadRefCounted.h: Fixed include style. Includes of other
       
  1242         WTF headers should use "" includes; consistent in most WTF headers.
       
  1243         Added a call to relaxAdoptionRequirement.
       
  1244 
       
  1245         * wtf/RefCounted.h: Fixed include style. Removed LOOSE_REF_COUNTED.
       
  1246         Added relaxAdoptionRequirement.
       
  1247 
       
  1248 2010-07-07  Anders Carlsson  <andersca@apple.com>
       
  1249 
       
  1250         Try to fix the Windows build.
       
  1251 
       
  1252         * runtime/Collector.cpp:
       
  1253         (JSC::Heap::freeBlocks):
       
  1254 
       
  1255 2010-07-07  Darin Adler  <darin@apple.com>
       
  1256 
       
  1257         Reviewed by Adam Barth.
       
  1258 
       
  1259         More OwnPtr work
       
  1260         https://bugs.webkit.org/show_bug.cgi?id=41727
       
  1261 
       
  1262         * API/JSCallbackObject.h:
       
  1263         (JSC::JSCallbackObjectData::setPrivateProperty): Use adoptPtr.
       
  1264         * API/JSCallbackObjectFunctions.h:
       
  1265         (JSC::JSCallbackObject::JSCallbackObject): Ditto.
       
  1266         * bytecode/CodeBlock.cpp:
       
  1267         (JSC::CodeBlock::CodeBlock): Ditto.
       
  1268         * bytecode/CodeBlock.h:
       
  1269         (JSC::CodeBlock::createRareDataIfNecessary): Ditto.
       
  1270         * parser/Nodes.cpp:
       
  1271         (JSC::ScopeNode::ScopeNode): Ditto.
       
  1272         * parser/ParserArena.cpp:
       
  1273         (JSC::ParserArena::ParserArena): Ditto.
       
  1274         * runtime/Arguments.h:
       
  1275         (JSC::Arguments::Arguments): Ditto.
       
  1276         * runtime/Executable.cpp:
       
  1277         (JSC::EvalExecutable::compile): Ditto.
       
  1278         (JSC::ProgramExecutable::compile): Ditto.
       
  1279         (JSC::FunctionExecutable::compileForCall): Ditto.
       
  1280         (JSC::FunctionExecutable::compileForConstruct): Ditto.
       
  1281         (JSC::FunctionExecutable::reparseExceptionInfo): Ditto.
       
  1282         (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
       
  1283         * runtime/JSArray.cpp:
       
  1284         (JSC::JSArray::sort): Ditto.
       
  1285         * runtime/RegExpConstructor.cpp:
       
  1286         (JSC::RegExpConstructor::RegExpConstructor): Ditto.
       
  1287         * runtime/RegExpObject.cpp:
       
  1288         (JSC::RegExpObject::RegExpObject): Ditto.
       
  1289         * runtime/SmallStrings.cpp:
       
  1290         (JSC::SmallStrings::createSingleCharacterString): Ditto.
       
  1291         (JSC::SmallStrings::singleCharacterStringRep): Ditto.
       
  1292 
       
  1293         * wtf/unicode/icu/CollatorICU.cpp:
       
  1294         (WTF::Collator::userDefault): Use adoptPtr.
       
  1295         * yarr/RegexInterpreter.cpp:
       
  1296         (JSC::Yarr::ByteCompiler::ByteCompiler): Ditto.
       
  1297         (JSC::Yarr::ByteCompiler::compile): Ditto.
       
  1298         (JSC::Yarr::ByteCompiler::regexBegin): Ditto.
       
  1299         (JSC::Yarr::byteCompileRegex): Ditto.
       
  1300         * yarr/RegexInterpreter.h:
       
  1301         (JSC::Yarr::BytecodePattern::BytecodePattern): Ditto.
       
  1302 
       
  1303 2010-07-07  Darin Adler  <darin@apple.com>
       
  1304 
       
  1305         Reviewed by Adam Barth.
       
  1306 
       
  1307         Make clear set the pointer to 0 before deletion
       
  1308         https://bugs.webkit.org/show_bug.cgi?id=41727
       
  1309 
       
  1310         * wtf/OwnArrayPtr.h: Changed code so we always set the pointer to its new
       
  1311         value before deleting the old one, including in the set function and the
       
  1312         clear function. This required changing safeDelete.
       
  1313         * wtf/OwnPtr.h: Ditto. Also removed some extra null checks.
       
  1314         * wtf/PassOwnPtr.h: Ditto.
       
  1315 
       
  1316         * wtf/PassRefPtr.h: Changed code so we always set the pointer to its new
       
  1317         value before deref'ing the old one in the clear function. Also added a
       
  1318         leakRef function for NonNullPassRefPtr.
       
  1319         * wtf/RefPtr.h: Ditto.
       
  1320 
       
  1321         * wtf/gobject/GOwnPtr.h: More of the same.
       
  1322         * wtf/gobject/GRefPtr.h: Ditto.
       
  1323 
       
  1324 2010-07-07  Zoltan Herczeg  <zherczeg@webkit.org>
       
  1325 
       
  1326         Reviewed by Oliver Hunt.
       
  1327 
       
  1328         Refactored string parsing inside the lexer
       
  1329         https://bugs.webkit.org/show_bug.cgi?id=41606
       
  1330 
       
  1331         Does not use goto. Although the last sunspider
       
  1332         parse-only tests yields 1.044x speedup, I think the
       
  1333         patch can have a slight improvement at most.
       
  1334 
       
  1335         * parser/Lexer.cpp:
       
  1336         (JSC::singleEscape):
       
  1337         (JSC::Lexer::parseString):
       
  1338         (JSC::Lexer::lex):
       
  1339         * parser/Lexer.h:
       
  1340 
       
  1341 2010-07-06  Oliver Hunt  <oliver@apple.com>
       
  1342 
       
  1343         Reviewed by Maciej Stachowiak.
       
  1344 
       
  1345         Make it possible to have both the JIT and Interpreter available in a single build
       
  1346         https://bugs.webkit.org/show_bug.cgi?id=41722
       
  1347 
       
  1348         Separate the concept of !ENABLE(JIT) and ENABLE(INTERPRETER) and make it possible
       
  1349         to have both JIT and INTERPRETER enabled at the same time.  This doesn't add
       
  1350         support for mix mode execution, but it does allow a single build to contain all
       
  1351         the code needed to use either the interpreter or the jit.
       
  1352 
       
  1353         If both ENABLE(INTERPRETER) and ENABLE(JIT) are true then setting the environment
       
  1354         variable JSC_FORCE_INTERPRETER will force JSC to use the interpreter.
       
  1355 
       
  1356         This patch basically consists of replacing !ENABLE(JIT) with ENABLE(INTERPRETER),
       
  1357         or converting #if ENABLE(JIT) ... #else ... into #if ENABLE(JIT) ... #endif
       
  1358         #if ENABLE(INTERPRETER), etc.  There are also a few functions that need to be
       
  1359         renamed to resolve return type ambiguity.
       
  1360 
       
  1361         * bytecode/CodeBlock.cpp:
       
  1362         (JSC::CodeBlock::~CodeBlock):
       
  1363         (JSC::CodeBlock::shrinkToFit):
       
  1364         * bytecode/CodeBlock.h:
       
  1365         * interpreter/CallFrame.h:
       
  1366         (JSC::ExecState::returnVPC):
       
  1367         * interpreter/Interpreter.cpp:
       
  1368         (JSC::Interpreter::unwindCallFrame):
       
  1369         (JSC::Interpreter::throwException):
       
  1370         (JSC::Interpreter::execute):
       
  1371         (JSC::Interpreter::executeCall):
       
  1372         (JSC::Interpreter::executeConstruct):
       
  1373         (JSC::Interpreter::prepareForRepeatCall):
       
  1374         (JSC::Interpreter::privateExecute):
       
  1375         (JSC::Interpreter::retrieveLastCaller):
       
  1376         * interpreter/Interpreter.h:
       
  1377         * runtime/ArrayPrototype.cpp:
       
  1378         (JSC::isNumericCompareFunction):
       
  1379         * runtime/Executable.cpp:
       
  1380         (JSC::EvalExecutable::generateJITCode):
       
  1381         (JSC::ProgramExecutable::generateJITCode):
       
  1382         (JSC::FunctionExecutable::generateJITCodeForCall):
       
  1383         (JSC::FunctionExecutable::generateJITCodeForConstruct):
       
  1384         (JSC::FunctionExecutable::reparseExceptionInfo):
       
  1385         (JSC::EvalExecutable::reparseExceptionInfo):
       
  1386         * runtime/JSFunction.cpp:
       
  1387         * runtime/JSGlobalData.cpp:
       
  1388         (JSC::JSGlobalData::JSGlobalData):
       
  1389         * runtime/JSGlobalData.h:
       
  1390         (JSC::JSGlobalData::canUseJIT):
       
  1391         * wtf/Platform.h:
       
  1392 
       
  1393 2010-07-06  Darin Adler  <darin@apple.com>
       
  1394 
       
  1395         Reviewed by Adam Barth.
       
  1396 
       
  1397         Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr
       
  1398         https://bugs.webkit.org/show_bug.cgi?id=41320
       
  1399 
       
  1400         * bytecode/CodeBlock.cpp:
       
  1401         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): Use assignment
       
  1402         instead of set since the result of reparseExceptionInfo is now a
       
  1403         PassOwnPtr.
       
  1404 
       
  1405         * bytecode/CodeBlock.h: Change extractExceptionInfo to return a
       
  1406         PassOwnPtr instead of a raw pointer.
       
  1407 
       
  1408         * runtime/Executable.cpp:
       
  1409         (JSC::FunctionExecutable::reparseExceptionInfo): Return a PassOwnPtr.
       
  1410         (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
       
  1411         (JSC::ProgramExecutable::reparseExceptionInfo): Added. This was
       
  1412         in the header before, but it's better to not have it there to reduce
       
  1413         header dependencies. Return a PassOwnPtr.
       
  1414 
       
  1415         * runtime/Executable.h: Made reparseExceptionInfo return a PassOwnPtr,
       
  1416         and put it in the private sections of classes other than the base class.
       
  1417 
       
  1418         * wtf/MessageQueue.h:
       
  1419         (WTF::MessageQueue::append): Use leakPtr instead of release.
       
  1420         (WTF::MessageQueue::appendAndCheckEmpty): Ditto.
       
  1421         (WTF::MessageQueue::prepend): Ditto.
       
  1422 
       
  1423         * wtf/OwnPtr.h: Tweaked formatting. Changed the release function to return
       
  1424         a PassOwnPtr rather than a raw pointer. Added a leakPtr function that
       
  1425         returns a raw pointer. Put the constructor that takes a raw pointer and
       
  1426         the set function into a section guarded by LOOSE_OWN_PTR. Adapted to the
       
  1427         new adoptPtr function from PassOwnPtr.h.
       
  1428 
       
  1429         * wtf/PassOwnPtr.h: Tweaked formatting. Renamed the release function
       
  1430         to leakPtr. Added an adoptPtr function that creates a new PassOwnPtr.
       
  1431         Put the constructor and assignment operators that take a raw pointer
       
  1432         into a section guarded by LOOSE_PASS_OWN_PTR.
       
  1433 
       
  1434 2010-07-06  Sam Weinig  <sam@webkit.org>
       
  1435 
       
  1436         Reviewed by Darin Adler
       
  1437 
       
  1438         Update comment in StringExtras.h to be more accurate.
       
  1439 
       
  1440         * wtf/StringExtras.h:
       
  1441 
       
  1442 2010-07-06  Sheriff Bot  <webkit.review.bot@gmail.com>
       
  1443 
       
  1444         Unreviewed, rolling out r62511.
       
  1445         http://trac.webkit.org/changeset/62511
       
  1446         https://bugs.webkit.org/show_bug.cgi?id=41686
       
  1447 
       
  1448         Breaks Linux/64bit compilation (Requested by xan_ on #webkit).
       
  1449 
       
  1450         * jit/ExecutableAllocator.cpp:
       
  1451         * jit/ExecutableAllocatorFixedVMPool.cpp:
       
  1452         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
       
  1453         (JSC::FixedVMPoolAllocator::free):
       
  1454         (JSC::ExecutablePool::systemAlloc):
       
  1455         * jit/ExecutableAllocatorPosix.cpp:
       
  1456         (JSC::ExecutableAllocator::reprotectRegion):
       
  1457         (JSC::ExecutableAllocator::cacheFlush):
       
  1458         * jit/ExecutableAllocatorSymbian.cpp:
       
  1459         * jit/ExecutableAllocatorWin.cpp:
       
  1460         * wtf/Platform.h:
       
  1461 
       
  1462 2010-07-05  Gavin Barraclough  <barraclough@apple.com>
       
  1463 
       
  1464         Reviewed by Sam Weinig.
       
  1465 
       
  1466         https://bugs.webkit.org/show_bug.cgi?id=41641
       
  1467 
       
  1468         Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
       
  1469         other than x86-64 (this may be useful on 32-bit platforms, too).
       
  1470 
       
  1471         Simplify ifdefs by dividing into thwo broad allocation strategies
       
  1472         (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
       
  1473 
       
  1474         Rename constant used in the code to have names descriptive of their purpose,
       
  1475         rather than their specific value on a given platform.
       
  1476 
       
  1477         * jit/ExecutableAllocator.cpp:
       
  1478         (JSC::ExecutableAllocator::reprotectRegion):
       
  1479         (JSC::ExecutableAllocator::cacheFlush):
       
  1480         * jit/ExecutableAllocatorFixedVMPool.cpp:
       
  1481         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
       
  1482         (JSC::FixedVMPoolAllocator::free):
       
  1483         (JSC::ExecutablePool::systemAlloc):
       
  1484         * jit/ExecutableAllocatorPosix.cpp:
       
  1485         * jit/ExecutableAllocatorSymbian.cpp:
       
  1486         * jit/ExecutableAllocatorWin.cpp:
       
  1487         * wtf/Platform.h:
       
  1488 
       
  1489 2010-07-05  Steve Block  <steveblock@google.com>
       
  1490 
       
  1491         Reviewed by Darin Adler.
       
  1492 
       
  1493         ThreadingPthreads.cpp should use JNIUtility.h on Android, not outdated jni_utility.h
       
  1494         https://bugs.webkit.org/show_bug.cgi?id=41594
       
  1495 
       
  1496         * wtf/ThreadingPthreads.cpp:
       
  1497 
       
  1498 2010-07-04  Mark Rowe  <mrowe@apple.com>
       
  1499 
       
  1500         Build fix after r62456.
       
  1501 
       
  1502         * interpreter/Interpreter.cpp:
       
  1503         (JSC::Interpreter::privateExecute): Be slightly more consistent in using uint32_t to prevent
       
  1504         warnings about comparisons between signed and unsigned types, and attempts to call an overload
       
  1505         of std::min that doesn't exist.
       
  1506 
       
  1507 2010-07-02  Sam Weinig  <sam@webkit.org>
       
  1508 
       
  1509         Reviewed by Darin Adler.
       
  1510 
       
  1511         Patch for https://bugs.webkit.org/show_bug.cgi?id=41553
       
  1512         Make StringExtras.h versions of snprintf and vsnprintf match the unix versions.
       
  1513 
       
  1514         - MSVC does not ensure the buffers are null terminated as the unix versions do.
       
  1515 
       
  1516         * runtime/JSGlobalObjectFunctions.cpp: Cleanup includes.
       
  1517         * runtime/UString.cpp: Clean up includes.
       
  1518         (JSC::UString::from): Don't pass sizeof(buf) - 1, that is wrong.
       
  1519         * wtf/StringExtras.h:
       
  1520         (snprintf): Ensure null termination of buffer.
       
  1521         (vsnprintf): Ditto.
       
  1522 
       
  1523 2010-07-03  Yong Li  <yoli@rim.com>
       
  1524 
       
  1525         Reviewed by Darin Adler.
       
  1526 
       
  1527         Make Arguments::MaxArguments clamping work for numbers >= 0x80000000 in
       
  1528         the interpreter as well as the JIT.
       
  1529 
       
  1530         https://bugs.webkit.org/show_bug.cgi?id=41351
       
  1531         rdar://problem/8142141
       
  1532 
       
  1533         * interpreter/Interpreter.cpp:
       
  1534         (JSC::Interpreter::privateExecute): Fix signed integer overflow problem
       
  1535         in op_load_varargs handling. 0xFFFFFFFF was read as -1.
       
  1536 
       
  1537 2010-06-26  Jeremy Orlow  <jorlow@chromium.org>
       
  1538 
       
  1539         Reviewed by Dumitru Daniliuc.
       
  1540 
       
  1541         Support for keys and in-memory storage for IndexedDB
       
  1542         https://bugs.webkit.org/show_bug.cgi?id=41252
       
  1543 
       
  1544         Set the role to Private.
       
  1545 
       
  1546         * JavaScriptCore.xcodeproj/project.pbxproj:
       
  1547 
       
  1548 2010-07-02  Oliver Hunt  <oliver@apple.com>
       
  1549 
       
  1550         Reviewed by Geoffrey Garen.
       
  1551 
       
  1552         Move BOM handling out of the lexer and parser
       
  1553         https://bugs.webkit.org/show_bug.cgi?id=41539
       
  1554 
       
  1555         Doing the BOM stripping in the lexer meant that we could
       
  1556         end up having to strip the BOMs from a source multiple times.
       
  1557         To deal with this we now require all strings provided by
       
  1558         a SourceProvider to already have had the BOMs stripped.
       
  1559         This also simplifies some of the lexer logic.
       
  1560 
       
  1561         * parser/Lexer.cpp:
       
  1562         (JSC::Lexer::setCode):
       
  1563         (JSC::Lexer::sourceCode):
       
  1564         * parser/SourceProvider.h:
       
  1565         (JSC::SourceProvider::SourceProvider):
       
  1566         (JSC::UStringSourceProvider::create):
       
  1567         (JSC::UStringSourceProvider::getRange):
       
  1568         (JSC::UStringSourceProvider::UStringSourceProvider):
       
  1569         * wtf/text/StringImpl.h:
       
  1570         (WebCore::StringImpl::copyStringWithoutBOMs):
       
  1571 
       
  1572 2010-07-03  Patrick Gansterer  <paroga@paroga.com>
       
  1573 
       
  1574         Reviewed by Kent Tamura.
       
  1575 
       
  1576         [WINCE] Implement Unicode::isAlphanumeric and Unicode::isArabicChar.
       
  1577         https://bugs.webkit.org/show_bug.cgi?id=41411
       
  1578 
       
  1579         * wtf/unicode/wince/UnicodeWince.cpp:
       
  1580         (WTF::Unicode::isAlphanumeric):
       
  1581         * wtf/unicode/wince/UnicodeWince.h:
       
  1582         (WTF::Unicode::isArabicChar):
       
  1583 
       
  1584 2010-07-03  Kwang Yul Seo  <skyul@company100.net>
       
  1585 
       
  1586         Reviewed by Kent Tamura.
       
  1587 
       
  1588         [BREWMP] Change the CRASH() macro to print "WebKit CRASH" log.
       
  1589         https://bugs.webkit.org/show_bug.cgi?id=41524
       
  1590 
       
  1591         Print "WebKit CRASH" before crashing.
       
  1592 
       
  1593         * wtf/Assertions.h:
       
  1594 
       
  1595 2010-07-02  Gavin Barraclough  <barraclough@apple.com>
       
  1596 
       
  1597         Reviewed by Oliver Hunt.
       
  1598 
       
  1599         Bug 41565 - Repatching in ARMv7Assembler::repatchLoadPtrToLEA is broken
       
  1600 
       
  1601         This method tried to repatch a LDR (T2) into an ADD (T3) - but it only
       
  1602         repatches the first instruction word.  The layout of the fields in the
       
  1603         second word is different, and also needs repatching.
       
  1604 
       
  1605         * assembler/ARMv7Assembler.h:
       
  1606         (JSC::ARMv7Assembler::repatchLoadPtrToLEA):
       
  1607 
       
  1608 2010-07-02  Oliver Hunt  <oliver@apple.com>
       
  1609 
       
  1610         Reviewed by Gavin Barraclough.
       
  1611 
       
  1612         Clamp the number of arguments supported by function.apply
       
  1613         https://bugs.webkit.org/show_bug.cgi?id=41351
       
  1614         <rdar://problem/8142141>
       
  1615 
       
  1616         Add clamping logic to function.apply similar to that
       
  1617         enforced by firefox.  We have a smaller clamp than
       
  1618         firefox as our calling convention means that stack
       
  1619         usage is proportional to argument count -- the firefox
       
  1620         limit is larger than you could actually call.
       
  1621 
       
  1622         * interpreter/Interpreter.cpp:
       
  1623         (JSC::Interpreter::privateExecute):
       
  1624         * jit/JITStubs.cpp:
       
  1625         (JSC::DEFINE_STUB_FUNCTION):
       
  1626         * runtime/Arguments.h:
       
  1627         (JSC::Arguments::):
       
  1628 
       
  1629 2010-07-02  Chao-ying Fu  <fu@mips.com>
       
  1630 
       
  1631         Reviewed by Oliver Hunt.
       
  1632 
       
  1633         Re-enable JIT_OPTIMIZE_NATIVE_CALL on MIPS
       
  1634         https://bugs.webkit.org/show_bug.cgi?id=40179
       
  1635 
       
  1636         Add the MIPS part to re-enable JIT_OPTIMIZE_NATIVE_CALL.
       
  1637 
       
  1638         * jit/JITOpcodes.cpp:
       
  1639         (JSC::JIT::privateCompileCTINativeCall):
       
  1640         * wtf/Platform.h:
       
  1641 
       
  1642 2010-07-02  Gavin Barraclough  <barraclough@apple.com>
       
  1643 
       
  1644         Reviewed by Oliver Hunt.
       
  1645 
       
  1646         Bug 41552 - Clean up ARMv7 vfp code generation
       
  1647         Emit separate opcode individually, remove magic numbers.
       
  1648 
       
  1649         Also remove invalid assert from JSImmediate (number cells are not CELL_MASK aligned).
       
  1650 
       
  1651         * assembler/ARMv7Assembler.h:
       
  1652         (JSC::ARMv7Assembler::):
       
  1653         (JSC::ARMv7Assembler::vadd_F64):
       
  1654         (JSC::ARMv7Assembler::vcmp_F64):
       
  1655         (JSC::ARMv7Assembler::vcvt_F64_S32):
       
  1656         (JSC::ARMv7Assembler::vcvtr_S32_F64):
       
  1657         (JSC::ARMv7Assembler::vdiv_F64):
       
  1658         (JSC::ARMv7Assembler::vldr):
       
  1659         (JSC::ARMv7Assembler::vmov_F64_0):
       
  1660         (JSC::ARMv7Assembler::vmov):
       
  1661         (JSC::ARMv7Assembler::vmrs):
       
  1662         (JSC::ARMv7Assembler::vmul_F64):
       
  1663         (JSC::ARMv7Assembler::vstr):
       
  1664         (JSC::ARMv7Assembler::vsub_F64):
       
  1665         (JSC::ARMv7Assembler::VFPOperand::VFPOperand):
       
  1666         (JSC::ARMv7Assembler::VFPOperand::bits1):
       
  1667         (JSC::ARMv7Assembler::VFPOperand::bits4):
       
  1668         (JSC::ARMv7Assembler::vcvtOp):
       
  1669         (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpOp):
       
  1670         (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpMemOp):
       
  1671         * assembler/MacroAssemblerARMv7.h:
       
  1672         (JSC::MacroAssemblerARMv7::branchDouble):
       
  1673         * runtime/JSImmediate.h:
       
  1674         (JSC::JSValue::isCell):
       
  1675 
       
  1676 2010-07-02  Sheriff Bot  <webkit.review.bot@gmail.com>
       
  1677 
       
  1678         Unreviewed, rolling out r62410.
       
  1679         http://trac.webkit.org/changeset/62410
       
  1680         https://bugs.webkit.org/show_bug.cgi?id=41549
       
  1681 
       
  1682         accursed last minute changes (Requested by olliej on #webkit).
       
  1683 
       
  1684         * parser/Lexer.cpp:
       
  1685         (JSC::Lexer::setCode):
       
  1686         (JSC::Lexer::copyCodeWithoutBOMs):
       
  1687         (JSC::Lexer::sourceCode):
       
  1688         * parser/SourceProvider.h:
       
  1689         (JSC::):
       
  1690         (JSC::SourceProvider::SourceProvider):
       
  1691         (JSC::SourceProvider::hasBOMs):
       
  1692         (JSC::UStringSourceProvider::create):
       
  1693         (JSC::UStringSourceProvider::getRange):
       
  1694         (JSC::UStringSourceProvider::UStringSourceProvider):
       
  1695         * wtf/text/StringImpl.h:
       
  1696 
       
  1697 2010-07-02  Sam Weinig  <sam@webkit.org>
       
  1698 
       
  1699         Reviewed by Geoffrey Garen.
       
  1700 
       
  1701         Patch for https://bugs.webkit.org/show_bug.cgi?id=41548
       
  1702         Use snprintf instead of sprintf everywhere in JavaScriptCore
       
  1703 
       
  1704         * runtime/JSGlobalObjectFunctions.cpp:
       
  1705         (JSC::encode):
       
  1706         (JSC::globalFuncEscape):
       
  1707         * runtime/UString.cpp:
       
  1708         (JSC::UString::from):
       
  1709 
       
  1710 2010-07-02  Oliver Hunt  <oliver@apple.com>
       
  1711 
       
  1712         Reviewed by Geoffrey Garen.
       
  1713 
       
  1714         Move BOM handling out of the lexer and parser
       
  1715         https://bugs.webkit.org/show_bug.cgi?id=41539
       
  1716 
       
  1717         Doing the BOM stripping in the lexer meant that we could
       
  1718         end up having to strip the BOMs from a source multiple times.
       
  1719         To deal with this we now require all strings provided by
       
  1720         a SourceProvider to already have had the BOMs stripped.
       
  1721         This also simplifies some of the lexer logic.
       
  1722 
       
  1723         * parser/Lexer.cpp:
       
  1724         (JSC::Lexer::setCode):
       
  1725         (JSC::Lexer::sourceCode):
       
  1726         * parser/SourceProvider.h:
       
  1727         (JSC::SourceProvider::SourceProvider):
       
  1728         (JSC::UStringSourceProvider::create):
       
  1729         (JSC::UStringSourceProvider::getRange):
       
  1730         (JSC::UStringSourceProvider::UStringSourceProvider):
       
  1731         * wtf/text/StringImpl.h:
       
  1732         (WebCore::StringImpl::copyStringWithoutBOMs):
       
  1733 
       
  1734 2010-07-02  Renata Hodovan  <reni@inf.u-szeged.hu>
       
  1735 
       
  1736         Reviewed by Oliver Hunt.
       
  1737         
       
  1738         [ Updated after rollout. ]
       
  1739 
       
  1740         Merged RegExp constructor and RegExp::create methods.
       
  1741         Both functions are called with three parameters and check whether 
       
  1742         flags (the third param) is given or not.
       
  1743         Avoid extra hash lookups in RegExpCache::create by passing a pre-computed
       
  1744         iterator parameter.
       
  1745         https://bugs.webkit.org/show_bug.cgi?id=41055
       
  1746 
       
  1747         * runtime/RegExp.cpp:
       
  1748         (JSC::RegExp::RegExp):
       
  1749         * runtime/RegExp.h:
       
  1750         * runtime/RegExpCache.cpp:
       
  1751         (JSC::RegExpCache::lookupOrCreate):
       
  1752         (JSC::RegExpCache::create):
       
  1753         * runtime/RegExpCache.h:
       
  1754 
       
  1755 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
       
  1756 
       
  1757         Unreviewed. Build fix for GTK+.
       
  1758 
       
  1759         Build Lexer.lut.h with the rest of the .lut.h files. Later these should
       
  1760         all probably be moved to DerivedSources.
       
  1761 
       
  1762         * GNUmakefile.am:
       
  1763 
       
  1764 2010-06-23  Martin Robinson  <mrobinson@igalia.com>
       
  1765 
       
  1766         Reviewed by Gustavo Noronha Silva.
       
  1767 
       
  1768         [GTK] Separate DerivedSources per-project
       
  1769         https://bugs.webkit.org/show_bug.cgi?id=41109
       
  1770 
       
  1771         Generate JavaScriptCore derived sources in <builddir>/DerivedSources/JavaScriptCore.
       
  1772 
       
  1773         * GNUmakefile.am:
       
  1774 
       
  1775 2010-07-02  Peter Varga  <pvarga@inf.u-szeged.hu>
       
  1776 
       
  1777         Reviewed by Oliver Hunt.
       
  1778 
       
  1779         The alternativeFrameLocation value is wrong in the emitDisjunction function in
       
  1780         case of PatternTerm::TypeParentheticalAssertion. This value needs to be
       
  1781         computed from term.frameLocation instead of term.inputPosition. This mistake caused glibc
       
  1782         memory corruption in some cases.
       
  1783         Layout test added for checking of TypeParentheticalAssertion case.
       
  1784         https://bugs.webkit.org/show_bug.cgi?id=41458
       
  1785 
       
  1786         * yarr/RegexInterpreter.cpp:
       
  1787         (JSC::Yarr::ByteCompiler::emitDisjunction):
       
  1788 
       
  1789 2010-07-01  Oliver Hunt  <oliver@apple.com>
       
  1790 
       
  1791         Reviewed by Maciej Stachowiak.
       
  1792 
       
  1793         Add a FixedArray template to encapsulate fixed length arrays
       
  1794         https://bugs.webkit.org/show_bug.cgi?id=41506
       
  1795 
       
  1796         This new type is used in place of fixed length C arrays so
       
  1797         that debug builds can guard against attempts to go beyond
       
  1798         the end of the array.
       
  1799 
       
  1800         * JavaScriptCore.xcodeproj/project.pbxproj:
       
  1801         * bytecode/Opcode.cpp:
       
  1802         (JSC::OpcodeStats::~OpcodeStats):
       
  1803         * pcre/pcre_compile.cpp:
       
  1804         (calculateCompiledPatternLength):
       
  1805         * runtime/Collector.cpp:
       
  1806         (JSC::Heap::allocateBlock):
       
  1807         (JSC::Heap::allocate):
       
  1808         * runtime/Collector.h:
       
  1809         (JSC::CollectorBitmap::clearAll):
       
  1810         * runtime/CollectorHeapIterator.h:
       
  1811         (JSC::CollectorHeapIterator::operator*):
       
  1812         * runtime/DateInstanceCache.h:
       
  1813         * runtime/JSString.cpp:
       
  1814         (JSC::JSString::replaceCharacter):
       
  1815         * runtime/JSString.h:
       
  1816         (JSC::RopeBuilder::JSStringFinalizerStruct::):
       
  1817         * runtime/NumericStrings.h:
       
  1818         * runtime/RegExpCache.h:
       
  1819         * runtime/SmallStrings.h:
       
  1820         (JSC::SmallStrings::singleCharacterStrings):
       
  1821         * wtf/AVLTree.h:
       
  1822         * wtf/FixedArray.h: Added.
       
  1823         (WTF::FixedArray::operator[]):
       
  1824         (WTF::FixedArray::data):
       
  1825 
       
  1826 2010-07-01  Zoltan Herczeg  <zherczeg@webkit.org>
       
  1827 
       
  1828         Reviewed by Oliver Hunt.
       
  1829 
       
  1830         Improve the main lexer switch by mapping input characters to their type
       
  1831         https://bugs.webkit.org/show_bug.cgi?id=41459
       
  1832 
       
  1833         Sunsipder: no change (from 532.9ms to 531.5ms)
       
  1834         SunSpider --parse-only: 1.025x as fast (from 33.1ms to 32.3ms)
       
  1835 
       
  1836         * parser/Lexer.cpp:
       
  1837         (JSC::):
       
  1838         (JSC::Lexer::lex):
       
  1839 
       
  1840 2010-07-01  Sam Weinig  <sam@webkit.org>
       
  1841 
       
  1842         Rubber-stamped by Ander Carlsson.
       
  1843 
       
  1844         Define HAVE_HOSTED_CORE_ANIMATION on Snow Leopard.
       
  1845 
       
  1846         * wtf/Platform.h:
       
  1847 
       
  1848 2010-07-01  Gavin Barraclough  <barraclough@apple.com>
       
  1849 
       
  1850         Reviewed by Oliver Hunt.
       
  1851 
       
  1852         Bug 41490 - Add missing operations to MacroAssemblerARMv7
       
  1853         Also, make single, double, quad register numbers in ARMv7Assembler distinct & strongly typed.
       
  1854 
       
  1855         * assembler/ARMv7Assembler.h:
       
  1856         (JSC::ARMRegisters::):
       
  1857         (JSC::ARMRegisters::asSingle):
       
  1858         (JSC::ARMRegisters::asDouble):
       
  1859         (JSC::VFPImmediate::VFPImmediate):
       
  1860         (JSC::VFPImmediate::isValid):
       
  1861         (JSC::VFPImmediate::value):
       
  1862         (JSC::ARMv7Assembler::singleRegisterMask):
       
  1863         (JSC::ARMv7Assembler::doubleRegisterMask):
       
  1864         (JSC::ARMv7Assembler::):
       
  1865         (JSC::ARMv7Assembler::add_S):
       
  1866         (JSC::ARMv7Assembler::neg):
       
  1867         (JSC::ARMv7Assembler::orr_S):
       
  1868         (JSC::ARMv7Assembler::sub):
       
  1869         (JSC::ARMv7Assembler::sub_S):
       
  1870         (JSC::ARMv7Assembler::vadd_F64):
       
  1871         (JSC::ARMv7Assembler::vcmp_F64):
       
  1872         (JSC::ARMv7Assembler::vcvt_F64_S32):
       
  1873         (JSC::ARMv7Assembler::vcvtr_S32_F64):
       
  1874         (JSC::ARMv7Assembler::vdiv_F64):
       
  1875         (JSC::ARMv7Assembler::vldr):
       
  1876         (JSC::ARMv7Assembler::vmov_F64_0):
       
  1877         (JSC::ARMv7Assembler::vmov):
       
  1878         (JSC::ARMv7Assembler::vmul_F64):
       
  1879         (JSC::ARMv7Assembler::vstr):
       
  1880         (JSC::ARMv7Assembler::vsub_F64):
       
  1881         (JSC::ARMv7Assembler::vcvt):
       
  1882         (JSC::ARMv7Assembler::vmem):
       
  1883         * assembler/AbstractMacroAssembler.h:
       
  1884         * assembler/MacroAssemblerARM.h:
       
  1885         * assembler/MacroAssemblerARMv7.h:
       
  1886         (JSC::MacroAssemblerARMv7::fpTempRegisterAsSingle):
       
  1887         (JSC::MacroAssemblerARMv7::neg32):
       
  1888         (JSC::MacroAssemblerARMv7::loadDouble):
       
  1889         (JSC::MacroAssemblerARMv7::divDouble):
       
  1890         (JSC::MacroAssemblerARMv7::convertInt32ToDouble):
       
  1891         (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):
       
  1892         (JSC::MacroAssemblerARMv7::zeroDouble):
       
  1893         (JSC::MacroAssemblerARMv7::branchOr32):
       
  1894         (JSC::MacroAssemblerARMv7::set32):
       
  1895         (JSC::MacroAssemblerARMv7::set8):
       
  1896         * assembler/MacroAssemblerMIPS.h:
       
  1897         * assembler/MacroAssemblerX86Common.h:
       
  1898 
       
  1899 2010-07-01  Oliver Hunt  <oliver@apple.com>
       
  1900 
       
  1901         Reviewed by Geoff Garen.
       
  1902 
       
  1903         Improve reentrancy logic in polymorphic cache stubs
       
  1904         <https://bugs.webkit.org/show_bug.cgi?id=41482>
       
  1905         <rdar://problem/8094380>
       
  1906 
       
  1907         Make the polymorphic cache stubs handle reentrancy
       
  1908         better.
       
  1909 
       
  1910         * jit/JITStubs.cpp:
       
  1911         (JSC::DEFINE_STUB_FUNCTION):
       
  1912         (JSC::getPolymorphicAccessStructureListSlot):
       
  1913 
       
  1914 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
       
  1915 
       
  1916         Revert accidental commit.
       
  1917 
       
  1918         * runtime/Collector.cpp:
       
  1919         (JSC::Heap::allocateBlock):
       
  1920 
       
  1921 2010-06-30  Darin Adler  <darin@apple.com>
       
  1922 
       
  1923         Reviewed by Adam Barth.
       
  1924 
       
  1925         Add assertion, off by default, for when you forget to do adoptRef
       
  1926         https://bugs.webkit.org/show_bug.cgi?id=41422
       
  1927 
       
  1928         * wtf/PassRefPtr.h: Tweaked formatting. Added a new adopted
       
  1929         function, called on the pointer by adoptRef, with an empty inline
       
  1930         default version, meant to be overloaded. Unified the inlining
       
  1931         with a macro named REF_DEREF_INLINE to make it clearer what's
       
  1932         going on in the refIfNotNull/derefIfNotNull functions. Renamed
       
  1933         releaseRef to leakRef, but left the old name in for compatibility
       
  1934         for now.
       
  1935 
       
  1936         * wtf/RefCounted.h: Added code to require adoption and assert if
       
  1937         you don't call adoptRef. For now, it is turned off because of the
       
  1938         LOOSE_REF_COUNTED define in this header. Later we can turn it on
       
  1939         once we get everything working without asserting.
       
  1940 
       
  1941 2010-06-29  Michael Saboff  <msaboff@apple.com>
       
  1942 
       
  1943         Reviewed by Darin Adler.
       
  1944 
       
  1945         Bug 41238 - RegExp performance slow on Dromaeo benchmark
       
  1946 
       
  1947         Other javascript engines appear to cache prior results of regular 
       
  1948         expression operations.
       
  1949 
       
  1950         Suggest adding some sort of caching mechanism to regular expression 
       
  1951         processing.
       
  1952 
       
  1953         Added a single entry cache of match() results to RegExp class.
       
  1954 
       
  1955         Also added performance improvements to UString == operator.
       
  1956         First check the impls for equality.  Then get the length of
       
  1957         each of the non-null impls.  Next check the sizes for equality.
       
  1958         Then check the data for the case of different impls that point 
       
  1959         to the same data (most likely due to substrings from the beginning of
       
  1960         another string).  Lastly we check the underlying data for equality.
       
  1961 
       
  1962         * runtime/RegExp.cpp:
       
  1963         (JSC::RegExp::RegExp):
       
  1964         (JSC::RegExp::match):
       
  1965         * runtime/RegExp.h:
       
  1966         * runtime/UString.h:
       
  1967         (JSC::operator==):
       
  1968 
       
  1969 2010-06-29  Nathan Lawrence  <nlawrence@apple.com>
       
  1970 
       
  1971         Reviewed by Geoffrey Garen.
       
  1972 
       
  1973         WTF::HashSet iterators are quasi-mutable.  Changing the value through
       
  1974         dereferencing an iterator will not change the behavior of methods like
       
  1975         contains or find, but will change the behavior of iterating.
       
  1976 
       
  1977         * wtf/HashSet.h:
       
  1978         (WTF::::begin):
       
  1979         (WTF::::end):
       
  1980         (WTF::::find):
       
  1981         (WTF::::remove):
       
  1982         * wtf/HashTable.h:
       
  1983 
       
  1984 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
       
  1985 
       
  1986         Reviewed by Xan Lopez.
       
  1987 
       
  1988         [GTK] Clean up the source lists in the GNUMakefile.am files
       
  1989         https://bugs.webkit.org/show_bug.cgi?id=41229
       
  1990 
       
  1991         Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
       
  1992         the source lists.
       
  1993 
       
  1994         * GNUmakefile.am:
       
  1995 
       
  1996 2010-06-29  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
       
  1997 
       
  1998         Reviewed by Kenneth Rohde Christiansen.
       
  1999 
       
  2000         [Qt] Fix QtScript build after QScriptValuePrivate ctor changes
       
  2001         https://bugs.webkit.org/show_bug.cgi?id=41307
       
  2002 
       
  2003         * qt/api/qscriptvalue_p.h:
       
  2004         (QScriptValuePrivate::prototype):
       
  2005         * qt/benchmarks/qscriptengine/qscriptengine.pro:
       
  2006 
       
  2007 2010-06-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
       
  2008 
       
  2009         Reviewed by Kenneth Rohde Christiansen.
       
  2010 
       
  2011         [Qt] QScriptEngine API should contain a newArray function
       
  2012         https://bugs.webkit.org/show_bug.cgi?id=39115
       
  2013 
       
  2014         * qt/api/qscriptengine.cpp:
       
  2015         (QScriptEngine::newArray):
       
  2016         * qt/api/qscriptengine.h:
       
  2017         * qt/api/qscriptengine_p.cpp:
       
  2018         (QScriptEnginePrivate::newArray):
       
  2019         * qt/api/qscriptengine_p.h:
       
  2020         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
       
  2021         (tst_QScriptEngine::newArray):
       
  2022 
       
  2023 2010-06-28  Xan Lopez  <xlopez@igalia.com>
       
  2024 
       
  2025         Reviewed by Gustavo Noronha.
       
  2026 
       
  2027         Install jsc as jsc-X where X is the major API version to allow
       
  2028         parallel installation of both GTK+ 2.x and 3.x versions.
       
  2029 
       
  2030         * GNUmakefile.am:
       
  2031 
       
  2032 2010-06-28  John Gregg  <johnnyg@google.com>
       
  2033 
       
  2034         Reviewed by Kent Tamura.
       
  2035 
       
  2036         add ENABLE_DIRECTORY_UPLOAD build support
       
  2037         https://bugs.webkit.org/show_bug.cgi?id=41100
       
  2038 
       
  2039         * Configurations/FeatureDefines.xcconfig:
       
  2040 
       
  2041 2010-06-28  Xan Lopez  <xlopez@igalia.com>
       
  2042 
       
  2043         Revert to build jsc, since the tests expect this.
       
  2044 
       
  2045         * GNUmakefile.am:
       
  2046 
       
  2047 2010-06-28  Zoltan Herczeg  <zherczeg@webkit.org>
       
  2048 
       
  2049         Reviewed by Oliver Hunt.
       
  2050 
       
  2051         Only one character lookahead should be enough for the lexer
       
  2052         https://bugs.webkit.org/show_bug.cgi?id=41213
       
  2053 
       
  2054         The lexer had 4 character lookahead before, which required
       
  2055         a complex shifting mechanism. This can be improved by using
       
  2056         only one character lookahead for most decisions, and a
       
  2057         peek() function as a fallback when it is absolutely necessary.
       
  2058 
       
  2059         * parser/Lexer.cpp:
       
  2060         (JSC::Lexer::currentCharacter):
       
  2061         (JSC::Lexer::currentOffset):
       
  2062         (JSC::Lexer::setCode):
       
  2063         (JSC::Lexer::shift):
       
  2064         (JSC::Lexer::peek):
       
  2065         (JSC::Lexer::getUnicodeCharacter):
       
  2066         (JSC::Lexer::shiftLineTerminator):
       
  2067         (JSC::Lexer::lastTokenWasRestrKeyword):
       
  2068         (JSC::Lexer::lex):
       
  2069         (JSC::Lexer::scanRegExp):
       
  2070         (JSC::Lexer::skipRegExp):
       
  2071         * parser/Lexer.h:
       
  2072 
       
  2073 2010-06-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
       
  2074 
       
  2075         Unreviewed build fix.
       
  2076 
       
  2077         [EFL] Build fix for latest version of Ecore library.
       
  2078         Ecore recently changed return type of callbacks from int to Eina_Bool.
       
  2079 
       
  2080         * wtf/efl/MainThreadEfl.cpp:
       
  2081         (WTF::timeoutFired): Return Eina_Bool instead of int.
       
  2082 
       
  2083 2010-06-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
       
  2084 
       
  2085         Reviewed by Kenneth Rohde Christiansen.
       
  2086 
       
  2087         [Qt] QScriptValue should have API for accessing object properties
       
  2088         https://bugs.webkit.org/show_bug.cgi?id=40903
       
  2089 
       
  2090         Make possible to access properties inside QScriptValues. While this
       
  2091         still doesn't support the ResolveLocal parameter, it is already useful
       
  2092         for testing the API.
       
  2093 
       
  2094         The tests from upstream QtScript weren't imported since most of them
       
  2095         depend on the setProperty() function as well. A simple test was created.
       
  2096 
       
  2097         * qt/api/qscriptvalue.cpp:
       
  2098         (QScriptValue::property):
       
  2099         * qt/api/qscriptvalue.h:
       
  2100         (QScriptValue::):
       
  2101         * qt/api/qscriptvalue_p.h:
       
  2102         (QScriptValuePrivate::property):
       
  2103         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
       
  2104         (tst_QScriptValue::propertySimple):
       
  2105         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
       
  2106 
       
  2107 2010-06-28  Xan Lopez  <xlopez@igalia.com>
       
  2108 
       
  2109         Reviewed by Gustavo Noronha.
       
  2110 
       
  2111         [GTK] Add support for GTK+3
       
  2112         https://bugs.webkit.org/show_bug.cgi?id=41253
       
  2113 
       
  2114         Suffix jsc with the API version of the library, so that
       
  2115         libwebkitgtk 1.x and 3.x can install jsc.
       
  2116 
       
  2117         * GNUmakefile.am:
       
  2118 
       
  2119 2010-06-27  Kwang Yul Seo  <skyul@company100.net>
       
  2120 
       
  2121         Reviewed by Kent Tamura.
       
  2122 
       
  2123         [BREWMP] Turn ENABLE(SINGLE_THREADED) on.
       
  2124         https://bugs.webkit.org/show_bug.cgi?id=41135
       
  2125 
       
  2126         Brew MP does not support preemptive multi-threading.
       
  2127         Disable threading for Brew MP.
       
  2128 
       
  2129         * wtf/Platform.h:
       
  2130 
       
  2131 2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
       
  2132 
       
  2133         Reviewed by Dimitri Glazkov.
       
  2134 
       
  2135         Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
       
  2136         https://bugs.webkit.org/show_bug.cgi?id=38924
       
  2137 
       
  2138         * Configurations/FeatureDefines.xcconfig:
       
  2139 
       
  2140 2010-06-25  Nathan Lawrence  <nlawrence@apple.com>
       
  2141 
       
  2142         Reviewed by Geoffrey Garen.
       
  2143 
       
  2144         We assume in testapi.c that the value aHeapRef refers to will not be
       
  2145         moved.  When we have movable objects, this will not be the case.
       
  2146 
       
  2147         * API/tests/testapi.c:
       
  2148         (main):
       
  2149 
       
  2150 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
       
  2151 
       
  2152         Unreviewed, rolling out r61924.
       
  2153         http://trac.webkit.org/changeset/61924
       
  2154         https://bugs.webkit.org/show_bug.cgi?id=41240
       
  2155 
       
  2156         It was rolled out, but cq+ wasn't removed (Requested by Ossy_
       
  2157         on #webkit).
       
  2158 
       
  2159         * runtime/RegExp.cpp:
       
  2160         (JSC::RegExp::RegExp):
       
  2161         (JSC::RegExp::create):
       
  2162         * runtime/RegExp.h:
       
  2163         * runtime/RegExpCache.cpp:
       
  2164         (JSC::RegExpCache::lookupOrCreate):
       
  2165         (JSC::RegExpCache::create):
       
  2166         * runtime/RegExpCache.h:
       
  2167 
       
  2168 2010-06-25  Renata Hodovan  <reni@inf.u-szeged.hu>
       
  2169 
       
  2170         Reviewed by Geoffrey Garen.
       
  2171 
       
  2172         Merge RegExp constructor and RegExp::create methods into one.
       
  2173         Both of function are called with tree parameters and check whether 
       
  2174         flags (the third param) is given or not.
       
  2175         Simplify hash lookups in RegExpCache::create with giving them an extra 
       
  2176         iterator parameter.
       
  2177         https://bugs.webkit.org/show_bug.cgi?id=41055
       
  2178 
       
  2179         * runtime/RegExp.cpp:
       
  2180         (JSC::RegExp::RegExp):
       
  2181         * runtime/RegExp.h:
       
  2182         * runtime/RegExpCache.cpp:
       
  2183         (JSC::RegExpCache::lookupOrCreate):
       
  2184         (JSC::RegExpCache::create):
       
  2185         * runtime/RegExpCache.h:
       
  2186 
       
  2187 2010-06-25  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  2188 
       
  2189         Reviewed by Simon Hausmann.
       
  2190 
       
  2191         Introduce QtScript benchmarks.
       
  2192 
       
  2193         The QtScript performance should be tested regularly. The patch introduces
       
  2194         micro benchmarks for existing API.
       
  2195 
       
  2196         [Qt] Performance of the QtScript API is not tested.
       
  2197         https://bugs.webkit.org/show_bug.cgi?id=40911
       
  2198 
       
  2199         * qt/benchmarks/benchmarks.pri: Copied from JavaScriptCore/qt/tests/tests.pri.
       
  2200         * qt/benchmarks/benchmarks.pro: Added.
       
  2201         * qt/benchmarks/qscriptengine/qscriptengine.pro: Added.
       
  2202         * qt/benchmarks/qscriptengine/tst_qscriptengine.cpp: Added.
       
  2203         (tst_QScriptEngine::checkSyntax_data):
       
  2204         (tst_QScriptEngine::checkSyntax):
       
  2205         (tst_QScriptEngine::constructor):
       
  2206         (tst_QScriptEngine::evaluateString_data):
       
  2207         (tst_QScriptEngine::evaluateString):
       
  2208         (tst_QScriptEngine::evaluateProgram_data):
       
  2209         (tst_QScriptEngine::evaluateProgram):
       
  2210         (tst_QScriptEngine::newObject):
       
  2211         (tst_QScriptEngine::nullValue):
       
  2212         (tst_QScriptEngine::undefinedValue):
       
  2213         (tst_QScriptEngine::globalObject):
       
  2214         (tst_QScriptEngine::toStringHandle):
       
  2215         * qt/benchmarks/qscriptvalue/qscriptvalue.pro: Added.
       
  2216         * qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp: Added.
       
  2217         (tst_QScriptValue::tst_QScriptValue):
       
  2218         (tst_QScriptValue::~tst_QScriptValue):
       
  2219         (tst_QScriptValue::values_data):
       
  2220         (tst_QScriptValue::ctorBool):
       
  2221         (tst_QScriptValue::ctorReal):
       
  2222         (tst_QScriptValue::ctorNumber):
       
  2223         (tst_QScriptValue::ctorQString):
       
  2224         (tst_QScriptValue::ctorCString):
       
  2225         (tst_QScriptValue::ctorSpecial):
       
  2226         (tst_QScriptValue::ctorQScriptValue):
       
  2227         (tst_QScriptValue::isValid_data):
       
  2228         (tst_QScriptValue::isValid):
       
  2229         (tst_QScriptValue::isBool_data):
       
  2230         (tst_QScriptValue::isBool):
       
  2231         (tst_QScriptValue::isNumber_data):
       
  2232         (tst_QScriptValue::isNumber):
       
  2233         (tst_QScriptValue::isFunction_data):
       
  2234         (tst_QScriptValue::isFunction):
       
  2235         (tst_QScriptValue::isNull_data):
       
  2236         (tst_QScriptValue::isNull):
       
  2237         (tst_QScriptValue::isString_data):
       
  2238         (tst_QScriptValue::isString):
       
  2239         (tst_QScriptValue::isUndefined_data):
       
  2240         (tst_QScriptValue::isUndefined):
       
  2241         (tst_QScriptValue::isObject_data):
       
  2242         (tst_QScriptValue::isObject):
       
  2243         (tst_QScriptValue::isError_data):
       
  2244         (tst_QScriptValue::isError):
       
  2245         (tst_QScriptValue::toString_data):
       
  2246         (tst_QScriptValue::toString):
       
  2247         (tst_QScriptValue::toNumber_data):
       
  2248         (tst_QScriptValue::toNumber):
       
  2249         (tst_QScriptValue::toBool_data):
       
  2250         (tst_QScriptValue::toBool):
       
  2251         (tst_QScriptValue::toInteger_data):
       
  2252         (tst_QScriptValue::toInteger):
       
  2253         (tst_QScriptValue::toInt32_data):
       
  2254         (tst_QScriptValue::toInt32):
       
  2255         (tst_QScriptValue::toUInt32_data):
       
  2256         (tst_QScriptValue::toUInt32):
       
  2257         (tst_QScriptValue::toUInt16_data):
       
  2258         (tst_QScriptValue::toUInt16):
       
  2259         (tst_QScriptValue::toObject_data):
       
  2260         (tst_QScriptValue::toObject):
       
  2261         (tst_QScriptValue::equals_data):
       
  2262         (tst_QScriptValue::equals):
       
  2263         (tst_QScriptValue::strictlyEquals_data):
       
  2264         (tst_QScriptValue::strictlyEquals):
       
  2265         (tst_QScriptValue::instanceOf_data):
       
  2266         (tst_QScriptValue::instanceOf):
       
  2267 
       
  2268 2010-06-25  Oliver Hunt  <oliver@apple.com>
       
  2269 
       
  2270         Reviewed by Geoffrey Garen.
       
  2271 
       
  2272         Remove old js parser
       
  2273         https://bugs.webkit.org/show_bug.cgi?id=41222
       
  2274 
       
  2275         Remove the old yacc parser, this also solves the tiger problem.  Which
       
  2276         was a conflict between yacc generated token values and those in the
       
  2277         custom parser
       
  2278 
       
  2279         * Android.mk:
       
  2280         * CMakeLists.txt:
       
  2281         * DerivedSources.make:
       
  2282         * DerivedSources.pro:
       
  2283         * GNUmakefile.am:
       
  2284         * JavaScriptCore.pro:
       
  2285         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
       
  2286         * JavaScriptCore.xcodeproj/project.pbxproj:
       
  2287         * parser/Grammar.y: Removed.
       
  2288         * parser/JSParser.cpp:
       
  2289         * parser/JSParser.h:
       
  2290         * parser/Lexer.cpp:
       
  2291         * parser/NodeConstructors.h:
       
  2292         (JSC::Node::Node):
       
  2293         * parser/Parser.cpp:
       
  2294         (JSC::Parser::parse):
       
  2295         * wtf/Platform.h:
       
  2296 
       
  2297 2010-06-25  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  2298 
       
  2299         Reviewed by Simon Hausmann.
       
  2300 
       
  2301         New QtScript API; setPrototype() and prototype().
       
  2302 
       
  2303         This patch implements QScriptValue's prototype accessors.
       
  2304 
       
  2305         [Qt] QScriptValue should have accessors to a prototype.
       
  2306         https://bugs.webkit.org/show_bug.cgi?id=39356
       
  2307 
       
  2308         * qt/api/qscriptvalue.cpp:
       
  2309         (QScriptValue::prototype):
       
  2310         (QScriptValue::setPrototype):
       
  2311         * qt/api/qscriptvalue.h:
       
  2312         * qt/api/qscriptvalue_p.h:
       
  2313         (QScriptValuePrivate::prototype):
       
  2314         (QScriptValuePrivate::setPrototype):
       
  2315         * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
       
  2316         (tst_QScriptValue::getSetPrototype):
       
  2317         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
       
  2318 
       
  2319 2010-06-25  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
       
  2320 
       
  2321         Reviewed by Kenneth Rohde Christiansen.
       
  2322 
       
  2323         [CMake] Add option to enable JIT.
       
  2324         JIT is disabled by default, but now it's possible to enable it through
       
  2325         an option to CMake: -DENABLE_JIT will enable it.
       
  2326         https://bugs.webkit.org/show_bug.cgi?id=40936
       
  2327 
       
  2328         * CMakeLists.txt: Add missing files and re-sort.
       
  2329 
       
  2330 2010-06-25  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
       
  2331 
       
  2332         Reviewed by Gustavo Noronha Silva.
       
  2333 
       
  2334         [CMake] Remove unused variable in EFL build system. It was previously
       
  2335         being used to set the flags of each port but it was superseded by
       
  2336         other flags.
       
  2337         https://bugs.webkit.org/show_bug.cgi?id=40931
       
  2338 
       
  2339         * jsc/CMakeLists.txt:
       
  2340 
       
  2341 2010-06-25  Nathan Lawrence  <nlawrence@apple.com>
       
  2342 
       
  2343         Reviewed by Geoffrey Garen.
       
  2344 
       
  2345         Aligning AssemblerBuffer to 128 bytes gives a 0.4% speedup on
       
  2346         sunspider.
       
  2347 
       
  2348         * assembler/AssemblerBuffer.h:
       
  2349         (JSC::AssemblerBuffer::AssemblerBuffer):
       
  2350 
       
  2351 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
       
  2352 
       
  2353         Unreviewed, rolling out r61842.
       
  2354         http://trac.webkit.org/changeset/61842
       
  2355         https://bugs.webkit.org/show_bug.cgi?id=41208
       
  2356 
       
  2357         It broke Windows build (Requested by Ossy_ on #webkit).
       
  2358 
       
  2359         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
       
  2360         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
       
  2361         * wtf/OwnPtrCommon.h:
       
  2362         * wtf/brew/OwnPtrBrew.h: Removed.
       
  2363         * wtf/win/OwnPtrWin.h: Removed.
       
  2364 
       
  2365 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
       
  2366 
       
  2367         Unreviewed, rolling out r61833.
       
  2368         http://trac.webkit.org/changeset/61833
       
  2369         https://bugs.webkit.org/show_bug.cgi?id=41205
       
  2370 
       
  2371         It broke Leopard and GTK (Requested by Ossy_ on #webkit).
       
  2372 
       
  2373         * runtime/RegExp.cpp:
       
  2374         (JSC::RegExp::RegExp):
       
  2375         (JSC::RegExp::create):
       
  2376         * runtime/RegExp.h:
       
  2377         * runtime/RegExpCache.cpp:
       
  2378         (JSC::RegExpCache::lookupOrCreate):
       
  2379         (JSC::RegExpCache::create):
       
  2380         * runtime/RegExpCache.h:
       
  2381 
       
  2382 2010-06-25  Kwang Yul Seo  <skyul@company100.net>
       
  2383 
       
  2384         Reviewed by Adam Barth.
       
  2385 
       
  2386         Change OwnPtrCommon to include platform-specific headers
       
  2387         https://bugs.webkit.org/show_bug.cgi?id=40279
       
  2388 
       
  2389         Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
       
  2390         Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
       
  2391 
       
  2392         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
       
  2393         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
       
  2394         * wtf/OwnPtrCommon.h:
       
  2395         * wtf/brew/OwnPtrBrew.h: Added.
       
  2396         * wtf/win/OwnPtrWin.h: Added.
       
  2397 
       
  2398 2010-06-25  Patrick Gansterer  <paroga@paroga.com>
       
  2399 
       
  2400         Reviewed by Darin Adler.
       
  2401 
       
  2402         Add the possibility for a head and footer section to create_jit_stubs.
       
  2403         https://bugs.webkit.org/show_bug.cgi?id=36050
       
  2404 
       
  2405         * create_jit_stubs:
       
  2406 
       
  2407 2010-06-24  Renata Hodovan  <reni@inf.u-szeged.hu>
       
  2408 
       
  2409         Reviewed by Geoffrey Garen.
       
  2410 
       
  2411         Merge RegExp constructor and RegExp::create methods into one.
       
  2412         Both of function are called with tree parameters and check whether 
       
  2413         flags (the third param) is given or not.
       
  2414         Simplify hash lookups in RegExpCache::create with giving them an extra 
       
  2415         iterator parameter.
       
  2416         https://bugs.webkit.org/show_bug.cgi?id=41055
       
  2417 
       
  2418         * runtime/RegExp.cpp:
       
  2419         (JSC::RegExp::RegExp):
       
  2420         * runtime/RegExp.h:
       
  2421         * runtime/RegExpCache.cpp:
       
  2422         (JSC::RegExpCache::lookupOrCreate):
       
  2423         (JSC::RegExpCache::create):
       
  2424         * runtime/RegExpCache.h:
       
  2425 
       
  2426 2010-06-24  Oliver Hunt  <oliver@apple.com>
       
  2427 
       
  2428         Reviewed by Maciej Stachowiak.
       
  2429 
       
  2430         Incorrect use of '+ 4' and 0 instead of tag and payload offsets in JSValue32_64
       
  2431         https://bugs.webkit.org/show_bug.cgi?id=41193
       
  2432 
       
  2433         I noticed a use of '+ 4' in some of the 32_64 code paths and realised there
       
  2434         were a few places where endianness was being hardcoded.  This patch fixes
       
  2435         the errors i could find through code inspection.
       
  2436 
       
  2437         * jit/JITOpcodes32_64.cpp:
       
  2438         (JSC::JIT::emit_op_resolve_global):
       
  2439         * jit/JITPropertyAccess32_64.cpp:
       
  2440         (JSC::JIT::emit_op_get_by_val):
       
  2441         (JSC::JIT::emit_op_put_by_val):
       
  2442         (JSC::JIT::compileGetDirectOffset):
       
  2443         (JSC::JIT::privateCompilePutByIdTransition):
       
  2444         (JSC::JIT::patchGetByIdSelf):
       
  2445         (JSC::JIT::patchPutByIdReplace):
       
  2446 
       
  2447 2010-06-24  Oliver Hunt  <oliver@apple.com>
       
  2448 
       
  2449         Build fix
       
  2450 
       
  2451         Temporarily get the tiger bot working again by disabling the
       
  2452         new JS parser.  GCC on tiger is miscompiling the parser and
       
  2453         I don't have access to a tiger machine right now.
       
  2454 
       
  2455         * wtf/Platform.h:
       
  2456 
       
  2457  2010-06-21  Nathan Lawrence  <nlawrence@apple.com>
       
  2458 
       
  2459          Reviewed by Geoff Garen.
       
  2460 
       
  2461          https://bugs.webkit.org/show_bug.cgi?id=40128
       
  2462          Fixed broken debug functionality.
       
  2463 
       
  2464          * interpreter/Interpreter.cpp:
       
  2465          (JSC::Interpreter::dumpRegisters):
       
  2466              Fixed to work with updated call frame.
       
  2467          * runtime/JSImmediate.h:
       
  2468          (JSC::JSValue::isCell):
       
  2469              Added assert for aligned cell.
       
  2470          * runtime/JSValue.cpp:
       
  2471          (JSC::JSValue::description):
       
  2472              Fixed to work with current JSValue implementation.
       
  2473          * runtime/JSZombie.cpp:
       
  2474          (JSC::JSZombie::leakedZombieStructure):
       
  2475              JSombies compile again.
       
  2476 
       
  2477 2010-06-24  Leandro Pereira  <leandro@profusion.mobi>
       
  2478 
       
  2479         Unreviewed build fix.
       
  2480 
       
  2481         * CMakeLists.txt: Add JSParser.cpp.
       
  2482 
       
  2483 2010-06-24  Oliver Hunt  <oliver@apple.com>
       
  2484 
       
  2485         Reviewed by Maciej Stachowiak.
       
  2486 
       
  2487         Single character string replacement may replace too many characters
       
  2488         https://bugs.webkit.org/show_bug.cgi?id=41138
       
  2489         <rdar://problem/8097496>
       
  2490 
       
  2491         Simple fix to stop the rope path of single character replacement
       
  2492         once the first replacement occurs.
       
  2493 
       
  2494         * runtime/JSString.cpp:
       
  2495         (JSC::JSString::replaceCharacter):
       
  2496 
       
  2497 2010-06-24  Gabor Loki  <loki@webkit.org>
       
  2498 
       
  2499         Reviewed by Gavin Barraclough.
       
  2500 
       
  2501         Fix the length of instruction stream controlled by constant pool
       
  2502         https://bugs.webkit.org/show_bug.cgi?id=40293
       
  2503 
       
  2504         The initial/maximum length of instruction stream (m_maxDistance) should
       
  2505         be set when the first constant arrives to the constant pool. Otherwise
       
  2506         the constant pool could be placed into an uninterrupted sequence.
       
  2507 
       
  2508         * assembler/AssemblerBufferWithConstantPool.h:
       
  2509         (JSC::):
       
  2510 
       
  2511 2010-06-24  Oliver Hunt  <oliver@apple.com>
       
  2512 
       
  2513         Reviewed by Gavin Barraclough.
       
  2514 
       
  2515         We assume bytecodeOffset will always return a value > 1,
       
  2516         so we adjust the failure case to return 1 instead of 0.
       
  2517 
       
  2518         * bytecode/CodeBlock.h:
       
  2519         (JSC::CodeBlock::bytecodeOffset):
       
  2520 
       
  2521 2010-06-23  Oliver Hunt  <oliver@apple.com>
       
  2522 
       
  2523         Reviewed by Gavin Barraclough.
       
  2524 
       
  2525         Custom-written JavaScript parser
       
  2526         https://bugs.webkit.org/show_bug.cgi?id=34019
       
  2527 
       
  2528         Implement a recursive descent parser similar to that used by V8 and
       
  2529         SpiderMonkey.  Greater than 2x improvement in SunSpider parsing tests.
       
  2530 
       
  2531         The parser consists of a JSParser class that uses a TreeBuilder to actually
       
  2532         build the AST.  There are currently two builders -- the ASTBuilder and
       
  2533         SyntaxChecker which separate the job of building an AST for code generation
       
  2534         and simply checking syntactic correctness.
       
  2535 
       
  2536         There's still some less than ideal code remaining in the parser to allow
       
  2537         us to retain the existing lexing code with minimal changes.  We'll tidy
       
  2538         this up at a later date.
       
  2539 
       
  2540         * GNUmakefile.am:
       
  2541         * JavaScriptCore.gypi:
       
  2542         * JavaScriptCore.pro:
       
  2543         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
       
  2544         * JavaScriptCore.xcodeproj/project.pbxproj:
       
  2545         * parser/ASTBuilder.h: Added.
       
  2546         (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo):
       
  2547         (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo):
       
  2548         (JSC::ASTBuilder::ASTBuilder):
       
  2549         (JSC::ASTBuilder::createSourceElements):
       
  2550         (JSC::ASTBuilder::varDeclarations):
       
  2551         (JSC::ASTBuilder::funcDeclarations):
       
  2552         (JSC::ASTBuilder::features):
       
  2553         (JSC::ASTBuilder::numConstants):
       
  2554         (JSC::ASTBuilder::appendToComma):
       
  2555         (JSC::ASTBuilder::createCommaExpr):
       
  2556         (JSC::ASTBuilder::createLogicalNot):
       
  2557         (JSC::ASTBuilder::createUnaryPlus):
       
  2558         (JSC::ASTBuilder::createVoid):
       
  2559         (JSC::ASTBuilder::thisExpr):
       
  2560         (JSC::ASTBuilder::createResolve):
       
  2561         (JSC::ASTBuilder::createObjectLiteral):
       
  2562         (JSC::ASTBuilder::createArray):
       
  2563         (JSC::ASTBuilder::createNumberExpr):
       
  2564         (JSC::ASTBuilder::createString):
       
  2565         (JSC::ASTBuilder::createBoolean):
       
  2566         (JSC::ASTBuilder::createNull):
       
  2567         (JSC::ASTBuilder::createBracketAccess):
       
  2568         (JSC::ASTBuilder::createDotAccess):
       
  2569         (JSC::ASTBuilder::createRegex):
       
  2570         (JSC::ASTBuilder::createNewExpr):
       
  2571         (JSC::ASTBuilder::createConditionalExpr):
       
  2572         (JSC::ASTBuilder::createAssignResolve):
       
  2573         (JSC::ASTBuilder::createFunctionExpr):
       
  2574         (JSC::ASTBuilder::createFunctionBody):
       
  2575         (JSC::ASTBuilder::createGetterOrSetterProperty):
       
  2576         (JSC::ASTBuilder::createArguments):
       
  2577         (JSC::ASTBuilder::createArgumentsList):
       
  2578         (JSC::ASTBuilder::createProperty):
       
  2579         (JSC::ASTBuilder::createPropertyList):
       
  2580         (JSC::ASTBuilder::createElementList):
       
  2581         (JSC::ASTBuilder::createFormalParameterList):
       
  2582         (JSC::ASTBuilder::createClause):
       
  2583         (JSC::ASTBuilder::createClauseList):
       
  2584         (JSC::ASTBuilder::setUsesArguments):
       
  2585         (JSC::ASTBuilder::createFuncDeclStatement):
       
  2586         (JSC::ASTBuilder::createBlockStatement):
       
  2587         (JSC::ASTBuilder::createExprStatement):
       
  2588         (JSC::ASTBuilder::createIfStatement):
       
  2589         (JSC::ASTBuilder::createForLoop):
       
  2590         (JSC::ASTBuilder::createForInLoop):
       
  2591         (JSC::ASTBuilder::createEmptyStatement):
       
  2592         (JSC::ASTBuilder::createVarStatement):
       
  2593         (JSC::ASTBuilder::createReturnStatement):
       
  2594         (JSC::ASTBuilder::createBreakStatement):
       
  2595         (JSC::ASTBuilder::createContinueStatement):
       
  2596         (JSC::ASTBuilder::createTryStatement):
       
  2597         (JSC::ASTBuilder::createSwitchStatement):
       
  2598         (JSC::ASTBuilder::createWhileStatement):
       
  2599         (JSC::ASTBuilder::createDoWhileStatement):
       
  2600         (JSC::ASTBuilder::createLabelStatement):
       
  2601         (JSC::ASTBuilder::createWithStatement):
       
  2602         (JSC::ASTBuilder::createThrowStatement):
       
  2603         (JSC::ASTBuilder::createDebugger):
       
  2604         (JSC::ASTBuilder::createConstStatement):
       
  2605         (JSC::ASTBuilder::appendConstDecl):
       
  2606         (JSC::ASTBuilder::appendStatement):
       
  2607         (JSC::ASTBuilder::addVar):
       
  2608         (JSC::ASTBuilder::combineCommaNodes):
       
  2609         (JSC::ASTBuilder::evalCount):
       
  2610         (JSC::ASTBuilder::appendBinaryExpressionInfo):
       
  2611         (JSC::ASTBuilder::operatorStackPop):
       
  2612         (JSC::ASTBuilder::operatorStackHasHigherPrecedence):
       
  2613         (JSC::ASTBuilder::getFromOperandStack):
       
  2614         (JSC::ASTBuilder::shrinkOperandStackBy):
       
  2615         (JSC::ASTBuilder::appendBinaryOperation):
       
  2616         (JSC::ASTBuilder::operatorStackAppend):
       
  2617         (JSC::ASTBuilder::popOperandStack):
       
  2618         (JSC::ASTBuilder::appendUnaryToken):
       
  2619         (JSC::ASTBuilder::unaryTokenStackLastType):
       
  2620         (JSC::ASTBuilder::unaryTokenStackLastStart):
       
  2621         (JSC::ASTBuilder::unaryTokenStackRemoveLast):
       
  2622         (JSC::ASTBuilder::assignmentStackAppend):
       
  2623         (JSC::ASTBuilder::createAssignment):
       
  2624         (JSC::ASTBuilder::Scope::Scope):
       
  2625         (JSC::ASTBuilder::setExceptionLocation):
       
  2626         (JSC::ASTBuilder::incConstants):
       
  2627         (JSC::ASTBuilder::usesThis):
       
  2628         (JSC::ASTBuilder::usesCatch):
       
  2629         (JSC::ASTBuilder::usesClosures):
       
  2630         (JSC::ASTBuilder::usesArguments):
       
  2631         (JSC::ASTBuilder::usesAssignment):
       
  2632         (JSC::ASTBuilder::usesWith):
       
  2633         (JSC::ASTBuilder::usesEval):
       
  2634         (JSC::ASTBuilder::createNumber):
       
  2635         (JSC::ASTBuilder::makeTypeOfNode):
       
  2636         (JSC::ASTBuilder::makeDeleteNode):
       
  2637         (JSC::ASTBuilder::makeNegateNode):
       
  2638         (JSC::ASTBuilder::makeBitwiseNotNode):
       
  2639         (JSC::ASTBuilder::makeMultNode):
       
  2640         (JSC::ASTBuilder::makeDivNode):
       
  2641         (JSC::ASTBuilder::makeAddNode):
       
  2642         (JSC::ASTBuilder::makeSubNode):
       
  2643         (JSC::ASTBuilder::makeLeftShiftNode):
       
  2644         (JSC::ASTBuilder::makeRightShiftNode):
       
  2645         (JSC::ASTBuilder::makeFunctionCallNode):
       
  2646         (JSC::ASTBuilder::makeBinaryNode):
       
  2647         (JSC::ASTBuilder::makeAssignNode):
       
  2648         (JSC::ASTBuilder::makePrefixNode):
       
  2649         (JSC::ASTBuilder::makePostfixNode):
       
  2650         * parser/JSParser.cpp: Added.
       
  2651         (JSC::JSParser::AllowInOverride::AllowInOverride):
       
  2652         (JSC::JSParser::AllowInOverride::~AllowInOverride):
       
  2653         (JSC::JSParser::token):
       
  2654         (JSC::JSParser::next):
       
  2655         (JSC::JSParser::consume):
       
  2656         (JSC::JSParser::match):
       
  2657         (JSC::JSParser::tokenStart):
       
  2658         (JSC::JSParser::tokenLine):
       
  2659         (JSC::JSParser::tokenEnd):
       
  2660         (JSC::JSParser::):
       
  2661         (JSC::JSParser::autoSemiColon):
       
  2662         (JSC::JSParser::canRecurse):
       
  2663         (JSC::JSParser::lastTokenEnd):
       
  2664         (JSC::jsParse):
       
  2665         (JSC::JSParser::JSParser):
       
  2666         (JSC::JSParser::parseProgram):
       
  2667         (JSC::JSParser::allowAutomaticSemicolon):
       
  2668         (JSC::JSParser::parseSourceElements):
       
  2669         (JSC::JSParser::parseVarDeclaration):
       
  2670         (JSC::JSParser::parseConstDeclaration):
       
  2671         (JSC::JSParser::parseDoWhileStatement):
       
  2672         (JSC::JSParser::parseWhileStatement):
       
  2673         (JSC::JSParser::parseVarDeclarationList):
       
  2674         (JSC::JSParser::parseConstDeclarationList):
       
  2675         (JSC::JSParser::parseForStatement):
       
  2676         (JSC::JSParser::parseBreakStatement):
       
  2677         (JSC::JSParser::parseContinueStatement):
       
  2678         (JSC::JSParser::parseReturnStatement):
       
  2679         (JSC::JSParser::parseThrowStatement):
       
  2680         (JSC::JSParser::parseWithStatement):
       
  2681         (JSC::JSParser::parseSwitchStatement):
       
  2682         (JSC::JSParser::parseSwitchClauses):
       
  2683         (JSC::JSParser::parseSwitchDefaultClause):
       
  2684         (JSC::JSParser::parseTryStatement):
       
  2685         (JSC::JSParser::parseDebuggerStatement):
       
  2686         (JSC::JSParser::parseBlockStatement):
       
  2687         (JSC::JSParser::parseStatement):
       
  2688         (JSC::JSParser::parseFormalParameters):
       
  2689         (JSC::JSParser::parseFunctionBody):
       
  2690         (JSC::JSParser::parseFunctionInfo):
       
  2691         (JSC::JSParser::parseFunctionDeclaration):
       
  2692         (JSC::JSParser::parseExpressionOrLabelStatement):
       
  2693         (JSC::JSParser::parseExpressionStatement):
       
  2694         (JSC::JSParser::parseIfStatement):
       
  2695         (JSC::JSParser::parseExpression):
       
  2696         (JSC::JSParser::parseAssignmentExpression):
       
  2697         (JSC::JSParser::parseConditionalExpression):
       
  2698         (JSC::isUnaryOp):
       
  2699         (JSC::JSParser::isBinaryOperator):
       
  2700         (JSC::JSParser::parseBinaryExpression):
       
  2701         (JSC::JSParser::parseProperty):
       
  2702         (JSC::JSParser::parseObjectLiteral):
       
  2703         (JSC::JSParser::parseArrayLiteral):
       
  2704         (JSC::JSParser::parsePrimaryExpression):
       
  2705         (JSC::JSParser::parseArguments):
       
  2706         (JSC::JSParser::parseMemberExpression):
       
  2707         (JSC::JSParser::parseUnaryExpression):
       
  2708         * parser/JSParser.h: Added.
       
  2709         (JSC::):
       
  2710         (JSC::JSTokenInfo::JSTokenInfo):
       
  2711         * parser/Lexer.cpp:
       
  2712         (JSC::Lexer::lex):
       
  2713         * parser/Lexer.h:
       
  2714         (JSC::Lexer::setLastLineNumber):
       
  2715         (JSC::Lexer::lastLineNumber):
       
  2716         * parser/NodeConstructors.h:
       
  2717         (JSC::Node::Node):
       
  2718         * parser/Parser.cpp:
       
  2719         (JSC::Parser::parse):
       
  2720         * parser/SyntaxChecker.h: Added.
       
  2721         (JSC::SyntaxChecker::SyntaxChecker):
       
  2722         (JSC::SyntaxChecker::createSourceElements):
       
  2723         (JSC::SyntaxChecker::makeFunctionCallNode):
       
  2724         (JSC::SyntaxChecker::appendToComma):
       
  2725         (JSC::SyntaxChecker::createCommaExpr):
       
  2726         (JSC::SyntaxChecker::makeAssignNode):
       
  2727         (JSC::SyntaxChecker::makePrefixNode):
       
  2728         (JSC::SyntaxChecker::makePostfixNode):
       
  2729         (JSC::SyntaxChecker::makeTypeOfNode):
       
  2730         (JSC::SyntaxChecker::makeDeleteNode):
       
  2731         (JSC::SyntaxChecker::makeNegateNode):
       
  2732         (JSC::SyntaxChecker::makeBitwiseNotNode):
       
  2733         (JSC::SyntaxChecker::createLogicalNot):
       
  2734         (JSC::SyntaxChecker::createUnaryPlus):
       
  2735         (JSC::SyntaxChecker::createVoid):
       
  2736         (JSC::SyntaxChecker::thisExpr):
       
  2737         (JSC::SyntaxChecker::createResolve):
       
  2738         (JSC::SyntaxChecker::createObjectLiteral):
       
  2739         (JSC::SyntaxChecker::createArray):
       
  2740         (JSC::SyntaxChecker::createNumberExpr):
       
  2741         (JSC::SyntaxChecker::createString):
       
  2742         (JSC::SyntaxChecker::createBoolean):
       
  2743         (JSC::SyntaxChecker::createNull):
       
  2744         (JSC::SyntaxChecker::createBracketAccess):
       
  2745         (JSC::SyntaxChecker::createDotAccess):
       
  2746         (JSC::SyntaxChecker::createRegex):
       
  2747         (JSC::SyntaxChecker::createNewExpr):
       
  2748         (JSC::SyntaxChecker::createConditionalExpr):
       
  2749         (JSC::SyntaxChecker::createAssignResolve):
       
  2750         (JSC::SyntaxChecker::createFunctionExpr):
       
  2751         (JSC::SyntaxChecker::createFunctionBody):
       
  2752         (JSC::SyntaxChecker::createArguments):
       
  2753         (JSC::SyntaxChecker::createArgumentsList):
       
  2754         (JSC::SyntaxChecker::createProperty):
       
  2755         (JSC::SyntaxChecker::createPropertyList):
       
  2756         (JSC::SyntaxChecker::createElementList):
       
  2757         (JSC::SyntaxChecker::createFormalParameterList):
       
  2758         (JSC::SyntaxChecker::createClause):
       
  2759         (JSC::SyntaxChecker::createClauseList):
       
  2760         (JSC::SyntaxChecker::setUsesArguments):
       
  2761         (JSC::SyntaxChecker::createFuncDeclStatement):
       
  2762         (JSC::SyntaxChecker::createBlockStatement):
       
  2763         (JSC::SyntaxChecker::createExprStatement):
       
  2764         (JSC::SyntaxChecker::createIfStatement):
       
  2765         (JSC::SyntaxChecker::createForLoop):
       
  2766         (JSC::SyntaxChecker::createForInLoop):
       
  2767         (JSC::SyntaxChecker::createEmptyStatement):
       
  2768         (JSC::SyntaxChecker::createVarStatement):
       
  2769         (JSC::SyntaxChecker::createReturnStatement):
       
  2770         (JSC::SyntaxChecker::createBreakStatement):
       
  2771         (JSC::SyntaxChecker::createContinueStatement):
       
  2772         (JSC::SyntaxChecker::createTryStatement):
       
  2773         (JSC::SyntaxChecker::createSwitchStatement):
       
  2774         (JSC::SyntaxChecker::createWhileStatement):
       
  2775         (JSC::SyntaxChecker::createWithStatement):
       
  2776         (JSC::SyntaxChecker::createDoWhileStatement):
       
  2777         (JSC::SyntaxChecker::createLabelStatement):
       
  2778         (JSC::SyntaxChecker::createThrowStatement):
       
  2779         (JSC::SyntaxChecker::createDebugger):
       
  2780         (JSC::SyntaxChecker::createConstStatement):
       
  2781         (JSC::SyntaxChecker::appendConstDecl):
       
  2782         (JSC::SyntaxChecker::createGetterOrSetterProperty):
       
  2783         (JSC::SyntaxChecker::appendStatement):
       
  2784         (JSC::SyntaxChecker::addVar):
       
  2785         (JSC::SyntaxChecker::combineCommaNodes):
       
  2786         (JSC::SyntaxChecker::evalCount):
       
  2787         (JSC::SyntaxChecker::appendBinaryExpressionInfo):
       
  2788         (JSC::SyntaxChecker::operatorStackPop):
       
  2789         * runtime/JSGlobalData.h:
       
  2790         * wtf/Platform.h:
       
  2791         * wtf/ThreadSpecific.h:
       
  2792         (WTF::T):
       
  2793 
       
  2794 2010-06-23  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  2795 
       
  2796         Reviewed by Simon Hausmann.
       
  2797 
       
  2798         Optimization of the QScriptValuePrivate.
       
  2799 
       
  2800         Patch change only internals of the QScriptValuePrivate.
       
  2801         Most of the QScriptValuePrivate's attributes were moved
       
  2802         into an union.
       
  2803 
       
  2804         [Qt] Optimization of the QScriptVAluePrivate.
       
  2805         https://bugs.webkit.org/show_bug.cgi?id=40415
       
  2806 
       
  2807         * qt/api/qscriptengine_p.cpp:
       
  2808         (QScriptEnginePrivate::globalObject):
       
  2809         * qt/api/qscriptvalue_p.h:
       
  2810         (QScriptValuePrivate::):
       
  2811         (QScriptValuePrivate::~QScriptValuePrivate):
       
  2812         (QScriptValuePrivate::QScriptValuePrivate):
       
  2813         (QScriptValuePrivate::toString):
       
  2814         (QScriptValuePrivate::toNumber):
       
  2815         (QScriptValuePrivate::toBool):
       
  2816         (QScriptValuePrivate::toObject):
       
  2817         (QScriptValuePrivate::equals):
       
  2818         (QScriptValuePrivate::strictlyEquals):
       
  2819         (QScriptValuePrivate::assignEngine):
       
  2820         (QScriptValuePrivate::operator JSValueRef):
       
  2821         (QScriptValuePrivate::operator JSObjectRef):
       
  2822         (QScriptValuePrivate::refinedJSValue):
       
  2823 
       
  2824 2010-06-23  Kwang Yul Seo  <skyul@company100.net>
       
  2825 
       
  2826         Reviewed by Oliver Hunt.
       
  2827 
       
  2828         [GTK] Implement ThreadSpecific with glib
       
  2829         https://bugs.webkit.org/show_bug.cgi?id=39829
       
  2830 
       
  2831         Implement ThreadSpecific with glib's GStaticPrivate.
       
  2832         This patch makes it possible to build GTK port without pthread.
       
  2833 
       
  2834         * wtf/ThreadSpecific.h:
       
  2835         (WTF::::ThreadSpecific):
       
  2836         (WTF::::~ThreadSpecific):
       
  2837         (WTF::::get):
       
  2838         (WTF::::set):
       
  2839         (WTF::::destroy):
       
  2840 
       
  2841 2010-06-23  Leandro Pereira  <leandro@profusion.mobi>
       
  2842 
       
  2843         Unreviewed build fix.
       
  2844 
       
  2845         * CMakeLists.txt: Add runtime/RegExpCache.cpp.
       
  2846 
       
  2847 2010-06-22  Renata Hodovan  <hodovan@inf.u-szeged.hu>
       
  2848 
       
  2849         Reviewed by Geoffrey Garen.
       
  2850 
       
  2851         Adding regular expression caching to JavaScriptCore
       
  2852         https://bugs.webkit.org/show_bug.cgi?id=38142
       
  2853 
       
  2854         The cache is based on Round Robin eviction policy, and
       
  2855         can cache at most 256 character long regular expressions,
       
  2856         and at most 256 of them. These values can be changed at compile time.
       
  2857 
       
  2858         * GNUmakefile.am:
       
  2859         * JavaScriptCore.gypi:
       
  2860         * JavaScriptCore.pro:
       
  2861         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
       
  2862         * JavaScriptCore.xcodeproj/project.pbxproj:
       
  2863         * bytecompiler/NodesCodegen.cpp:
       
  2864         (JSC::RegExpNode::emitBytecode):
       
  2865         * runtime/JSGlobalData.cpp:
       
  2866         (JSC::JSGlobalData::JSGlobalData):
       
  2867         (JSC::JSGlobalData::~JSGlobalData):
       
  2868         * runtime/JSGlobalData.h:
       
  2869         (JSC::JSGlobalData::regExpCache):
       
  2870         * runtime/RegExpCache.cpp: Added.
       
  2871         (JSC::RegExpCache::lookupOrCreate):
       
  2872         (JSC::RegExpCache::create):
       
  2873         (JSC::RegExpCache::RegExpCache):
       
  2874         * runtime/RegExpCache.h: Added.
       
  2875         * runtime/RegExpConstructor.cpp:
       
  2876         (JSC::constructRegExp):
       
  2877         * runtime/RegExpKey.h: Added.
       
  2878         (JSC::RegExpKey::RegExpKey):
       
  2879         (JSC::RegExpKey::getFlagsValue):
       
  2880         (WTF::operator==):
       
  2881         (WTF::):
       
  2882         * runtime/RegExpPrototype.cpp:
       
  2883         (JSC::regExpProtoFuncCompile):
       
  2884         * runtime/StringPrototype.cpp:
       
  2885         (JSC::stringProtoFuncMatch):
       
  2886         (JSC::stringProtoFuncSearch):
       
  2887 
       
  2888 2010-06-22  Gabor Loki  <loki@webkit.org>
       
  2889 
       
  2890         Reviewed by Geoffrey Garen.
       
  2891 
       
  2892         Add native call support for ARM and Thumb-2 JIT.
       
  2893         https://bugs.webkit.org/show_bug.cgi?id=40231
       
  2894 
       
  2895         * jit/JITOpcodes.cpp:
       
  2896         (JSC::JIT::privateCompileCTINativeCall):
       
  2897         * jit/JITOpcodes32_64.cpp:
       
  2898         (JSC::JIT::privateCompileCTINativeCall):
       
  2899         * wtf/Platform.h:
       
  2900 
       
  2901 2010-06-21  Oliver Hunt  <oliver@apple.com>
       
  2902 
       
  2903         Reviewed by Geoffrey Garen.
       
  2904 
       
  2905         Make JSC more resilient in the face of parse failures
       
  2906         https://bugs.webkit.org/show_bug.cgi?id=40951
       
  2907 
       
  2908         A number of recent bugs have occurred due to issues like miscounting
       
  2909         BOMs, etc which lead to interesting crashes later on.  Adding this
       
  2910         logic hardens JSC in the face of these errors, and has no impact on
       
  2911         performance (32bit jit actually gets 0.7% faster but I put that down
       
  2912         to cache effects).
       
  2913 
       
  2914         * bytecode/CodeBlock.cpp:
       
  2915         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
       
  2916         (JSC::CodeBlock::lineNumberForBytecodeOffset):
       
  2917         (JSC::CodeBlock::expressionRangeForBytecodeOffset):
       
  2918         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
       
  2919         * bytecode/CodeBlock.h:
       
  2920         (JSC::CodeBlock::bytecodeOffset):
       
  2921         * interpreter/Interpreter.cpp:
       
  2922         (JSC::Interpreter::execute):
       
  2923         (JSC::Interpreter::executeCall):
       
  2924         (JSC::Interpreter::executeConstruct):
       
  2925         (JSC::Interpreter::prepareForRepeatCall):
       
  2926         (JSC::Interpreter::privateExecute):
       
  2927         * jit/JITOpcodes.cpp:
       
  2928         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  2929         * jit/JITOpcodes32_64.cpp:
       
  2930         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  2931         * jit/JITStubs.cpp:
       
  2932         (JSC::DEFINE_STUB_FUNCTION):
       
  2933         * runtime/ArrayPrototype.cpp:
       
  2934         (JSC::isNumericCompareFunction):
       
  2935         * runtime/Executable.cpp:
       
  2936         (JSC::FunctionExecutable::compileForCall):
       
  2937         (JSC::FunctionExecutable::compileForConstruct):
       
  2938         (JSC::FunctionExecutable::generateJITCodeForCall):
       
  2939         (JSC::FunctionExecutable::generateJITCodeForConstruct):
       
  2940         (JSC::FunctionExecutable::reparseExceptionInfo):
       
  2941         (JSC::EvalExecutable::reparseExceptionInfo):
       
  2942         * runtime/Executable.h:
       
  2943         (JSC::FunctionExecutable::bytecodeForCall):
       
  2944         (JSC::FunctionExecutable::bytecodeForConstruct):
       
  2945         * runtime/JSGlobalData.cpp:
       
  2946         (JSC::JSGlobalData::numericCompareFunction):
       
  2947 
       
  2948 2010-06-21  John Sullivan  <sullivan@apple.com>
       
  2949 
       
  2950         Reviewed by Adam Roben.
       
  2951 
       
  2952         RetainPtr can't be used in HashMaps or HashSets
       
  2953         <https://bugs.webkit.org/show_bug.cgi?id=40938>
       
  2954         
       
  2955         Added hashing knowledge similar to that in COMPtr.h.
       
  2956 
       
  2957         * wtf/RetainPtr.h:
       
  2958         (WTF::RetainPtr::RetainPtr):
       
  2959         New function, copied from COMPtr.h but for the type change.
       
  2960         (WTF::RetainPtr::isHashTableDeletedValue):
       
  2961         Ditto.
       
  2962         (WTF::RetainPtr::hashTableDeletedValue):
       
  2963         Ditto.
       
  2964         Added template code for HashTraits and PtrHash copied from COMPtr.h but for the type change.
       
  2965         The only difference is that constructDeletedValue() matches the RefPtr implementation (in HashTraits.h)
       
  2966         rather than the COMPtr implementation.
       
  2967 
       
  2968 2010-06-19  Oliver Hunt  <oliver@apple.com>
       
  2969 
       
  2970         Reviewed by Geoffrey Garen.
       
  2971 
       
  2972         Need to ensure that we grow the RegisterFile when creating a callframe for host code
       
  2973         https://bugs.webkit.org/show_bug.cgi?id=40858
       
  2974         <rdar://problem/8108986>
       
  2975 
       
  2976         In the past the use of the callframe in hostcode was much more
       
  2977         limited.  Now that we expect the callframe to always be valid
       
  2978         we need to grow the RegisterFile so that this is actually the
       
  2979         case.  In this particular case the problem was failing to grow
       
  2980         the registerfile could lead to a callframe that extended beyond
       
  2981         RegisterFiler::end(), so vm re-entry would clobber the callframe
       
  2982         other scenarios could also lead to badness.
       
  2983 
       
  2984         I was unable to construct a simple testcase to trigger badness,
       
  2985         and any such testcase would be so dependent on exact vm stack
       
  2986         layout that it would be unlikely to work as a testcase following
       
  2987         any callframe or register allocation changes anyway.
       
  2988 
       
  2989         Thankfully the new assertion I added should help to catch these
       
  2990         failures in future, and triggers on a couple of tests currently.
       
  2991 
       
  2992         * interpreter/CallFrame.cpp:
       
  2993         (JSC::CallFrame::registerFile):
       
  2994         * interpreter/CallFrame.h:
       
  2995         (JSC::ExecState::init):
       
  2996         * interpreter/Interpreter.cpp:
       
  2997         (JSC::Interpreter::privateExecute):
       
  2998         * jit/JITStubs.cpp:
       
  2999         (JSC::DEFINE_STUB_FUNCTION):
       
  3000 
       
  3001 2010-06-21  Satish Sampath  <satish@chromium.org>
       
  3002 
       
  3003         Reviewed by Steve Block.
       
  3004 
       
  3005         Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
       
  3006         https://bugs.webkit.org/show_bug.cgi?id=40878
       
  3007 
       
  3008         * Configurations/FeatureDefines.xcconfig:
       
  3009 
       
  3010 2010-06-21  Kwang Yul Seo  <skyul@company100.net>
       
  3011 
       
  3012         Reviewed by Kent Tamura.
       
  3013 
       
  3014         [BREWMP] Use global new/delete operator overloading with USE_SYSTEM_MALLOC=1
       
  3015         https://bugs.webkit.org/show_bug.cgi?id=40653
       
  3016 
       
  3017         Currently, other ports do not use global new/delete operator overloading
       
  3018         when USE_SYSTEM_MALLOC=1. Brew MP uses system malloc, but it needs to enable
       
  3019         "global fastMalloc new" because the default new/delete causes crash on device.
       
  3020         We need to replace them with Brew MP's MALLOC/FREE.
       
  3021 
       
  3022         * wtf/FastMalloc.h:
       
  3023 
       
  3024 2010-06-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
       
  3025 
       
  3026         Reviewed by Simon Hausmann.
       
  3027 
       
  3028         [Qt] Work around a build problem with libjscore on Symbian.
       
  3029         https://bugs.webkit.org/show_bug.cgi?id=40840
       
  3030 
       
  3031         Sbsv2 sometimes have problems with debug/release configuration
       
  3032         determination causing QtWebKit in release to try linking with the debug
       
  3033         JavaScriptCore static library. This patch limit the jscore/jscored
       
  3034         r58306 fix necessary for mac builds only to the mac platform to prevent the
       
  3035         different name problem.
       
  3036 
       
  3037         The real fix would be to fix qmake or the toolchain, this patch might
       
  3038         help meanwhile.
       
  3039 
       
  3040         * JavaScriptCore.pri:
       
  3041 
       
  3042 2010-06-21  Patrick Gansterer  <paroga@paroga.com>
       
  3043 
       
  3044         Reviewed by Kent Tamura.
       
  3045 
       
  3046         Buildfix after r61338.
       
  3047         https://bugs.webkit.org/show_bug.cgi?id=40888
       
  3048 
       
  3049         roundUpAllocationSize is needed in RegisterFile.h.
       
  3050 
       
  3051         * jit/ExecutableAllocator.h:
       
  3052 
       
  3053 2010-06-19  Kwang Yul Seo  <skyul@company100.net>
       
  3054 
       
  3055         Reviewed by Darin Adler.
       
  3056 
       
  3057         Include <string.h> in StringExtras.h
       
  3058         https://bugs.webkit.org/show_bug.cgi?id=40808
       
  3059 
       
  3060         Without string.h, RVCT 2.2 can't compile StringExtras.h.
       
  3061         It can't find strlen and strncmp.
       
  3062 
       
  3063         * wtf/StringExtras.h:
       
  3064 
       
  3065 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
       
  3066 
       
  3067         Reviewed by Kenneth Rohde Christiansen.
       
  3068 
       
  3069         Don't use __attribute__((may_alias)) with the Intel compiler,
       
  3070         as it doesn't understand it.
       
  3071 
       
  3072         * wtf/Vector.h:
       
  3073 
       
  3074 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
       
  3075 
       
  3076         Reviewed by Kenneth Rohde Christiansen.
       
  3077 
       
  3078         Fix compilation with the Intel C++ compiler (11.1.072).
       
  3079 
       
  3080         Like RVCT, label pointers must be void*, not const void*.
       
  3081 
       
  3082         * bytecode/Opcode.h:
       
  3083 
       
  3084 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
       
  3085 
       
  3086         Reviewed by Kenneth Rohde Christiansen.
       
  3087 
       
  3088         Add the WTF_COMPILER_INTEL for when the Intel compiler is used
       
  3089         for building. Usually, the Intel compiler masquerades as
       
  3090         another compiler in the system and gets away with it, but some
       
  3091         times specific fixes are required (such as when using language
       
  3092         extensions).
       
  3093 
       
  3094         * wtf/Platform.h:
       
  3095 
       
  3096 2010-06-18  Oliver Hunt  <oliver@apple.com>
       
  3097 
       
  3098         Reviewed by Geoffrey Garen.
       
  3099 
       
  3100         Incorrect handling of multiple BOMs scattered through a file.
       
  3101         https://bugs.webkit.org/show_bug.cgi?id=40865
       
  3102 
       
  3103         When determining the offset of open and close braces in a source
       
  3104         with BOMs we were finishing our count early as we failed to account
       
  3105         for BOMs prior to the open/close brace positions effecting those
       
  3106         positions.
       
  3107 
       
  3108         * parser/Lexer.cpp:
       
  3109         (JSC::Lexer::sourceCode):
       
  3110 
       
  3111 2010-06-17  Oliver Hunt  <oliver@apple.com>
       
  3112 
       
  3113         Reviewed by Sam Weinig.
       
  3114 
       
  3115         Don't throw away exception information for functions that use exceptions
       
  3116         https://bugs.webkit.org/show_bug.cgi?id=40786
       
  3117 
       
  3118         Simple patch to stop JSC from throwing away the exception information
       
  3119         of a function that uses "exceptiony" features like try and throw.  This
       
  3120         is a speed up for catching expressions but it's difficult to quantify as
       
  3121         the old cost of reparsing is amortised over all exceptions caught in the
       
  3122         effected function.
       
  3123 
       
  3124         * bytecode/CodeBlock.cpp:
       
  3125         (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
       
  3126         * bytecompiler/BytecodeGenerator.cpp:
       
  3127         (JSC::BytecodeGenerator::generate):
       
  3128         (JSC::BytecodeGenerator::emitCatch):
       
  3129         * bytecompiler/BytecodeGenerator.h:
       
  3130         (JSC::BytecodeGenerator::emitThrow):
       
  3131 
       
  3132 2010-06-18  Anders Carlsson  <andersca@apple.com>
       
  3133 
       
  3134         Reviewed by Sam Weinig.
       
  3135 
       
  3136         Add PlatformStrategies and PluginStrategy classes.
       
  3137         https://bugs.webkit.org/show_bug.cgi?id=40850
       
  3138 
       
  3139         * wtf/Platform.h:
       
  3140 
       
  3141 2010-06-18  Leandro Pereira  <leandro@profusion.mobi>
       
  3142 
       
  3143         [EFL] Unreviewed build fix.
       
  3144 
       
  3145         * wtf/CMakeLists.txt: Add MD5.cpp.
       
  3146 
       
  3147 2010-06-17  Shu Chang  <chang.shu@nokia.com>
       
  3148 
       
  3149         Reviewed by Kenneth Rohde Christiansen.
       
  3150 
       
  3151         [Qt] Fix the link error on symbian with ENABLE_JIT=0.
       
  3152         1. Add "#if ENABLE(JIT)" in the header file;
       
  3153         2. Put feature enable/disable logic to a common.pri so
       
  3154         that both JavaScriptCore.pri and WebCore.pri can share.
       
  3155 
       
  3156         https://bugs.webkit.org/show_bug.cgi?id=40780
       
  3157 
       
  3158         * JavaScriptCore.pri:
       
  3159         * jit/ExecutableAllocator.h:
       
  3160 
       
  3161 2010-06-17  Darin Adler  <darin@apple.com>
       
  3162 
       
  3163         Reviewed by Sam Weinig.
       
  3164 
       
  3165         Use adoptRef and create functions in more code paths
       
  3166         https://bugs.webkit.org/show_bug.cgi?id=40760
       
  3167 
       
  3168         * API/JSClassRef.h: Removed unneeded include of RefCounted.h.
       
  3169         * API/JSWeakObjectMapRefPrivate.cpp: Ditto.
       
  3170 
       
  3171         * bytecode/CodeBlock.h:
       
  3172         (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the
       
  3173         SharedSymbolTable::create function instead of calling new directly.
       
  3174 
       
  3175         * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable
       
  3176         class and made the constructor private.
       
  3177 
       
  3178 2010-06-17  Mark Brand  <mabrand@mabrand.nl>
       
  3179 
       
  3180         Reviewed by Simon Hausmann.
       
  3181 
       
  3182         [Qt] use "win32-g++*" scope to match all MinGW makespecs
       
  3183 
       
  3184         The scope "win32-g++" comes from the name of the makespec. However, it
       
  3185         is frequently used to check for MinGW. This works fine as long as
       
  3186         win32-g++ is the only makespec for MinGW. Now we need the wildcard
       
  3187         to cover "win32-g++-cross" as well.
       
  3188 
       
  3189         * JavaScriptCore.pro:
       
  3190 
       
  3191 2010-06-16  Darin Adler  <darin@apple.com>
       
  3192 
       
  3193         Reviewed by David Levin.
       
  3194 
       
  3195         Deploy adoptRef in more places, including all HTML and MathML elements
       
  3196         https://bugs.webkit.org/show_bug.cgi?id=39941
       
  3197 
       
  3198         * wtf/ThreadSafeShared.h: Made the constructor protected and removed the
       
  3199         unneeded support for initial reference counts other than 1.
       
  3200 
       
  3201 2010-06-16  Peter Varga  <pvarga@inf.u-szeged.hu>
       
  3202 
       
  3203         Reviewed by Geoffrey Garen.
       
  3204 
       
  3205         Store matchBegin directly in the array of output instead of the stack.
       
  3206         https://bugs.webkit.org/show_bug.cgi?id=38988
       
  3207 
       
  3208         * yarr/RegexJIT.cpp:
       
  3209         (JSC::Yarr::RegexGenerator::generateDisjunction):
       
  3210         (JSC::Yarr::RegexGenerator::generate):
       
  3211 
       
  3212 2010-06-15  Anders Carlsson  <andersca@apple.com>
       
  3213 
       
  3214         Reviewed by Sam Weinig.
       
  3215 
       
  3216         Make JavaScriptCore build with clang++.
       
  3217 
       
  3218         * jit/JITInlineMethods.h:
       
  3219         (JSC::JIT::emitPutVirtualRegister):
       
  3220         Explicitly cast to an int.
       
  3221 
       
  3222         * yarr/RegexCompiler.cpp:
       
  3223         (JSC::Yarr::compileRegex):
       
  3224         Return 0 instead of false.
       
  3225 
       
  3226 2010-06-15  Adam Roben  <aroben@apple.com>
       
  3227 
       
  3228         Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
       
  3229 
       
  3230         Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
       
  3231 
       
  3232         Reviewed by Sam Weinig.
       
  3233 
       
  3234         * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of
       
  3235         JavaScriptCore's DerivedSources directory to
       
  3236         AppleInternal/Sources/JavaScriptCore.
       
  3237 
       
  3238 2010-06-15  Gabor Loki  <loki@webkit.org>
       
  3239 
       
  3240         Rubber-stamped by Eric Seidel.
       
  3241 
       
  3242         Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM
       
  3243         https://bugs.webkit.org/show_bug.cgi?id=40423
       
  3244 
       
  3245         Using OBJECT_OFFSETOF macro instead of objectof to bypass access to
       
  3246         non-static data member warning.
       
  3247 
       
  3248         * jit/JITPropertyAccess32_64.cpp:
       
  3249         (JSC::JIT::privateCompilePutByIdTransition):
       
  3250 
       
  3251 2010-06-11  Eric Seidel  <eric@webkit.org>
       
  3252 
       
  3253         Reviewed by Adam Barth.
       
  3254 
       
  3255         Rename the rest of the *Tokenizer classes to *DocumentParser
       
  3256         https://bugs.webkit.org/show_bug.cgi?id=40507
       
  3257 
       
  3258         * wtf/Platform.h:
       
  3259          - fixed a comment to match new names.
       
  3260 
       
  3261 2010-06-11  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  3262 
       
  3263         Reviewed by Simon Hausmann.
       
  3264 
       
  3265         [Qt] Explicit conversions from QtScript types to JSC opaque types were removed.
       
  3266         https://bugs.webkit.org/show_bug.cgi?id=40412
       
  3267 
       
  3268         Conversion between a JSC C types and a QtScript private types, takes
       
  3269         main part of the source code. In most cases a mapping between the types
       
  3270         is one to one. New cast operators were added to simplify the code.
       
  3271 
       
  3272         The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef.
       
  3273         The QScriptEnginePrivate could be casted to the JSGlobalContext.
       
  3274         The QScriptProgramPrivate could be casted to the JSStringRef.
       
  3275 
       
  3276         * qt/api/qscriptengine_p.cpp:
       
  3277         (QScriptEnginePrivate::evaluate):
       
  3278         (QScriptEnginePrivate::newObject):
       
  3279         (QScriptEnginePrivate::globalObject):
       
  3280         * qt/api/qscriptengine_p.h:
       
  3281         (QScriptEnginePrivate::operator JSGlobalContextRef):
       
  3282         * qt/api/qscriptprogram_p.h:
       
  3283         (QScriptProgramPrivate::operator JSStringRef):
       
  3284         * qt/api/qscriptsyntaxcheckresult.cpp:
       
  3285         (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate):
       
  3286         (QScriptSyntaxCheckResultPrivate::errorMessage):
       
  3287         (QScriptSyntaxCheckResultPrivate::errorLineNumber):
       
  3288         * qt/api/qscriptvalue_p.h:
       
  3289         (QScriptValuePrivate::~QScriptValuePrivate):
       
  3290         (QScriptValuePrivate::QScriptValuePrivate):
       
  3291         (QScriptValuePrivate::isBool):
       
  3292         (QScriptValuePrivate::isNumber):
       
  3293         (QScriptValuePrivate::isNull):
       
  3294         (QScriptValuePrivate::isString):
       
  3295         (QScriptValuePrivate::isUndefined):
       
  3296         (QScriptValuePrivate::isFunction):
       
  3297         (QScriptValuePrivate::toString):
       
  3298         (QScriptValuePrivate::toNumber):
       
  3299         (QScriptValuePrivate::toBool):
       
  3300         (QScriptValuePrivate::toObject):
       
  3301         (QScriptValuePrivate::equals):
       
  3302         (QScriptValuePrivate::strictlyEquals):
       
  3303         (QScriptValuePrivate::instanceOf):
       
  3304         (QScriptValuePrivate::call):
       
  3305         (QScriptValuePrivate::operator JSValueRef):
       
  3306         (QScriptValuePrivate::operator JSObjectRef):
       
  3307         (QScriptValuePrivate::setValue):
       
  3308         (QScriptValuePrivate::inherits):
       
  3309         (QScriptValuePrivate::refinedJSValue):
       
  3310 
       
  3311 2010-05-31  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
       
  3312 
       
  3313         Reviewed by Simon Hausmann.
       
  3314 
       
  3315         [Qt] Implement the simple text code path.
       
  3316         https://bugs.webkit.org/show_bug.cgi?id=40077
       
  3317 
       
  3318         Remove the FONT_FAST_PATH macro and use the Qt's
       
  3319         fast text implementation instead of the one of WebKit.
       
  3320 
       
  3321         The Qt::TextBypassShaping flag is used to tell Qt to
       
  3322         only use the glyph advances.
       
  3323 
       
  3324         Qt 4.7 is needed to get this flag thus the complex path is always
       
  3325         used if QtWebKit is compiled against an earlier version.
       
  3326 
       
  3327         Contrary to the WebKit's implementation, the complex code path
       
  3328         is taken if the text is RightToLeft, justified or is formatted
       
  3329         with non-zero letter or word spacing.
       
  3330 
       
  3331         * wtf/Platform.h:
       
  3332 
       
  3333 2010-06-11  Luiz Agostini  <luiz.agostini@openbossa.org>
       
  3334 
       
  3335         Reviewed by Kenneth Rohde Christiansen.
       
  3336 
       
  3337         add codePointCompare to JavaScriptCore.exp
       
  3338         https://bugs.webkit.org/show_bug.cgi?id=40426
       
  3339 
       
  3340         * JavaScriptCore.exp:
       
  3341 
       
  3342 2010-06-10  Oliver Hunt  <oliver@apple.com>
       
  3343 
       
  3344         Reviewed by Maciej Stachowiak.
       
  3345 
       
  3346         Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode
       
  3347         https://bugs.webkit.org/show_bug.cgi?id=40367
       
  3348 
       
  3349         If we're in the slow case of right shift we must write the type tag as
       
  3350         the only reason we hit this code path is because we know we're working
       
  3351         with a double.  eg. we are guaranteed that the tag cannot be reused.
       
  3352 
       
  3353         * jit/JITArithmetic32_64.cpp:
       
  3354         (JSC::JIT::emitRightShiftSlowCase):
       
  3355 
       
  3356 2010-06-10  Kwang Yul Seo  <skyul@company100.net>
       
  3357 
       
  3358         Reviewed by Eric Seidel.
       
  3359 
       
  3360         Remove weakRandomNumber
       
  3361         https://bugs.webkit.org/show_bug.cgi?id=40291
       
  3362 
       
  3363         weakRandomNumber is used nowhere. Currently, WeakRandom is used instead.
       
  3364 
       
  3365         * wtf/RandomNumber.cpp:
       
  3366         * wtf/RandomNumber.h:
       
  3367 
       
  3368 2010-06-09  Alexey Proskuryakov  <ap@apple.com>
       
  3369 
       
  3370         Reviewed by Brady Eidson.
       
  3371 
       
  3372         Export StringImpl::ascii(). It might be not very useful, but it's a public function.
       
  3373 
       
  3374         * JavaScriptCore.exp:
       
  3375 
       
  3376 2010-06-09  Leandro Pereira  <leandro@profusion.mobi>
       
  3377 
       
  3378         Reviewed by Adam Treat.
       
  3379 
       
  3380         [EFL] Allow building core libraries as shared objects to speed up
       
  3381         linking time on machines with small amounts of memory.
       
  3382         http://webkit.org/b/39899
       
  3383 
       
  3384         * CMakeLists.txt: If building with shared core, install the lib.
       
  3385         * jsc/CMakeListsEfl.txt: Needs Glib and Ecore to link dynamically.
       
  3386         * wtf/CMakeLists.txt: If building with shared core, install the lib.
       
  3387 
       
  3388 2010-06-09  Gabor Loki  <loki@webkit.org>
       
  3389 
       
  3390         Reviewed by David Levin.
       
  3391 
       
  3392         Remove some unused variable warnings from JITOpcodes
       
  3393         https://bugs.webkit.org/show_bug.cgi?id=40298
       
  3394 
       
  3395         * jit/JITOpcodes.cpp:
       
  3396         (JSC::JIT::privateCompileCTINativeCall):
       
  3397         * jit/JITOpcodes32_64.cpp:
       
  3398         (JSC::JIT::privateCompileCTINativeCall):
       
  3399 
       
  3400 2010-05-18  Yuzo Fujishima  <yuzo@google.com>
       
  3401 
       
  3402         Reviewed by Shinichiro Hamaji.
       
  3403 
       
  3404         Fix for Bug 34529 -  [CSSOM] issues with cssText and selectorText
       
  3405         Add U16_LENGTH that is needed to implement CSS character serialization.
       
  3406         https://bugs.webkit.org/show_bug.cgi?id=34529
       
  3407 
       
  3408         * wtf/unicode/qt4/UnicodeQt4.h:
       
  3409         * wtf/unicode/wince/UnicodeWince.h:
       
  3410 
       
  3411 2010-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
       
  3412 
       
  3413         Unreviewed, rolling out r60830.
       
  3414         http://trac.webkit.org/changeset/60830
       
  3415         https://bugs.webkit.org/show_bug.cgi?id=40305
       
  3416 
       
  3417         Broke the Windows build (Requested by abarth on #webkit).
       
  3418 
       
  3419         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
       
  3420         * wtf/OwnPtrCommon.h:
       
  3421         * wtf/brew/OwnPtrBrew.h: Removed.
       
  3422         * wtf/win/OwnPtrWin.h: Removed.
       
  3423 
       
  3424 2010-06-08  MORITA Hajime  <morrita@google.com>
       
  3425 
       
  3426         Unreviewed. An attempt to fix test break.
       
  3427 
       
  3428         * Configurations/FeatureDefines.xcconfig:
       
  3429 
       
  3430 2010-06-08  Kwang Yul Seo  <skyul@company100.net>
       
  3431 
       
  3432         Reviewed by Adam Barth.
       
  3433 
       
  3434         Change OwnPtrCommon to include platform-specific headers
       
  3435         https://bugs.webkit.org/show_bug.cgi?id=40279
       
  3436 
       
  3437         Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
       
  3438         Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
       
  3439 
       
  3440         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
       
  3441         * wtf/OwnPtrCommon.h:
       
  3442         * wtf/brew/OwnPtrBrew.h: Added.
       
  3443         * wtf/win/OwnPtrWin.h: Added.
       
  3444 
       
  3445 2010-06-07  MORITA Hajime  <morrita@google.com>
       
  3446         
       
  3447         Reviewed by Kent Tamura.
       
  3448 
       
  3449         https://bugs.webkit.org/show_bug.cgi?id=40219
       
  3450         [Mac] ENABLE_METER_TAG should be enabled
       
  3451         
       
  3452         Added ENABLE_METER_TAG.
       
  3453 
       
  3454         * Configurations/FeatureDefines.xcconfig:
       
  3455 
       
  3456 2010-06-07  Kwang Yul Seo  <skyul@company100.net>
       
  3457 
       
  3458         Reviewed by Eric Seidel.
       
  3459 
       
  3460         [BREWMP] Add more types to OwnPtr
       
  3461         https://bugs.webkit.org/show_bug.cgi?id=39667
       
  3462 
       
  3463         Add ISSL and ISocket to the list of OwnPtr-ed type.
       
  3464 
       
  3465         * wtf/OwnPtrCommon.h:
       
  3466         * wtf/brew/OwnPtrBrew.cpp:
       
  3467         (WTF::deleteOwnedPtr):
       
  3468 
       
  3469 2010-06-07  Benjamin Poulain  <benjamin.poulain@nokia.com>
       
  3470 
       
  3471         Reviewed by Simon Hausmann.
       
  3472 
       
  3473         [Qt] Crash when compiling on Snow Leopard and running on Leopard
       
  3474         https://bugs.webkit.org/show_bug.cgi?id=31403
       
  3475 
       
  3476         Disable the use of pthread_setname_np and other symbols
       
  3477         when targetting Leopard.
       
  3478 
       
  3479         Use the defines TARGETING_XX instead of BUILDING_ON_XX 
       
  3480         for features that cannot be used before Snow Leopard.
       
  3481 
       
  3482         * wtf/Platform.h:
       
  3483 
       
  3484 2010-06-07  Gabor Loki  <loki@webkit.org>
       
  3485 
       
  3486         Reviewed by NOBODY (JSVALUE32_64 build fix).
       
  3487 
       
  3488         * jit/JITOpcodes32_64.cpp:
       
  3489         (JSC::JIT::privateCompileCTINativeCall):
       
  3490 
       
  3491 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
       
  3492 
       
  3493         Reviewed by NOBODY (windows build fix pt 2).
       
  3494 
       
  3495         * JavaScriptCore.exp:
       
  3496         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  3497 
       
  3498 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
       
  3499 
       
  3500         Reviewed by NOBODY (windows build fix pt 1).
       
  3501 
       
  3502         * JavaScriptCore.exp:
       
  3503         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  3504 
       
  3505 2010-06-06  Gavin Barraclough  <barraclough@apple.com>
       
  3506 
       
  3507         Reviewed by Sam Weinig.
       
  3508 
       
  3509         Bug 40214 - Clean up error construction / throwing in JSC.
       
  3510         
       
  3511         The one egregious insanity here is that creating an error requires
       
  3512         a VM-entry-esqe-host call (the string argument is wrapped as a JS
       
  3513         object & pushed on the RegisterFile, then unwrapped back to a
       
  3514         UString).  Changing this also means you only require a global
       
  3515         object, not an ExecState, to create an error.
       
  3516 
       
  3517         The methods to create error objects are also parameterized
       
  3518         requiring a switch on the type, which can be made cleaner and
       
  3519         faster by moving to a separate method per error type.  Code to add
       
  3520         divot information to error had been duplicated, and is coalesced
       
  3521         back into a single function.
       
  3522 
       
  3523         Convenience methods added to create & throw type & syntax error
       
  3524         with a default error message, since this is a common case.
       
  3525 
       
  3526         Also, errors are currently thrown either using
       
  3527         "throwError(exec, error)" or "exec->setException(error)" - unify
       
  3528         on the former, since this is more commonly used.  Add
       
  3529         "throwVMError(exec, error)" equivalents, as a convenience for
       
  3530         cases where the result was being wrapped in "JSValue::encode(...)".
       
  3531 
       
  3532         * API/JSCallbackConstructor.cpp:
       
  3533         (JSC::constructJSCallback):
       
  3534         * API/JSCallbackFunction.cpp:
       
  3535         (JSC::JSCallbackFunction::call):
       
  3536         * API/JSCallbackObjectFunctions.h:
       
  3537         (JSC::::getOwnPropertySlot):
       
  3538         (JSC::::put):
       
  3539         (JSC::::deleteProperty):
       
  3540         (JSC::::construct):
       
  3541         (JSC::::hasInstance):
       
  3542         (JSC::::call):
       
  3543         (JSC::::toNumber):
       
  3544         (JSC::::toString):
       
  3545         (JSC::::staticValueGetter):
       
  3546         (JSC::::staticFunctionGetter):
       
  3547         (JSC::::callbackGetter):
       
  3548         * API/JSObjectRef.cpp:
       
  3549         (JSObjectMakeError):
       
  3550         * JavaScriptCore.exp:
       
  3551         * bytecompiler/BytecodeGenerator.cpp:
       
  3552         (JSC::BytecodeGenerator::emitNewError):
       
  3553         (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
       
  3554         * bytecompiler/BytecodeGenerator.h:
       
  3555         * bytecompiler/NodesCodegen.cpp:
       
  3556         (JSC::ThrowableExpressionData::emitThrowError):
       
  3557         (JSC::RegExpNode::emitBytecode):
       
  3558         (JSC::PostfixErrorNode::emitBytecode):
       
  3559         (JSC::PrefixErrorNode::emitBytecode):
       
  3560         (JSC::AssignErrorNode::emitBytecode):
       
  3561         (JSC::ForInNode::emitBytecode):
       
  3562         (JSC::ContinueNode::emitBytecode):
       
  3563         (JSC::BreakNode::emitBytecode):
       
  3564         (JSC::ReturnNode::emitBytecode):
       
  3565         (JSC::LabelNode::emitBytecode):
       
  3566         * interpreter/CallFrame.h:
       
  3567         * interpreter/Interpreter.cpp:
       
  3568         (JSC::Interpreter::throwException):
       
  3569         (JSC::Interpreter::privateExecute):
       
  3570         * jit/JITStubs.cpp:
       
  3571         (JSC::DEFINE_STUB_FUNCTION):
       
  3572         * jsc.cpp:
       
  3573         (functionRun):
       
  3574         (functionLoad):
       
  3575         (functionCheckSyntax):
       
  3576         * parser/Nodes.h:
       
  3577         * runtime/ArrayConstructor.cpp:
       
  3578         (JSC::constructArrayWithSizeQuirk):
       
  3579         * runtime/ArrayPrototype.cpp:
       
  3580         (JSC::arrayProtoFuncToString):
       
  3581         (JSC::arrayProtoFuncToLocaleString):
       
  3582         (JSC::arrayProtoFuncJoin):
       
  3583         (JSC::arrayProtoFuncFilter):
       
  3584         (JSC::arrayProtoFuncMap):
       
  3585         (JSC::arrayProtoFuncEvery):
       
  3586         (JSC::arrayProtoFuncForEach):
       
  3587         (JSC::arrayProtoFuncSome):
       
  3588         (JSC::arrayProtoFuncReduce):
       
  3589         (JSC::arrayProtoFuncReduceRight):
       
  3590         * runtime/BooleanPrototype.cpp:
       
  3591         (JSC::booleanProtoFuncToString):
       
  3592         (JSC::booleanProtoFuncValueOf):
       
  3593         * runtime/DatePrototype.cpp:
       
  3594         (JSC::dateProtoFuncToString):
       
  3595         (JSC::dateProtoFuncToUTCString):
       
  3596         (JSC::dateProtoFuncToISOString):
       
  3597         (JSC::dateProtoFuncToDateString):
       
  3598         (JSC::dateProtoFuncToTimeString):
       
  3599         (JSC::dateProtoFuncToLocaleString):
       
  3600         (JSC::dateProtoFuncToLocaleDateString):
       
  3601         (JSC::dateProtoFuncToLocaleTimeString):
       
  3602         (JSC::dateProtoFuncGetTime):
       
  3603         (JSC::dateProtoFuncGetFullYear):
       
  3604         (JSC::dateProtoFuncGetUTCFullYear):
       
  3605         (JSC::dateProtoFuncToGMTString):
       
  3606         (JSC::dateProtoFuncGetMonth):
       
  3607         (JSC::dateProtoFuncGetUTCMonth):
       
  3608         (JSC::dateProtoFuncGetDate):
       
  3609         (JSC::dateProtoFuncGetUTCDate):
       
  3610         (JSC::dateProtoFuncGetDay):
       
  3611         (JSC::dateProtoFuncGetUTCDay):
       
  3612         (JSC::dateProtoFuncGetHours):
       
  3613         (JSC::dateProtoFuncGetUTCHours):
       
  3614         (JSC::dateProtoFuncGetMinutes):
       
  3615         (JSC::dateProtoFuncGetUTCMinutes):
       
  3616         (JSC::dateProtoFuncGetSeconds):
       
  3617         (JSC::dateProtoFuncGetUTCSeconds):
       
  3618         (JSC::dateProtoFuncGetMilliSeconds):
       
  3619         (JSC::dateProtoFuncGetUTCMilliseconds):
       
  3620         (JSC::dateProtoFuncGetTimezoneOffset):
       
  3621         (JSC::dateProtoFuncSetTime):
       
  3622         (JSC::setNewValueFromTimeArgs):
       
  3623         (JSC::setNewValueFromDateArgs):
       
  3624         (JSC::dateProtoFuncSetMilliSeconds):
       
  3625         (JSC::dateProtoFuncSetUTCMilliseconds):
       
  3626         (JSC::dateProtoFuncSetSeconds):
       
  3627         (JSC::dateProtoFuncSetUTCSeconds):
       
  3628         (JSC::dateProtoFuncSetMinutes):
       
  3629         (JSC::dateProtoFuncSetUTCMinutes):
       
  3630         (JSC::dateProtoFuncSetHours):
       
  3631         (JSC::dateProtoFuncSetUTCHours):
       
  3632         (JSC::dateProtoFuncSetDate):
       
  3633         (JSC::dateProtoFuncSetUTCDate):
       
  3634         (JSC::dateProtoFuncSetMonth):
       
  3635         (JSC::dateProtoFuncSetUTCMonth):
       
  3636         (JSC::dateProtoFuncSetFullYear):
       
  3637         (JSC::dateProtoFuncSetUTCFullYear):
       
  3638         (JSC::dateProtoFuncSetYear):
       
  3639         (JSC::dateProtoFuncGetYear):
       
  3640         (JSC::dateProtoFuncToJSON):
       
  3641         * runtime/Error.cpp:
       
  3642         (JSC::createError):
       
  3643         (JSC::createEvalError):
       
  3644         (JSC::createRangeError):
       
  3645         (JSC::createReferenceError):
       
  3646         (JSC::createSyntaxError):
       
  3647         (JSC::createTypeError):
       
  3648         (JSC::createURIError):
       
  3649         (JSC::addErrorSourceInfo):
       
  3650         (JSC::addErrorDivotInfo):
       
  3651         (JSC::addErrorInfo):
       
  3652         (JSC::hasErrorInfo):
       
  3653         (JSC::throwError):
       
  3654         (JSC::throwTypeError):
       
  3655         (JSC::throwSyntaxError):
       
  3656         * runtime/Error.h:
       
  3657         (JSC::throwVMError):
       
  3658         (JSC::throwVMTypeError):
       
  3659         * runtime/ErrorConstructor.cpp:
       
  3660         (JSC::constructWithErrorConstructor):
       
  3661         (JSC::callErrorConstructor):
       
  3662         * runtime/ErrorConstructor.h:
       
  3663         * runtime/ErrorInstance.cpp:
       
  3664         (JSC::ErrorInstance::ErrorInstance):
       
  3665         (JSC::ErrorInstance::create):
       
  3666         * runtime/ErrorInstance.h:
       
  3667         * runtime/ErrorPrototype.cpp:
       
  3668         (JSC::ErrorPrototype::ErrorPrototype):
       
  3669         * runtime/ExceptionHelpers.cpp:
       
  3670         (JSC::createStackOverflowError):
       
  3671         (JSC::createUndefinedVariableError):
       
  3672         (JSC::createInvalidParamError):
       
  3673         (JSC::createNotAConstructorError):
       
  3674         (JSC::createNotAFunctionError):
       
  3675         (JSC::createNotAnObjectError):
       
  3676         (JSC::throwOutOfMemoryError):
       
  3677         * runtime/ExceptionHelpers.h:
       
  3678         * runtime/Executable.cpp:
       
  3679         (JSC::EvalExecutable::compile):
       
  3680         (JSC::ProgramExecutable::checkSyntax):
       
  3681         (JSC::ProgramExecutable::compile):
       
  3682         * runtime/FunctionConstructor.cpp:
       
  3683         (JSC::constructFunction):
       
  3684         * runtime/FunctionPrototype.cpp:
       
  3685         (JSC::functionProtoFuncToString):
       
  3686         (JSC::functionProtoFuncApply):
       
  3687         (JSC::functionProtoFuncCall):
       
  3688         * runtime/Identifier.cpp:
       
  3689         (JSC::Identifier::from):
       
  3690         * runtime/Identifier.h:
       
  3691         * runtime/JSArray.cpp:
       
  3692         (JSC::JSArray::put):
       
  3693         * runtime/JSFunction.cpp:
       
  3694         (JSC::callHostFunctionAsConstructor):
       
  3695         * runtime/JSGlobalObjectFunctions.cpp:
       
  3696         (JSC::encode):
       
  3697         (JSC::decode):
       
  3698         (JSC::globalFuncEval):
       
  3699         * runtime/JSONObject.cpp:
       
  3700         (JSC::Stringifier::appendStringifiedValue):
       
  3701         (JSC::Walker::walk):
       
  3702         (JSC::JSONProtoFuncParse):
       
  3703         (JSC::JSONProtoFuncStringify):
       
  3704         * runtime/JSObject.cpp:
       
  3705         (JSC::throwSetterError):
       
  3706         (JSC::JSObject::put):
       
  3707         (JSC::JSObject::putWithAttributes):
       
  3708         (JSC::JSObject::defaultValue):
       
  3709         (JSC::JSObject::hasInstance):
       
  3710         (JSC::JSObject::defineOwnProperty):
       
  3711         * runtime/JSObject.h:
       
  3712         * runtime/JSValue.cpp:
       
  3713         (JSC::JSValue::toObjectSlowCase):
       
  3714         (JSC::JSValue::synthesizeObject):
       
  3715         (JSC::JSValue::synthesizePrototype):
       
  3716         * runtime/NativeErrorConstructor.cpp:
       
  3717         (JSC::constructWithNativeErrorConstructor):
       
  3718         (JSC::callNativeErrorConstructor):
       
  3719         * runtime/NativeErrorConstructor.h:
       
  3720         * runtime/NumberPrototype.cpp:
       
  3721         (JSC::numberProtoFuncToString):
       
  3722         (JSC::numberProtoFuncToLocaleString):
       
  3723         (JSC::numberProtoFuncValueOf):
       
  3724         (JSC::numberProtoFuncToFixed):
       
  3725         (JSC::numberProtoFuncToExponential):
       
  3726         (JSC::numberProtoFuncToPrecision):
       
  3727         * runtime/ObjectConstructor.cpp:
       
  3728         (JSC::objectConstructorGetPrototypeOf):
       
  3729         (JSC::objectConstructorGetOwnPropertyDescriptor):
       
  3730         (JSC::objectConstructorGetOwnPropertyNames):
       
  3731         (JSC::objectConstructorKeys):
       
  3732         (JSC::toPropertyDescriptor):
       
  3733         (JSC::objectConstructorDefineProperty):
       
  3734         (JSC::objectConstructorDefineProperties):
       
  3735         (JSC::objectConstructorCreate):
       
  3736         * runtime/ObjectPrototype.cpp:
       
  3737         (JSC::objectProtoFuncDefineGetter):
       
  3738         (JSC::objectProtoFuncDefineSetter):
       
  3739         * runtime/RegExpConstructor.cpp:
       
  3740         (JSC::constructRegExp):
       
  3741         * runtime/RegExpObject.cpp:
       
  3742         (JSC::RegExpObject::match):
       
  3743         * runtime/RegExpPrototype.cpp:
       
  3744         (JSC::regExpProtoFuncTest):
       
  3745         (JSC::regExpProtoFuncExec):
       
  3746         (JSC::regExpProtoFuncCompile):
       
  3747         (JSC::regExpProtoFuncToString):
       
  3748         * runtime/StringPrototype.cpp:
       
  3749         (JSC::stringProtoFuncToString):
       
  3750 
       
  3751 2010-06-05  Kwang Yul Seo  <skyul@company100.net>
       
  3752 
       
  3753         Reviewed by Eric Seidel.
       
  3754 
       
  3755         [BREWMP] Add PLATFORM(BREWMP) guard for using std::xxx
       
  3756         https://bugs.webkit.org/show_bug.cgi?id=39710
       
  3757 
       
  3758         Build fix for BREW MP.
       
  3759 
       
  3760         * wtf/MathExtras.h:
       
  3761 
       
  3762 2010-06-04  Adam Barth  <abarth@webkit.org>
       
  3763 
       
  3764         Reviewed by Darin Adler.
       
  3765 
       
  3766         HTML5 parser should be within 1% of old parser performance
       
  3767         https://bugs.webkit.org/show_bug.cgi?id=40172
       
  3768 
       
  3769         Fix cast in this operator= to allow for assignment between vectors with
       
  3770         different inline capacities (as clearly intended by its author).
       
  3771 
       
  3772         * wtf/Vector.h:
       
  3773         (WTF::::operator):
       
  3774 
       
  3775 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  3776 
       
  3777         Reviewed by Kenneth Rohde Christiansen.
       
  3778 
       
  3779         New QtScript API; QScriptValue::instanceOf.
       
  3780 
       
  3781         New function create an easy way to check value's prototype hierarchy.
       
  3782 
       
  3783         [Qt] QScriptValue should have an instanceOf method
       
  3784         https://bugs.webkit.org/show_bug.cgi?id=40120
       
  3785 
       
  3786         * qt/api/qscriptvalue.cpp:
       
  3787         (QScriptValue::instanceOf):
       
  3788         * qt/api/qscriptvalue.h:
       
  3789         * qt/api/qscriptvalue_p.h:
       
  3790         (QScriptValuePrivate::instanceOf):
       
  3791         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
       
  3792         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
       
  3793         (tst_QScriptValue::instanceOf_initData):
       
  3794         (tst_QScriptValue::instanceOf_makeData):
       
  3795         (tst_QScriptValue::instanceOf_test):
       
  3796 
       
  3797 2010-06-04  Gavin Barraclough  <barraclough@apple.com>
       
  3798 
       
  3799         Reviewed by NOBODY (interpreter build fix).
       
  3800 
       
  3801         * interpreter/Interpreter.cpp:
       
  3802         (JSC::Interpreter::privateExecute):
       
  3803 
       
  3804 2010-06-04  Mark Rowe  <mrowe@apple.com>
       
  3805 
       
  3806         Silence some warnings seen on the build bot.
       
  3807 
       
  3808         * JavaScriptCore.JSVALUE32_64only.exp: Add a trailing newline.
       
  3809         * JavaScriptCore.JSVALUE32only.exp: Ditto.
       
  3810         * JavaScriptCore.JSVALUE64only.exp: Ditto.
       
  3811         * JavaScriptCore.xcodeproj/project.pbxproj: Remove the .exp files from all targets so that Xcode doesn't
       
  3812         complain about not knowing how to compile them.
       
  3813 
       
  3814 2010-06-04  Gavin Barraclough  <barraclough@apple.com>
       
  3815 
       
  3816         Reviewed by Oliver Hunt.
       
  3817 
       
  3818         Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
       
  3819 
       
  3820         Mostly for consistency, but constructor & args arguments are redundant,
       
  3821         and this will help if we wish to be able to JIT calls to more constructors.
       
  3822 
       
  3823         * API/JSCallbackConstructor.cpp:
       
  3824         (JSC::constructJSCallback):
       
  3825         * API/JSCallbackObject.h:
       
  3826         * API/JSCallbackObjectFunctions.h:
       
  3827         (JSC::::construct):
       
  3828         * interpreter/Interpreter.cpp:
       
  3829         (JSC::Interpreter::executeConstruct):
       
  3830         * interpreter/Interpreter.h:
       
  3831         * jit/JITStubs.cpp:
       
  3832         (JSC::DEFINE_STUB_FUNCTION):
       
  3833         * runtime/ArrayConstructor.cpp:
       
  3834         (JSC::constructWithArrayConstructor):
       
  3835         * runtime/BooleanConstructor.cpp:
       
  3836         (JSC::constructWithBooleanConstructor):
       
  3837         * runtime/ConstructData.cpp:
       
  3838         (JSC::construct):
       
  3839         * runtime/ConstructData.h:
       
  3840         * runtime/DateConstructor.cpp:
       
  3841         (JSC::constructWithDateConstructor):
       
  3842         * runtime/Error.cpp:
       
  3843         (JSC::constructNativeError):
       
  3844         (JSC::Error::create):
       
  3845         * runtime/ErrorConstructor.cpp:
       
  3846         (JSC::constructWithErrorConstructor):
       
  3847         * runtime/FunctionConstructor.cpp:
       
  3848         (JSC::constructWithFunctionConstructor):
       
  3849         * runtime/NativeErrorConstructor.cpp:
       
  3850         (JSC::constructWithNativeErrorConstructor):
       
  3851         * runtime/NativeErrorConstructor.h:
       
  3852         (JSC::NativeErrorConstructor::errorStructure):
       
  3853         * runtime/NumberConstructor.cpp:
       
  3854         (JSC::constructWithNumberConstructor):
       
  3855         * runtime/ObjectConstructor.cpp:
       
  3856         (JSC::constructWithObjectConstructor):
       
  3857         * runtime/RegExpConstructor.cpp:
       
  3858         (JSC::constructWithRegExpConstructor):
       
  3859         * runtime/StringConstructor.cpp:
       
  3860         (JSC::constructWithStringConstructor):
       
  3861 
       
  3862 2010-06-04  Tony Gentilcore  <tonyg@chromium.org>
       
  3863 
       
  3864         Reviewed by Adam Barth.
       
  3865 
       
  3866         Add a takeFirst() method to Deque and use it where appropriate.
       
  3867         https://bugs.webkit.org/show_bug.cgi?id=40089
       
  3868 
       
  3869         * wtf/Deque.h:
       
  3870         (WTF::::takeFirst):
       
  3871         * wtf/MainThread.cpp:
       
  3872         (WTF::dispatchFunctionsFromMainThread):
       
  3873         * wtf/MessageQueue.h:
       
  3874         (WTF::::tryGetMessage):
       
  3875 
       
  3876 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  3877 
       
  3878         Reviewed by Kenneth Rohde Christiansen.
       
  3879 
       
  3880         Remove a QEXPECT_FAIL flag from an autotest.
       
  3881 
       
  3882         Test tst_QScriptEngine::globalObject pass after 36600 bug
       
  3883         fix have been applied.
       
  3884 
       
  3885         [Qt] Expected fail in the tst_QScriptEngine::globalObject should be removed.
       
  3886         https://bugs.webkit.org/show_bug.cgi?id=40114
       
  3887 
       
  3888         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
       
  3889         (tst_QScriptEngine::globalObject):
       
  3890 
       
  3891 2010-06-04  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  3892 
       
  3893         Reviewed by Kenneth Rohde Christiansen.
       
  3894 
       
  3895         Fix QScriptValue::equals.
       
  3896 
       
  3897         Handling for a few edge cases were added. Now comparison between
       
  3898         NaN, an invalid objects should works as supposed.
       
  3899 
       
  3900         [Qt] QScriptValue::equals problems
       
  3901         https://bugs.webkit.org/show_bug.cgi?id=40110
       
  3902 
       
  3903         * qt/api/qscriptvalue.cpp:
       
  3904         (QScriptValue::equals):
       
  3905         * qt/api/qscriptvalue_p.h:
       
  3906         (QScriptValuePrivate::equals):
       
  3907         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
       
  3908         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
       
  3909         (tst_QScriptValue::equals_initData):
       
  3910         (tst_QScriptValue::equals_makeData):
       
  3911         (tst_QScriptValue::equals_test):
       
  3912 
       
  3913 2010-06-03  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  3914 
       
  3915         Reviewed by Kenneth Rohde Christiansen.
       
  3916 
       
  3917         New states in QScriptValuePrivate.
       
  3918 
       
  3919         The CSpecial state was divided into CNull and CUndefined. It simplify
       
  3920         the QScriptValue code by avoiding a few "cast" and "if".
       
  3921         Moreover the MSVS compiler didn't like casting between a double and an
       
  3922         enum which is avoided now.
       
  3923 
       
  3924         [Qt] The QScriptValuePrivate::CSpecial is too generic.
       
  3925         https://bugs.webkit.org/show_bug.cgi?id=40067
       
  3926 
       
  3927         * qt/api/qscriptvalue_p.h:
       
  3928         (QScriptValuePrivate::):
       
  3929         (QScriptValuePrivate::QScriptValuePrivate):
       
  3930         (QScriptValuePrivate::isNull):
       
  3931         (QScriptValuePrivate::isUndefined):
       
  3932         (QScriptValuePrivate::toString):
       
  3933         (QScriptValuePrivate::toNumber):
       
  3934         (QScriptValuePrivate::toBool):
       
  3935         (QScriptValuePrivate::toObject):
       
  3936         (QScriptValuePrivate::assignEngine):
       
  3937         (QScriptValuePrivate::isNumberBased):
       
  3938 
       
  3939 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
       
  3940 
       
  3941         Reviewed by NOBODY (Qt build fix).
       
  3942 
       
  3943         * wtf/Platform.h:
       
  3944 
       
  3945 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
       
  3946 
       
  3947         Reviewed by Mark Rowe.
       
  3948 
       
  3949         Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms
       
  3950         This was fixed in bug #40094.
       
  3951 
       
  3952         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  3953         * wtf/Platform.h:
       
  3954 
       
  3955 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
       
  3956 
       
  3957         Reviewed by NOBODY (Interpreter build fix).
       
  3958 
       
  3959         * JavaScriptCore.JSVALUE32_64only.exp:
       
  3960         * JavaScriptCore.JSVALUE32only.exp:
       
  3961         * JavaScriptCore.JSVALUE64only.exp:
       
  3962         * interpreter/Interpreter.cpp:
       
  3963         (JSC::Interpreter::privateExecute):
       
  3964 
       
  3965 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
       
  3966 
       
  3967         Reviewed by NOBODY (windows build fix II).
       
  3968 
       
  3969         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  3970 
       
  3971 2010-06-03  Gavin Barraclough  <barraclough@apple.com>
       
  3972 
       
  3973         Reviewed by NOBODY (windows build fix).
       
  3974 
       
  3975         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  3976 
       
  3977 2010-06-02  Gavin Barraclough  <barraclough@apple.com>
       
  3978 
       
  3979         Reviewed by Oliver Hunt.
       
  3980 
       
  3981         Bug 40094 - The return type of NativeFunction should be EncodedJSValue
       
  3982         On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not.
       
  3983 
       
  3984         * API/JSCallbackFunction.cpp:
       
  3985         (JSC::JSCallbackFunction::call):
       
  3986         * API/JSCallbackFunction.h:
       
  3987         * API/JSCallbackObject.h:
       
  3988         * API/JSCallbackObjectFunctions.h:
       
  3989         (JSC::::call):
       
  3990         * JavaScriptCore.exp:
       
  3991         * interpreter/Interpreter.cpp:
       
  3992         (JSC::Interpreter::executeCall):
       
  3993         * jit/JITStubs.cpp:
       
  3994         (JSC::DEFINE_STUB_FUNCTION):
       
  3995         * jit/JITStubs.h:
       
  3996         * jsc.cpp:
       
  3997         (functionPrint):
       
  3998         (functionDebug):
       
  3999         (functionGC):
       
  4000         (functionVersion):
       
  4001         (functionRun):
       
  4002         (functionLoad):
       
  4003         (functionCheckSyntax):
       
  4004         (functionSetSamplingFlags):
       
  4005         (functionClearSamplingFlags):
       
  4006         (functionReadline):
       
  4007         (functionQuit):
       
  4008         * runtime/ArrayConstructor.cpp:
       
  4009         (JSC::callArrayConstructor):
       
  4010         (JSC::arrayConstructorIsArray):
       
  4011         * runtime/ArrayPrototype.cpp:
       
  4012         (JSC::arrayProtoFuncToString):
       
  4013         (JSC::arrayProtoFuncToLocaleString):
       
  4014         (JSC::arrayProtoFuncJoin):
       
  4015         (JSC::arrayProtoFuncConcat):
       
  4016         (JSC::arrayProtoFuncPop):
       
  4017         (JSC::arrayProtoFuncPush):
       
  4018         (JSC::arrayProtoFuncReverse):
       
  4019         (JSC::arrayProtoFuncShift):
       
  4020         (JSC::arrayProtoFuncSlice):
       
  4021         (JSC::arrayProtoFuncSort):
       
  4022         (JSC::arrayProtoFuncSplice):
       
  4023         (JSC::arrayProtoFuncUnShift):
       
  4024         (JSC::arrayProtoFuncFilter):
       
  4025         (JSC::arrayProtoFuncMap):
       
  4026         (JSC::arrayProtoFuncEvery):
       
  4027         (JSC::arrayProtoFuncForEach):
       
  4028         (JSC::arrayProtoFuncSome):
       
  4029         (JSC::arrayProtoFuncReduce):
       
  4030         (JSC::arrayProtoFuncReduceRight):
       
  4031         (JSC::arrayProtoFuncIndexOf):
       
  4032         (JSC::arrayProtoFuncLastIndexOf):
       
  4033         * runtime/BooleanConstructor.cpp:
       
  4034         (JSC::callBooleanConstructor):
       
  4035         * runtime/BooleanPrototype.cpp:
       
  4036         (JSC::booleanProtoFuncToString):
       
  4037         (JSC::booleanProtoFuncValueOf):
       
  4038         * runtime/CallData.h:
       
  4039         * runtime/DateConstructor.cpp:
       
  4040         (JSC::callDate):
       
  4041         (JSC::dateParse):
       
  4042         (JSC::dateNow):
       
  4043         (JSC::dateUTC):
       
  4044         * runtime/DatePrototype.cpp:
       
  4045         (JSC::dateProtoFuncToString):
       
  4046         (JSC::dateProtoFuncToUTCString):
       
  4047         (JSC::dateProtoFuncToISOString):
       
  4048         (JSC::dateProtoFuncToDateString):
       
  4049         (JSC::dateProtoFuncToTimeString):
       
  4050         (JSC::dateProtoFuncToLocaleString):
       
  4051         (JSC::dateProtoFuncToLocaleDateString):
       
  4052         (JSC::dateProtoFuncToLocaleTimeString):
       
  4053         (JSC::dateProtoFuncGetTime):
       
  4054         (JSC::dateProtoFuncGetFullYear):
       
  4055         (JSC::dateProtoFuncGetUTCFullYear):
       
  4056         (JSC::dateProtoFuncToGMTString):
       
  4057         (JSC::dateProtoFuncGetMonth):
       
  4058         (JSC::dateProtoFuncGetUTCMonth):
       
  4059         (JSC::dateProtoFuncGetDate):
       
  4060         (JSC::dateProtoFuncGetUTCDate):
       
  4061         (JSC::dateProtoFuncGetDay):
       
  4062         (JSC::dateProtoFuncGetUTCDay):
       
  4063         (JSC::dateProtoFuncGetHours):
       
  4064         (JSC::dateProtoFuncGetUTCHours):
       
  4065         (JSC::dateProtoFuncGetMinutes):
       
  4066         (JSC::dateProtoFuncGetUTCMinutes):
       
  4067         (JSC::dateProtoFuncGetSeconds):
       
  4068         (JSC::dateProtoFuncGetUTCSeconds):
       
  4069         (JSC::dateProtoFuncGetMilliSeconds):
       
  4070         (JSC::dateProtoFuncGetUTCMilliseconds):
       
  4071         (JSC::dateProtoFuncGetTimezoneOffset):
       
  4072         (JSC::dateProtoFuncSetTime):
       
  4073         (JSC::dateProtoFuncSetMilliSeconds):
       
  4074         (JSC::dateProtoFuncSetUTCMilliseconds):
       
  4075         (JSC::dateProtoFuncSetSeconds):
       
  4076         (JSC::dateProtoFuncSetUTCSeconds):
       
  4077         (JSC::dateProtoFuncSetMinutes):
       
  4078         (JSC::dateProtoFuncSetUTCMinutes):
       
  4079         (JSC::dateProtoFuncSetHours):
       
  4080         (JSC::dateProtoFuncSetUTCHours):
       
  4081         (JSC::dateProtoFuncSetDate):
       
  4082         (JSC::dateProtoFuncSetUTCDate):
       
  4083         (JSC::dateProtoFuncSetMonth):
       
  4084         (JSC::dateProtoFuncSetUTCMonth):
       
  4085         (JSC::dateProtoFuncSetFullYear):
       
  4086         (JSC::dateProtoFuncSetUTCFullYear):
       
  4087         (JSC::dateProtoFuncSetYear):
       
  4088         (JSC::dateProtoFuncGetYear):
       
  4089         (JSC::dateProtoFuncToJSON):
       
  4090         * runtime/ErrorConstructor.cpp:
       
  4091         (JSC::callErrorConstructor):
       
  4092         * runtime/ErrorPrototype.cpp:
       
  4093         (JSC::errorProtoFuncToString):
       
  4094         * runtime/FunctionConstructor.cpp:
       
  4095         (JSC::callFunctionConstructor):
       
  4096         * runtime/FunctionPrototype.cpp:
       
  4097         (JSC::callFunctionPrototype):
       
  4098         (JSC::functionProtoFuncToString):
       
  4099         (JSC::functionProtoFuncApply):
       
  4100         (JSC::functionProtoFuncCall):
       
  4101         * runtime/JSCell.h:
       
  4102         (JSC::getCallData):
       
  4103         (JSC::getConstructData):
       
  4104         * runtime/JSFunction.cpp:
       
  4105         (JSC::callHostFunctionAsConstructor):
       
  4106         * runtime/JSFunction.h:
       
  4107         * runtime/JSGlobalObjectFunctions.cpp:
       
  4108         (JSC::globalFuncEval):
       
  4109         (JSC::globalFuncParseInt):
       
  4110         (JSC::globalFuncParseFloat):
       
  4111         (JSC::globalFuncIsNaN):
       
  4112         (JSC::globalFuncIsFinite):
       
  4113         (JSC::globalFuncDecodeURI):
       
  4114         (JSC::globalFuncDecodeURIComponent):
       
  4115         (JSC::globalFuncEncodeURI):
       
  4116         (JSC::globalFuncEncodeURIComponent):
       
  4117         (JSC::globalFuncEscape):
       
  4118         (JSC::globalFuncUnescape):
       
  4119         (JSC::globalFuncJSCPrint):
       
  4120         * runtime/JSGlobalObjectFunctions.h:
       
  4121         * runtime/JSONObject.cpp:
       
  4122         (JSC::JSONProtoFuncParse):
       
  4123         (JSC::JSONProtoFuncStringify):
       
  4124         * runtime/JSObject.cpp:
       
  4125         (JSC::callDefaultValueFunction):
       
  4126         * runtime/JSValue.h:
       
  4127         * runtime/MathObject.cpp:
       
  4128         (JSC::mathProtoFuncAbs):
       
  4129         (JSC::mathProtoFuncACos):
       
  4130         (JSC::mathProtoFuncASin):
       
  4131         (JSC::mathProtoFuncATan):
       
  4132         (JSC::mathProtoFuncATan2):
       
  4133         (JSC::mathProtoFuncCeil):
       
  4134         (JSC::mathProtoFuncCos):
       
  4135         (JSC::mathProtoFuncExp):
       
  4136         (JSC::mathProtoFuncFloor):
       
  4137         (JSC::mathProtoFuncLog):
       
  4138         (JSC::mathProtoFuncMax):
       
  4139         (JSC::mathProtoFuncMin):
       
  4140         (JSC::mathProtoFuncPow):
       
  4141         (JSC::mathProtoFuncRandom):
       
  4142         (JSC::mathProtoFuncRound):
       
  4143         (JSC::mathProtoFuncSin):
       
  4144         (JSC::mathProtoFuncSqrt):
       
  4145         (JSC::mathProtoFuncTan):
       
  4146         * runtime/NativeErrorConstructor.cpp:
       
  4147         (JSC::callNativeErrorConstructor):
       
  4148         * runtime/NumberConstructor.cpp:
       
  4149         (JSC::callNumberConstructor):
       
  4150         * runtime/NumberPrototype.cpp:
       
  4151         (JSC::numberProtoFuncToString):
       
  4152         (JSC::numberProtoFuncToLocaleString):
       
  4153         (JSC::numberProtoFuncValueOf):
       
  4154         (JSC::numberProtoFuncToFixed):
       
  4155         (JSC::numberProtoFuncToExponential):
       
  4156         (JSC::numberProtoFuncToPrecision):
       
  4157         * runtime/ObjectConstructor.cpp:
       
  4158         (JSC::callObjectConstructor):
       
  4159         (JSC::objectConstructorGetPrototypeOf):
       
  4160         (JSC::objectConstructorGetOwnPropertyDescriptor):
       
  4161         (JSC::objectConstructorGetOwnPropertyNames):
       
  4162         (JSC::objectConstructorKeys):
       
  4163         (JSC::toPropertyDescriptor):
       
  4164         (JSC::objectConstructorDefineProperty):
       
  4165         (JSC::objectConstructorDefineProperties):
       
  4166         (JSC::objectConstructorCreate):
       
  4167         * runtime/ObjectPrototype.cpp:
       
  4168         (JSC::objectProtoFuncValueOf):
       
  4169         (JSC::objectProtoFuncHasOwnProperty):
       
  4170         (JSC::objectProtoFuncIsPrototypeOf):
       
  4171         (JSC::objectProtoFuncDefineGetter):
       
  4172         (JSC::objectProtoFuncDefineSetter):
       
  4173         (JSC::objectProtoFuncLookupGetter):
       
  4174         (JSC::objectProtoFuncLookupSetter):
       
  4175         (JSC::objectProtoFuncPropertyIsEnumerable):
       
  4176         (JSC::objectProtoFuncToLocaleString):
       
  4177         (JSC::objectProtoFuncToString):
       
  4178         * runtime/ObjectPrototype.h:
       
  4179         * runtime/RegExpConstructor.cpp:
       
  4180         (JSC::callRegExpConstructor):
       
  4181         * runtime/RegExpObject.cpp:
       
  4182         (JSC::callRegExpObject):
       
  4183         * runtime/RegExpPrototype.cpp:
       
  4184         (JSC::regExpProtoFuncTest):
       
  4185         (JSC::regExpProtoFuncExec):
       
  4186         (JSC::regExpProtoFuncCompile):
       
  4187         (JSC::regExpProtoFuncToString):
       
  4188         * runtime/StringConstructor.cpp:
       
  4189         (JSC::stringFromCharCode):
       
  4190         (JSC::callStringConstructor):
       
  4191         * runtime/StringPrototype.cpp:
       
  4192         (JSC::stringProtoFuncReplace):
       
  4193         (JSC::stringProtoFuncToString):
       
  4194         (JSC::stringProtoFuncCharAt):
       
  4195         (JSC::stringProtoFuncCharCodeAt):
       
  4196         (JSC::stringProtoFuncConcat):
       
  4197         (JSC::stringProtoFuncIndexOf):
       
  4198         (JSC::stringProtoFuncLastIndexOf):
       
  4199         (JSC::stringProtoFuncMatch):
       
  4200         (JSC::stringProtoFuncSearch):
       
  4201         (JSC::stringProtoFuncSlice):
       
  4202         (JSC::stringProtoFuncSplit):
       
  4203         (JSC::stringProtoFuncSubstr):
       
  4204         (JSC::stringProtoFuncSubstring):
       
  4205         (JSC::stringProtoFuncToLowerCase):
       
  4206         (JSC::stringProtoFuncToUpperCase):
       
  4207         (JSC::stringProtoFuncLocaleCompare):
       
  4208         (JSC::stringProtoFuncBig):
       
  4209         (JSC::stringProtoFuncSmall):
       
  4210         (JSC::stringProtoFuncBlink):
       
  4211         (JSC::stringProtoFuncBold):
       
  4212         (JSC::stringProtoFuncFixed):
       
  4213         (JSC::stringProtoFuncItalics):
       
  4214         (JSC::stringProtoFuncStrike):
       
  4215         (JSC::stringProtoFuncSub):
       
  4216         (JSC::stringProtoFuncSup):
       
  4217         (JSC::stringProtoFuncFontcolor):
       
  4218         (JSC::stringProtoFuncFontsize):
       
  4219         (JSC::stringProtoFuncAnchor):
       
  4220         (JSC::stringProtoFuncLink):
       
  4221         (JSC::stringProtoFuncTrim):
       
  4222         (JSC::stringProtoFuncTrimLeft):
       
  4223         (JSC::stringProtoFuncTrimRight):
       
  4224 
       
  4225 2010-06-02  Mark Rowe  <mrowe@apple.com>
       
  4226 
       
  4227         Reviewed by Gavin Barraclough.
       
  4228 
       
  4229         Add value-representation specific sections to the mac export file.
       
  4230 
       
  4231         * Configurations/JavaScriptCore.xcconfig:
       
  4232         * DerivedSources.make:
       
  4233         * JavaScriptCore.JSVALUE32_64only.exp: Added.
       
  4234         * JavaScriptCore.JSVALUE32only.exp: Added.
       
  4235         * JavaScriptCore.JSVALUE64only.exp: Added.
       
  4236         * JavaScriptCore.xcodeproj/project.pbxproj:
       
  4237 
       
  4238 2010-06-02  Mark Rowe  <mrowe@apple.com>
       
  4239 
       
  4240         Reviewed by Gavin Barraclough.
       
  4241 
       
  4242         <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE.
       
  4243 
       
  4244         * pcre/pcre_exec.cpp:
       
  4245         (repeatInformationFromInstructionOffset): Change the type of instructionOffset to int.  There's no good
       
  4246         reason for it to be a short, and using int prevents this code from triggering the LLVM GCC bug.
       
  4247 
       
  4248 2010-06-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  4249 
       
  4250         Reviewed by Kenneth Rohde Christiansen.
       
  4251 
       
  4252         Fix the QScriptValue::strictlyEquals function.
       
  4253 
       
  4254         Handling for a few edge cases was added.
       
  4255 
       
  4256         New autotest that covers the QScriptValue::strictlyEquals function.
       
  4257 
       
  4258         [Qt] QScriptValue::strictlyEquals is broken
       
  4259         https://bugs.webkit.org/show_bug.cgi?id=36600
       
  4260 
       
  4261         * qt/api/qscriptvalue.cpp:
       
  4262         (QScriptValue::strictlyEquals):
       
  4263         * qt/api/qscriptvalue_p.h:
       
  4264         (QScriptValuePrivate::strictlyEquals):
       
  4265         * qt/tests/qscriptvalue/qscriptvalue.pro:
       
  4266         * qt/tests/qscriptvalue/tst_qscriptvalue.h:
       
  4267         * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: Added.
       
  4268         (tst_QScriptValue::strictlyEquals_initData):
       
  4269         (tst_QScriptValue::strictlyEquals_makeData):
       
  4270         (tst_QScriptValue::strictlyEquals_test):
       
  4271 
       
  4272 2010-06-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  4273 
       
  4274         Reviewed by Kenneth Rohde Christiansen.
       
  4275 
       
  4276         New function QScriptEngine::newObject.
       
  4277 
       
  4278         The function creates a object of class Object and returns it
       
  4279         as a QScriptValue.
       
  4280 
       
  4281         [Qt] QScriptEngine API should contain a newObject function
       
  4282         https://bugs.webkit.org/show_bug.cgi?id=39114
       
  4283 
       
  4284         * qt/api/qscriptengine.cpp:
       
  4285         (QScriptEngine::newObject):
       
  4286         * qt/api/qscriptengine.h:
       
  4287         * qt/api/qscriptengine_p.cpp:
       
  4288         (QScriptEnginePrivate::newObject):
       
  4289         * qt/api/qscriptengine_p.h:
       
  4290         * qt/tests/qscriptengine/tst_qscriptengine.cpp:
       
  4291         (tst_QScriptEngine::newObject):
       
  4292 
       
  4293 2010-06-02  Gabor Loki  <loki@webkit.org>
       
  4294 
       
  4295         Reviewed by Gavin Barraclough.
       
  4296         https://bugs.webkit.org/show_bug.cgi?id=40011
       
  4297 
       
  4298         Thumb-2 build fix: The offset parameter of ldrh should be encoded as an
       
  4299         imm12 immediate constant in load16. If it is not fit in the instruction
       
  4300         a temporary register has to be used.
       
  4301 
       
  4302         * assembler/MacroAssemblerARMv7.h:
       
  4303         (JSC::MacroAssemblerARMv7::load16):
       
  4304 
       
  4305 2010-06-02  Sterling Swigart  <sswigart@google.com>
       
  4306 
       
  4307         Reviewed by David Levin.
       
  4308 
       
  4309         Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
       
  4310         https://bugs.webkit.org/show_bug.cgi?id=39906
       
  4311 
       
  4312         * Configurations/FeatureDefines.xcconfig:
       
  4313 
       
  4314 2010-06-01  Gavin Barraclough  <barraclough@apple.com>
       
  4315 
       
  4316         Reviewed by Sam Weinig.
       
  4317 
       
  4318         Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together
       
  4319 
       
  4320         This is a useful stepping stone towards reversing argument order.
       
  4321 
       
  4322         * bytecompiler/BytecodeGenerator.cpp:
       
  4323         (JSC::BytecodeGenerator::BytecodeGenerator):
       
  4324         (JSC::BytecodeGenerator::addParameter):
       
  4325         (JSC::BytecodeGenerator::emitCall):
       
  4326         (JSC::BytecodeGenerator::emitCallEval):
       
  4327         (JSC::BytecodeGenerator::emitConstruct):
       
  4328         * bytecompiler/BytecodeGenerator.h:
       
  4329         (JSC::CallArguments::thisRegister):
       
  4330         (JSC::CallArguments::argumentRegister):
       
  4331         (JSC::CallArguments::callFrame):
       
  4332         (JSC::CallArguments::count):
       
  4333         (JSC::BytecodeGenerator::shouldEmitProfileHooks):
       
  4334         * bytecompiler/NodesCodegen.cpp:
       
  4335         (JSC::NewExprNode::emitBytecode):
       
  4336         (JSC::CallArguments::CallArguments):
       
  4337         (JSC::EvalFunctionCallNode::emitBytecode):
       
  4338         (JSC::FunctionCallValueNode::emitBytecode):
       
  4339         (JSC::FunctionCallResolveNode::emitBytecode):
       
  4340         (JSC::FunctionCallBracketNode::emitBytecode):
       
  4341         (JSC::FunctionCallDotNode::emitBytecode):
       
  4342         (JSC::CallFunctionCallDotNode::emitBytecode):
       
  4343         (JSC::ApplyFunctionCallDotNode::emitBytecode):
       
  4344 
       
  4345 2010-06-01  Yong Li  <yoli@rim.com>
       
  4346 
       
  4347         Reviewed by Darin Adler.
       
  4348 
       
  4349         Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex.
       
  4350         https://bugs.webkit.org/show_bug.cgi?id=39893
       
  4351 
       
  4352         * wtf/ThreadingPthreads.cpp:
       
  4353         (WTF::Mutex::Mutex):
       
  4354 
       
  4355 2010-06-01  Kwang Yul Seo  <skyul@company100.net>
       
  4356 
       
  4357         Reviewed by Xan Lopez.
       
  4358 
       
  4359         [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap
       
  4360         https://bugs.webkit.org/show_bug.cgi?id=39831
       
  4361 
       
  4362         Use DEFINE_STATIC_LOCAL for static local variables.
       
  4363 
       
  4364         * wtf/gtk/ThreadingGtk.cpp:
       
  4365         (WTF::threadMapMutex):
       
  4366         (WTF::threadMap):
       
  4367         (WTF::identifierByGthreadHandle):
       
  4368 
       
  4369 2010-06-01  Kent Tamura  <tkent@chromium.org>
       
  4370 
       
  4371         Reviewed by Shinichiro Hamaji.
       
  4372 
       
  4373         Fix style errors of dtoa
       
  4374         https://bugs.webkit.org/show_bug.cgi?id=39972
       
  4375 
       
  4376         Fix all errors reported by check-webkit-style.
       
  4377 
       
  4378         * wtf/dtoa.cpp:
       
  4379         * wtf/dtoa.h:
       
  4380 
       
  4381 2010-05-30  Darin Adler  <darin@apple.com>
       
  4382 
       
  4383         Reviewed by Sam Weinig.
       
  4384 
       
  4385         * wtf/OwnArrayPtr.h:
       
  4386         (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr.
       
  4387         At some point someone fixed the "asserts when assigning to 0 and the pointer is
       
  4388         already 0" issue in OwnPtr but forgot to do it here.
       
  4389 
       
  4390 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
       
  4391 
       
  4392         Windows build fix: Updated exported symbols.
       
  4393         
       
  4394         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  4395 
       
  4396 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
       
  4397 
       
  4398         Disabled ENABLE_JIT_OPTIMIZE_NATIVE_CALL on Windows for now, until I
       
  4399         can figure out why it's crashing.
       
  4400 
       
  4401         * wtf/Platform.h:
       
  4402 
       
  4403 2010-05-29  Geoffrey Garen  <ggaren@apple.com>
       
  4404 
       
  4405         Fixed Windows crash seen on buildbot.
       
  4406 
       
  4407         * jit/JITOpcodes32_64.cpp:
       
  4408         (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first
       
  4409         argument in ecx.
       
  4410 
       
  4411 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
       
  4412 
       
  4413         Windows build fix: Updated exported symbols.
       
  4414 
       
  4415         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  4416 
       
  4417 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
       
  4418 
       
  4419         Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL
       
  4420         is disabled.
       
  4421 
       
  4422         * runtime/Lookup.cpp:
       
  4423         (JSC::setUpStaticFunctionSlot):
       
  4424         * runtime/Lookup.h:
       
  4425         * wtf/Platform.h:
       
  4426 
       
  4427 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
       
  4428 
       
  4429         Windows build fix: Updated exported symbols.
       
  4430 
       
  4431         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
       
  4432 
       
  4433 2010-05-28  Geoffrey Garen  <ggaren@apple.com>
       
  4434 
       
  4435         Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
       
  4436 
       
  4437         Simplified the host calling convention.
       
  4438         
       
  4439         22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host
       
  4440         function calls.
       
  4441         
       
  4442         No change on SunSpider.
       
  4443         
       
  4444         All JS calls (but not constructs, yet) now go through the normal JS
       
  4445         calling convention via the RegisterFile. As a result, the host calling
       
  4446         convention, which used to be this
       
  4447 
       
  4448             JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&)
       
  4449             
       
  4450         is now this
       
  4451 
       
  4452             JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*)
       
  4453             
       
  4454         Callee, 'this', and argument access all hapen relative to the ExecState*,
       
  4455         which is a pointer into the RegisterFile.
       
  4456         
       
  4457         This patch comes in two parts.
       
  4458         
       
  4459         PART ONE: Functional code changes.
       
  4460         
       
  4461         * wtf/Platform.h: Disabled optimized calls on platforms I didn't test.
       
  4462         We can re-enable once we verify that host calls on these platforms are
       
  4463         correct.
       
  4464 
       
  4465         * debugger/DebuggerCallFrame.cpp:
       
  4466         (JSC::DebuggerCallFrame::functionName):
       
  4467         (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to
       
  4468         ExecState::callee().
       
  4469 
       
  4470         (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue().
       
  4471 
       
  4472         * interpreter/CallFrame.cpp:
       
  4473         * interpreter/CallFrame.h:
       
  4474         (JSC::ExecState::callee):
       
  4475         (JSC::ExecState::scopeChain):
       
  4476         (JSC::ExecState::init): Changed callee() to be JSObject* instead of
       
  4477         JSFunction* -- now, it might be some other callable host object.
       
  4478 
       
  4479         (JSC::ExecState::hostThisRegister):
       
  4480         (JSC::ExecState::hostThisValue):
       
  4481         (JSC::ExecState::argumentCount):
       
  4482         (JSC::ExecState::argumentCountIncludingThis):
       
  4483         (JSC::ExecState::argument):
       
  4484         (JSC::ExecState::setArgumentCountIncludingThis):
       
  4485         (JSC::ExecState::setCallee): Added convenient accessors for arguments
       
  4486         from within a host function. Removed thisValue() because it was too
       
  4487         tempting to use incorrectly, and it only had one or two clients, anyway.
       
  4488 
       
  4489         * interpreter/Interpreter.cpp:
       
  4490         (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
       
  4491 
       
  4492         (JSC::Interpreter::throwException): Be sure to shrink the register file
       
  4493         before invoking the exception handler, to reduce the chances that the
       
  4494         handler will re-throw in the case of stack overflow. (Re-throwing is now
       
  4495         more likely than it used to be, since standardizing the calling convention
       
  4496         implicitly added stack overflow checks to some places where they used to be missing.)
       
  4497 
       
  4498         (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
       
  4499         Updated for CallFrame::init API change.
       
  4500 
       
  4501         (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
       
  4502         Updated for CallFrame::init API change. Added support for calling a host
       
  4503         function.
       
  4504 
       
  4505         (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
       
  4506         Updated for CallFrame::init API change. 
       
  4507 
       
  4508         (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change. 
       
  4509 
       
  4510         (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change.
       
  4511         Added some explicit JSValue(JSObject*) initialization, since relaxing
       
  4512         the JSFunction* restriction on callee has made register types more ambiguous.
       
  4513         Removed toThisObject() conversion, since all callees do it themselves now.
       
  4514         Updated host function call for new host function signature. Updated for
       
  4515         change to ExecState::argumentCount() API.
       
  4516 
       
  4517         * interpreter/Register.h:
       
  4518         (JSC::Register::):
       
  4519         (JSC::Register::operator=):
       
  4520         (JSC::Register::function): Changed callee() to be JSObject* instead of
       
  4521         JSFunction* -- now, it might be some other callable host object.
       
  4522 
       
  4523         * jit/JITOpcodes.cpp:
       
  4524         (JSC::JIT::privateCompileCTINativeCall):
       
  4525         * jit/JITOpcodes32_64.cpp:
       
  4526         (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that
       
  4527         set up the arguments to host functions -- all but one of the arguments
       
  4528         are gone now. This is the actual optimization.
       
  4529 
       
  4530         * jit/JITStubs.cpp:
       
  4531         (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API
       
  4532         changes noted above. Removed toThisObject() conversion, since all callees
       
  4533         do it themselves now.
       
  4534         
       
  4535         * runtime/ArgList.h:
       
  4536         (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a
       
  4537         temporary shim for converting from ExecState* to ArgList where it's still
       
  4538         necessary.
       
  4539 
       
  4540         * runtime/Arguments.h:
       
  4541         (JSC::Arguments::getArgumentsData):
       
  4542         (JSC::Arguments::Arguments): Updated for ExecState and Register API
       
  4543         changes noted above. 
       
  4544 
       
  4545         * runtime/CallData.cpp:
       
  4546         (JSC::call): Changed call always to call Interpreter::executeCall, even
       
  4547         for host functions. This ensures that the normal calling convention is
       
  4548         set up in the RegsiterFile when calling from C++ to host function.
       
  4549 
       
  4550         * runtime/CallData.h: Changed host function signature as described above.
       
  4551 
       
  4552         * runtime/ConstructData.cpp:
       
  4553         (JSC::construct): Moved JSFunction::construct code here so I could nix
       
  4554         JSFunction::call and JSFunction::call. We want a JSFunction-agnostic
       
  4555         way to call and construct, so that everything works naturally for non-
       
  4556         JSFunction objects. 
       
  4557 
       
  4558         * runtime/JSFunction.cpp:
       
  4559         (JSC::callHostFunctionAsConstructor):
       
  4560         * runtime/JSFunction.h: Updated for ExecState and Register API changes
       
  4561         noted above. Nixed JSFunction::call and JSFunction::construct, noted above.
       
  4562  
       
  4563         * runtime/JSGlobalObject.cpp:
       
  4564         (JSC::JSGlobalObject::init): Ditto.
       
  4565 
       
  4566         PART TWO: Global search and replace.
       
  4567         
       
  4568         In the areas below, I used global search-and-replace to change
       
  4569             (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
       
  4570             args.size() => exec->argumentCount()
       
  4571             args.at(i) => exec->argument(i)
       
  4572 
       
  4573         * API/JSCallbackFunction.cpp:
       
  4574         (JSC::JSCallbackFunction::call):
       
  4575         * API/JSCallbackFunction.h:
       
  4576         * API/JSCallbackObject.h:
       
  4577         * API/JSCallbackObjectFunctions.h:
       
  4578         (JSC::::call):
       
  4579         * JavaScriptCore.exp:
       
  4580         * jsc.cpp:
       
  4581         (functionPrint):
       
  4582         (functionDebug):
       
  4583         (functionGC):
       
  4584         (functionVersion):
       
  4585         (functionRun):
       
  4586         (functionLoad):
       
  4587         (functionCheckSyntax):
       
  4588         (functionSetSamplingFlags):
       
  4589         (functionClearSamplingFlags):
       
  4590         (functionReadline):
       
  4591         (functionQuit):
       
  4592         * runtime/ArrayConstructor.cpp:
       
  4593         (JSC::callArrayConstructor):
       
  4594         (JSC::arrayConstructorIsArray):
       
  4595         * runtime/ArrayPrototype.cpp:
       
  4596         (JSC::arrayProtoFuncToString):
       
  4597         (JSC::arrayProtoFuncToLocaleString):
       
  4598         (JSC::arrayProtoFuncJoin):
       
  4599         (JSC::arrayProtoFuncConcat):
       
  4600         (JSC::arrayProtoFuncPop):
       
  4601         (JSC::arrayProtoFuncPush):
       
  4602         (JSC::arrayProtoFuncReverse):
       
  4603         (JSC::arrayProtoFuncShift):
       
  4604         (JSC::arrayProtoFuncSlice):
       
  4605         (JSC::arrayProtoFuncSort):
       
  4606         (JSC::arrayProtoFuncSplice):
       
  4607         (JSC::arrayProtoFuncUnShift):
       
  4608         (JSC::arrayProtoFuncFilter):
       
  4609         (JSC::arrayProtoFuncMap):
       
  4610         (JSC::arrayProtoFuncEvery):
       
  4611         (JSC::arrayProtoFuncForEach):
       
  4612         (JSC::arrayProtoFuncSome):
       
  4613         (JSC::arrayProtoFuncReduce):
       
  4614         (JSC::arrayProtoFuncReduceRight):
       
  4615         (JSC::arrayProtoFuncIndexOf):
       
  4616         (JSC::arrayProtoFuncLastIndexOf):
       
  4617         * runtime/BooleanConstructor.cpp:
       
  4618         (JSC::callBooleanConstructor):
       
  4619         * runtime/BooleanPrototype.cpp:
       
  4620         (JSC::booleanProtoFuncToString):
       
  4621         (JSC::booleanProtoFuncValueOf):
       
  4622         * runtime/DateConstructor.cpp:
       
  4623         (JSC::callDate):
       
  4624         (JSC::dateParse):
       
  4625         (JSC::dateNow):
       
  4626         (JSC::dateUTC):
       
  4627         * runtime/DatePrototype.cpp:
       
  4628         (JSC::formatLocaleDate):
       
  4629         (JSC::fillStructuresUsingTimeArgs):
       
  4630         (JSC::fillStructuresUsingDateArgs):
       
  4631         (JSC::dateProtoFuncToString):
       
  4632         (JSC::dateProtoFuncToUTCString):
       
  4633         (JSC::dateProtoFuncToISOString):
       
  4634         (JSC::dateProtoFuncToDateString):
       
  4635         (JSC::dateProtoFuncToTimeString):
       
  4636         (JSC::dateProtoFuncToLocaleString):
       
  4637         (JSC::dateProtoFuncToLocaleDateString):
       
  4638         (JSC::dateProtoFuncToLocaleTimeString):
       
  4639         (JSC::dateProtoFuncGetTime):
       
  4640         (JSC::dateProtoFuncGetFullYear):
       
  4641         (JSC::dateProtoFuncGetUTCFullYear):
       
  4642         (JSC::dateProtoFuncToGMTString):
       
  4643         (JSC::dateProtoFuncGetMonth):
       
  4644         (JSC::dateProtoFuncGetUTCMonth):
       
  4645         (JSC::dateProtoFuncGetDate):
       
  4646         (JSC::dateProtoFuncGetUTCDate):
       
  4647         (JSC::dateProtoFuncGetDay):
       
  4648         (JSC::dateProtoFuncGetUTCDay):
       
  4649         (JSC::dateProtoFuncGetHours):
       
  4650         (JSC::dateProtoFuncGetUTCHours):
       
  4651         (JSC::dateProtoFuncGetMinutes):
       
  4652         (JSC::dateProtoFuncGetUTCMinutes):
       
  4653         (JSC::dateProtoFuncGetSeconds):
       
  4654         (JSC::dateProtoFuncGetUTCSeconds):
       
  4655         (JSC::dateProtoFuncGetMilliSeconds):
       
  4656         (JSC::dateProtoFuncGetUTCMilliseconds):
       
  4657         (JSC::dateProtoFuncGetTimezoneOffset):
       
  4658         (JSC::dateProtoFuncSetTime):
       
  4659         (JSC::setNewValueFromTimeArgs):
       
  4660         (JSC::setNewValueFromDateArgs):
       
  4661         (JSC::dateProtoFuncSetMilliSeconds):
       
  4662         (JSC::dateProtoFuncSetUTCMilliseconds):
       
  4663         (JSC::dateProtoFuncSetSeconds):
       
  4664         (JSC::dateProtoFuncSetUTCSeconds):
       
  4665         (JSC::dateProtoFuncSetMinutes):
       
  4666         (JSC::dateProtoFuncSetUTCMinutes):
       
  4667         (JSC::dateProtoFuncSetHours):
       
  4668         (JSC::dateProtoFuncSetUTCHours):
       
  4669         (JSC::dateProtoFuncSetDate):
       
  4670         (JSC::dateProtoFuncSetUTCDate):
       
  4671         (JSC::dateProtoFuncSetMonth):
       
  4672         (JSC::dateProtoFuncSetUTCMonth):
       
  4673         (JSC::dateProtoFuncSetFullYear):
       
  4674         (JSC::dateProtoFuncSetUTCFullYear):
       
  4675         (JSC::dateProtoFuncSetYear):
       
  4676         (JSC::dateProtoFuncGetYear):
       
  4677         (JSC::dateProtoFuncToJSON):
       
  4678         * runtime/ErrorConstructor.cpp:
       
  4679         (JSC::callErrorConstructor):
       
  4680         * runtime/ErrorPrototype.cpp:
       
  4681         (JSC::errorProtoFuncToString):
       
  4682         * runtime/FunctionConstructor.cpp:
       
  4683         (JSC::callFunctionConstructor):
       
  4684         * runtime/FunctionPrototype.cpp:
       
  4685         (JSC::callFunctionPrototype):
       
  4686         (JSC::functionProtoFuncToString):
       
  4687         (JSC::functionProtoFuncApply):
       
  4688         (JSC::functionProtoFuncCall):
       
  4689         * runtime/JSGlobalObjectFunctions.cpp:
       
  4690         (JSC::encode):
       
  4691         (JSC::decode):
       
  4692         (JSC::globalFuncEval):
       
  4693         (JSC::globalFuncParseInt):
       
  4694         (JSC::globalFuncParseFloat):
       
  4695         (JSC::globalFuncIsNaN):
       
  4696         (JSC::globalFuncIsFinite):
       
  4697         (JSC::globalFuncDecodeURI):
       
  4698         (JSC::globalFuncDecodeURIComponent):
       
  4699         (JSC::globalFuncEncodeURI):
       
  4700         (JSC::globalFuncEncodeURIComponent):
       
  4701         (JSC::globalFuncEscape):
       
  4702         (JSC::globalFuncUnescape):
       
  4703         (JSC::globalFuncJSCPrint):
       
  4704         * runtime/JSGlobalObjectFunctions.h:
       
  4705         * runtime/JSONObject.cpp:
       
  4706         (JSC::JSONProtoFuncParse):
       
  4707         (JSC::JSONProtoFuncStringify):
       
  4708         * runtime/JSString.h:
       
  4709         * runtime/MathObject.cpp:
       
  4710         (JSC::mathProtoFuncAbs):
       
  4711         (JSC::mathProtoFuncACos):
       
  4712         (JSC::mathProtoFuncASin):
       
  4713         (JSC::mathProtoFuncATan):
       
  4714         (JSC::mathProtoFuncATan2):
       
  4715         (JSC::mathProtoFuncCeil):
       
  4716         (JSC::mathProtoFuncCos):
       
  4717         (JSC::mathProtoFuncExp):
       
  4718         (JSC::mathProtoFuncFloor):
       
  4719         (JSC::mathProtoFuncLog):
       
  4720         (JSC::mathProtoFuncMax):
       
  4721         (JSC::mathProtoFuncMin):
       
  4722         (JSC::mathProtoFuncPow):
       
  4723         (JSC::mathProtoFuncRandom):
       
  4724         (JSC::mathProtoFuncRound):
       
  4725         (JSC::mathProtoFuncSin):
       
  4726         (JSC::mathProtoFuncSqrt):
       
  4727         (JSC::mathProtoFuncTan):
       
  4728         * runtime/NativeErrorConstructor.cpp:
       
  4729         (JSC::callNativeErrorConstructor):
       
  4730         * runtime/NumberConstructor.cpp:
       
  4731         (JSC::callNumberConstructor):
       
  4732         * runtime/NumberPrototype.cpp:
       
  4733         (JSC::numberProtoFuncToString):
       
  4734         (JSC::numberProtoFuncToLocaleString):
       
  4735         (JSC::numberProtoFuncValueOf):
       
  4736         (JSC::numberProtoFuncToFixed):
       
  4737         (JSC::numberProtoFuncToExponential):
       
  4738         (JSC::numberProtoFuncToPrecision):
       
  4739         * runtime/ObjectConstructor.cpp:
       
  4740         (JSC::callObjectConstructor):
       
  4741         (JSC::objectConstructorGetPrototypeOf):
       
  4742         (JSC::objectConstructorGetOwnPropertyDescriptor):
       
  4743         (JSC::objectConstructorGetOwnPropertyNames):
       
  4744         (JSC::objectConstructorKeys):
       
  4745         (JSC::objectConstructorDefineProperty):
       
  4746         (JSC::objectConstructorDefineProperties):
       
  4747         (JSC::objectConstructorCreate):
       
  4748         * runtime/ObjectPrototype.cpp:
       
  4749         (JSC::objectProtoFuncValueOf):
       
  4750         (JSC::objectProtoFuncHasOwnProperty):
       
  4751         (JSC::objectProtoFuncIsPrototypeOf):
       
  4752         (JSC::objectProtoFuncDefineGetter):
       
  4753         (JSC::objectProtoFuncDefineSetter):
       
  4754         (JSC::objectProtoFuncLookupGetter):
       
  4755         (JSC::objectProtoFuncLookupSetter):
       
  4756         (JSC::objectProtoFuncPropertyIsEnumerable):
       
  4757         (JSC::objectProtoFuncToLocaleString):
       
  4758         (JSC::objectProtoFuncToString):
       
  4759         * runtime/ObjectPrototype.h:
       
  4760         * runtime/Operations.h:
       
  4761         (JSC::jsString):
       
  4762         * runtime/RegExpConstructor.cpp:
       
  4763         (JSC::callRegExpConstructor):
       
  4764         * runtime/RegExpObject.cpp:
       
  4765         (JSC::RegExpObject::test):
       
  4766         (JSC::RegExpObject::exec):
       
  4767         (JSC::callRegExpObject):
       
  4768         (JSC::RegExpObject::match):
       
  4769         * runtime/RegExpObject.h:
       
  4770         * runtime/RegExpPrototype.cpp:
       
  4771         (JSC::regExpProtoFuncTest):
       
  4772         (JSC::regExpProtoFuncExec):
       
  4773         (JSC::regExpProtoFuncCompile):
       
  4774         (JSC::regExpProtoFuncToString):
       
  4775         * runtime/StringConstructor.cpp:
       
  4776         (JSC::stringFromCharCodeSlowCase):
       
  4777         (JSC::stringFromCharCode):
       
  4778         (JSC::callStringConstructor):
       
  4779         * runtime/StringPrototype.cpp:
       
  4780         (JSC::stringProtoFuncReplace):
       
  4781         (JSC::stringProtoFuncToString):
       
  4782         (JSC::stringProtoFuncCharAt):
       
  4783         (JSC::stringProtoFuncCharCodeAt):
       
  4784         (JSC::stringProtoFuncConcat):
       
  4785         (JSC::stringProtoFuncIndexOf):
       
  4786         (JSC::stringProtoFuncLastIndexOf):
       
  4787         (JSC::stringProtoFuncMatch):
       
  4788         (JSC::stringProtoFuncSearch):
       
  4789         (JSC::stringProtoFuncSlice):
       
  4790         (JSC::stringProtoFuncSplit):
       
  4791         (JSC::stringProtoFuncSubstr):
       
  4792         (JSC::stringProtoFuncSubstring):
       
  4793         (JSC::stringProtoFuncToLowerCase):
       
  4794         (JSC::stringProtoFuncToUpperCase):
       
  4795         (JSC::stringProtoFuncLocaleCompare):
       
  4796         (JSC::stringProtoFuncBig):
       
  4797         (JSC::stringProtoFuncSmall):
       
  4798         (JSC::stringProtoFuncBlink):
       
  4799         (JSC::stringProtoFuncBold):
       
  4800         (JSC::stringProtoFuncFixed):
       
  4801         (JSC::stringProtoFuncItalics):
       
  4802         (JSC::stringProtoFuncStrike):
       
  4803         (JSC::stringProtoFuncSub):
       
  4804         (JSC::stringProtoFuncSup):
       
  4805         (JSC::stringProtoFuncFontcolor):
       
  4806         (JSC::stringProtoFuncFontsize):
       
  4807         (JSC::stringProtoFuncAnchor):
       
  4808         (JSC::stringProtoFuncLink):
       
  4809         (JSC::stringProtoFuncTrim):
       
  4810         (JSC::stringProtoFuncTrimLeft):
       
  4811         (JSC::stringProtoFuncTrimRight):
       
  4812 
       
  4813 2010-05-28  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
       
  4814 
       
  4815         Reviewed by Geoffrey Garen.
       
  4816 
       
  4817         Fix the JSObjectSetPrototype function.
       
  4818 
       
  4819         A cycle in a prototype chain can cause an application hang or
       
  4820         even crash.
       
  4821         A check for a prototype chain cycles was added to
       
  4822         the JSObjectSetPrototype.
       
  4823 
       
  4824         JSObjectSetPrototype doesn't check for cycle in prototype chain.
       
  4825         https://bugs.webkit.org/show_bug.cgi?id=39360
       
  4826 
       
  4827         * API/JSObjectRef.cpp:
       
  4828         (JSObjectSetPrototype):
       
  4829         * API/tests/testapi.c:
       
  4830         (assertTrue):
       
  4831         (checkForCycleInPrototypeChain):
       
  4832         (main):
       
  4833         * runtime/JSObject.cpp:
       
  4834         (JSC::JSObject::put):
       
  4835         * runtime/JSObject.h:
       
  4836         (JSC::JSObject::setPrototypeWithCycleCheck):
       
  4837 
       
  4838 2010-05-28  Chao-ying Fu  <fu@mips.com>
       
  4839 
       
  4840         Reviewed by Eric Seidel.
       
  4841 
       
  4842         Fix MIPS JIT DoubleGreaterThanOrEqual Operands
       
  4843         https://bugs.webkit.org/show_bug.cgi?id=39504
       
  4844 
       
  4845         Swapped two operands of left and right for DoubleGreaterThanOrEqual.
       
  4846         This patch fixed two layout tests as follows.
       
  4847         fast/js/comparison-operators-greater.html
       
  4848         fast/js/comparison-operators-less.html
       
  4849 
       
  4850         * assembler/MacroAssemblerMIPS.h:
       
  4851         (JSC::MacroAssemblerMIPS::branchDouble):
       
  4852 
       
  4853 2010-05-28  Gavin Barraclough  <barraclough@apple.com>
       
  4854 
       
  4855         Reviewed by Geoff Garen.
       
  4856 
       
  4857         Move jit compilation from linking thunks into cti_vm_lazyLink methods.
       
  4858 
       
  4859         * jit/JITOpcodes.cpp:
       
  4860         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  4861         * jit/JITOpcodes32_64.cpp:
       
  4862         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  4863         * jit/JITStubs.cpp:
       
  4864         (JSC::DEFINE_STUB_FUNCTION):
       
  4865 
       
  4866 2010-05-28  Gavin Barraclough  <barraclough@apple.com>
       
  4867 
       
  4868         Reviewed by Sam Weinig.
       
  4869 
       
  4870         Bug 39898 - Move arity check into callee.
       
  4871         
       
  4872         We can reduce the size of the virtual call trampolines by moving the arity check
       
  4873         into the callee functions.  As a following step we will be able to remove the
       
  4874         check for native function / codeblocks by performing translation in a lazy stub.
       
  4875         
       
  4876         * interpreter/CallFrame.h:
       
  4877         (JSC::ExecState::init):
       
  4878         (JSC::ExecState::setReturnPC):
       
  4879         * jit/JIT.cpp:
       
  4880         (JSC::JIT::privateCompile):
       
  4881         (JSC::JIT::linkCall):
       
  4882         (JSC::JIT::linkConstruct):
       
  4883         * jit/JIT.h:
       
  4884         (JSC::JIT::compile):
       
  4885         * jit/JITOpcodes.cpp:
       
  4886         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  4887         * jit/JITOpcodes32_64.cpp:
       
  4888         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  4889         * jit/JITStubs.cpp:
       
  4890         (JSC::DEFINE_STUB_FUNCTION):
       
  4891         * runtime/Executable.cpp:
       
  4892         (JSC::FunctionExecutable::generateJITCodeForCall):
       
  4893         (JSC::FunctionExecutable::generateJITCodeForConstruct):
       
  4894         (JSC::FunctionExecutable::reparseExceptionInfo):
       
  4895         * runtime/Executable.h:
       
  4896         (JSC::NativeExecutable::NativeExecutable):
       
  4897         (JSC::FunctionExecutable::generatedJITCodeForCallWithArityCheck):
       
  4898         (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
       
  4899 
       
  4900 2010-05-27  Luiz Agostini  <luiz.agostini@openbossa.org>
       
  4901 
       
  4902         Reviewed by Darin Adler.
       
  4903 
       
  4904         UTF-16 code points compare() for String objects
       
  4905         https://bugs.webkit.org/show_bug.cgi?id=39701
       
  4906 
       
  4907         Moving compare() implementation from UString to StringImpl for it to be shared
       
  4908         with String. Adding overloaded free functions codePointCompare() in StringImpl
       
  4909         and WTFString. Renaming function compare in UString to codePointCompare to be
       
  4910         consistent.
       
  4911 
       
  4912         * runtime/JSArray.cpp:
       
  4913         (JSC::compareByStringPairForQSort):
       
  4914         * runtime/UString.cpp:
       
  4915         * runtime/UString.h:
       
  4916         (JSC::codePointCompare):
       
  4917         * wtf/text/StringImpl.cpp:
       
  4918         (WebCore::codePointCompare):
       
  4919         * wtf/text/StringImpl.h:
       
  4920         * wtf/text/WTFString.cpp:
       
  4921         (WebCore::codePointCompare):
       
  4922         * wtf/text/WTFString.h:
       
  4923 
       
  4924 2010-05-26  Darin Adler  <darin@apple.com>
       
  4925 
       
  4926         Reviewed by Kent Tamura.
       
  4927 
       
  4928         Null characters handled incorrectly in ToNumber conversion
       
  4929         https://bugs.webkit.org/show_bug.cgi?id=38088
       
  4930 
       
  4931         * runtime/JSGlobalObjectFunctions.cpp:
       
  4932         (JSC::parseInt): Changed code to use UTF8String().data() instead of
       
  4933         ascii() to fix the thread safety issue. Code path is covered by existing
       
  4934         tests in run-javascriptcore-tests.
       
  4935         (JSC::parseFloat): Moved comment to UString::toDouble since the issue
       
  4936         affects all clients, not just parseFloat. Specifically, this also affects
       
  4937         standard JavaScript numeric conversion, ToNumber.
       
  4938 
       
  4939         * runtime/UString.cpp:
       
  4940         (JSC::UString::toDouble): Added a comment about incorrect space skipping.
       
  4941         Changed trailing junk check to use the length of the CString instead of
       
  4942         checking for a null character. Also got rid of a little unneeded logic
       
  4943         in the case where we tolerate trailing junk.
       
  4944 
       
  4945 2010-05-27  Nathan Lawrence  <nlawrence@apple.com>
       
  4946 
       
  4947         Reviewed by Geoffrey Garen.
       
  4948 
       
  4949         Search for the new allocation one word at a time.  Improves
       
  4950         performance on SunSpider by approximately 1%.
       
  4951         http://bugs.webkit.org/show_bug.cgi?id=39758
       
  4952 
       
  4953         * runtime/Collector.cpp:
       
  4954         (JSC::Heap::allocate):
       
  4955         * runtime/Collector.h:
       
  4956         (JSC::CollectorBitmap::advanceToNextPossibleFreeCell):
       
  4957 
       
  4958 2010-05-27  Kevin Ollivier  <kevino@theolliviers.com>
       
  4959 
       
  4960         [wx] Build fixes for Windows after recent changes.
       
  4961 
       
  4962         * wscript:
       
  4963 
       
  4964 2010-05-27  Gustavo Noronha Silva  <gns@gnome.org>
       
  4965 
       
  4966         More build fixage for make dist.
       
  4967 
       
  4968         * GNUmakefile.am:
       
  4969 
       
  4970 2010-05-27  Kwang Yul Seo  <skyul@company100.net>
       
  4971 
       
  4972         Reviewed by Darin Adler.
       
  4973 
       
  4974         RVCT does not have strnstr.
       
  4975         https://bugs.webkit.org/show_bug.cgi?id=39719
       
  4976 
       
  4977         Add COMPILER(RVCT) guard to strnstr in StringExtras.h as RVCT does not provide strnstr.
       
  4978 
       
  4979         * wtf/StringExtras.h:
       
  4980 
       
  4981 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
       
  4982 
       
  4983         Reviewed by Oliver Hunt.
       
  4984 
       
  4985         Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
       
  4986         (relanding r60267)
       
  4987 
       
  4988         If the last item in a main disjunction is a quantified set of parentheses,
       
  4989         this is easier to code generate for than the general case for quantified
       
  4990         parentheses. This is because we never need to backtrack into the parentheses
       
  4991         - the first match will be the final and accepted match.
       
  4992 
       
  4993         This patch also somewhat reverts a recent change to when fallback to PCRE
       
  4994         occurs. At the minute the compiler is tracking on patterns which will
       
  4995         require JIT fallback. This is handy from a performance perspective (it saves
       
  4996         the failed attempt at JIT compilation), but it means introducing knowledge
       
  4997         of the JITs capabilities into the other layers of the regex compilers. For
       
  4998         the specific feature of back-references, add a flag tracking their presence
       
  4999         on the pattern, and make these expressions fallback without attempting to
       
  5000         JIT. For parentheses, return to detecting which cases are have or have not
       
  5001         been handled during JIT compilation.
       
  5002 
       
  5003         18% progression on tagcloud, ~1.5% overall on sunspidey.
       
  5004 
       
  5005         * yarr/RegexCompiler.cpp:
       
  5006         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
       
  5007         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
       
  5008         * yarr/RegexJIT.cpp:
       
  5009         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
       
  5010         (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
       
  5011         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
       
  5012         (JSC::Yarr::RegexGenerator::generateTerm):
       
  5013         (JSC::Yarr::RegexGenerator::RegexGenerator):
       
  5014         (JSC::Yarr::RegexGenerator::shouldFallBack):
       
  5015         (JSC::Yarr::jitCompileRegex):
       
  5016         * yarr/RegexPattern.h:
       
  5017         (JSC::Yarr::RegexPattern::RegexPattern):
       
  5018         (JSC::Yarr::RegexPattern::reset):
       
  5019 
       
  5020 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
       
  5021 
       
  5022         Reviewed by NOBODY (revert).
       
  5023 
       
  5024         Temporarily rolling out r60267, I appear to have hoesed perf at the last minute. :-/ Fixing.
       
  5025 
       
  5026         * yarr/RegexCompiler.cpp:
       
  5027         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
       
  5028         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
       
  5029         * yarr/RegexJIT.cpp:
       
  5030         (JSC::Yarr::RegexGenerator::TermGenerationState::term):
       
  5031         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
       
  5032         (JSC::Yarr::RegexGenerator::generateTerm):
       
  5033         (JSC::Yarr::RegexGenerator::RegexGenerator):
       
  5034         (JSC::Yarr::jitCompileRegex):
       
  5035         * yarr/RegexPattern.h:
       
  5036         (JSC::Yarr::RegexPattern::RegexPattern):
       
  5037         (JSC::Yarr::RegexPattern::reset):
       
  5038 
       
  5039 2010-05-26  Gustavo Noronha Silva  <gns@gnome.org>
       
  5040 
       
  5041         Build fixes for make distcheck.
       
  5042 
       
  5043         * GNUmakefile.am:
       
  5044 
       
  5045 2010-05-26  Gavin Barraclough  <barraclough@apple.com>
       
  5046 
       
  5047         Reviewed by Oliver Hunt.
       
  5048 
       
  5049         Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
       
  5050 
       
  5051         If the last item in a main disjunction is a quantified set of parentheses,
       
  5052         this is easier to code generate for than the general case for quantified
       
  5053         parentheses. This is because we never need to backtrack into the parentheses
       
  5054         - the first match will be the final and accepted match.
       
  5055 
       
  5056         This patch also somewhat reverts a recent change to when fallback to PCRE
       
  5057         occurs. At the minute the compiler is tracking on patterns which will
       
  5058         require JIT fallback. This is handy from a performance perspective (it saves
       
  5059         the failed attempt at JIT compilation), but it means introducing knowledge
       
  5060         of the JITs capabilities into the other layers of the regex compilers. For
       
  5061         the specific feature of back-references, add a flag tracking their presence
       
  5062         on the pattern, and make these expressions fallback without attempting to
       
  5063         JIT. For parentheses, return to detecting which cases are have or have not
       
  5064         been handled during JIT compilation.
       
  5065 
       
  5066         18% progression on tagcloud, ~1.5% overall on sunspidey.
       
  5067 
       
  5068         * yarr/RegexCompiler.cpp:
       
  5069         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
       
  5070         (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
       
  5071         * yarr/RegexJIT.cpp:
       
  5072         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
       
  5073         (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
       
  5074         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
       
  5075         (JSC::Yarr::RegexGenerator::generateTerm):
       
  5076         (JSC::Yarr::RegexGenerator::RegexGenerator):
       
  5077         (JSC::Yarr::RegexGenerator::shouldFallBack):
       
  5078         (JSC::Yarr::jitCompileRegex):
       
  5079         * yarr/RegexPattern.h:
       
  5080         (JSC::Yarr::RegexPattern::RegexPattern):
       
  5081         (JSC::Yarr::RegexPattern::reset):
       
  5082 
       
  5083 2010-05-26  Geoffrey Garen  <ggaren@apple.com>
       
  5084 
       
  5085         Reviewed by Sam Weinig.
       
  5086 
       
  5087         Fixed a crash seen on the Leopard bot, caused by merge.
       
  5088 
       
  5089         * jit/JITStubs.cpp:
       
  5090         (JSC::DEFINE_STUB_FUNCTION): Get the return address from the callframe,
       
  5091         since it's no longer passed to us as an argument.
       
  5092 
       
  5093 2010-05-25  Geoffrey Garen  <ggaren@apple.com>
       
  5094 
       
  5095         Fixed build failure caused by merge.
       
  5096 
       
  5097         * jit/JITStubs.cpp:
       
  5098         (JSC::DEFINE_STUB_FUNCTION): On error, return a single value, since this
       
  5099         function no longer returns a pair.
       
  5100 
       
  5101 2010-05-25  Geoffrey Garen  <ggaren@apple.com>
       
  5102 
       
  5103         Reviewed by Oliver Hunt.
       
  5104 
       
  5105         <rdar://problem/8020221>
       
  5106         
       
  5107         Fixed a crash seen on Windows when calling a function with too many
       
  5108         arguments.
       
  5109         
       
  5110         SunSpider reports no change.
       
  5111         
       
  5112         No test because the ASSERT I added fires in existing tests.
       
  5113 
       
  5114         * jit/JITStubs.cpp:
       
  5115         (JSC::DEFINE_STUB_FUNCTION): Make sure to grow the registerFile when too
       
  5116         many arguments have been provided, since the caller only allocated enough
       
  5117         registerFile space for the arguments it provided, not enough for the extra
       
  5118         copy of arguments we're going to need.
       
  5119 
       
  5120 2010-05-25  Kwang Yul Seo  <skyul@company100.net>
       
  5121 
       
  5122         Reviewed by Darin Adler.
       
  5123 
       
  5124         Build fix for JSFunction
       
  5125         https://bugs.webkit.org/show_bug.cgi?id=39658
       
  5126 
       
  5127         MSVC can't compile one of JSFunction constructors when JIT is disabled.
       
  5128         "PassRefPtr<NativeExecutable>" causes the compile error as NativeExecutable is not defined. 
       
  5129         Add ENABLE(JIT) guard to the constructor.
       
  5130 
       
  5131         * runtime/JSFunction.cpp:
       
  5132         (JSC::JSFunction::JSFunction):
       
  5133         * runtime/JSFunction.h:
       
  5134 
       
  5135 2010-05-24  Gavin Barraclough  <barraclough@apple.com>
       
  5136 
       
  5137         Reviewed by Sam Weinig.
       
  5138 
       
  5139         Bug 39643 - Clean up code generation in the JIT of stub function calls for op_call.
       
  5140 
       
  5141         Presently, as soon as op-call strays off the hot path we set up a set of values on
       
  5142         the stack to be passed as arguments to cti functions, in case any should be called.
       
  5143 
       
  5144         Instead, hoist the setup of the callframe to happen slightly sooner, and make the
       
  5145         cti functions to compile & check arity read these values from the callframe. This
       
  5146         allows up to remove the deprecated methods to manually set up cti arguments, rather
       
  5147         than using JITStubCall.h.
       
  5148 
       
  5149         * interpreter/CallFrame.h:
       
  5150         * jit/JIT.h:
       
  5151         * jit/JITCall.cpp:
       
  5152         (JSC::JIT::compileOpCallInitializeCallFrame):
       
  5153         (JSC::JIT::compileOpCallVarargs):
       
  5154         (JSC::JIT::compileOpCallVarargsSlowCase):
       
  5155         (JSC::JIT::compileOpCall):
       
  5156         (JSC::JIT::compileOpCallSlowCase):
       
  5157         * jit/JITCall32_64.cpp:
       
  5158         (JSC::JIT::compileOpCallInitializeCallFrame):
       
  5159         (JSC::JIT::compileOpCallVarargs):
       
  5160         (JSC::JIT::compileOpCallVarargsSlowCase):
       
  5161         (JSC::JIT::compileOpCall):
       
  5162         (JSC::JIT::compileOpCallSlowCase):
       
  5163         * jit/JITInlineMethods.h:
       
  5164         * jit/JITOpcodes.cpp:
       
  5165         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  5166         * jit/JITOpcodes32_64.cpp:
       
  5167         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  5168         * jit/JITStubs.cpp:
       
  5169         (JSC::DEFINE_STUB_FUNCTION):
       
  5170         * jit/JITStubs.h:
       
  5171         (JSC::):
       
  5172 
       
  5173 2010-05-24  Gavin Barraclough  <barraclough@apple.com>
       
  5174 
       
  5175         Reviewed by Sam Weinig.
       
  5176         Relanding r60075.
       
  5177 
       
  5178         * bytecode/CodeBlock.cpp:
       
  5179         (JSC::CodeBlock::dump):
       
  5180         (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
       
  5181         * bytecode/CodeBlock.h:
       
  5182         * bytecode/Opcode.h:
       
  5183         * bytecompiler/BytecodeGenerator.cpp:
       
  5184         (JSC::BytecodeGenerator::BytecodeGenerator):
       
  5185         (JSC::BytecodeGenerator::emitConstruct):
       
  5186         * bytecompiler/BytecodeGenerator.h:
       
  5187         (JSC::BytecodeGenerator::emitGetByIdExceptionInfo):
       
  5188         * interpreter/Interpreter.cpp:
       
  5189         (JSC::Interpreter::privateExecute):
       
  5190         * jit/JIT.cpp:
       
  5191         (JSC::JIT::privateCompileMainPass):
       
  5192         * jit/JIT.h:
       
  5193         * jit/JITCall.cpp:
       
  5194         (JSC::JIT::compileOpCall):
       
  5195         (JSC::JIT::compileOpCallSlowCase):
       
  5196         * jit/JITCall32_64.cpp:
       
  5197         (JSC::JIT::compileOpCall):
       
  5198         (JSC::JIT::compileOpCallSlowCase):
       
  5199         * jit/JITOpcodes.cpp:
       
  5200         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  5201         (JSC::JIT::privateCompileCTINativeCall):
       
  5202         (JSC::JIT::emit_op_neq_null):
       
  5203         (JSC::JIT::emit_op_convert_this):
       
  5204         (JSC::JIT::emit_op_get_callee):
       
  5205         (JSC::JIT::emit_op_create_this):
       
  5206         * jit/JITOpcodes32_64.cpp:
       
  5207         (JSC::JIT::privateCompileCTIMachineTrampolines):
       
  5208         (JSC::JIT::privateCompileCTINativeCall):
       
  5209         (JSC::JIT::emit_op_get_callee):
       
  5210         (JSC::JIT::emit_op_create_this):
       
  5211         * jit/JITStubs.cpp:
       
  5212         (JSC::DEFINE_STUB_FUNCTION):
       
  5213         (JSC::JITThunks::hostFunctionStub):
       
  5214         * jit/JITStubs.h:
       
  5215         (JSC::JITThunks::ctiNativeConstruct):
       
  5216         (JSC::):
       
  5217         * runtime/ExceptionHelpers.cpp:
       
  5218         (JSC::createNotAnObjectError):
       
  5219         * runtime/Executable.h:
       
  5220         (JSC::NativeExecutable::create):
       
  5221         (JSC::NativeExecutable::NativeExecutable):
       
  5222         * runtime/JSFunction.cpp:
       
  5223         (JSC::callHostFunctionAsConstructor):
       
  5224         * runtime/JSFunction.h:
       
  5225         * wtf/Platform.h:
       
  5226 
       
  5227 == Rolled over to ChangeLog-2010-05-24 ==