"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "js/src/jit/BaselineFrame.cpp" between
UXP-RELBASE_20210427.tar.gz and UXP-RELBASE_20210608.tar.gz

About: Basilisk is a full-featured, optimized browser derived from the code behind the pre-Servo Firefox browser (29–56 era). UXP = Unified XUL Platform. Source code.

BaselineFrame.cpp  (UXP-RELBASE_20210427):BaselineFrame.cpp  (UXP-RELBASE_20210608)
skipping to change at line 65 skipping to change at line 65
// Mark locals and stack values. // Mark locals and stack values.
JSScript* script = this->script(); JSScript* script = this->script();
size_t nfixed = script->nfixed(); size_t nfixed = script->nfixed();
jsbytecode* pc; jsbytecode* pc;
frameIterator.baselineScriptAndPc(nullptr, &pc); frameIterator.baselineScriptAndPc(nullptr, &pc);
size_t nlivefixed = script->calculateLiveFixed(pc); size_t nlivefixed = script->calculateLiveFixed(pc);
// NB: It is possible that numValueSlots() could be zero, even if nfixed is // NB: It is possible that numValueSlots() could be zero, even if nfixed is
// nonzero. This is the case if the function has an early stack check. // nonzero. This is the case if the function has an early stack check.
if (numValueSlots() == 0) if (numValueSlots() > 0) {
return;
MOZ_ASSERT(nfixed <= numValueSlots()); MOZ_ASSERT(nfixed <= numValueSlots());
if (nfixed == nlivefixed) { if (nfixed == nlivefixed) {
// All locals are live. // All locals are live.
MarkLocals(this, trc, 0, numValueSlots()); MarkLocals(this, trc, 0, numValueSlots());
} else { } else {
// Mark operand stack. // Mark operand stack.
MarkLocals(this, trc, nfixed, numValueSlots()); MarkLocals(this, trc, nfixed, numValueSlots());
// Clear dead block-scoped locals. // Clear dead block-scoped locals.
while (nfixed > nlivefixed) while (nfixed > nlivefixed)
unaliasedLocal(--nfixed).setUndefined(); unaliasedLocal(--nfixed).setUndefined();
// Mark live locals. // Mark live locals.
MarkLocals(this, trc, 0, nlivefixed); MarkLocals(this, trc, 0, nlivefixed);
}
} }
if (script->compartment()->debugEnvs) if (script->compartment()->debugEnvs)
script->compartment()->debugEnvs->markLiveFrame(trc, this); script->compartment()->debugEnvs->markLiveFrame(trc, this);
} }
bool bool
BaselineFrame::isNonGlobalEvalFrame() const BaselineFrame::isNonGlobalEvalFrame() const
{ {
return isEvalFrame() && script()->enclosingScope()->as<EvalScope>().isNonGlo bal(); return isEvalFrame() && script()->enclosingScope()->as<EvalScope>().isNonGlo bal();
 End of changes. 3 change blocks. 
16 lines changed or deleted 16 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)