summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore
Commit message (Collapse)AuthorAgeFilesLines
* Import WebKit commit 5ccca3a720f7c2251c4ac8b28f25bd73524081f0Konstantin Tokarev2019-06-045-24/+26
| | | | | | | | | | | | | Change-Id: Idfb37cd43929536d4c67d1fa5d8cb598e9c0ad7e Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Import WebKit commit 708de1520656bdf12023c04199ecab1b427d5e0cKonstantin Tokarev2017-11-042-0/+2
| | | | | Change-Id: Id24f973470620b1c7a36576606b81f5df0fd75d0 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Import WebKit commit 85c24b4e854b971f0705bb3411cfd4c0b821f491Konstantin Tokarev2017-10-132-0/+100
| | | | | Change-Id: I3f9320f43d5d1fc5169a6c1b9dcea454974d6578 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Import WebKit commit 3c9fc2fb47474909f5c30b518d372c854a3ec433Konstantin Tokarev2017-06-3026-3454/+5197
| | | | | Change-Id: Iccd335ea312d91e826885857fee6d0da3e913b8c Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Import WebKit commit 6d0ad27b6bc4209fb8d8cee2692dc0c6a5462051v5.212.0-alpha2Konstantin Tokarev2017-06-174-7/+7
| | | | | Change-Id: Ifdedb7bc3162434686201813dc1d994cf5ae7e70 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* std::function is in <functional>Thiago Macieira2017-06-061-0/+1
| | | | | | | You have to include it... Change-Id: Ia3e896da908f42939148fffd14c573086094939e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Import WebKit commit 3ca7a25a550e473d60bbbe321475c6c0ef114b31Konstantin Tokarev2017-06-0219-66/+142
| | | | | Change-Id: I480668a0cb8114dccf7a1195190a993282875759 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Import WebKit commit b25ce6eca994718717218f56d045e75a4a22f989wip/nextKonstantin Tokarev2017-05-082-4/+5
| | | | | Change-Id: Ied338d9a16b44b5da35d484e80a21acc284eb625 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Import WebKit commit 584c4a7a6a8bffb60f03b9eb10a65dbcf41dc0b7Konstantin Tokarev2017-04-222-2/+2
| | | | | Change-Id: Ife943bbbd8226afa05ef6320b10ba351d55fd797 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Import WebKit commit 342c7c7c069db3ca1d09ae6c5f7d600f9b241778Konstantin Tokarev2017-04-077-5/+44
| | | | | Change-Id: I8886595114569f61168aed76b23ad7288c5cb34c Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Import WebKit commit 13ac532967b6ac2d18d6fc4ea72c4ca35eccff20Konstantin Tokarev2017-03-311-5/+7
| | | | | Change-Id: I12a5c8f98aeaac1b542ce20c0ff297c57b5d84d1 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Imported WebKit commit 30997fb33975697a4af9cc6eef69967313d0ec9aKonstantin Tokarev2017-02-021-14/+0
| | | | | Change-Id: I8a2348dd9eb59df840dde6b66141d562aff29bf4 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Imported WebKit commit 12fbea815480c3b3fad139cd8dfb82e8c954bc9aKonstantin Tokarev2017-02-026-6/+10
| | | | | Change-Id: Iccbb1e8bd8b7f72322614224c203fc509a8dbb79 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Imported WebKit commit 490f716dd2dd07fb0d6652795c62586e2e28ae27Konstantin Tokarev2017-02-025-20/+29
| | | | | Change-Id: I9f66467721cf923468af87915c260c1bb44e013e Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Imported WebKit commit 2730223e8fe1776419fae168986b9e77f55d02d3Konstantin Tokarev2017-02-023-0/+13
| | | | | Change-Id: I46d453477a779a8db544ffc50d088fa13331da9b Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Imported WebKit commit eb954cdcf58f9b915b2fcb6f8e4cb3a60650a4f3Konstantin Tokarev2017-02-028-12/+61
| | | | | Change-Id: I8dda875c38075d43b76fe3a21acb0ffa102bb82d Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)Konstantin Tokarev2017-02-023555-561527/+359313
| | | | | Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
* Update the detection of MSVC versions to be forward-compatibleThiago Macieira2016-07-081-1/+1
| | | | | | | | | | | | | | Qt 5.8 may deprecate the win32-msvc20xx mkspecs, so use the MSVC_VER variable to detect which version of MSVC it is. This commit removes the detection for win32-icc, as it really depended on what version of MSVC headers it was targeting. With Qt prior to 5.8, it was not possible to detect it anyway, so the rule was broken anyway (ICC prior to 16 only worked with MSVC <= 2013, but ICC 17 will work with 2015). Change-Id: Ib57b52598e2f452985e9fffd1459e682978341f5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix build for QNXAllan Sandfeld Jensen2015-10-151-2/+4
| | | | | | | | The QNX target appears to be unable to accept ALWAYS_INLINE used as the sorting function in std::sort, so let it be normal inline there. Change-Id: I2d6df47764ed3dd87c8731c0d3c37eb79af40b3f Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* offlineasm: "touch" output file if nothing has changed.Konstantin Tokarev2015-09-291-0/+2
| | | | | | | | If offlineasm exits with "Nothing changed" timestamp of generated file is unchanged so make utility still considers it as outdated. Change-Id: Id3443294bc034978679219177f32acb0afa0dc00 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Make sure #include'ing a Qt header doesn't make you link to itThiago Macieira2015-08-061-0/+1
| | | | | Change-Id: Ib056b47dde3341ef9a52ffff13f042e941c0c612 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Fix build against installed QtBaseSimon Hausmann2015-07-241-0/+6
| | | | | | | | We need two little hacks to make it possible to build against a frameworks build of QtBase that is installed. Change-Id: I82e530a3c52ad90ad37044a367a8f8eb6ddfd887 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Allan Sandfeld Jensen2015-05-291-1/+1
|\ | | | | | | Change-Id: Iceb5c402acfd83632007cb5f7673b4d6cda08e6b
| * Support MSVC 2015Allan Sandfeld Jensen2015-05-291-1/+1
| | | | | | | | | | | | | | | | | | Fixes building qtwebkit with MSVC 2015 Change-Id: I94b085ab822b3cdfa911814467e051c11c93d79e Task-number: QTBUG-46344 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5v5.5.0-beta1Liang Qi2015-04-152-7/+12
|\ \ | |/ | | | | Change-Id: I0d9dd63455dc12402afd56cc1bd97d0cc97c24e8
| * DFG optimizes out strict mode arguments tear offFilip Pizlo2015-04-101-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=119504 Source/JavaScriptCore: Reviewed by Mark Hahnenberg and Oliver Hunt. Don't do the optimization for strict mode. * dfg/DFGArgumentsSimplificationPhase.cpp: (JSC::DFG::ArgumentsSimplificationPhase::run): (JSC::DFG::ArgumentsSimplificationPhase::pruneObviousArgumentCreations): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154217 268f45cc-cd09-0410-ab3c-d52691b4dbfc Change-Id: I68037df21deaa964ff18c4f168f465c2600627f7 Reviewed-by: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
| * Fix crash in JIT::DFG::prepareOSREntryJulien Brianceau2015-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | While verifying predictions in prepareOSREntry, locals could lay outside the stack in some cases. So we shouldn't retrieve jsValue from locals when we don't have to. Task-number: QTBUG-45299 Change-Id: I70003170348887128e11360fb501b69647194172 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-03-171-4/+2
|\ \ | |/ | | | | Change-Id: I5add7bbeab559b3f14207c37c6e010f953f6a286
| * Incorrect type speculation reported by ToPrimitiveOliver Hunt2015-03-111-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=119458 Reviewed by Mark Hahnenberg. Make sure that we report the correct type possibilities for the output from ToPrimitive * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::::executeEffects): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153674 268f45cc-cd09-0410-ab3c-d52691b4dbfc Change-Id: I85d91598088ead350c89c4a9cc28a2bd866a2d22 Task-number: QTBUG-44912 Reviewed-by: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5v5.5.0-alpha1Allan Sandfeld Jensen2015-03-102-1/+9
|\ \ | |/ | | | | Change-Id: I824a984e8552340c2f9f631ac951f2c9eaa90b74
| * Fix g++ 5.0 buildAllan Sandfeld Jensen2015-03-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | A non-inline template needs to be explicitly instantiated if used outside the object where it is declared. Patch suggested by Khem Raj. Task-number: QTBUG-44829 Change-Id: Ib0adbd9273bd1cef01e5863bc8aaa9c373022792 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
| * Initialize label vector lazilyAllan Sandfeld Jensen2015-02-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When parsing JSON temporary JIT objects are created when resolving each id. Each of these get a list of labels initialized to the size of the codeblock being operated on, which can be very long in some cases. This patch delays the initialization of the label vector, until it is actually used which is easy to figure out since the vector is not exported outside the class. Task-number: QTBUG-44475 Change-Id: I4fdbb7de7e7d953fffed39e38feed066edb6742b Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* | Fix two gcc 5.0 warningsAllan Sandfeld Jensen2015-03-061-3/+3
| | | | | | | | | | | | | | Improved warnings in gcc 5.0 has exposed some unclear expressions. Change-Id: I2c269528f6246319dab1a83d929d55c8d8e5a17d Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* | Update copyright headersJani Heikkinen2015-02-164-4/+4
| | | | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: Icc6f774c9ca37ea88ac024163386b16fc50fb2a7 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Fix lots of crashes because of 4th argument register trampling.Julien Brianceau2015-02-095-30/+11
|/ | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=123421 Reviewed by Michael Saboff. r3 register is the 4th argument register for ARM and also a scratch register in the baseline JIT for this architecture. We can use r6 instead, as this used to be the timeoutCheckRegister and it is no longer used since r148119. * assembler/ARMAssembler.h: Temp register is now r6 instead of r3 for ARM. * assembler/MacroAssemblerARMv7.h: Temp register is now r6 instead of r3 for ARMv7. * dfg/DFGGPRInfo.h: Add r3 properly in GPRInfo for ARM. * jit/JITStubs.cpp: Remove obsolete timeoutCheckRegister init. * yarr/YarrJIT.cpp: Use r3 and not the new scratch register r6 and r8 register doesn't need to be saved. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158208 268f45cc-cd09-0410-ab3c-d52691b4dbfc Change-Id: I5198a158e5e69d4e3a05b353abb60f28c0ab095e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Fix build failure with python3Samuel Martin2014-11-261-1/+1
| | | | | | Task-number: QTBUG-33692 Change-Id: I9f0bd6411e42b7ca06710dd47e3bcae4d2605c81 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Use fixed executable allocator on x64Allan Sandfeld Jensen2014-11-071-9/+1
| | | | | | | | | | | Since the x86-64 assembler generator depends on jumps being expressable as 32bit offsets we need to use the fixed size executable allocator and not the on demand allocator. This patch removes its exclusion from being used on Windows. Task-number: QTBUG-42417 Change-Id: Ie6b127e9b4291869566fd99cc7efe05b566c8e66 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Merge remote-tracking branch 'origin/5.3' into 5.4Oswald Buddenhagen2014-10-311-0/+1
|\ | | | | | | Change-Id: I11f35f205d2ded597d54650a948bec3e1e52b419
| * Fix assert after makerope boundary check5.3Lucas Forschler2014-10-311-0/+1
| | | | | | | | | | | | | | | | | | | | The browser demo asserts on qt-project.org after the makerope security fix. Port of http://trac.webkit.org/changeset/169397 Change-Id: I19c98737735d9b17133742752928d4ce6349de13 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* | Do not use unaligned access when disabledAllan Sandfeld Jensen2014-10-302-2/+2
| | | | | | | | | | | | | | | | | | | | Use the GCC feature defines to check for support for ARMv6 style unaligned access support. This fixes configurations where it was disabled and the ARMv6-M processors where it is not supported. Change-Id: I00c9bb19ba582b64ecb9eaa6da9887ba0df8fd3c Reviewed-by: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Use INLINE_ARM_FUNCTION in OFFLINE_ASM_GLOBAL_LABELAllan Sandfeld Jensen2014-10-241-9/+1
| | | | | | | | | | | | | | | | | | | | We can get rid of an ifdef in LowLevelInterpreter by reusing logic from InlineAsm.h. This also fixes ARM_TRADITIONAL when forced on when thumb2 is available to the compiler. Change-Id: Iac5ad22a4a41757fa03c3cbc2e8f68e44d085bae Reviewed-by: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* | Do not use floating point instructions in float-abi=softAllan Sandfeld Jensen2014-10-231-0/+4
| | | | | | | | | | | | | | | | | | Pretend VFP doesn't exist when the ABI forbids floating point instructions. Task-number: QTBUG-38371 Change-Id: Id0552201e6bf98812198c0028e2c85107e967a81 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* | Pop pack pragma on x86 QNXAllan Sandfeld Jensen2014-10-211-3/+3
| | | | | | | | | | | | | | A recent patch fixing QNX on x86 forgot to also pop the pragma it set. Change-Id: I9834c0b57a4409e8e80c29899e6f3989607fe22f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Fix LLInt vector offsets on Windows 64Allan Sandfeld Jensen2014-10-153-1/+13
| | | | | | | | | | | | | | | | Derived classes on Windows x64 are 64bit aligned placing the m_size property of Vector slightly differently than on other platforms. Change-Id: I186de5ea200abfbdd3bdf7502f3f427cb6890f3c Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-10-1410-23/+100
|\ \ | |/ | | | | Change-Id: I509f0440296df39aece8133382aacc43a4e05f99
| * Add missing branchAdd32 implementations to fix sh4 and mips buildsJulien Brianceau2014-09-302-0/+29
| | | | | | | | | | | | | | sh4 implementation has been taken from WebKit r173222. Change-Id: I1c188e88e9fd8772f97cac94d7ee31945b538b71 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * [ARM] Unreviewed build fix after r167336.Csaba Osztrogonác2014-09-261-0/+5
| | | | | | | | | | | | | | | | | | * assembler/MacroAssemblerARM.h: (JSC::MacroAssemblerARM::branchAdd32): Change-Id: I919df8301e69cca630f475afcc0c4311d713f10e git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167565 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
| * Unreviewed, ARMv7 build fix after r167336.Filip Pizlo2014-09-261-0/+6
| | | | | | | | | | | | | | | | | | * assembler/MacroAssemblerARMv7.h: (JSC::MacroAssemblerARMv7::branchAdd32): Change-Id: Ia16f8dce00ce660cf5f7b9eb1c3496e08cbdb603 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167354 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
| * compileMakeRope does not emit necessary bounds checksFilip Pizlo2014-09-266-23/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=130684 <rdar://problem/16398388> Reviewed by Oliver Hunt. Add string length bounds checks in a bunch of places. We should never allow a string to have a length greater than 2^31-1 because it's not clear that the language has semantics for it and because there is code that assumes that this cannot happen. Also add a bunch of tests to that effect to cover the various ways in which this was previously allowed to happen. * dfg/DFGOperations.cpp: * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileMakeRope): * ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMakeRope): * runtime/JSString.cpp: (JSC::JSRopeString::RopeBuilder::expand): * runtime/JSString.h: (JSC::JSString::create): (JSC::JSRopeString::RopeBuilder::append): (JSC::JSRopeString::RopeBuilder::release): (JSC::JSRopeString::append): * runtime/Operations.h: (JSC::jsString): (JSC::jsStringFromRegisterArray): (JSC::jsStringFromArguments): * runtime/StringPrototype.cpp: (JSC::stringProtoFuncIndexOf): (JSC::stringProtoFuncSlice): (JSC::stringProtoFuncSubstring): (JSC::stringProtoFuncToLowerCase): * tests/stress/make-large-string-jit-strcat.js: Added. (foo): * tests/stress/make-large-string-jit.js: Added. (foo): * tests/stress/make-large-string-strcat.js: Added. * tests/stress/make-large-string.js: Added. Change-Id: If01dd2a2d2daa3d209eddf0213d2b391e94f54a0 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@167336 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Fix CLoop on big-endian machinesAllan Sandfeld Jensen2014-10-132-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Callee and ScopeChain are JSObject pointers and saved in the 64bit structure for JS registers. On a 32bit big-endian machine the actual pointer is offset by the PayloadOffset of 4 bytes, but on little-endian and 64bit architectures there is no offset. This patch fixes four places the payloadOffset was not correctly added on 32bit big-endian, and six places it was added on 64big big-endian when it shouldn't. Task-number: QTBUG-41896 Change-Id: I46b474bee9822b8040d1b7b2e8f31ce42e0adefe Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>