arg-non-symbol.js (1084B)
1 // Copyright (C) 2016 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 esid: sec-symbol.keyfor 5 description: Called with a non-symbol argument 6 info: | 7 1. If Type(sym) is not Symbol, throw a TypeError exception. 8 features: [Symbol] 9 ---*/ 10 11 assert.sameValue(typeof Symbol.keyFor, 'function'); 12 13 assert.throws(TypeError, function() { 14 Symbol.keyFor(null); 15 }, 'null'); 16 17 assert.throws(TypeError, function() { 18 Symbol.keyFor(undefined); 19 }, 'undefined'); 20 21 assert.throws(TypeError, function() { 22 Symbol.keyFor('1'); 23 }, 'number'); 24 25 assert.throws(TypeError, function() { 26 Symbol.keyFor(''); 27 }, 'string'); 28 29 assert.throws(TypeError, function() { 30 Symbol.keyFor({}); 31 }, 'ordinary object'); 32 33 assert.throws(TypeError, function() { 34 Symbol.keyFor([]); 35 }, 'array exotic object'); 36 37 assert.throws(TypeError, function() { 38 Symbol.keyFor(arguments); 39 }, 'arguments exotic object'); 40 41 var subject = Object(Symbol('s')); 42 43 assert.throws(TypeError, function() { 44 Symbol.keyFor(subject); 45 }, 'symbol object'); 46 47 reportCompare(0, 0);