diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.array.is-template-object.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.array.is-template-object.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.array.is-template-object.js b/node_modules/core-js/modules/esnext.array.is-template-object.js new file mode 100644 index 0000000..a1d8428 --- /dev/null +++ b/node_modules/core-js/modules/esnext.array.is-template-object.js @@ -0,0 +1,28 @@ +var $ = require('../internals/export'); +var isArray = require('../internals/is-array'); + +var isFrozen = Object.isFrozen; + +var isFrozenStringArray = function (array, allowUndefined) { + if (!isFrozen || !isArray(array) || !isFrozen(array)) return false; + var index = 0; + var length = array.length; + var element; + while (index < length) { + element = array[index++]; + if (!(typeof element === 'string' || (allowUndefined && typeof element === 'undefined'))) { + return false; + } + } return length !== 0; +}; + +// `Array.isTemplateObject` method +// https://github.com/tc39/proposal-array-is-template-object +$({ target: 'Array', stat: true }, { + isTemplateObject: function isTemplateObject(value) { + if (!isFrozenStringArray(value, true)) return false; + var raw = value.raw; + if (raw.length !== value.length || !isFrozenStringArray(raw, false)) return false; + return true; + } +}); |
