| | |
| | | var $ = require('../internals/export'); |
| | | var fails = require('../internals/fails'); |
| | | var isObject = require('../internals/is-object'); |
| | | var classof = require('../internals/classof-raw'); |
| | | var ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible'); |
| | | |
| | | // eslint-disable-next-line es/no-object-issealed -- safe |
| | | // eslint-disable-next-line es-x/no-object-issealed -- safe |
| | | var $isSealed = Object.isSealed; |
| | | var FAILS_ON_PRIMITIVES = fails(function () { $isSealed(1); }); |
| | | |
| | | // `Object.isSealed` method |
| | | // https://tc39.es/ecma262/#sec-object.issealed |
| | | $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { |
| | | $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, { |
| | | isSealed: function isSealed(it) { |
| | | return isObject(it) ? $isSealed ? $isSealed(it) : false : true; |
| | | if (!isObject(it)) return true; |
| | | if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true; |
| | | return $isSealed ? $isSealed(it) : false; |
| | | } |
| | | }); |