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

Function TestAccessorCall

deps/v8/test/mjsunit/es6/proxies-function.js:336–423  ·  view source on GitHub ↗
(getterCallTrap, setterCallTrap)

Source from the content-addressed store, hash-verified

334var receiver
335
336function TestAccessorCall(getterCallTrap, setterCallTrap) {
337 var pgetter = new Proxy(()=>{}, {apply: getterCallTrap})
338 var psetter = new Proxy(()=>{}, {apply: setterCallTrap})
339
340 var o = {}
341 var oo = Object.create(o)
342 Object.defineProperty(o, "a", {get: pgetter, set: psetter})
343 Object.defineProperty(o, "b", {get: pgetter})
344 Object.defineProperty(o, "c", {set: psetter})
345 Object.defineProperty(o, "3", {get: pgetter, set: psetter})
346 Object.defineProperty(oo, "a", {value: 43})
347
348 receiver = ""
349 assertEquals(42, o.a)
350 assertSame(o, receiver)
351 receiver = ""
352 assertEquals(42, o.b)
353 assertSame(o, receiver)
354 receiver = ""
355 assertEquals(undefined, o.c)
356 assertEquals("", receiver)
357 receiver = ""
358 assertEquals(42, o["a"])
359 assertSame(o, receiver)
360 receiver = ""
361 assertEquals(42, o[3])
362 assertSame(o, receiver)
363
364 receiver = ""
365 assertEquals(43, oo.a)
366 assertEquals("", receiver)
367 receiver = ""
368 assertEquals(42, oo.b)
369 assertSame(oo, receiver)
370 receiver = ""
371 assertEquals(undefined, oo.c)
372 assertEquals("", receiver)
373 receiver = ""
374 assertEquals(43, oo["a"])
375 assertEquals("", receiver)
376 receiver = ""
377 assertEquals(42, oo[3])
378 assertSame(oo, receiver)
379
380 receiver = ""
381 assertEquals(50, o.a = 50)
382 assertSame(o, receiver)
383 assertEquals(50, value)
384 receiver = ""
385 assertEquals(51, o.b = 51)
386 assertEquals("", receiver)
387 assertEquals(50, value) // no setter
388 assertThrows(function() { "use strict"; o.b = 51 }, TypeError)
389 receiver = ""
390 assertEquals(52, o.c = 52)
391 assertSame(o, receiver)
392 assertEquals(52, value)
393 receiver = ""

Callers 1

Calls 5

assertEqualsFunction · 0.50
assertSameFunction · 0.50
assertThrowsFunction · 0.50
createMethod · 0.45
definePropertyMethod · 0.45

Tested by

no test coverage detected