Skip to content

Commit

Permalink
fix for "stupid Internet Explorer" bugs
Browse files Browse the repository at this point in the history
`getOwnPropertyDescriptor` AND `defineProperty` are defined, but they don't work on objects that are not dom nodes. Retarded.
  • Loading branch information
kamicane committed Jan 22, 2013
1 parent 73fe86a commit b113944
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ var each = function(object, method, context){
return object
}

if (!({valueOf: 0}).propertyIsEnumerable("valueOf")){ // fix stupid IE enum bug
if (!({valueOf: 0}).propertyIsEnumerable("valueOf")){ // fix for stupid IE enumeration bug

var buggy = "constructor,toString,valueOf,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString".split(",")
var proto = Object.prototype
Expand All @@ -34,13 +34,21 @@ var create = Object.create || function(self){
return new constructor
}

var define = Object.defineProperty || function(object, key, descriptor){
object[key] = descriptor.value
return object
}
var getOwnPropertyDescriptor, define

var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor || function(object, key){
return {value: object[key]}
try { // fix for stupid IE getOwnPropertyDescriptor AND defineProperty bugs
Object.getOwnPropertyDescriptor({})
Object.defineProperty({}, "x", {})
getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
define = Object.defineProperty
} catch(e){
getOwnPropertyDescriptor = function(object, key){
return {value: object[key]}
}
define = function(object, key, descriptor){
object[key] = descriptor.value
return object
}
}

var implement = function(proto){
Expand Down

0 comments on commit b113944

Please sign in to comment.