|
[es6] Introduce spec compliant IsConstructor.
There was already a bit on the Map named "function with prototype",
which basically meant that the Map was a map for a JSFunction that could
be used as a constructor. Now this CL generalizes that bit to
IsConstructor, which says that whatever (Heap)Object you are looking at
can be used as a constructor (i.e. the bit is also set for bound
functions that can be used as constructors and proxies that have a
[[Construct]] internal method).
This way we have a single chokepoint for IsConstructor checking, which
allows us to get rid of the various ways in which we tried to guess
whether something could be used as a constructor or not.
Drive-by-fix: Renamed IsConstructor on FunctionKind to
IsClassConstructor to resolve the weird name clash, and the
IsClassConstructor name also matches the spec.
CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
R=jarin@chromium.org, rossberg@chromium.org
BUG= v8:4413, v8:4430
LOG=n
Committed: https://crrev.com/8de4d9351df4cf66c8a128d561a6e331d196be54
Cr-Commit-Position: refs/heads/master@{#30900}
Committed: https://crrev.com/8fe3ac07014ce5891be0a1cbd8019e9f3b02ff0b
Cr-Commit-Position: refs/heads/master@{#30902}
Total comments: 6
Total comments: 1
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+312 lines, -225 lines) |
Patch |
|
M |
src/accessors.cc
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/api-natives.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/builtins-arm.cc
|
View
|
1
2
|
2 chunks |
+39 lines, -24 lines |
0 comments
|
Download
|
|
M |
src/arm64/builtins-arm64.cc
|
View
|
1
2
|
2 chunks |
+38 lines, -23 lines |
0 comments
|
Download
|
|
M |
src/bootstrapper.cc
|
View
|
1
2
|
5 chunks |
+3 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/builtins.h
|
View
|
|
2 chunks |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/contexts.h
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/factory.cc
|
View
|
1
2
|
2 chunks |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/globals.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/hydrogen.cc
|
View
|
1
2
|
2 chunks |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/ia32/builtins-ia32.cc
|
View
|
1
2
|
2 chunks |
+38 lines, -23 lines |
0 comments
|
Download
|
|
M |
src/ic/ic.cc
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/mips/builtins-mips.cc
|
View
|
1
2
|
2 chunks |
+41 lines, -26 lines |
0 comments
|
Download
|
|
M |
src/mips64/builtins-mips64.cc
|
View
|
1
2
|
2 chunks |
+41 lines, -26 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
1
2
|
6 chunks |
+10 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/objects-debug.cc
|
View
|
1
2
|
2 chunks |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects-inl.h
|
View
|
|
4 chunks |
+15 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/objects-printer.cc
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/parser.cc
|
View
|
1
2
|
5 chunks |
+6 lines, -7 lines |
0 comments
|
Download
|
|
M |
src/preparser.h
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/preparser.cc
|
View
|
|
4 chunks |
+5 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-classes.cc
|
View
|
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-function.cc
|
View
|
|
3 chunks |
+9 lines, -25 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-object.cc
|
View
|
1
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/scopes.h
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/scopes.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/x64/builtins-x64.cc
|
View
|
1
2
|
2 chunks |
+39 lines, -24 lines |
0 comments
|
Download
|
Total messages: 33 (10 generated)
|