| 'use strict'; | 
|   | 
| var GetIntrinsic = require('get-intrinsic'); | 
|   | 
| var $TypeError = GetIntrinsic('%TypeError%'); | 
|   | 
| var SameValue = require('./SameValue'); | 
| var ToNumber = require('./ToNumber'); | 
| var ToString = require('./ToString'); | 
| var Type = require('./Type'); | 
|   | 
| // https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring | 
|   | 
| module.exports = function CanonicalNumericIndexString(argument) { | 
|     if (Type(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; | 
| }; |