Back out changeset 501a8f687a91 (bug 1148973) for widespread test bustage.

This commit is contained in:
L. David Baron 2015-03-30 21:51:41 -07:00
parent dd5d962c46
commit bb896e046a
4 changed files with 6 additions and 38 deletions

View File

@ -1,14 +0,0 @@
Object.defineProperty(this, "x", { get: decodeURI, configurable: true })
try {
String(b = Proxy.createFunction(function() {
return {
get: function(r, z) {
return x[z]
}
}
}(), function() {}))
} catch (e) {};
try {
function x() {}
assertEq(String(b), "function () {}");
} catch (e) { throw (e); }

View File

@ -1,8 +0,0 @@
var proto = {};
var obj = Object.create(proto);
Object.defineProperty(proto, "x", { get: decodeURI, configurable: true });
Object.defineProperty(obj, "z", { get: function () { return this.x; } });
assertEq(obj.z, "undefined");
Object.defineProperty(proto, "x", { get: Math.sin, configurable: false });
assertEq(obj.z, NaN);

View File

@ -9723,7 +9723,6 @@ IonBuilder::freezePropertiesForCommonPrototype(TemporaryTypeSet* types, Property
bool
IonBuilder::testCommonGetterSetter(TemporaryTypeSet* types, PropertyName* name,
bool isGetter, JSObject* foundProto, Shape* lastProperty,
JSFunction* getterOrSetter,
MDefinition** guard,
Shape* globalShape/* = nullptr*/,
MDefinition** globalGuard/* = nullptr */)
@ -9758,17 +9757,9 @@ IonBuilder::testCommonGetterSetter(TemporaryTypeSet* types, PropertyName* name,
}
if (foundProto->isNative()) {
NativeObject& nativeProto = foundProto->as<NativeObject>();
if (nativeProto.lastProperty() == lastProperty) {
// The proto shape is the same as it was at the point when we
// created the baseline IC, so looking up the prop on the object as
// it is now should be safe.
Shape* propShape = nativeProto.lookupPure(name);
MOZ_ASSERT_IF(isGetter, propShape->getterObject() == getterOrSetter);
MOZ_ASSERT_IF(!isGetter, propShape->setterObject() == getterOrSetter);
if (propShape && !propShape->configurable())
return true;
}
Shape* propShape = foundProto->as<NativeObject>().lookupPure(name);
if (propShape && !propShape->configurable())
return true;
}
MInstruction* wrapper = constantMaybeNursery(foundProto);
@ -10639,8 +10630,8 @@ IonBuilder::getPropTryCommonGetter(bool* emitted, MDefinition* obj, PropertyName
MDefinition* globalGuard = nullptr;
bool canUseTIForGetter =
testCommonGetterSetter(objTypes, name, /* isGetter = */ true,
foundProto, lastProperty, commonGetter, &guard,
globalShape, &globalGuard);
foundProto, lastProperty, &guard, globalShape,
&globalGuard);
if (!canUseTIForGetter) {
// If type information is bad, we can still optimize the getter if we
// shape guard.
@ -11147,7 +11138,7 @@ IonBuilder::setPropTryCommonSetter(bool* emitted, MDefinition* obj,
MDefinition* guard = nullptr;
bool canUseTIForSetter =
testCommonGetterSetter(objTypes, name, /* isGetter = */ false,
foundProto, lastProperty, commonSetter, &guard);
foundProto, lastProperty, &guard);
if (!canUseTIForSetter) {
// If type information is bad, we can still optimize the setter if we
// shape guard.

View File

@ -910,7 +910,6 @@ class IonBuilder
*/
bool testCommonGetterSetter(TemporaryTypeSet* types, PropertyName* name,
bool isGetter, JSObject* foundProto, Shape* lastProperty,
JSFunction* getterOrSetter,
MDefinition** guard, Shape* globalShape = nullptr,
MDefinition** globalGuard = nullptr);
bool testShouldDOMCall(TypeSet* inTypes,