1 | 'use strict';
|
2 | var fails = require('../internals/fails');
|
3 | var isObject = require('../internals/is-object');
|
4 | var classof = require('../internals/classof-raw');
|
5 | var ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');
|
6 |
|
7 |
|
8 | var $isExtensible = Object.isExtensible;
|
9 | var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });
|
10 |
|
11 |
|
12 |
|
13 | module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {
|
14 | if (!isObject(it)) return false;
|
15 | if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;
|
16 | return $isExtensible ? $isExtensible(it) : true;
|
17 | } : $isExtensible;
|