16 lines
411 B
JavaScript
16 lines
411 B
JavaScript
|
'use strict';
|
||
|
|
||
|
var GetIntrinsic = require('../GetIntrinsic');
|
||
|
|
||
|
var $String = GetIntrinsic('%String%');
|
||
|
|
||
|
var ToPrimitive = require('./ToPrimitive');
|
||
|
var ToString = require('./ToString');
|
||
|
|
||
|
// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey
|
||
|
|
||
|
module.exports = function ToPropertyKey(argument) {
|
||
|
var key = ToPrimitive(argument, $String);
|
||
|
return typeof key === 'symbol' ? key : ToString(key);
|
||
|
};
|