17 lines
624 B
JavaScript
17 lines
624 B
JavaScript
|
'use strict';
|
||
|
var uncurryThis = require('../internals/function-uncurry-this');
|
||
|
var fails = require('../internals/fails');
|
||
|
var classof = require('../internals/classof-raw');
|
||
|
|
||
|
var $Object = Object;
|
||
|
var split = uncurryThis(''.split);
|
||
|
|
||
|
// fallback for non-array-like ES3 and non-enumerable old V8 strings
|
||
|
module.exports = fails(function () {
|
||
|
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
|
||
|
// eslint-disable-next-line no-prototype-builtins -- safe
|
||
|
return !$Object('z').propertyIsEnumerable(0);
|
||
|
}) ? function (it) {
|
||
|
return classof(it) === 'String' ? split(it, '') : $Object(it);
|
||
|
} : $Object;
|