|
[runtime] Introduce dedicated JSBoundFunction to represent bound functions.
According to the ES2015 specification, bound functions are exotic
objects, and thus don't need to be implemented as JSFunctions. So
we introduce a new JSBoundFunction type to represent bound functions
and make them optimizable. This already improves the performance of
calling or constructing bound functions by 10-100x depending on the
use case because we avoid the crazy dance between JavaScript and C++
that was implemented in v8natives.js previously.
There's still room for improvement in the performance of actually
creating bound functions, which is also relevant in practice, but
we already have a plan how to accomplish that later.
The mips/mips64 ports were contributed by akos.palfi@imgtec.com.
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
BUG= chromium:535408, chromium:571299, v8:4629
LOG=n
Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2
Cr-Commit-Position: refs/heads/master@{#33042}
Committed: https://crrev.com/97def8070cbb979419c041c3732d5e11779f79da
Cr-Commit-Position: refs/heads/master@{#33044}
Total comments: 2
Total comments: 6
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1679 lines, -895 lines) |
Patch |
|
M |
src/accessors.cc
|
View
|
|
1 chunk |
+0 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/api.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+15 lines, -17 lines |
0 comments
|
Download
|
|
M |
src/api-natives.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/arm/builtins-arm.cc
|
View
|
1
2
3
4
5
6
7
|
4 chunks |
+137 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/code-stubs-arm.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -10 lines |
0 comments
|
Download
|
|
M |
src/arm/macro-assembler-arm.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/macro-assembler-arm.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+13 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm64/builtins-arm64.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
4 chunks |
+143 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm64/code-stubs-arm64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/arm64/macro-assembler-arm64.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm64/macro-assembler-arm64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+13 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/bailout-reason.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/bootstrapper.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
11 chunks |
+56 lines, -53 lines |
0 comments
|
Download
|
|
M |
src/builtins.h
|
View
|
|
4 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/builtins.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
1 chunk |
+67 lines, -1 line |
0 comments
|
Download
|
|
M |
src/compiler.cc
|
View
|
|
1 chunk |
+1 line, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-intrinsic-lowering.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-intrinsic-lowering.cc
|
View
|
|
2 chunks |
+43 lines, -1 line |
0 comments
|
Download
|
|
M |
src/crankshaft/hydrogen.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/factory.h
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/factory.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
3 chunks |
+56 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/arm/full-codegen-arm.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/arm64/full-codegen-arm64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/ia32/full-codegen-ia32.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/mips/full-codegen-mips.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/full-codegen/mips64/full-codegen-mips64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/full-codegen/x64/full-codegen-x64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/heap/heap.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
2 chunks |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/heap/objects-visiting.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/builtins-ia32.cc
|
View
|
1
2
3
4
5
6
|
4 chunks |
+150 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/code-stubs-ia32.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+12 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/js/v8natives.js
|
View
|
1
|
1 chunk |
+0 lines, -70 lines |
0 comments
|
Download
|
|
M |
src/json-stringifier.h
|
View
|
1
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
src/mips/builtins-mips.cc
|
View
|
1
2
3
4
5
6
|
4 chunks |
+198 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/mips/code-stubs-mips.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/mips/macro-assembler-mips.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/mips/macro-assembler-mips.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/mips64/builtins-mips64.cc
|
View
|
1
2
3
4
5
6
|
4 chunks |
+198 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/mips64/code-stubs-mips64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/mips64/macro-assembler-mips64.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/mips64/macro-assembler-mips64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
19 chunks |
+71 lines, -67 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
10 chunks |
+62 lines, -55 lines |
0 comments
|
Download
|
|
M |
src/objects-body-descriptors-inl.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/objects-debug.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+18 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects-inl.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
10 chunks |
+22 lines, -107 lines |
0 comments
|
Download
|
|
M |
src/objects-printer.cc
|
View
|
|
3 chunks |
+13 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/profiler/heap-snapshot-generator.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
src/profiler/heap-snapshot-generator.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
4 chunks |
+23 lines, -29 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-debug.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
3 chunks |
+44 lines, -37 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-function.cc
|
View
|
|
5 chunks |
+17 lines, -146 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-object.cc
|
View
|
|
1 chunk |
+6 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-observe.cc
|
View
|
|
2 chunks |
+10 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/snapshot/serialize.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/types.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/builtins-x64.cc
|
View
|
1
2
3
4
5
6
|
4 chunks |
+149 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/code-stubs-x64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+12 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-api.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+33 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-heap-profiler.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
test/mjsunit/function-bind.js
|
View
|
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
D |
test/mjsunit/regress/regress-1229.js
|
View
|
|
1 chunk |
+0 lines, -146 lines |
0 comments
|
Download
|
|
D |
test/mjsunit/regress/regress-351315.js
|
View
|
|
1 chunk |
+0 lines, -49 lines |
0 comments
|
Download
|
|
M |
test/test262/test262.status
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/js-intrinsic-lowering-unittest.cc
|
View
|
|
2 chunks |
+8 lines, -7 lines |
0 comments
|
Download
|
Total messages: 72 (38 generated)
|