1
0
Fork 0

Removed fallback check on each defineSecureProp call

This check was originally added because IE8's implementation is broken.
However, we already perform a test in the `can_define_prop` configuration,
so this is not necessary (it seems to be a relic).
newmaster
Mike Gerwitz 2014-03-28 23:51:39 -04:00
parent 85cc251adf
commit a52fcfa1d9
1 changed files with 8 additions and 20 deletions

View File

@ -562,8 +562,8 @@ exports.defineSecureProp( exports.getPropertyDescriptor, 'canTraverse',
/** /**
* Appropriately returns defineSecureProp implementation to avoid check on each * Appropriately returns defineSecureProp implementation to avoid check on
* invocation * each invocation
* *
* @return {function( Object, string, * )} * @return {function( Object, string, * )}
*/ */
@ -584,26 +584,14 @@ function getDefineSecureProp()
// uses ECMAScript 5's Object.defineProperty() method // uses ECMAScript 5's Object.defineProperty() method
return function( obj, prop, value ) return function( obj, prop, value )
{ {
try Object.defineProperty( obj, prop,
{ {
Object.defineProperty( obj, prop, value: value,
{
value: value,
enumerable: false, enumerable: false,
writable: false, writable: false,
configurable: false, configurable: false,
}); } );
}
catch ( e )
{
// let's not have this happen again, as repeatedly throwing
// exceptions will do nothing but slow down the system
exports.definePropertyFallback( true );
// there's an error (ehem, IE8); fall back
fallback( obj, prop, value );
}
}; };
} }
} }