W3cubDocs

/JavaScript

Proxy.handler.isExtensible

The handler.isExtensible() method is a trap for Object.isExtensible().

Syntax

var p = new Proxy(target, {
  isExtensible: function(target) {
  }
});

Parameters

The following parameter is passed to the isExtensible method. this is bound to the handler.

target
The target object.

Return value

The isExtensible method must return a boolean value.

Description

The handler.isExtensible() method is a trap for Object.isExtensible().

Interceptions

This trap can intercept these operations:

Invariants

If the following invariants are violated, the proxy will throw a TypeError:

  • Object.isExtensible(proxy) must return the same value as Object.isExtensible(target).

Examples

The following code traps Object.isExtensible().

var p = new Proxy({}, {
  isExtensible: function(target) {
    console.log('called');
    return true;
  }
});

console.log(Object.isExtensible(p)); // "called"
                                     // true

The following code violates the invariant.

var p = new Proxy({}, {
  isExtensible: function(target) {
    return false;
  }
});

Object.isExtensible(p); // TypeError is thrown

Specifications

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
Basic support ? ? 31 No ? ?
Mobile
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support ? ? ? 31 ? ? ?
Server
Node.js
Basic support 6.0.0

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/isExtensible