|
Implement set trap for proxies, and revamp class hierarchy in preparation:
- Introduce a class JSReceiver, that is a common superclass of JSObject and
JSProxy. Use JSReceiver where appropriate (probably lots of places that we
still have to migrate, but we will find those later with proxy test suite).
- Move appropriate methods to JSReceiver class (SetProperty,
GetPropertyAttribute, Get/SetPrototype, Lookup, and so on).
- Introduce new JSFunctionProxy subclass of JSProxy. Currently only a stub.
- Overhaul enum InstanceType:
* Introduce FIRST/LAST_SPEC_OBJECT_TYPE that ranges over all types that
represent JS objects, and use that consistently to check language types.
* Rename FIRST/LAST_JS_OBJECT_TYPE and FIRST/LAST_FUNCTION_CLASS_TYPE
to FIRST/LAST_[NON]CALLABLE_SPEC_OBJECT_TYPE for clarity.
* Eliminate the overlap over JS_REGEXP_TYPE.
* Also replace FIRST_JS_OBJECT with FIRST_JS_RECEIVER, but only use it where
we exclusively talk about the internal representation type.
* Insert JS_PROXY and JS_FUNCTION_PROXY in the appropriate places.
- Fix all checks concerning classification, especially for functions, to
use the CALLABLE_SPEC_OBJECT range (that includes funciton proxies).
- Handle proxies in SetProperty (that was the easiest part :) ).
- A few simple test cases.
R=kmillikin@chromium.org
Total comments: 5
Total comments: 30
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+750 lines, -397 lines) |
Patch |
|
M |
include/v8.h
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/arm/builtins-arm.cc
|
View
|
1
2
|
3 chunks |
+6 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/arm/code-stubs-arm.cc
|
View
|
1
2
|
5 chunks |
+10 lines, -10 lines |
0 comments
|
Download
|
|
M |
src/arm/full-codegen-arm.cc
|
View
|
1
2
|
6 chunks |
+20 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/arm/ic-arm.cc
|
View
|
1
2
|
2 chunks |
+8 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/arm/lithium-codegen-arm.cc
|
View
|
1
2
|
4 chunks |
+21 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/arm/macro-assembler-arm.cc
|
View
|
1
2
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/arm/stub-cache-arm.cc
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/bootstrapper.cc
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/contexts.h
|
View
|
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
src/handles.h
|
View
|
|
2 chunks |
+3 lines, -7 lines |
0 comments
|
Download
|
|
M |
src/handles.cc
|
View
|
1
2
|
4 chunks |
+3 lines, -14 lines |
0 comments
|
Download
|
|
M |
src/hydrogen.cc
|
View
|
1
2
|
2 chunks |
+5 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-instructions.h
|
View
|
1
2
|
2 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-instructions.cc
|
View
|
1
|
2 chunks |
+4 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/ia32/builtins-ia32.cc
|
View
|
1
2
|
3 chunks |
+6 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/ia32/code-stubs-ia32.cc
|
View
|
1
2
|
5 chunks |
+7 lines, -7 lines |
0 comments
|
Download
|
|
M |
src/ia32/full-codegen-ia32.cc
|
View
|
1
2
|
5 chunks |
+18 lines, -16 lines |
0 comments
|
Download
|
|
M |
src/ia32/ic-ia32.cc
|
View
|
1
2
|
2 chunks |
+8 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/ia32/lithium-codegen-ia32.cc
|
View
|
1
2
|
4 chunks |
+18 lines, -16 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.cc
|
View
|
1
2
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/ia32/stub-cache-ia32.cc
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/ic.cc
|
View
|
1
2
|
4 chunks |
+11 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/mark-compact.cc
|
View
|
1
2
|
3 chunks |
+7 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
1
2
|
21 chunks |
+142 lines, -82 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
1
2
|
22 chunks |
+142 lines, -44 lines |
0 comments
|
Download
|
|
M |
src/objects-inl.h
|
View
|
1
2
|
5 chunks |
+25 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/proxy.js
|
View
|
|
2 chunks |
+52 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/runtime.cc
|
View
|
1
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
src/x64/builtins-x64.cc
|
View
|
1
2
|
3 chunks |
+6 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/x64/code-stubs-x64.cc
|
View
|
1
2
|
7 chunks |
+12 lines, -12 lines |
0 comments
|
Download
|
|
M |
src/x64/full-codegen-x64.cc
|
View
|
1
2
|
5 chunks |
+19 lines, -16 lines |
0 comments
|
Download
|
|
M |
src/x64/ic-x64.cc
|
View
|
1
2
|
2 chunks |
+8 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/x64/lithium-codegen-x64.cc
|
View
|
1
2
|
4 chunks |
+17 lines, -16 lines |
0 comments
|
Download
|
|
M |
src/x64/stub-cache-x64.cc
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
A |
test/mjsunit/harmony/proxies.js
|
View
|
1
2
|
1 chunk |
+116 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/testcfg.py
|
View
|
1
2
|
1 chunk |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
test/mjsunit/typeof.js
|
View
|
1
2
|
2 chunks |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
tools/grokdump.py
|
View
|
|
1 chunk |
+35 lines, -33 lines |
0 comments
|
Download
|
Total messages: 5 (0 generated)
|