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).
perfodd
Mike Gerwitz 2014-03-28 23:51:39 -04:00
parent 7fbdb091a4
commit e7f0f2ffc1
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
* invocation
* Appropriately returns defineSecureProp implementation to avoid check on
* each invocation
*
* @return {function( Object, string, * )}
*/
@ -584,26 +584,14 @@ function getDefineSecureProp()
// uses ECMAScript 5's Object.defineProperty() method
return function( obj, prop, value )
{
try
Object.defineProperty( obj, prop,
{
Object.defineProperty( obj, prop,
{
value: value,
value: value,
enumerable: false,
writable: 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 );
}
enumerable: false,
writable: false,
configurable: false,
} );
};
}
}