X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/stress/object-get-own-property-descriptor-perform-to-object.js diff --git a/tests/stress/object-get-own-property-descriptor-perform-to-object.js b/tests/stress/object-get-own-property-descriptor-perform-to-object.js new file mode 100644 index 0000000..50d772b --- /dev/null +++ b/tests/stress/object-get-own-property-descriptor-perform-to-object.js @@ -0,0 +1,43 @@ +var primitives = [ + ["string", 6], + [42, undefined], + [Symbol("symbol"), undefined], + [true, undefined], + [false, undefined] +]; + +for (var [primitive, expected] of primitives) { + var ret = Object.getOwnPropertyDescriptor(primitive, 'length'); + if (expected === undefined) { + if (ret !== expected) + throw new Error("bad value for " + String(primitive) + ": " + String(ret)); + } else if (ret.value !== expected) + throw new Error("bad value for " + String(primitive) + ": " + String(ret)); +} + +function canary() { + return { + called: false, + toString() { + this.called = true; + throw new Error("out"); + } + }; +} + +[ + [ null, "TypeError: null is not an object (evaluating 'Object.getOwnPropertyDescriptor(value, property)')" ], + [ undefined, "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(value, property)')" ] +].forEach(function ([value, message]) { + var property = canary(); + var error = null; + try { + Object.getOwnPropertyDescriptor(value, property); + } catch (e) { + error = e; + } + if (!error) + throw new Error("error not thrown"); + if (String(error) !== message) + throw new Error("bad error: " + String(error)); +});