mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1004503 - Backout of failed attempt to fix relazification-related crash. r=jandem
--HG-- extra : rebase_source : e3b1a9f60f34d0b366cbc4f3bb98212f714525ce
This commit is contained in:
parent
af2665068b
commit
abdc2df353
@ -4179,10 +4179,6 @@ IonBuilder::makeInliningDecision(JSFunction *target, CallInfo &callInfo)
|
||||
types::TypeObjectKey *targetType = types::TypeObjectKey::get(target);
|
||||
targetType->watchStateChangeForInlinedCall(constraints());
|
||||
|
||||
// We mustn't relazify functions that have been inlined, because there's
|
||||
// no way to tell if it safe to do so.
|
||||
script()->setHasBeenInlined();
|
||||
|
||||
return InliningDecision_Inline;
|
||||
}
|
||||
|
||||
|
@ -576,7 +576,6 @@ JSFunction::trace(JSTracer *trc)
|
||||
// - they are not in the self-hosting compartment
|
||||
// - they aren't generators
|
||||
// - they don't have JIT code attached
|
||||
// - they haven't ever been inlined
|
||||
// - they don't have child functions
|
||||
// - they have information for un-lazifying them again later
|
||||
// This information can either be a LazyScript, or the name of a
|
||||
|
@ -834,9 +834,6 @@ class JSScript : public js::gc::BarrieredCell<JSScript>
|
||||
// Script has been reused for a clone.
|
||||
bool hasBeenCloned_:1;
|
||||
|
||||
// Script has been inlined at least once, and can't be relazified.
|
||||
bool hasBeenInlined_:1;
|
||||
|
||||
// Script came from eval(), and is still active.
|
||||
bool isActiveEval_:1;
|
||||
|
||||
@ -1026,12 +1023,10 @@ class JSScript : public js::gc::BarrieredCell<JSScript>
|
||||
}
|
||||
bool hasRunOnce() const { return hasRunOnce_; }
|
||||
bool hasBeenCloned() const { return hasBeenCloned_; }
|
||||
bool hasBeenInlined() const { return hasBeenInlined_; }
|
||||
|
||||
void setTreatAsRunOnce() { treatAsRunOnce_ = true; }
|
||||
void setHasRunOnce() { hasRunOnce_ = true; }
|
||||
void setHasBeenCloned() { hasBeenCloned_ = true; }
|
||||
void setHasBeenInlined() { hasBeenInlined_ = true; }
|
||||
|
||||
bool isActiveEval() const { return isActiveEval_; }
|
||||
bool isCachedEval() const { return isCachedEval_; }
|
||||
@ -1252,7 +1247,7 @@ class JSScript : public js::gc::BarrieredCell<JSScript>
|
||||
|
||||
bool isRelazifiable() const {
|
||||
return (selfHosted() || lazyScript) &&
|
||||
!isGenerator() && !hasBaselineScript() && !hasAnyIonScript() && !hasBeenInlined();
|
||||
!isGenerator() && !hasBaselineScript() && !hasAnyIonScript();
|
||||
}
|
||||
void setLazyScript(js::LazyScript *lazy) {
|
||||
lazyScript = lazy;
|
||||
|
Loading…
Reference in New Issue
Block a user