// Copyright (C) 2026 Garham Lee. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-nativeerror description: > NativeError constructors throw TypeError when _message_ cannot be converted to a primitive info: | _NativeError_ ( _message_ [ , _options_ ] ) 3. If _message_ is not *undefined*, then a. Let _msg_ be ? ToString(_message_). ToString (_argument_) 10. Let _primValue_ be ? ToPrimitive(_argument_, ~string~). ---*/ //Check #1 assert.throws(TypeError, function() { EvalError({toString: undefined, valueOf: undefined}) }, "EvalError should throw a TypeError in its ToPrimitive step") //Check #2 assert.throws(TypeError, function() { RangeError({toString: undefined, valueOf: undefined}) }, "RangeError should throw a TypeError in its ToPrimitive step") //Check #3 assert.throws(TypeError, function() { ReferenceError({toString: undefined, valueOf: undefined}) }, "ReferenceError should throw a TypeError in its ToPrimitive step") //Check #4 assert.throws(TypeError, function() { SyntaxError({toString: undefined, valueOf: undefined}) }, "SyntaxError should throw a TypeError in its ToPrimitive step") //Check #5 assert.throws(TypeError, function() { TypeError({toString: undefined, valueOf: undefined}) }, "TypeError should throw a TypeError in its ToPrimitive step") //Check #6 assert.throws(TypeError, function() { URIError({toString: undefined, valueOf: undefined}) }, "URIError should throw a TypeError in its ToPrimitive step") reportCompare(0, 0);