first
This commit is contained in:
27
node_modules/core-js/internals/array-set-length.js
generated
vendored
Normal file
27
node_modules/core-js/internals/array-set-length.js
generated
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
'use strict';
|
||||
var DESCRIPTORS = require('../internals/descriptors');
|
||||
var isArray = require('../internals/is-array');
|
||||
|
||||
var $TypeError = TypeError;
|
||||
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
||||
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
||||
|
||||
// Safari < 13 does not throw an error in this case
|
||||
var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
|
||||
// makes no sense without proper strict mode support
|
||||
if (this !== undefined) return true;
|
||||
try {
|
||||
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
||||
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 $TypeError('Cannot set read only .length');
|
||||
} return O.length = length;
|
||||
} : function (O, length) {
|
||||
return O.length = length;
|
||||
};
|
Reference in New Issue
Block a user