From 1fc791fa31f877fe7234b5ec48fd859a8f150413 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Tue, 28 Dec 2010 13:45:33 -0500 Subject: [PATCH] Altered secure property test to work properly in IE8, which falls back due to its incomplete implementation of Object.defineProperty() --- test/test-util-define-secure-prop.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/test-util-define-secure-prop.js b/test/test-util-define-secure-prop.js index 8cf4da4..893101f 100644 --- a/test/test-util-define-secure-prop.js +++ b/test/test-util-define-secure-prop.js @@ -32,6 +32,25 @@ var obj = {}, var expected = ( ( Object.defineProperty instanceof Function ) ? false : true ), fallback = util.secureFallback(); +// IE 8 will fall back on first failure +if ( !expected && fallback ) +{ + try + { + util.secureFallback( false ); + util.defineSecureProp( {}, 'foo', 1 ); + + // If the fallback was changed on us, then there was a problem (and this + // is likely IE8). Change the value we're expecting so our tests don't + // fail. + if ( util.secureFallback() === true ) + { + expected = true; + } + } + catch ( e ) {} +} + assert.equal( expected, fallback,