This LGTM as a start.
There is not yet any sharing of maps for proxies. We will have to sort out
if
and how we might do that when we begin to optimize performance.
http://codereview.chromium.org/6932068/diff/1/include/v8.h
File include/v8.h (right):
http://codereview.chromium.org/6932068/diff/1/include/v8.h#newcode3670
include/v8.h:3670: static const int kJSObjectType = 0xa2;
Wow, that's brittle.
http://codereview.chromium.org/6932068/diff/1/src/objects.cc
File src/objects.cc (right):
http://codereview.chromium.org/6932068/diff/1/src/objects.cc#newcode136
src/objects.cc:136: if (IsSmi()) {
Not your code, but this looks clumsy. Isn't
Isolate* isolate = Isolate::Current();
Context* global_context = isolate->context()->global_context();
holder = ...
the same but better?
http://codereview.chromium.org/6932068/diff/1/src/proxy.js
File src/proxy.js (right):
http://codereview.chromium.org/6932068/diff/1/src/proxy.js#newcode64
src/proxy.js:64: if (type != "object" && type != "function") proto =
$Object.prototype
You should write this as if (!IS_SPEC_OBJECT(proto)).
http://codereview.chromium.org/6932068/diff/1/src/runtime.cc
File src/runtime.cc (right):
http://codereview.chromium.org/6932068/diff/1/src/runtime.cc#newcode592
src/runtime.cc:592: HandleScope scope(isolate);
We can remove this HandleScope and call the Heap:: instead of Factor::
version of the allocation function.
http://codereview.chromium.org/6932068/
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev