mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 791122 - IonMonkey, fix bogus DOM exit frame assertion. r=efaust
This commit is contained in:
parent
f0e38d4eef
commit
3d1b625fd2
@ -122,10 +122,7 @@ IonFrameIterator::isDOMExit() const
|
||||
{
|
||||
if (type_ != IonFrame_Exit)
|
||||
return false;
|
||||
IonCode *code = exitFrame()->footer()->ionCode();
|
||||
return code == ION_FRAME_DOMGETTER ||
|
||||
code == ION_FRAME_DOMSETTER ||
|
||||
code == ION_FRAME_DOMMETHOD;
|
||||
return exitFrame()->isDomExit();
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -185,14 +185,28 @@ class IonExitFrameLayout : public IonCommonFrameLayout
|
||||
JS_ASSERT(footer()->ionCode() != NULL);
|
||||
return top();
|
||||
}
|
||||
|
||||
inline bool isWrapperExit() {
|
||||
return footer()->function() != NULL;
|
||||
}
|
||||
inline bool isNativeExit() {
|
||||
return footer()->ionCode() == NULL;
|
||||
}
|
||||
inline bool isDomExit() {
|
||||
IonCode *code = footer()->ionCode();
|
||||
return
|
||||
code == ION_FRAME_DOMGETTER ||
|
||||
code == ION_FRAME_DOMSETTER ||
|
||||
code == ION_FRAME_DOMMETHOD;
|
||||
}
|
||||
|
||||
inline IonNativeExitFrameLayout *nativeExit() {
|
||||
// see CodeGenerator::visitCallNative
|
||||
JS_ASSERT(footer()->ionCode() == NULL);
|
||||
JS_ASSERT(isNativeExit());
|
||||
return reinterpret_cast<IonNativeExitFrameLayout *>(footer());
|
||||
}
|
||||
inline IonDOMExitFrameLayout *DOMExit() {
|
||||
JS_ASSERT(footer()->ionCode() == ION_FRAME_DOMGETTER ||
|
||||
footer()->ionCode() == ION_FRAME_DOMSETTER);
|
||||
JS_ASSERT(isDomExit());
|
||||
return reinterpret_cast<IonDOMExitFrameLayout *>(footer());
|
||||
}
|
||||
};
|
||||
|
@ -169,14 +169,28 @@ class IonExitFrameLayout : public IonCommonFrameLayout
|
||||
JS_ASSERT(footer()->ionCode() != NULL);
|
||||
return top();
|
||||
}
|
||||
|
||||
inline bool isWrapperExit() {
|
||||
return footer()->function() != NULL;
|
||||
}
|
||||
inline bool isNativeExit() {
|
||||
return footer()->ionCode() == NULL;
|
||||
}
|
||||
inline bool isDomExit() {
|
||||
IonCode *code = footer()->ionCode();
|
||||
return
|
||||
code == ION_FRAME_DOMGETTER ||
|
||||
code == ION_FRAME_DOMSETTER ||
|
||||
code == ION_FRAME_DOMMETHOD;
|
||||
}
|
||||
|
||||
inline IonNativeExitFrameLayout *nativeExit() {
|
||||
// see CodeGenerator::visitCallNative
|
||||
JS_ASSERT(footer()->ionCode() == NULL);
|
||||
JS_ASSERT(isNativeExit());
|
||||
return reinterpret_cast<IonNativeExitFrameLayout *>(footer());
|
||||
}
|
||||
inline IonDOMExitFrameLayout *DOMExit() {
|
||||
JS_ASSERT(footer()->ionCode() == ION_FRAME_DOMGETTER ||
|
||||
footer()->ionCode() == ION_FRAME_DOMSETTER);
|
||||
JS_ASSERT(isDomExit());
|
||||
return reinterpret_cast<IonDOMExitFrameLayout *>(footer());
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user