v8/test/mjsunit/harmony/shadowrealm-wrapped-function-bind.js
legendecas 0a0ad98a5a [ShadowRealm] WrappedFunction properties
Implement WrappedFunction properties name/length.

Bug: v8:11989
Change-Id: I050af5814537552ef6c2077802ffc726f2e08fa3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3507201
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Chengzhong Wu <legendecas@gmail.com>
Cr-Commit-Position: refs/heads/main@{#79628}
2022-03-25 16:00:33 +00:00

26 lines
752 B
JavaScript

// Copyright 2022 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.
// Flags: --harmony-shadow-realm
const shadowRealm = new ShadowRealm();
// bind
var wrapped = shadowRealm.evaluate('function foo(bar, quz) {}; foo');
assertEquals(wrapped.name, 'foo');
assertEquals(wrapped.length, 2);
var bound = wrapped.bind(undefined, 'bar');
assertEquals(bound.name, 'bound foo');
assertEquals(bound.length, 1);
// proxy
var wrapped = shadowRealm.evaluate('function foo(bar, quz) {}; foo');
assertEquals(wrapped.name, 'foo');
assertEquals(wrapped.length, 2);
var proxy = new Proxy(wrapped, {});
assertEquals(proxy.name, 'foo');
assertEquals(proxy.length, 2);