From 94419742c0a039d3b3a6e2ee73f9bb7ce034f6ba Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Fri, 18 Nov 2011 08:57:37 -0500 Subject: [PATCH] Resolved IE8 test failures - Additional checks for its buggy defineProperty(), etc implementation --- lib/util.js | 3 ++- test/MemberBuilder/GetterSetterTest.js | 6 ++++-- test/MemberBuilder/VisibilityTest.js | 3 ++- test/test-util-get-property-descriptor.js | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/util.js b/lib/util.js index eb5e738..5f902a1 100644 --- a/lib/util.js +++ b/lib/util.js @@ -434,7 +434,8 @@ exports.arrayShrink = function( items ) * * @return {Object} descriptor for requested property or undefined if not found */ -exports.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor +exports.getOwnPropertyDescriptor = + ( can_define_prop && Object.getOwnPropertyDescriptor ) || function( obj, prop ) { if ( !Object.prototype.hasOwnProperty.call( obj, prop ) ) diff --git a/test/MemberBuilder/GetterSetterTest.js b/test/MemberBuilder/GetterSetterTest.js index aa9444c..b3df1c2 100644 --- a/test/MemberBuilder/GetterSetterTest.js +++ b/test/MemberBuilder/GetterSetterTest.js @@ -22,8 +22,10 @@ * @package test */ -var shared = require( __dirname + '/inc-common' ), - es5 = ( typeof Object.defineProperty === 'function' ) ? true : false; +var common = require( 'common' ), + shared = require( __dirname + '/inc-common' ), + es5 = !( common.require( 'util' ).definePropertyFallback() ) +; require( 'common' ).testCase( { diff --git a/test/MemberBuilder/VisibilityTest.js b/test/MemberBuilder/VisibilityTest.js index 72c36b5..8632dc5 100644 --- a/test/MemberBuilder/VisibilityTest.js +++ b/test/MemberBuilder/VisibilityTest.js @@ -23,7 +23,8 @@ */ // get-set-test (supported) -var gst = ( typeof Object.defineProperty === 'function' ) ? true : false; +var common = require( 'common' ), + gst = !( common.require( 'util' ).definePropertyFallback() ) require( 'common' ).testCase( diff --git a/test/test-util-get-property-descriptor.js b/test/test-util-get-property-descriptor.js index c33d914..caf3051 100644 --- a/test/test-util-get-property-descriptor.js +++ b/test/test-util-get-property-descriptor.js @@ -36,7 +36,7 @@ var common = require( './common' ), */ ( function testUtilGetOwnPropertyDescriptorIsObjectsIfAvailable() { - if ( Object.getOwnPropertyDescriptor ) + if ( get_set && Object.getOwnPropertyDescriptor ) { assert.strictEqual( util.getOwnPropertyDescriptor,