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.
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.
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.