summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mark module as deaddevOswald Buddenhagen2013-08-161964-1044888/+1
| | | | | Change-Id: I97cc8c13f62b1dce18509de0b6947115b305233a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Merge branch 'stable' into devSergio Ahumada2013-08-051-0/+1
|\ | | | | | | | | | | | | | | Conflicts: .qmake.conf src/3rdparty/v8/src/objects.cc Change-Id: I6e3508bd6a8376ac15f354d9002985b79349f684
| * Fix for assert in V8 after a string is converted to a symbolDavid McFarland2013-07-311-0/+1
| | | | | | | | | | | | | | | | | | | | When a string is converted to a symbol by SymbolKey::AsObject, its symbol_id is undefined. Change-Id: I63c41d52e309f67a4c8fc2629bdc9fb6a18fd2b5 bug: https://bugreports.qt-project.org/browse/QTBUG-31513 Reviewed-by: Milian Wolff <milian.wolff@kdab.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
| * Bump MODULE_VERSION to 5.1.2Sergio Ahumada2013-07-231-1/+1
| | | | | | | | | | Change-Id: I18d016b62784ec07055e1bede3a9f241306e945a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | use QT_TARGET_ARCH to identify target architectureOswald Buddenhagen2013-07-311-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | 83f473b changed the semantics of QT_ARCH to be the arch of the currently built target, not that of the qt libraries. we need the latter here. on the way, also remove the pointless fallbacks to the host arch. Change-Id: Ia8c742a5aef36b70a182e6dbad97e41ce7ecbf6e Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com> Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Disable qtjsbackend on iOS for top-level buildsSimon Hausmann2013-07-301-0/+5
| | | | | | | | | | | | | | It's not ported (and probably never will :) Change-Id: Ia3743ddf612d67387bbade743739854a99e1c27f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | [V8] Fix stack alignment corruption for MinGW32 buildjkummerow@chromium.org2013-07-124-1/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contributed by Peter Varga <pvarga@inf.u-szeged.hu> BUG= TEST=cctest/test-assembler-ia32/StackAlignmentForSSE2,cctest/test-assembler-x64/StackAlignmentForSSE2,cctest/test-platform/StackAlignment R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/18300003 Patch from Peter Varga <pvarga@inf.u-szeged.hu>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 Change-Id: I17d6a6c53659da4cb3e5238395bd2ae6506d1201 Signed-off-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-07-040-0/+0
|\| | | | | | | Change-Id: Ide06056b50c165177b9fa023c7f0cb884538b2ad
| * Merge remote-tracking branch 'origin/release' into stablev5.1.1Frederik Gladhorn2013-06-280-0/+0
| |\ | | | | | | | | | Change-Id: I0f02afa89f6f97bd8685ad525315df8736731a5e
| | * [V8] Fix stack alignment corruption for MinGW32 buildv5.1.0-rc2v5.1.0Peter Varga2013-06-261-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUG: https://bugreports.qt-project.org/browse/QTBUG-31396 Change-Id: If9b236f24ed82f4b6b19a2af938b422c68e5eab8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> (cherry picked from commit 91f936a862644c7ca7a1762ad05cc91d263b808e) Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Liang Qi <liang.qi@digia.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-271-2/+5
|\| | | | | | | | | | | Change-Id: I9446af78ac2f17b4af142b447f1a34693d93f2e2
| * | [V8] Fix stack alignment corruption for MinGW32 buildPeter Varga2013-06-251-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | BUG: https://bugreports.qt-project.org/browse/QTBUG-31396 Change-Id: Ibf815ab7c1f679b01b347f7141d269a220657968 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-047-3/+46
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf sync.profile Change-Id: Ia6c8eb9bae7db9a8cda2695670d519efe0fcdbb7
| * | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-05-315-1/+43
| |\| | | | | | | | | | Change-Id: Ic0daef1ae2cd8d9dc9e4e1597d730a42ad00c7b1
| | * Fix and test for assert/crash in v8 inlining of local functions in qml modev5.1.0-rc1David McFarland2013-05-315-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When v8 tries to inline a local function which has been flagged is_qml_global, the assert "CHECK(location_ != __null)" fails. This happens because of the early out in RecordTypeFeedback for is_qml_global. I've limited the early out to UNALLOCATED variables with is_qml_global. bug: https://bugreports.qt-project.org/browse/QTBUG-31366 Change-Id: I360ef1a05a970589159686cf3100cb70de9ae29d Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * | Bump MODULE_VERSION to 5.1.1Sergio Ahumada2013-05-291-1/+1
| |/ | | | | | | | | Change-Id: I6205b457518ec78566c927eb6429e0b8513c72ba Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * sync.profile: Point dependencies to an empty stringSergio Ahumada2013-05-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | This means that we are going to use the same branch name for the dependencies as the branch of the repository under test. If we are testing the 'stable' branch, all dependencies will point to the 'stable' branch as well. Change-Id: Ib8e54ac9066b866133641fed10edba3209a38778 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
| * use readelf from cross-build toolchain in hardfloat testv5.1.0-beta1Oswald Buddenhagen2013-05-071-1/+1
| | | | | | | | | | | | | | | | | | it's a bit hacky that readelf is hardcoded in the first place (instead of coming from the spec), but whatever. Task-number: QTBUG-30677 Change-Id: Id3742c4a47476c8807eff3f566e45fa6d4b97326 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | [V8] MIPS: Polymorphism support for load IC.palfia@homejinni.com2013-05-133-48/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Port r13801 (6de52924) BUG= Review URL: https://codereview.chromium.org/12560004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 Change-Id: I14d70552755d08c539d5fbb3cb36ea64f4a5691a Signed-off-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | [V8] MIPS: Fixed ASSERT in commit r13807.palfia@homejinni.com2013-05-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | BUG= Review URL: https://codereview.chromium.org/12506006 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 Change-Id: I1f148a46978fe6469486223e4db9f554af796a98 Signed-off-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | [V8] MIPS: ES6 symbols: Implement Symbol intrinsic and basic functionalitypalfia@homejinni.com2013-05-135-5/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port r13786 (b5e7a82a) Original commit message: - Add --harmony-symbols flag. - Add Symbol constructor; allow symbols as (unreplaced) return value from constructors. - Introduce %CreateSymbol and %_IsSymbol natives and respective instructions. - Extend 'typeof' code generation to handle symbols. - Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols. - Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method. - Extend Object.prototype.toString to recognise symbols. Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object). (Baseline CL: https://codereview.chromium.org/12223071/) BUG= Review URL: https://codereview.chromium.org/12447009 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 Change-Id: I5fc2d443b2609ed8832b9bbd0225daf6d882a608 Signed-off-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | [V8] MIPS: Allocation Info Tracking, continued.mvstanton@chromium.org2013-05-137-19/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port r13790 (0a70a3af) Original commit message: Addresses missing cases for array literals. Adds support for "new Array()" call sites. This isn't complete yet, I have to run with --noinline_new. BUG= Review URL: https://codereview.chromium.org/12507006 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 Change-Id: I61e3a4b0095176fc8ba0cd007f13db5c4898d8cf Signed-off-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | [V8] MIPS: Renamed "symbols" to "internalized strings" throughout the code ↵palfia@homejinni.com2013-05-138-102/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | base, in preparation of the introduction of ES6 'symbols' (aka private/unique names). Port r13781 (59f39a06) Original commit message: The SymbolTable became the StringTable. I also made sure to adapt all comments. The only remaining use of the term "symbol" (other than unrelated uses in the parser and such) is now 'NewSymbol' in the API and the 'V8.KeyedLoadGenericSymbol' counter, changing which might break embedders. The one functional change in this CL is that I removed the former 'empty_string' constant, since it is redundant given the 'empty_symbol' constant that we also had (and both were used inconsistently). BUG= Review URL: https://codereview.chromium.org/12374074 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 Change-Id: I2e5c705c88e43da9eb229d95429bea7a2bf49a7a Signed-off-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | [V8] Use count-based profiling exclusivelySergio Martins2013-04-191-45/+7
| | | | | | | | | | | | | | | | | | | | | | | | This applies upstream a245df8680b3eac3b5e53a1405b8bd8ac1f18cda to platform-qnx. Fixes build. Change-Id: I7f0740d9bd0ddddd47fa4cc9c0d960f9c69b4a20 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | [V8] Fix QNX build due to new CPU profiling methodsSergio Martins2013-04-191-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstream commit 99a5e7642cc46d72a61693d2d6ffae2108642789 added new methods. This commit adds them to platform-qnx. Most platforms don't implement them yet. Neither does QNX. Change-Id: Ifc9f9f950c9c4b068241eeeeea6b25ce715ed328 Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | [V8] [QNX] Handle VFP32DREGS in OS::ArmCpuHasFeature()Sergio Martins2013-04-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This implements upstream 36a5e89248a867686af58b92db96c421c5e6d317 on platform-qnx. Fixes an assert crash. Change-Id: I57efb1989c028519c4fa74e0a829629c4141ee1c Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | [V8] V8_Fatal now prints C++ stack trace in debug mode.Sergio Martins2013-04-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | This applies upstream 86cb01c6ab196e786013526bccd1bb163e485c33 to platform-qnx. The upstream commit only implemented it for Linux, but we need the stub to fix the build. Change-Id: I2a6916058b651c8df74bd7279e8b1d64c083f065 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | [V8] Determine number of available cores on all platforms.Sergio Martins2013-04-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | This applies upstream dfed8f33be2868f6c197230ef187e3d2851976eb to platform-qnx. Needed for qmlscene to build. Change-Id: Idfd5e68d1e9d62d158420a4e671017cd9b52f4d1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | [V8] Removed RuntimeProfilerRateLimiter class and ↵Sergio Martins2013-04-171-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | RuntimeProfiler::IsSomeIsolateInJS. This applies upstream 9b211c293c45504bdeeced9fa75ef1b4047ce289 to platform-qnx. Needed to fix the build. Change-Id: Ib15b212135fc1cc72be0f4195f352def646bbb24 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | [V8] Fix MinGW build after V8 updatePeter Varga2013-04-121-1/+1
| | | | | | | | | | Change-Id: I54ea27903e52a629953b7b3a007d78588ffab415 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Include windows headers firstAndreas Holzammer2013-04-122-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | Include the windows headers first so that the ASSERTION macro can be overwritten of the version of V8. Change-Id: Iacfd98649b69b1bf706b30349600ae3a4957af7b Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Disable inline cache optimizationAndreas Holzammer2013-04-122-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | Disable inline cache optimization because calling convention looks different. Change-Id: I0cf948cebba7b3aa931114a59bbeb89e2162b83c Reviewed-by: Johannes Oikarinen <johannes.oikarinen@digia.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Port to Windows Embedded Compact 7Andreas Holzammer2013-04-1211-24/+154
| | | | | | | | | | | | | | Reviewed-by: Lars Knoll <lars.knoll@digia.com> Change-Id: I75a29824920af7a6aa35d38a1a5a5826145a21d1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Implement some compiler intrinsic functionsAndreas Holzammer2013-04-121-4/+20
| | | | | | | | | | | | | | | | | | Implement CountTrailingZeros and CountLeadingZeros Change-Id: I3383861df2b1f4e2d410216ca0a22583a84bcb32 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Undef various macros to not disturb V8Andreas Holzammer2013-04-123-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Some platforms are defining symbols to something useful to them, but this breaks the V8 build. Change-Id: Iea4f3894596c27c4e8244201a135297ac4ef07ed Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Johannes Oikarinen <johannes.oikarinen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Rename PrintF to FPrintF for file callsAndreas Holzammer2013-04-129-351/+351
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the fact that Windows CE defines File to something very similar to const char *, the compiler cannot differentiate anymore between File* and const char*, so the function needs to be renamed. In the std these function also is called fprintf, so it seems to be a well known problem. Change-Id: Ifff4902321cbf1edfa08fafafeac3bf6fb6b9b2a Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | [V8] Compile v8.cc under C++11 mode using MinGW-w64 4.7.1Yuchen Deng2013-04-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | error: 'random' was not declared in this scope WIN32 is not defined on C++11 mode, but _WIN32 is defined. Simply change WIN32 to _WIN32 is enough Change-Id: I6a8ba5a3109b878161a21509d0e8b40f85451f23 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Yuchen Deng <loaden@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Disable randomize hashes in V8Peter Varga2013-04-121-1/+1
| | | | | | | | | | | | | | | | Should be disabled for now due to regressions in QtDeclarative auto tests. Change-Id: I3b858c420dfd43e0c138b03f7a487a8b70c519e0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Fix compilation with Intel CC.Thiago Macieira2013-04-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | Issue reported upstream at: http://code.google.com/p/v8/issues/detail?id=1885 http://code.google.com/p/v8/issues/detail?id=689 Change-Id: I1ef47ded9bcc13174bfb82ff04dec230b7ba68e7 Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | [V8] Add support for QNX platformSean Harmer2013-04-124-4/+1239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This submission is based on code originally contributed by Jeff Rogers <jrogers@rim.com> with permission from Research in Motion. We have tried to make this change as unobtrusive as possible. For example in the atomic_ops.h header we have added a conditional include for a qnx-specific atomicops_internals_arm_qnx.h as the existing atomicops_internals_arm_gcc.h is actually Linux-specific despite the name of the file. In the longer term it would make sense to use an asm implementation that is only dependent upon the CPU rather than OS-specific system calls. See qtbase/src/corelib/arch/qatomic_armv*.h for a good reference. Here we decided not to risk breaking existing platforms for the initial introduction of this new platform. The QNX platform integration is built on top of the posix base. Change-Id: Ic2db86c2810f5c99323524ccfe2138931769376f Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Add flag to avoid breakpoint relocationKai Koehne2013-04-125-0/+72
| | | | | | | | | | | | | | | | | | Add a flag that prevents v8 from relocating breakpoints across line boundaries. Change-Id: I7caafdf91ff161c3566078685daef56526bc5926 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Fix warningsAaron Kennedy2013-04-121-11/+14
| | | | | | | | | | | | | | Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Change-Id: I64e793e550cd5d0740e156a437fc3badccfb67ba Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Remove execute flag from v8-debug.hAaron Kennedy2013-04-121-0/+0
| | | | | | | | | | | | | | Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Change-Id: I50a7ba6214d365275f3bf304e5e39b9e0e3d0f78 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Add new v8 api to check if a value is an error.Jedrzej Nowacki2013-04-123-0/+12
| | | | | | | | | | | | | | | | | | | | | | New function v8::Value::IsError was created. This API is experimental and added only for the purposes of our research. Change-Id: Ic5e956c551a9454cb09c0f5bfa47a2c35b135c0c Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Allow a script to be flagged as "native"Aaron Kennedy2013-04-122-3/+4
| | | | | | | | | | | | | | | | | | | | | | Native scripts do not appear in backtraces, or in the source and line number when exceptions are thrown from within them. This is useful to be able to write code in JavaScript instead of C++ and still have it appear sensibly to the user. Change-Id: I1e067eeb5f2b511725272d03805da7746b03e60f Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Add custom object compare callbackAaron Kennedy2013-04-1214-27/+330
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A global custom object comparison callback can be set with: V8::SetUserObjectComparisonCallbackFunction() When two JSObjects are compared (== or !=), if either one has the MarkAsUseUserObjectComparison() bit set, the custom comparison callback is invoked to do the actual comparison. This is useful when you have "value" objects that you want to compare as equal, even though they are actually different JS object instances. Change-Id: I1ecf0c563fe1162c8f875ec26dacc8f1d10e9b8d Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Allow access to the calling script dataAaron Kennedy2013-04-122-0/+16
| | | | | | | | | | | | | | Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Change-Id: I316d44d0868c942b7d17dacd915d2c2b3218c192 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Introduce a QML compilation modeAaron Kennedy2013-04-1260-170/+812
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In QML mode, there is a second global object - known as the QML global object. During property resolution, if a property is not present on the JS global object, it is resolved on the QML global object. This global object behavior is only enabled if a script is being compiled in QML mode. The object to use as the QML global object is passed as a parameter to the Script::Run() method. Any function closures etc. created during the run will retain a reference to this object, so different objects can be passed in different script runs. Change-Id: I58f491f4e5f5ec69b822c01f08b7dd9e50b23327 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Generalize external object resourcesAaron Kennedy2013-04-129-42/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | V8 was already able to manage and finalize an external string resource. This change generalizes that mechanism to handle a single generic external resource - a v8::Object::ExternalResource derived instance - on normal JSObject's. This is useful for mapping C++ objects to JS objects where the C++ object's memory is effectively owned by the JS Object, and thus needs to destroyed when the JS Object is garbage collected. The V8 mailing list suggests using a weak persistent handle for this purpose, but that seems to incur a fairly massive performance penalty for short lived objects as weak persistent handle callbacks are not called until the object has been promoted into the old object space. Change-Id: I9bf418a9fc381a4c65bc174b69f354a8daba5ab2 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [V8] Add a "fallback" mode for named property interceptorsAaron Kennedy2013-04-127-32/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default interceptors are called before the normal property resolution on objects. When an interceptor is installed as a "fallback" interceptor, it is only called if the object doesn't already have the property. In the case of a global object having an fallback interceptor, the interceptor is not invoked at all for var or function declarations. Change-Id: Id5c41db690f2b9df21ac1bcab442cbb76dc302f7 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>