| 'use strict'; |
| |
| var $TypeError = require('es-errors/type'); |
| |
| var SameValue = require('./SameValue'); |
| var ToNumber = require('./ToNumber'); |
| var ToString = require('./ToString'); |
| |
| // https://262.ecma-international.org/6.0/#sec-canonicalnumericindexstring |
| |
| module.exports = function CanonicalNumericIndexString(argument) { |
| if (typeof argument !== 'string') { |
| throw new $TypeError('Assertion failed: `argument` must be a String'); |
| } |
| if (argument === '-0') { return -0; } |
| var n = ToNumber(argument); |
| if (SameValue(ToString(n), argument)) { return n; } |
| return void 0; |
| }; |