From 498402e9ef939bf4808c5e8ca55db7792ef24df5 Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 16 Apr 2008 23:12:19 -0400 Subject: [PATCH] Alternative Object.keys/Object.values fix for IE --- src/base.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/src/base.js b/src/base.js index 2d75f32..3335fe5 100644 --- a/src/base.js +++ b/src/base.js @@ -209,6 +209,47 @@ Object.extend(Function.prototype, { } }); +(function(){ + var isDontEnumSkipped = true; + var DontEnumProperties = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ] + var length = DontEnumProperties.length; + var hasOwnProperty = Object.prototype.hasOwnProperty; + + // test if properties that shadow DontEnum ones are enumerated + for (var prop in { toString: true }) { + isDontEnumSkipped = false; + } + + if (isDontEnumSkipped) { + + Object.keys = Object.keys.wrap(function(proceed, object) { + var keys = proceed(object); + for (var i=0; i