disposable-stack-properties.js (1290B)
1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management 2 3 load(libdir + "asserts.js"); 4 5 { 6 assertEq(typeof DisposableStack, "function"); 7 8 assertDeepEq(Object.getOwnPropertyDescriptor(DisposableStack, 'prototype'), { 9 value: DisposableStack.prototype, 10 writable: false, 11 enumerable: false, 12 configurable: false, 13 }); 14 } 15 16 { 17 assertDeepEq(Object.getOwnPropertyDescriptor(DisposableStack.prototype, Symbol.toStringTag), { 18 value: 'DisposableStack', 19 writable: false, 20 enumerable: false, 21 configurable: true 22 }); 23 } 24 25 { 26 assertEq(typeof DisposableStack.prototype[Symbol.dispose], 'function'); 27 assertEq(DisposableStack.prototype[Symbol.dispose], DisposableStack.prototype.dispose); 28 assertDeepEq(Object.getOwnPropertyDescriptor(DisposableStack.prototype, Symbol.dispose), { 29 value: DisposableStack.prototype[Symbol.dispose], 30 writable: true, 31 enumerable: false, 32 configurable: true, 33 }); 34 } 35 36 { 37 assertThrowsInstanceOf(() => DisposableStack(), TypeError); 38 } 39 40 { 41 const properties = ['dispose', 'adopt', 'defer', 'move', 'disposed', 'use', Symbol.dispose]; 42 for (const p of properties) { 43 assertThrowsInstanceOf(() => { 44 DisposableStack.prototype[p].call({}); 45 }, TypeError); 46 } 47 }