@extendscript/aes.patch.object.setprototypeof

The `Object.setPrototypeOf()` method sets the prototype (i.e., the internal `Prototype` property) of a specified object to another object or null.

Usage no npm install needed!

<script type="module">
  import extendscriptAesPatchObjectSetprototypeof from 'https://cdn.skypack.dev/@extendscript/aes.patch.object.setprototypeof';
</script>

README

object.setprototypeof

ES5 Sham

The Object.setPrototypeOf() method sets the prototype (i.e., the internal Prototype property) of a specified object to another object or null.

Source: MDN

Warning: Changing the Prototype of an object is, by the nature of how modern JavaScript engines optimize property accesses, a very slow operation, in every browser and JavaScript engine. The effects on performance of altering inheritance are subtle and far-flung, and are not limited to simply the time spent in Object.setPrototypeOf(...) statement, but may extend to any code that has access to any object whose Prototype has been altered. If you care about performance you should avoid setting the Prototype of an object. Instead, create a new object with the desired Prototype using Object.create().

Install

npm install @extendscript/aes.patch.object.setprototypeof

Test

You can test the code against a range of targets:

npm run test target-1 target-2

We keep a log of test results