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

Quelle  features.js   Sprache: JAVA

 
// Test that if a feature is 'experimental' then we must be in a nightly build,
// and if a feature is 'released' then it must be enabled on release and beta.
//
// An experimental feature is allowed to be disabled by platform/feature flags,
// we only require that it can never be enabled on release/beta builds.
//
// A released feature is allowed to be disabled on nightly. This is useful for
// if we're testing out a new compiler/configuration where a released feature
// is not supported yet. We only require that on release/beta, the feature must
// be enabled.
//
// As features are advanced, this test must be manually updated.
//
// NOTE0: The |jit-test| directive must be updated with all opt-in shell flags
//        for experimental features for this to work correctly.
// NOTE1: This test relies on feature functions accurately guarding use of the
//        feature to work correctly. All features should have a 'disabled.js'
//        test to verify this. Basic testing for this is included with each
//        feature in this test for sanity.
// NOTE2: Keep this file in sync with:
//        `dom/worklet/tests/worklet_audioWorklet_WASM_features.js`.

let release_or_beta = getBuildConfiguration("release_or_beta");
let nightly = !release_or_beta;

let nightlyOnlyFeatures = [
  [
    'relaxed-simd',
    wasmRelaxedSimdEnabled(),
    `(module (func (result v128)
      unreachable
      i16x8.relaxed_laneselect
    ))`
  ],
];

for (let [name, enabled, test] of nightlyOnlyFeatures) {
  if (enabled) {
    assertEq(nightly, true, `${name} must be enabled only on nightly`);
    wasmEvalText(test);
  } else {
    assertErrorMessage(() => wasmEvalText(test), WebAssembly.CompileError, /./);
  }
}

// These are features that are enabled in beta/release but may be disabled at
// run-time for other reasons.  The best we can do for these features is to say
// that if one claims to be supported then it must work, and otherwise there
// must be a CompileError.

let releasedFeaturesMaybeDisabledAnyway = [
  // SIMD will be disabled dynamically on x86/x64 if the hardware isn't SSE4.1+.
  ['simd', wasmSimdEnabled(), `(module (func (result v128) i32.const 0 i8x16.splat))`]
];

for (let [name, enabled, test] of releasedFeaturesMaybeDisabledAnyway) {
  if (release_or_beta) {
    if (enabled) {
      wasmEvalText(test);
    } else {
      assertErrorMessage(() => wasmEvalText(test), WebAssembly.CompileError, /./);
    }
  }
}

let releasedFeatures = [
  ['threads', wasmThreadsEnabled(), `(module (memory 1 1 shared))`],
  [
    'multi-memory',
    wasmMultiMemoryEnabled(),
    `(module (memory 0) (memory 0))`,
  ],
  [
    'exnref',
    wasmExnRefEnabled(),
    `(module (func try_table end))`
  ],
  [
    'memory64',
    wasmMemory64Enabled(),
    `(module (memory i64 0))`,
  ],
  [
    'js-string-builtins',
    wasmJSStringBuiltinsEnabled(),
    `(module
      (import "wasm:js-string" "concat"
        (func
          (param externref externref)
          (result (ref extern)))
      )
    )`,
    {builtins: ['js-string']}
  ]
];

for (let [name, enabled, test, options] of releasedFeatures) {
  if (release_or_beta) {
    assertEq(enabled, true, `${name} must be enabled on release and beta`);
    wasmEvalText(test, {}, options);
  }
}

Messung V0.5
C=92 H=96 G=93

¤ Dauer der Verarbeitung: 0.8 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.