Test Date.prototype[@@toPrimitive] called as top-level function

This commit is contained in:
Alexey Shvayka 2020-09-05 01:50:00 +03:00 committed by Rick Waldron
parent b15c3a5b79
commit 38f3014063
1 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,33 @@
// 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-@@toprimitive
description: >
`this` value is resolved using strict mode semantics,
throwing TypeError if called as top-level function.
info: |
Date.prototype [ @@toPrimitive ] ( hint )
1. Let O be the this value.
2. If Type(O) is not Object, throw a TypeError exception.
ToObject ( argument )
Argument Type: Undefined
Result: Throw a TypeError exception.
features: [Symbol, Symbol.toPrimitive]
---*/
["toString", "valueOf"].forEach(function(key) {
Object.defineProperty(this, key, {
get: function() {
throw new Test262Error(key + " lookup should not be performed");
},
});
}, this);
var toPrimitive = Date.prototype[Symbol.toPrimitive];
assert.throws(TypeError, function() {
toPrimitive("default");
});