summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Aaron Kennedy [Tue, 4 Oct 2011 06:06:09 +0000 (16:06 +1000)]
[V8] Generalize external object resources
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: I3d7b5fe4ca6e37d49c92f3314b80d42bd4c84fcd
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Aaron Kennedy [Thu, 27 Oct 2011 10:31:56 +0000 (11:31 +0100)]
[V8] Add a "fallback" mode for named property interceptors
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: Ibbd0a6b3ad4bd68a8d15ce99520e71c46ad14f84
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Aaron Kennedy [Tue, 4 Oct 2011 05:04:21 +0000 (15:04 +1000)]
[V8] Add hashing and comparison methods to v8::String
This allows us to more rapidly search for a v8::String inside a hash
of QStrings.
Change-Id: Ied9625aeefba730816d9ed7aa609a36592e5fc33
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Peter Varga [Fri, 24 Feb 2012 12:51:58 +0000 (13:51 +0100)]
Updated V8 from git://github.com/v8/v8.git to
06e55bc22bcb8ddb0a602e54e11971576f2d9d8a
* Implement VirtualMemory on FreeBSD to fix build (issue 1807).
* Fix error handling in Date.prototype.toISOString (issue 1792).
* Crankshaft for MIPS
* Bug fixes (mostly for MIPS)
* Use placement-new for zone-allocation in the Lithium classes.
Change-Id: I70ceacc4f7010cec58f73eb1826cbc06dd31149e
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Peter Varga [Thu, 23 Feb 2012 16:20:21 +0000 (17:20 +0100)]
Extend the update-v8.sh script
Add support for update V8 sources to a particular commit.
Change-Id: I2c81c4f79e9e1d980c6db2299dbca02b6a97f751
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Holger Hans Peter Freyther [Wed, 14 Dec 2011 17:35:12 +0000 (18:35 +0100)]
mips: Add support for custom object compare callback
Implement the compare callback for MIPS based on the ARM
code. It was tested using the Qt V8 tests.
Change-Id: I0b29224927b973131a56e4ad5ff437c08a79d138
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Ben Noordhuis [Thu, 3 Nov 2011 02:22:34 +0000 (03:22 +0100)]
freebsd: implement missing VirtualMemory methods
Patch from 3.7.4 and the bug tracker
http://code.google.com/p/v8/issues/detail?id=1807
Change-Id: Icef88d9a2ff575cf7560fb0be2bc40c0684e74df
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Holger Hans Peter Freyther [Mon, 5 Dec 2011 10:46:09 +0000 (18:46 +0800)]
uclibc: __GLIBC__ might be defined on uclibc builds
Uclibc defines __GLIBC__ becuase it is compatible in some ways with,
but it does not provide execinfo. Uclibc provides a define to disable
defining __GLIBC__ but Qt does not build with that right now. Check
for GLIBC and !UCLIBC here.
Change-Id: I8a50c03c00a506c03901f68b2d4c0ae21fe229ca
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Kent Hansen [Thu, 5 Jan 2012 12:51:57 +0000 (13:51 +0100)]
Add snapshot support for non-cross-compiled builds
Once qmake supports dynamic spec selection (QTBUG-23447), we can
tell it to build mkv8snapshot as a host tool, and then remove the
cross_compile guards from tools.pro and v8.pro.
Change-Id: I016227e80ba8c5832bcca718b08a2b14dc3805e6
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Jason McDonald [Tue, 24 Jan 2012 04:48:02 +0000 (14:48 +1000)]
Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.
Change-Id: Iae1bc1790d55d2afd3cd1d1799ac48dd225e63c7
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Jason McDonald [Fri, 20 Jan 2012 04:26:45 +0000 (14:26 +1000)]
Update obsolete contact address.
Replace Nokia contact email address with Qt Project website.
Change-Id: I4eec7c0fb71742c4a5836905f45ba49452250d6a
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Aurindam Jana [Tue, 10 Jan 2012 18:33:44 +0000 (19:33 +0100)]
[V8] Fix crash when querying for scopes
For function code, the compilation info was incorrectly
marked as global if the shared_info had qml_mode set.
The ASSERT for the length of nested scopes failed when
querying for scopes and hence the crash. This fix sets the
qml_mode for function code correctly.
Fixes https://bugreports.qt.nokia.com/browse/QTBUG-23256
This patch should be squashed into
--
2fe857938c3d1683df88133582bc3e7736264b10 [V8] Introduce a
QML compilation mode -- in the next v8 rebase as this code
only improves code in that patch.
Change-Id: I137b0e88dba81ff2ff46876faa883edb9dd0e4a9
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Simon Hausmann [Fri, 6 Jan 2012 09:32:13 +0000 (10:32 +0100)]
Added helper script for cherry-picking commits from v8
Change-Id: I563302b9d5c83e6497d89550657c7d17f0ba7bc3
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Sergio Ahumada [Thu, 5 Jan 2012 21:40:09 +0000 (22:40 +0100)]
Added missing license headers.
Change-Id: Ib43c6b1cb5a20ac36f8a4c503d6fd6b1e141c110
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Simon Hausmann [Thu, 5 Jan 2012 13:18:03 +0000 (14:18 +0100)]
Added helper script for easier V8 updates
It won't take away the pain of resolving conflicts, but it'll hide
the git magic from you :)
Change-Id: I6901ca8edb8263ea733a3d4b94393a06e8f25731
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Simon Hausmann [Thu, 5 Jan 2012 12:31:17 +0000 (13:31 +0100)]
Added missing README to explain initial update procedure
Change-Id: Iaf477848275524b7cee827c115bd0766013f3c5e
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Aurindam Jana [Tue, 13 Dec 2011 12:43:23 +0000 (13:43 +0100)]
[V8] Update ScriptBreakPoints for ScriptRegExp
Update breakpoints of type ScriptRegExpwhen a new script
is compiled. Solves Issue 1853
(http://code.google.com/p/v8/issues/detail?id=1853)
Change-Id: If83da097db3826f63542a19c412df812cf3c86ff
Reviewed-by: aaron.kennedy@nokia.com
Kai Koehne [Thu, 10 Nov 2011 15:00:37 +0000 (16:00 +0100)]
[V8] Add flag to avoid breakpoint relocation
Add a flag that prevents v8 from relocating breakpoints across
line boundaries.
Change-Id: Ia3a1449f6465b6a2645fdecac0679410b58eb45f
Aaron Kennedy [Fri, 27 May 2011 03:04:15 +0000 (13:04 +1000)]
[V8] Fix warnings
Change-Id: I3b2b68dade1c9b7130c6f352f57b53b84c1cdbb9
Aaron Kennedy [Thu, 25 Aug 2011 01:09:58 +0000 (11:09 +1000)]
[V8] Remove execute flag from v8-debug.h
Change-Id: Ie78724fa20a73733053cbdf0195f4d5822019851
Kent Hansen [Fri, 2 Sep 2011 10:03:09 +0000 (12:03 +0200)]
[V8] Fix deprecated Python code
Needed to make the scripts run on Python 3, which is the
default python interpreter on some newer distros.
Patch from http://code.google.com/p/v8/issues/detail?id=1391
Change-Id: I6a7c7efa2bc51800b81efc45b0c7335747d887a7
Jedrzej Nowacki [Tue, 7 Dec 2010 10:56:42 +0000 (11:56 +0100)]
[V8] QtScript/V8: Add new v8 api to check if a value is an error.
New function v8::Value::IsError was created.
This API is experimental and added only for the purposes of our
research.
Change-Id: I16374083eae684d34dd73e46a41e565a4cd236d4
Aaron Kennedy [Fri, 9 Sep 2011 04:16:12 +0000 (14:16 +1000)]
[V8] Allow a script to be flagged as "native"
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: Ib022e74b3b912260d990faa2b2b81a32fa1d8a07
Aaron Kennedy [Thu, 27 Oct 2011 12:40:00 +0000 (13:40 +0100)]
[V8] Add custom object compare callback
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: Ic7512e8342c071793393e5ad3fcb6fb241f7cc80
Aaron Kennedy [Fri, 14 Oct 2011 07:03:06 +0000 (17:03 +1000)]
[V8] Allow access to the calling script data
Change-Id: Iae8b5697d4ad73d7934ee50879859394c66c80da
Aaron Kennedy [Thu, 27 Oct 2011 12:34:16 +0000 (13:34 +0100)]
[V8] Introduce a QML compilation mode
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: I4950562d455074578c372d8e0e3089887b06e0a1
Aaron Kennedy [Tue, 4 Oct 2011 06:06:09 +0000 (16:06 +1000)]
[V8] Generalize external object resources
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: Ia21a181927a2e68d33a623bbe47e0f1a4404ec8e
Aaron Kennedy [Thu, 27 Oct 2011 10:31:56 +0000 (11:31 +0100)]
[V8] Add a "fallback" mode for named property interceptors
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: I9228c114b2d2f3a9386617b53f7d8ac86371159d
Aaron Kennedy [Tue, 4 Oct 2011 05:04:21 +0000 (15:04 +1000)]
[V8] Add hashing and comparison methods to v8::String
This allows us to more rapidly search for a v8::String inside a hash
of QStrings.
Change-Id: I0a8bfb1aa34f00d987862a7bfe94c822a73d8c54
Simon Hausmann [Thu, 5 Jan 2012 09:12:14 +0000 (10:12 +0100)]
Imported v8 version 3.7.3 from https://github.com/v8/v8.git
Change-Id: I152648081e46f599c2bb88eaaf67034fa5daac3a
Simon Hausmann [Thu, 5 Jan 2012 08:58:19 +0000 (09:58 +0100)]
Disable snapshots until we have support for host builds in modules
Change-Id: I7d16ac00c5255d548b68e7b77d451bd4dde12b25
Simon Hausmann [Thu, 5 Jan 2012 08:38:07 +0000 (09:38 +0100)]
Created QtJSBackend module.
Imported src/v8, tools and tests from qtbase (
1fdfc2abfe1fa26b86028934d4853432e25b4655)
and added the necessary build system files to build it as a top-level
Qt module.
Change-Id: I0b784165157bfb031059f1528c1b3b2828284f6f