Test Date.prototype.toJSON called as top-level function

This commit is contained in:
Alexey Shvayka 2020-09-05 01:47:30 +03:00 committed by Rick Waldron
parent 87398ac935
commit b15c3a5b79
1 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,32 @@
// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-date.prototype.tojson
description: >
`this` value is resolved using strict mode semantics,
throwing TypeError if called as top-level function.
info: |
Date.prototype.toJSON ( key )
1. Let O be ? ToObject(this value).
ToObject ( argument )
Argument Type: Undefined
Result: Throw a TypeError exception.
features: [Symbol, Symbol.toPrimitive]
---*/
[Symbol.toPrimitive, "toString", "valueOf", "toISOString"].forEach(function(key) {
Object.defineProperty(this, key, {
get: function() {
throw new Test262Error(String(key) + " lookup should not be performed");
},
});
}, this);
var toJSON = Date.prototype.toJSON;
assert.throws(TypeError, function() {
toJSON();
});