Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/js/src/jit-test/tests/ion/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 1 kB image not shown  

Quelle  monomorphic-inlining.js   Sprache: JAVA

 
// |jit-test| --ion-offthread-compile=off;

function foo(f, a, b) {
  return f(a, b);
}

function bar(a, b) {
  let result = a + b;
  if (result >= fns.length) {
    return b + a;
  }
  return result;
}

function baz(a, b) {
  return a + b;
}

let fns = [];

// This is pretty fiddly. What we are trying to test here is a specific path
// in the bailout code which needs to know which ICScript to load, and has to
// decide between the script's own ICScript, or the trial-inlined ICScript
// which belongs to the outer script. It uses the ICFallbackStub's
// trialInliningState to make this decision, which can change out from
// underneath us if the inlined call fails. So what were doing here is getting
// into a state where we've monomorphic inlined a function, and gone to Ion
// with it. We then cause the inlined call to fail by calling a function which
// doesn't match what we expect, which transitions us to a failed
// trialInliningState. We then will bail out *inside* bar, due to the
// previously unseen inside of the result >= fns.length check, exercising the
// bailout code in question.
for (let i = 0; i < 2000; i++) {
  fns.push(bar);
}

fns.push(baz);
fns.push(bar);

for (let i = 0; i < fns.length; i++) {
  assertEq(foo(fns[i], i, 1), i + 1);
}

Messung V0.5
C=93 H=80 G=86

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.