|
Implement AP2 Promises
This patch implements AP2 Promises, replace the existing Promises with
it and test it with the existing and newly added test cases.
The implementation has almost 1:1 correspondence to the spec.
In the latest draft, ThenableCoercions is used to attach private members
to arbitrary objects without any modification on the objects.
However V8 doesn't expose WeakMap to embedders and it is unavailable
if the harmony flag isn't set. Since V8 GC may relocate the object
addresses, we cannot use them as WeakMap's key. As a result, we cannot
implement O(1) WeakMap in the Blink-side[1].
So instead of using WeakMap, we use V8 hidden properties to attach
private members to the arbitrary objects.
[1]: https://chromiumcodereview.appspot.com/24403002/
BUG= 295420
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=158915
Total comments: 8
Total comments: 2
Total comments: 8
Total comments: 6
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+815 lines, -400 lines) |
Patch |
|
M |
LayoutTests/fast/js/Promise-catch.html
|
View
|
|
2 chunks |
+6 lines, -4 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-catch-expected.txt
|
View
|
|
1 chunk |
+6 lines, -4 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-catch-in-workers-expected.txt
|
View
|
|
1 chunk |
+6 lines, -4 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-exception.html
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-exception-expected.txt
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-init.html
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
A |
LayoutTests/fast/js/Promise-init-callback-receiver.html
|
View
|
1
|
1 chunk |
+28 lines, -0 lines |
0 comments
|
Download
|
|
A + |
LayoutTests/fast/js/Promise-init-callback-receiver-expected.txt
|
View
|
1
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-init-expected.txt
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-init-in-workers-expected.txt
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
A |
LayoutTests/fast/js/Promise-onFulfilled-deep.html
|
View
|
1
|
1 chunk |
+32 lines, -0 lines |
0 comments
|
Download
|
|
A + |
LayoutTests/fast/js/Promise-onFulfilled-deep-expected.txt
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
A |
LayoutTests/fast/js/Promise-onRejected-deep.html
|
View
|
1
|
1 chunk |
+32 lines, -0 lines |
0 comments
|
Download
|
|
A + |
LayoutTests/fast/js/Promise-onRejected-deep-expected.txt
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-resolve.html
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-resolve-expected.txt
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-resolve-in-workers-expected.txt
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
A + |
LayoutTests/fast/js/Promise-resolve-with-itself.html
|
View
|
1
2
|
1 chunk |
+11 lines, -11 lines |
0 comments
|
Download
|
|
A + |
LayoutTests/fast/js/Promise-resolve-with-itself-expected.txt
|
View
|
1
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-resolve-with-then-fulfill.html
|
View
|
|
2 chunks |
+1 line, -4 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-resolve-with-then-fulfill-expected.txt
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-resolve-with-then-reject.html
|
View
|
|
2 chunks |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-resolve-with-then-reject-expected.txt
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-simple.html
|
View
|
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-simple-expected.txt
|
View
|
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-simple-in-workers-expected.txt
|
View
|
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-then.html
|
View
|
|
1 chunk |
+7 lines, -5 lines |
0 comments
|
Download
|
|
A |
LayoutTests/fast/js/Promise-then-callback-receiver.html
|
View
|
1
|
1 chunk |
+61 lines, -0 lines |
0 comments
|
Download
|
|
A + |
LayoutTests/fast/js/Promise-then-callback-receiver-expected.txt
|
View
|
1
|
1 chunk |
+5 lines, -8 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-then-expected.txt
|
View
|
|
1 chunk |
+7 lines, -5 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/Promise-then-in-workers-expected.txt
|
View
|
|
1 chunk |
+7 lines, -5 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/resources/Promise-catch-in-workers.js
|
View
|
|
2 chunks |
+6 lines, -4 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/resources/Promise-init-in-workers.js
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/resources/Promise-resolve-in-workers.js
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/resources/Promise-simple-in-workers.js
|
View
|
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
|
M |
LayoutTests/fast/js/resources/Promise-then-in-workers.js
|
View
|
|
1 chunk |
+7 lines, -5 lines |
0 comments
|
Download
|
|
M |
Source/bindings/v8/ScriptPromiseResolver.cpp
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/bindings/v8/V8HiddenPropertyName.h
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
Source/bindings/v8/custom/V8PromiseCustom.h
|
View
|
|
2 chunks |
+54 lines, -32 lines |
0 comments
|
Download
|
|
M |
Source/bindings/v8/custom/V8PromiseCustom.cpp
|
View
|
1
2
3
4
5
6
|
15 chunks |
+470 lines, -278 lines |
0 comments
|
Download
|
|
M |
Source/wtf/Deque.h
|
View
|
1
2
3
4
5
6
|
3 chunks |
+21 lines, -0 lines |
0 comments
|
Download
|
Total messages: 17 (0 generated)
|