| // Copyright 2019 the V8 project authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | @generateCppClass | 
 | extern class JSProxy extends JSReceiver { | 
 |   target: JSReceiver|Null; | 
 |   handler: JSReceiver|Null; | 
 | } | 
 |  | 
 | extern shape JSProxyRevocableResult extends JSObject { | 
 |   proxy: JSAny; | 
 |   revoke: JSAny; | 
 | } | 
 |  | 
 | macro NewJSProxyRevocableResult(implicit context: Context)( | 
 |     proxy: JSProxy, revoke: JSFunction): JSProxyRevocableResult { | 
 |   return new JSProxyRevocableResult{ | 
 |     map: GetProxyRevocableResultMap(), | 
 |     properties_or_hash: kEmptyFixedArray, | 
 |     elements: kEmptyFixedArray, | 
 |     proxy, | 
 |     revoke | 
 |   }; | 
 | } |