Best JavaScript code snippet using chai
fedbefc78718eedeeba43bff96b77a25.js
Source:fedbefc78718eedeeba43bff96b77a25.js
...19 }20}21let TypedArray = Object.getPrototypeOf(Int8Array);22// buffer.23shouldBeEqualToString('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.name', 'get buffer');24shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.length', '0');25shouldBeFalse('"writable" in Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer")');26shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").enumerable');27shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").configurable');28shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get', 'function');29shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").set', 'undefined');30shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call()', "'TypeError: Receiver should be a typed array view but was not an object'");31shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call(undefined)', "'TypeError: Receiver should be a typed array view but was not an object'");32shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call(null)', "'TypeError: Receiver should be a typed array view but was not an object'");33shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call(5)', "'TypeError: Receiver should be a typed array view but was not an object'");34shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call([])', "'TypeError: Receiver should be a typed array view'");35shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call({ foo: "bar" })', "'TypeError: Receiver should be a typed array view'");36shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call(new ArrayBuffer(42))', "'TypeError: Receiver should be a typed array view'");37shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer").get.call(new DataView(new ArrayBuffer(8), 0, 1))', "'TypeError: Receiver should be a typed array view'");38// byteLength.39shouldBeEqualToString('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.name', 'get byteLength');40shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.length', '0');41shouldBeFalse('"writable" in Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength")');42shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").enumerable');43shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").configurable');44shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get', 'function');45shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").set', 'undefined');46shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call()', "'TypeError: Receiver should be a typed array view but was not an object'");47shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call(undefined)', "'TypeError: Receiver should be a typed array view but was not an object'");48shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call(null)', "'TypeError: Receiver should be a typed array view but was not an object'");49shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call(5)', "'TypeError: Receiver should be a typed array view but was not an object'");50shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call([])', "'TypeError: Receiver should be a typed array view'");51shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call({ foo: "bar" })', "'TypeError: Receiver should be a typed array view'");52shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call(new ArrayBuffer(42))', "'TypeError: Receiver should be a typed array view'");53shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength").get.call(new DataView(new ArrayBuffer(8), 0, 1))', "'TypeError: Receiver should be a typed array view'");54// byteOffset.55shouldBeEqualToString('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.name', 'get byteOffset');56shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.length', '0');57shouldBeFalse('"writable" in Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset")');58shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").enumerable');59shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").configurable');60shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get', 'function');61shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").set', 'undefined');62shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call()', "'TypeError: Receiver should be a typed array view but was not an object'");63shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call(undefined)', "'TypeError: Receiver should be a typed array view but was not an object'");64shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call(null)', "'TypeError: Receiver should be a typed array view but was not an object'");65shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call(5)', "'TypeError: Receiver should be a typed array view but was not an object'");66shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call([])', "'TypeError: Receiver should be a typed array view'");67shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call({ foo: "bar" })', "'TypeError: Receiver should be a typed array view'");68shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call(new ArrayBuffer(42))', "'TypeError: Receiver should be a typed array view'");69shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset").get.call(new DataView(new ArrayBuffer(8), 0, 1))', "'TypeError: Receiver should be a typed array view'");70// entries.71shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "entries").writable');72shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, "entries").enumerable');73shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "entries").configurable');74shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, "entries").value', 'function');75shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "entries").set', 'undefined');76shouldThrow('TypedArray.prototype.entries.call()', "'TypeError: Receiver should be a typed array view'");77shouldThrow('TypedArray.prototype.entries.call(undefined)', "'TypeError: Receiver should be a typed array view'");78shouldThrow('TypedArray.prototype.entries.call(null)', "'TypeError: Receiver should be a typed array view'");79shouldThrow('TypedArray.prototype.entries.call(5)', "'TypeError: Receiver should be a typed array view'");80shouldThrow('TypedArray.prototype.entries.call([])', "'TypeError: Receiver should be a typed array view'");81shouldThrow('TypedArray.prototype.entries.call({ foo: "bar" })', "'TypeError: Receiver should be a typed array view'");82shouldThrow('TypedArray.prototype.entries.call(new ArrayBuffer(42))', "'TypeError: Receiver should be a typed array view'");83shouldThrow('TypedArray.prototype.entries.call(new DataView(new ArrayBuffer(8), 0, 1))', "'TypeError: Receiver should be a typed array view'");84// length.85shouldBeEqualToString('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.name', 'get length');86shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.length', '0');87shouldBeFalse('"writable" in Object.getOwnPropertyDescriptor(TypedArray.prototype, "length")');88shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").enumerable');89shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").configurable');90shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get', 'function');91shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").set', 'undefined');92shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call()', "'TypeError: Receiver should be a typed array view but was not an object'");93shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call(undefined)', "'TypeError: Receiver should be a typed array view but was not an object'");94shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call(null)', "'TypeError: Receiver should be a typed array view but was not an object'");95shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call(5)', "'TypeError: Receiver should be a typed array view but was not an object'");96shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call([])', "'TypeError: Receiver should be a typed array view'");97shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call({ foo: "bar" })', "'TypeError: Receiver should be a typed array view'");98shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call(new ArrayBuffer(42))', "'TypeError: Receiver should be a typed array view'");99shouldThrow('Object.getOwnPropertyDescriptor(TypedArray.prototype, "length").get.call(new DataView(new ArrayBuffer(8), 0, 1))', "'TypeError: Receiver should be a typed array view'");100// toLocaleString.101shouldBeEqualToString('TypedArray.prototype.toLocaleString.name', 'toLocaleString');102shouldBe('TypedArray.prototype.toLocaleString.length', '0');103shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "toLocaleString").writable');104shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, "toLocaleString").enumerable');105shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "toLocaleString").configurable');106shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, "toString").value', 'function');107// toString.108shouldBeEqualToString('TypedArray.prototype.toString.name', 'toString');109shouldBe('TypedArray.prototype.toString.length', '0');110shouldBe('TypedArray.prototype.toString', 'Array.prototype.toString');111shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "toString").writable');112shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, "toString").enumerable');113shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, "toString").configurable');114shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, "toString").value', 'function');115// toStringTag116shouldBeEqualToString('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.name', 'get [Symbol.toStringTag]');117shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.length', '0');118shouldBeFalse('"writable" in Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag)');119shouldBeFalse('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).enumerable');120shouldBeTrue('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).configurable');121shouldBeEqualToString('typeof Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get', 'function');122shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).set', 'undefined');123shouldBe('TypedArray.prototype[Symbol.toStringTag]', 'undefined');124shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call()', 'undefined');125shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call(undefined)', 'undefined');126shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call(null)', 'undefined');127shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call(5)', 'undefined');128shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call([])', 'undefined');129shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call({ foo: "bar" })', 'undefined');130shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call(new ArrayBuffer(42))', 'undefined');131shouldBe('Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag).get.call(new DataView(new ArrayBuffer(8), 0, 1))', 'undefined');...
15.2.3.3-01.js
Source:15.2.3.3-01.js
...3 * License, v. 2.0. If a copy of the MPL was not distributed with this4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */5//-----------------------------------------------------------------------------6var BUGNUMBER = 505587;7var summary = 'ES5 Object.getOwnPropertyDescriptor(O)';8var actual = '';9var expect = '';10printBugNumber(BUGNUMBER);11printStatus (summary);12/**************13 * BEGIN TEST *14 **************/15function assertEq(a, e, msg)16{17 function SameValue(v1, v2)18 {19 if (v1 === 0 && v2 === 0)20 return 1 / v1 === 1 / v2;21 if (v1 !== v1 && v2 !== v2)22 return true;23 return v1 === v2;24 }25 if (!SameValue(a, e))26 {27 var stack = new Error().stack || "";28 throw "Assertion failed: got " + a + ", expected " + e +29 (msg ? ": " + msg : "") +30 (stack ? "\nStack:\n" + stack : "");31 }32}33function expectDescriptor(actual, expected)34{35 if (actual === undefined && expected === undefined)36 return;37 assertEq(typeof actual, "object");38 assertEq(typeof expected, "object");39 var fields =40 {41 value: true,42 get: true,43 set: true,44 enumerable: true,45 writable: true,46 configurable: true47 };48 for (var p in fields)49 assertEq(actual.hasOwnProperty(p), expected.hasOwnProperty(p), p);50 for (var p in actual)51 assertEq(p in fields, true, p);52 for (var p in expected)53 assertEq(p in fields, true, p);54 assertEq(actual.hasOwnProperty("value"), actual.hasOwnProperty("writable"));55 assertEq(actual.hasOwnProperty("get"), actual.hasOwnProperty("set"));56 if (actual.hasOwnProperty("value"))57 {58 assertEq(actual.value, expected.value);59 assertEq(actual.writable, expected.writable);60 }61 else62 {63 assertEq(actual.get, expected.get);64 assertEq(actual.set, expected.set);65 }66 assertEq(actual.hasOwnProperty("enumerable"), true);67 assertEq(actual.hasOwnProperty("configurable"), true);68 assertEq(actual.enumerable, expected.enumerable);69 assertEq(actual.configurable, expected.configurable);70}71function adjustDescriptorField(o, actual, expect, field)72{73 assertEq(field === "get" || field === "set", true);74 var lookup = "__lookup" + (field === "get" ? "G" : "S") + "etter";75 if (typeof o[lookup] === "function")76 expect[field] = o[lookup](field);77 else78 actual[field] = expect[field] = undefined; /* censor if we can't lookup */79}80/******************************************************************************/81var o, pd, expected;82o = { get x() { return 12; } };83pd = Object.getOwnPropertyDescriptor(o, "x");84expected =85 {86 set: undefined,87 enumerable: true,88 configurable: true89 };90adjustDescriptorField(o, pd, expected, "get");91expectDescriptor(pd, expected);92/******************************************************************************/93var o2;94o = Object.create(Object.prototype, { x: {get: function () { return 12; } } });95pd = Object.getOwnPropertyDescriptor(o, "x");96expected =97 {98 set: undefined,99 enumerable: false,100 configurable: false101 };102adjustDescriptorField(o, pd, expected, "get");103expectDescriptor(pd, expected);104o2 = Object.create(o);105assertEq(Object.getOwnPropertyDescriptor(o2, "x"), undefined);106/******************************************************************************/107o = {};108o.b = 12;109pd = Object.getOwnPropertyDescriptor(o, "b");110expected =111 {112 value: 12,113 writable: true,114 enumerable: true,115 configurable: true116 };117expectDescriptor(pd, expected);118/******************************************************************************/119o = { get y() { return 17; }, set y(z) { } };120pd = Object.getOwnPropertyDescriptor(o, "y");121expected =122 {123 enumerable: true,124 configurable: true125 };126adjustDescriptorField(o, pd, expected, "get");127adjustDescriptorField(o, pd, expected, "set");128expectDescriptor(pd, expected);129/******************************************************************************/130o = {};131pd = Object.getOwnPropertyDescriptor(o, "absent");132expectDescriptor(pd, undefined);133/******************************************************************************/134pd = Object.getOwnPropertyDescriptor([], "length");135expected =136 {137 value: 0,138 writable: true,139 enumerable: false,140 configurable: false141 };142expectDescriptor(pd, expected);143pd = Object.getOwnPropertyDescriptor([1], "length");144expected =145 {146 value: 1,147 writable: true,148 enumerable: false,149 configurable: false150 };151expectDescriptor(pd, expected);152pd = Object.getOwnPropertyDescriptor([1,], "length");153expected =154 {155 value: 1,156 writable: true,157 enumerable: false,158 configurable: false159 };160expectDescriptor(pd, expected);161pd = Object.getOwnPropertyDescriptor([1,,], "length");162expected =163 {164 value: 2,165 writable: true,166 enumerable: false,167 configurable: false168 };169expectDescriptor(pd, expected);170/******************************************************************************/171pd = Object.getOwnPropertyDescriptor(new String("foobar"), "length");172expected =173 {174 value: 6,175 writable: false,176 enumerable: false,177 configurable: false178 };179expectDescriptor(pd, expected);180/******************************************************************************/181function foo() { }182o = foo;183pd = Object.getOwnPropertyDescriptor(o, "length");184expected =185 {186 value: 0,187 writable: false,188 enumerable: false,189 configurable: false190 };191expectDescriptor(pd, expected);192pd = Object.getOwnPropertyDescriptor(o, "prototype");193expected =194 {195 value: foo.prototype,196 writable: true,197 enumerable: false,198 configurable: false199 };200expectDescriptor(pd, expected);201/******************************************************************************/202pd = Object.getOwnPropertyDescriptor(Function, "length");203expected =204 {205 value: 1,206 writable: false,207 enumerable: false,208 configurable: false209 };210expectDescriptor(pd, expected);211/******************************************************************************/212o = /foo/im;213pd = Object.getOwnPropertyDescriptor(o, "source");214expected =215 {216 value: "foo",217 writable: false,218 enumerable: false,219 configurable: false220 };221expectDescriptor(pd, expected);222pd = Object.getOwnPropertyDescriptor(o, "global");223expected =224 {225 value: false,226 writable: false,227 enumerable: false,228 configurable: false229 };230expectDescriptor(pd, expected);231pd = Object.getOwnPropertyDescriptor(o, "ignoreCase");232expected =233 {234 value: true,235 writable: false,236 enumerable: false,237 configurable: false238 };239expectDescriptor(pd, expected);240pd = Object.getOwnPropertyDescriptor(o, "multiline");241expected =242 {243 value: true,244 writable: false,245 enumerable: false,246 configurable: false247 };248expectDescriptor(pd, expected);249pd = Object.getOwnPropertyDescriptor(o, "lastIndex");250expected =251 {252 value: 0,253 writable: true,254 enumerable: false,255 configurable: false256 };257expectDescriptor(pd, expected);258/******************************************************************************/259reportCompare(expect, actual, "Object.getOwnPropertyDescriptor");...
proxies-get-own-property-descriptor.js
Source:proxies-get-own-property-descriptor.js
...27 }28 if (name === "return_null") {29 return null;30 }31 return Object.getOwnPropertyDescriptor(target, name);32 }33};34var proxy = new Proxy(target, handler);35var proxy_without_handler = new Proxy(target, {});36// Checking basic functionality:37assertEquals(configurable_desc,38 Object.getOwnPropertyDescriptor(proxy, "configurable"));39assertEquals(nonconfigurable_desc,40 Object.getOwnPropertyDescriptor(proxy, "nonconfigurable"));41assertEquals({ value: proxied_desc.value,42 configurable: proxied_desc.configurable,43 enumerable: false,44 writable: false },45 Object.getOwnPropertyDescriptor(proxy, "proxied"));46assertEquals(configurable_desc,47 Object.getOwnPropertyDescriptor(proxy_without_handler,48 "configurable"));49assertEquals(nonconfigurable_desc,50 Object.getOwnPropertyDescriptor(proxy_without_handler,51 "nonconfigurable"));52assertThrows('Object.getOwnPropertyDescriptor(proxy, "return_null")');53handler.getOwnPropertyDescriptor = undefined;54assertEquals(configurable_desc,55 Object.getOwnPropertyDescriptor(proxy, "configurable"));56// Checking invariants mentioned explicitly by the ES spec:57// (Inv-1) "A property cannot be reported as non-existent, if it exists as a58// non-configurable own property of the target object."59handler.getOwnPropertyDescriptor = function(target, name) { return undefined; };60assertThrows('Object.getOwnPropertyDescriptor(proxy, "nonconfigurable")');61assertEquals(undefined, Object.getOwnPropertyDescriptor(proxy, "configurable"));62// (Inv-2) "A property cannot be reported as non-configurable, if it does not63// exist as an own property of the target object or if it exists as a64// configurable own property of the target object."65handler.getOwnPropertyDescriptor = function(target, name) {66 return {value: 234, configurable: false, enumerable: true};67};68assertThrows('Object.getOwnPropertyDescriptor(proxy, "nonexistent")');69assertThrows('Object.getOwnPropertyDescriptor(proxy, "configurable")');70assertEquals(71 false,72 Object.getOwnPropertyDescriptor(proxy, "nonconfigurable").configurable);73// (Inv-3) "A property cannot be reported as non-existent, if it exists as an74// own property of the target object and the target object is not extensible."75Object.seal(target);76handler.getOwnPropertyDescriptor = function(target, name) { return undefined; };77assertThrows('Object.getOwnPropertyDescriptor(proxy, "configurable")');78assertThrows('Object.getOwnPropertyDescriptor(proxy, "nonconfigurable")');79assertEquals(undefined, Object.getOwnPropertyDescriptor(proxy, "nonexistent"));80// (Inv-4) "A property cannot be reported as existent, if it does not exist as81// an own property of the target object and the target object is not82// extensible."83var existent_desc = {value: "yes"};84handler.getOwnPropertyDescriptor = function() { return existent_desc; };85assertThrows('Object.getOwnPropertyDescriptor(proxy, "nonexistent")');86assertEquals(87 {value: "yes", writable: false, enumerable: false, configurable: false},88 Object.getOwnPropertyDescriptor(proxy, "configurable"));89// Checking individual bailout points in the implementation:90// Step 6: Trap is not callable.91handler.getOwnPropertyDescriptor = {};92assertThrows('Object.getOwnPropertyDescriptor(proxy, "configurable")');93// Step 8: Trap throws.94handler.getOwnPropertyDescriptor = function() { throw "ball"; };95assertThrows('Object.getOwnPropertyDescriptor(proxy, "configurable")');96// Step 9: Trap result is neither undefined nor an object.97handler.getOwnPropertyDescriptor = function() { return 1; }98assertThrows('Object.getOwnPropertyDescriptor(proxy, "configurable")');99// Step 11b: See (Inv-1) above.100// Step 11e: See (Inv-3) above.101// Step 16: Incompatible PropertyDescriptor; a non-configurable property102// cannot be reported as configurable. (Inv-4) above checks more cases.103handler.getOwnPropertyDescriptor = function(target, name) {104 return {value: 456, configurable: true, writable: true}105};106assertThrows('Object.getOwnPropertyDescriptor(proxy, "nonconfigurable")');...
regress-7791.js
Source:regress-7791.js
...7 const o = {8 get foo() { return 666 },9 foo: 42,10 };11 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);12}13{14 const o = {15 set foo(_) { },16 foo: 42,17 };18 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);19}20{21 const o = {22 get foo() { return 666 },23 set foo(_) { },24 foo: 42,25 };26 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);27}28{29 const o = {30 get foo() { return 666 },31 set ['foo'.slice()](_) { },32 foo: 42,33 };34 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);35}36{37 const o = {38 get ['foo'.slice()]() { return 666 },39 set ['foo'.slice()](_) { },40 foo: 42,41 };42 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);43}44// Data property first.45{46 const o = {47 foo: 666,48 get foo() { return 42 },49 };50 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());51}52{53 const o = {54 foo: 666,55 set foo(_) { },56 };57 assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').get);58 assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').value);59}60{61 const o = {62 foo: 666,63 get foo() { return 42 },64 set foo(_) { },65 };66 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());67}68{69 const o = {70 foo: 666,71 get ['foo'.slice()]() { return 42 },72 set foo(_) { },73 };74 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());75}76{77 const o = {78 foo: 666,79 get ['foo'.slice()]() { return 42 },80 set ['foo'](_) { },81 };82 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());83}84// Data property in the middle.85{86 const o = {87 get foo() { return 42 },88 foo: 666,89 set foo(_) { },90 };91 assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').get);92 assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').set());93}94{95 const o = {96 set foo(_) { },97 foo: 666,98 get foo() { return 42 },99 };100 assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());...
Using AI Code Generation
1var obj = Object.create({}, {2 prop: {3 }4});5var descriptor = Object.getOwnPropertyDescriptor(obj, "prop");6var obj = {};7Object.defineProperty(obj, "prop", {8});9var descriptor = Object.getOwnPropertyDescriptor(obj, "prop");10var obj = {};11Object.defineProperties(obj, {12 "prop1": {13 },14 "prop2": {15 }16});17var descriptor1 = Object.getOwnPropertyDescriptor(obj, "prop1");18var descriptor2 = Object.getOwnPropertyDescriptor(obj, "prop2");19var obj = Object.create({}, {20 prop: {21 }22});23var descriptor = Object.getOwnPropertyDescriptor(obj, "prop");24var obj1 = { a: 1 };25var obj2 = { b: 2 };26var obj3 = { c: 3 };27var obj = Object.assign(obj1, obj2, obj3);28var obj = { a: 1, b: 2, c: 3 };29var keys = Object.keys(obj);30var obj = {
Using AI Code Generation
1var obj = {2};3var descriptor = Object.getOwnPropertyDescriptor(obj, "a");4var obj = {};5Object.defineProperty(obj, "a", {6});7var obj = {};8Object.defineProperties(obj, {9 "property1": {10 },11 "property2": {12 }13});14var obj = {15};16var copy = Object.create(obj);17var obj = {18};19var proto = Object.getPrototypeOf(obj);20var obj = {21};22var test = { a: 1 };23var obj = {24 property: function() {}25};26Object.preventExtensions(obj);27var empty = {};28Object.preventExtensions(empty);29var obj = {30 property: function() {}31};32Object.seal(obj);
Using AI Code Generation
1var chai = require('chai');2var assert = chai.assert;3var expect = chai.expect;4var should = chai.should();5var obj = { foo: 'bar' };6var descriptor = Object.getOwnPropertyDescriptor(obj, 'foo');7expect(descriptor).to.have.property('value', 'bar');8expect(descriptor).to.have.property('enumerable', false);9expect(descriptor).to.have.property('configurable', true);10expect(descriptor).to.have.property('writable', true);11Object.defineProperty(obj, 'foo', {12});13expect(obj.foo).to.equal('qux');14obj.foo = 'bar';15expect(obj.foo).to.equal('qux');16var obj1 = {};17Object.defineProperties(obj1, {18 foo: {19 },20 baz: {21 }22});23expect(obj1).to.have.property('foo', 'bar');24expect(obj1).to.have.property('baz', 'qux');25obj1.foo = 'baz';26expect(obj1).to.have.property('foo', 'bar');27var obj2 = Object.create({}, {28 foo: {29 },30 baz: {31 }32});33expect(obj2).to.have.property('foo', 'bar');34expect(obj2).to.have.property('baz', 'qux');35obj2.foo = 'baz';36expect(obj2).to.have.property('foo', 'bar');37var obj3 = {};38var proto = {};39Object.setPrototypeOf(obj3, proto);40expect(Object.getPrototypeOf(obj3)).to.equal(proto);41var obj4 = {};42var proto1 = {};43Object.setPrototypeOf(obj4, proto1);44expect(Object.getPrototypeOf(obj4)).to.equal(proto1);45expect(Object.is('foo', 'foo')).to.equal(true);46expect(Object.is(window, window)).to.equal(true);47expect(Object.is('foo', 'bar')).to.equal(false);
Using AI Code Generation
1var obj = {2};3var desc = Object.getOwnPropertyDescriptor(obj, "a");4console.log(desc);5var obj = {6};7var desc = Object.getOwnPropertyNames(obj);8console.log(desc);9var sym1 = Symbol("foo");10var sym2 = Symbol("bar");11var obj = {};12obj[sym1] = "foo";13obj[sym2] = "bar";14var desc = Object.getOwnPropertySymbols(obj);15console.log(desc);16var obj = {};17var desc = Object.getPrototypeOf(obj);18console.log(desc);19var obj = {};20var desc = Object.is(obj);21console.log(desc);22var obj = {};23var desc = Object.isExtensible(obj);24console.log(desc);25var obj = {};26var desc = Object.isFrozen(obj);27console.log(desc);28var obj = {};29var desc = Object.isSealed(obj);30console.log(desc);31var obj = {32};33var desc = Object.keys(obj);34console.log(desc);35var obj = {};36var desc = Object.preventExtensions(obj);37console.log(desc);38var obj = {};39var desc = Object.seal(obj);
Using AI Code Generation
1var expect = require('chai').expect;2var obj = {prop: 'value'};3var descriptor = Object.getOwnPropertyDescriptor(obj, 'prop');4expect(descriptor).to.have.property('value', 'value');5expect(descriptor).to.have.property('writable', true);6expect(descriptor).to.have.property('enumerable', true);7expect(descriptor).to.have.property('configurable', true);8expect(descriptor).to.have.property('value', 'value').that.is.a('string');9expect(descriptor).to.have.property('writable', true).that.is.a('boolean');10expect(descriptor).to.have.property('enumerable', true).that.is.a('boolean');11expect(descriptor).to.have.property('configurable', true).that.is.a('boolean');12AssertionError: expected { Object (value, writable, ...) } to have property 'value' of 'value', but got 'value'13AssertionError: expected { Object (value, writable, ...) } to have property 'writable' of true, but got true14AssertionError: expected { Object (value, writable, ...) } to have property 'enumerable' of true, but got true15AssertionError: expected { Object (value, writable, ...) } to have property 'configurable' of true, but got true16AssertionError: expected { Object (value, writable, ...) } to have a property 'value' of a string, but got 'value'17AssertionError: expected { Object (value, writable, ...) } to have a property 'writable' of a boolean, but got true18AssertionError: expected { Object (value, writable, ...) } to have a property 'enumerable' of a boolean, but got true19AssertionError: expected { Object (value, writable, ...) } to have a property 'configurable' of a boolean, but got true20var expect = require('chai').expect;21var obj = {prop: 'value'};22var descriptor = Object.getOwnPropertyDescriptor(obj, 'prop');23expect(descriptor.value).to.equal('value');24expect(descriptor.writable).to.equal(true);25expect(descriptor.enumerable).to.equal(true);26expect(descriptor.configurable).to.equal(true);27expect(descriptor.value).to.be.a('string');28expect(descriptor.writable).to.be.a('boolean');29expect(descriptor
Using AI Code Generation
1var chai = require('chai');2var expect = chai.expect;3var assert = chai.assert;4var should = chai.should;5var obj = {name: 'John'};6var descriptor = Object.getOwnPropertyDescriptor(obj, 'name');7expect(descriptor).to.have.property('value', 'John');8expect(descriptor).to.have.property('enumerable', true);9expect(descriptor).to.have.property('configurable', true);10expect(descriptor).to.have.property('writable', true);11var chai = require('chai');12var expect = chai.expect;13var assert = chai.assert;14var should = chai.should;15var obj = {name: 'John'};16expect(Object.getOwnPropertyNames(obj)).to.include('name');17var chai = require('chai');18var expect = chai.expect;19var assert = chai.assert;20var should = chai.should;21var obj = {name: 'John'};22var symbol = Symbol('foo');23obj[symbol] = 'foo';24expect(Object.getOwnPropertySymbols(obj)).to.include(symbol);25var chai = require('chai');26var expect = chai.expect;27var assert = chai.assert;28var should = chai.should;29var obj = {name: 'John'};30var obj2 = Object.create(obj);31expect(Object.getPrototypeOf(obj2)).to.equal(obj);32var chai = require('chai');33var expect = chai.expect;34var assert = chai.assert;35var should = chai.should;36var obj = {name: 'John'};37var obj2 = Object.create(obj);38expect(Object.is(obj, obj2)).to.equal(false);39var chai = require('chai');40var expect = chai.expect;41var assert = chai.assert;42var should = chai.should;43var obj = {name: 'John'};44expect(Object.isExtensible(obj)).to.equal(true);45var chai = require('chai');46var expect = chai.expect;47var assert = chai.assert;48var should = chai.should;49var obj = {name: 'John'};50expect(Object.isFrozen(obj)).to.equal(false);51var chai = require('chai');52var expect = chai.expect;53var assert = chai.assert;54var should = chai.should;
Using AI Code Generation
1var obj = { a: 1 };2var prop = Object.getOwnPropertyDescriptor(obj, "a");3console.log(prop);4var obj = { a: 1 };5var prop = Object.getOwnPropertyNames(obj);6console.log(prop);7var obj = { a: 1 };8var prop = Object.getPrototypeOf(obj);9console.log(prop);10var obj = { a: 1 };11var prop = Object.isExtensible(obj);12console.log(prop);13var obj = { a: 1 };14var prop = Object.isFrozen(obj);15console.log(prop);16var obj = { a: 1 };17var prop = Object.isSealed(obj);18console.log(prop);19var obj = { a: 1 };20var prop = Object.keys(obj);21console.log(prop);22var obj = { a: 1 };23var prop = Object.preventExtensions(obj);24console.log(prop);25var obj = { a: 1 };26var prop = Object.seal(obj);27console.log(prop);28var obj = { a: 1 };29var prop = Object.setPrototypeOf(obj, {});30console.log(prop);31var obj = { a: 1 };32var prop = Object.prototype.hasOwnProperty.call(obj, "a");33console.log(prop);34var obj = { a: 1 };35var prop = Object.prototype.isPrototypeOf.call(obj, {});36console.log(prop);37var obj = { a: 1
Using AI Code Generation
1var obj = {name: 'John'};2Object.defineProperty(obj, 'age', {3});4console.log(Object.getOwnPropertyDescriptor(obj, 'name'));5console.log(Object.getOwnPropertyDescriptor(obj, 'age'));6var obj = {name: 'John'};7Object.defineProperty(obj, 'age', {8});9console.log(Object.getOwnPropertyNames(obj));10var symbol1 = Symbol('symbol1');11var symbol2 = Symbol('symbol2');12var obj = {};13obj[symbol1] = 'symbol1';14obj[symbol2] = 'symbol2';15console.log(Object.getOwnPropertySymbols(obj));16function Animal() {}17var animal = new Animal();18console.log(Object.getPrototypeOf(animal) === Animal.prototype);19console.log(Object.is(0, -0));20console.log(Object.is(-0, -0));21console.log(Object.is(NaN, 0/0));22var obj = {};23console.log(Object.isExtensible(obj));24var obj = {};25Object.freeze(obj);26console.log(Object.isFrozen(obj));27var obj = {};28Object.seal(obj);29console.log(Object.isSealed(obj));30var obj = {name: 'John', age: 30
Using AI Code Generation
1var obj = {};2Object.defineProperty(obj, 'a', {3 get: function() { return this.b },4 set: function(value) { this.b = value },5});6Object.defineProperty(obj, 'b', {7 get: function() { return this.c },8 set: function(value) { this.c = value },9});10Object.defineProperty(obj, 'c', {11});12console.log(obj.a);13obj.a = 3;14console.log(obj.c);15var descriptor = Object.getOwnPropertyDescriptor(obj, 'a');16console.log(descriptor.value);17console.log(descriptor.set);18function strict() {19 'use strict';20 obj.d = 4;21}22strict();23function nonStrict() {24 obj.e = 5;25}26nonStrict();27console.log(window.e);28var obj = { a: 1 };29var prototype = Object.create(obj);30prototype.b = 2;31Object.defineProperty(prototype, 'c', {32 get: function() { return this.a + this.b },33});34var result = Object.create(prototype);35console.log(result.c);
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!