MCPcopy Create free account
hub / github.com/nodejs/node / TestCall

Function TestCall

deps/v8/test/mjsunit/es6/proxies-function.js:42–163  ·  view source on GitHub ↗
(isStrict, callTrap)

Source from the content-addressed store, hash-verified

40var receiver
41
42function TestCall(isStrict, callTrap) {
43 assertEquals(42, callTrap(undefined, undefined, [5, 37]))
44
45 var handler = {
46 get: function(r, k) {
47 return k == "length" ? 2 : Function.prototype[k]
48 },
49 apply: callTrap
50 }
51 var f = new Proxy(()=>{}, handler)
52 var o = {f: f}
53 global_object.f = f
54
55 receiver = 333
56 assertEquals(42, f(11, 31))
57 receiver = 333
58 assertEquals(42, o.f(10, 32))
59 assertSame(o, receiver)
60 receiver = 333
61 assertEquals(42, o["f"](9, 33))
62 assertSame(o, receiver)
63 receiver = 333
64 assertEquals(42, (1, o).f(8, 34))
65 assertSame(o, receiver)
66 receiver = 333
67 assertEquals(42, (1, o)["f"](7, 35))
68 assertSame(o, receiver)
69 receiver = 333
70 assertEquals(42, f.call(o, 32, 10))
71 assertSame(o, receiver)
72 receiver = 333
73 assertEquals(42, f.call(undefined, 33, 9))
74 receiver = 333
75 assertEquals(42, f.call(null, 33, 9))
76 receiver = 333
77 assertEquals(44, f.call(2, 21, 23))
78 assertSame(2, receiver.valueOf())
79 receiver = 333
80 assertEquals(42, Function.prototype.call.call(f, o, 20, 22))
81 assertSame(o, receiver)
82 receiver = 333
83 assertEquals(43, Function.prototype.call.call(f, null, 20, 23))
84 assertEquals(44, Function.prototype.call.call(f, 2, 21, 23))
85 assertEquals(2, receiver.valueOf())
86 receiver = 333
87 assertEquals(32, f.apply(o, [16, 16]))
88 assertSame(o, receiver)
89 receiver = 333
90 assertEquals(32, Function.prototype.apply.call(f, o, [17, 15]))
91 assertSame(o, receiver)
92 receiver = 333
93 assertEquals(42, %Call(f, o, 11, 31));
94 assertSame(o, receiver)
95 receiver = 333
96 assertEquals(42, %Call(f, null, 11, 31));
97 receiver = 333
98
99 var ff = Function.prototype.bind.call(f, o, 12)

Callers 1

Calls 9

fFunction · 0.70
assertEqualsFunction · 0.50
assertSameFunction · 0.50
CallFunction · 0.50
assertTrueFunction · 0.50
ffFunction · 0.50
fMethod · 0.45
callMethod · 0.45
applyMethod · 0.45

Tested by

no test coverage detected