| 
        
       | 
      
        
  
  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)
     
  
  
       |