Bug 1109888. ICGetPropCallDOMProxyNativeStub should inherit from ICGetPropCallGetter so we have our holder/holdershape/etc accessible the same way across all the JSNative getter stubs. r=efaust

This commit is contained in:
Boris Zbarsky 2014-12-11 13:07:43 -05:00
Родитель 11b9b1a652
Коммит 67361f102e
2 изменённых файлов: 7 добавлений и 43 удалений

Просмотреть файл

@ -11603,7 +11603,9 @@ ICGetPropCallGetter::ICGetPropCallGetter(Kind kind, JitCode *stubCode, ICStub *f
{
MOZ_ASSERT(kind == ICStub::GetProp_CallScripted ||
kind == ICStub::GetProp_CallNative ||
kind == ICStub::GetProp_CallNativePrototype);
kind == ICStub::GetProp_CallNativePrototype ||
kind == ICStub::GetProp_CallDOMProxyNative ||
kind == ICStub::GetProp_CallDOMProxyWithGenerationNative);
}
ICGetPropCallPrototypeGetter::ICGetPropCallPrototypeGetter(Kind kind, JitCode *stubCode,
@ -11868,14 +11870,11 @@ ICGetPropCallDOMProxyNativeStub::ICGetPropCallDOMProxyNativeStub(Kind kind, JitC
HandleShape holderShape,
HandleFunction getter,
uint32_t pcOffset)
: ICMonitoredStub(kind, stubCode, firstMonitorStub),
: ICGetPropCallGetter(kind, stubCode, firstMonitorStub, holder, holderShape,
getter, pcOffset),
shape_(shape),
proxyHandler_(proxyHandler),
expandoShape_(expandoShape),
holder_(holder),
holderShape_(holderShape),
getter_(getter),
pcOffset_(pcOffset)
expandoShape_(expandoShape)
{ }
ICGetPropCallDOMProxyNativeCompiler::ICGetPropCallDOMProxyNativeCompiler(JSContext *cx,

Просмотреть файл

@ -4955,7 +4955,7 @@ class ICGetProp_CallNativePrototype : public ICGetPropCallPrototypeGetter
};
};
class ICGetPropCallDOMProxyNativeStub : public ICMonitoredStub
class ICGetPropCallDOMProxyNativeStub : public ICGetPropCallGetter
{
friend class ICStubSpace;
protected:
@ -4968,16 +4968,6 @@ class ICGetPropCallDOMProxyNativeStub : public ICMonitoredStub
// Object shape of expected expando object. (nullptr if no expando object should be there)
HeapPtrShape expandoShape_;
// Holder and its shape.
HeapPtrObject holder_;
HeapPtrShape holderShape_;
// Function to call.
HeapPtrFunction getter_;
// PC offset of call
uint32_t pcOffset_;
ICGetPropCallDOMProxyNativeStub(ICStub::Kind kind, JitCode *stubCode,
ICStub *firstMonitorStub, HandleShape shape,
const BaseProxyHandler *proxyHandler, HandleShape expandoShape,
@ -4991,19 +4981,6 @@ class ICGetPropCallDOMProxyNativeStub : public ICMonitoredStub
HeapPtrShape &expandoShape() {
return expandoShape_;
}
HeapPtrObject &holder() {
return holder_;
}
HeapPtrShape &holderShape() {
return holderShape_;
}
HeapPtrFunction &getter() {
return getter_;
}
uint32_t pcOffset() const {
return pcOffset_;
}
static size_t offsetOfShape() {
return offsetof(ICGetPropCallDOMProxyNativeStub, shape_);
}
@ -5013,18 +4990,6 @@ class ICGetPropCallDOMProxyNativeStub : public ICMonitoredStub
static size_t offsetOfExpandoShape() {
return offsetof(ICGetPropCallDOMProxyNativeStub, expandoShape_);
}
static size_t offsetOfHolder() {
return offsetof(ICGetPropCallDOMProxyNativeStub, holder_);
}
static size_t offsetOfHolderShape() {
return offsetof(ICGetPropCallDOMProxyNativeStub, holderShape_);
}
static size_t offsetOfGetter() {
return offsetof(ICGetPropCallDOMProxyNativeStub, getter_);
}
static size_t offsetOfPCOffset() {
return offsetof(ICGetPropCallDOMProxyNativeStub, pcOffset_);
}
};
class ICGetProp_CallDOMProxyNative : public ICGetPropCallDOMProxyNativeStub