remove defineProperty shim
This commit is contained in:
parent
c5f63c7112
commit
523bbba377
1 changed files with 0 additions and 55 deletions
|
|
@ -37,61 +37,6 @@
|
||||||
|
|
||||||
define(function(require, exports, module) {
|
define(function(require, exports, module) {
|
||||||
|
|
||||||
// Narwhal's shim for ES5 defineProperty
|
|
||||||
// ES5 15.2.3.6
|
|
||||||
if (!Object.defineProperty) {
|
|
||||||
Object.defineProperty = function(object, property, descriptor) {
|
|
||||||
var has = Object.prototype.hasOwnProperty;
|
|
||||||
if (typeof descriptor == "object" && object.__defineGetter__) {
|
|
||||||
if (has.call(descriptor, "value")) {
|
|
||||||
if (!object.__lookupGetter__(property) && !object.__lookupSetter__(property)) {
|
|
||||||
// data property defined and no pre-existing accessors
|
|
||||||
object[property] = descriptor.value;
|
|
||||||
}
|
|
||||||
if (has.call(descriptor, "get") || has.call(descriptor, "set")) {
|
|
||||||
// descriptor has a value property but accessor already exists
|
|
||||||
throw new TypeError("Object doesn't support this action");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// fail silently if "writable", "enumerable", or "configurable"
|
|
||||||
// are requested but not supported
|
|
||||||
/*
|
|
||||||
// alternate approach:
|
|
||||||
if ( // can't implement these features; allow false but not true
|
|
||||||
!(has.call(descriptor, "writable") ? descriptor.writable : true) ||
|
|
||||||
!(has.call(descriptor, "enumerable") ? descriptor.enumerable : true) ||
|
|
||||||
!(has.call(descriptor, "configurable") ? descriptor.configurable : true)
|
|
||||||
)
|
|
||||||
throw new RangeError(
|
|
||||||
"This implementation of Object.defineProperty does not " +
|
|
||||||
"support configurable, enumerable, or writable."
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
else if (typeof descriptor.get == "function") {
|
|
||||||
object.__defineGetter__(property, descriptor.get);
|
|
||||||
}
|
|
||||||
if (typeof descriptor.set == "function") {
|
|
||||||
object.__defineSetter__(property, descriptor.set);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return object;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// ES5 15.2.3.7
|
|
||||||
if (!Object.defineProperties) {
|
|
||||||
Object.defineProperties = function(object, properties) {
|
|
||||||
for (var property in properties) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(properties, property)) {
|
|
||||||
Object.defineProperty(object, property, properties[property]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return object;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Array detector.
|
* Array detector.
|
||||||
* Firefox 3.5 and Safari 4 have this already. Chrome 4 however ...
|
* Firefox 3.5 and Safari 4 have this already. Chrome 4 however ...
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue