123456789101112131415161718192021222324252627 |
- 'use strict';
- var DESCRIPTORS = require('../internals/descriptors');
- var isArray = require('../internals/is-array');
- var $TypeError = TypeError;
- var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
- var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
-
- if (this !== undefined) return true;
- try {
-
- Object.defineProperty([], 'length', { writable: false }).length = 1;
- } catch (error) {
- return error instanceof TypeError;
- }
- }();
- module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
- if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
- throw new $TypeError('Cannot set read only .length');
- } return O.length = length;
- } : function (O, length) {
- return O.length = length;
- };
|