blob: 2042cfa6f165edd7217e65f20ebbd386d1a6dc05 [file] [log] [blame]
keith_miller@apple.combcc77f22016-07-15 06:03:25 +00001// 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/*---
4esid: sec-symbol.keyfor
5es6id: 19.4.2.5
6description: Called with a non-symbol argument
7info: >
8 1. If Type(sym) is not Symbol, throw a TypeError exception.
9---*/
10
11assert.sameValue(typeof Symbol.keyFor, 'function');
12
13assert.throws(TypeError, function() {
14 Symbol.keyFor(null);
15}, 'null');
16
17assert.throws(TypeError, function() {
18 Symbol.keyFor(undefined);
19}, 'undefined');
20
21assert.throws(TypeError, function() {
22 Symbol.keyFor('1');
23}, 'number');
24
25assert.throws(TypeError, function() {
26 Symbol.keyFor('');
27}, 'string');
28
29assert.throws(TypeError, function() {
30 Symbol.keyFor({});
31}, 'ordinary object');
32
33assert.throws(TypeError, function() {
34 Symbol.keyFor([]);
35}, 'array exotic object');
36
37assert.throws(TypeError, function() {
38 Symbol.keyFor(arguments);
39}, 'arguments exotic object');
40
41var subject = Object(Symbol('s'));
42
43assert.throws(TypeError, function() {
44 Symbol.keyFor(subject);
45}, 'symbol object');