define-properties-x
Based on the original work by Jordan Harband
define-properties
.
ECMAScript compatibility shims for legacy JavaScript engines
`es5-shim.js` monkey-patches a JavaScript context to contain all EcmaScript 5
methods that can be faithfully emulated with a legacy JavaScript engine.
es5-sham.js
monkey-patches other ES5 methods as closely as possible.
For these methods, as closely as possible to ES5 is not very close.
Many of these shams are intended only to allow code to be written to ES5
without causing run-time errors in older engines. In many cases,
this means that these shams cause many ES5 methods to silently fail.
Decide carefully whether this is what you want. Note: es5-sham.js requires
es5-shim.js to be able to work properly.
json3.js
monkey-patches the EcmaScript 5 JSON implimentation faithfully.
es6.shim.js
provides compatibility shims so that legacy JavaScript engines
behave as closely as possible to ECMAScript 6 (Harmony).
Version: 1.0.2
Author: Xotic750 Xotic750@gmail.com
License: MIT
Copyright: Xotic750
define-properties-x~supportsDescriptors
: boolean
Boolean indicator as to whether the environments supports descriptors
or not.
Kind: inner property of define-properties-x
Example
var lib = require('define-properties-x');
lib.supportsDescriptors;
define-properties-x~defineProperty(object, property, value, [force])
Just like defineProperties
but for defining a single non-enumerable
property. Useful in environments that do not
support Computed property names
. This can be done
with defineProperties
, but this method can read a little cleaner.
Kind: inner method of define-properties-x
Param | Type | Default | Description |
---|
object | Object | | The object on which to define the property. |
property | string | Symbol | | The property name. |
value | * | | The value of the property. |
[force] | boolean | false | If true then set property regardless. |
Example
var lib = require('define-properties-x');
var myString = 'something';
lib.defineProperty(obj, Symbol.iterator, function () {}, true);
lib.defineProperty(obj, myString, function () {}, true);
define-properties-x~defineProperties(object, map, [predicates])
Define multiple non-enumerable properties at once.
Uses Object.defineProperty
when available; falls back to standard
assignment in older engines. Existing properties are not overridden.
Accepts a map of property names to a predicate that, when true,
force-overrides.
Kind: inner method of define-properties-x
Param | Type | Description |
---|
object | Object | The object on which to define the property. |
map | Object | The object of properties. |
[predicates] | Object | The object of property predicates. |
Example
var lib = require('define-properties-x');
lib.defineProperties({
a: 1,
b: 2
}, {
a: function () { return false; },
b: function () { return true; }
});