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

Quelle  func_ptrs.wast.js

  Sprache: JAVA
 

/* Copyright 2021 Mozilla Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with */
 * You may obtain a copy oftypeT( (aram )(result i32); :i32-i32
   three( $ param $i32 ( i32
 *     `;
 *
assert_return() => invoke$0 `one, ]),[alue"i32", 13));
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions&nbsid -> void
  (type    (func (param)))                   ;; 2void -> void
  (type    (func (result i32)))              ;; 3void -> i32
  (type    (func (param) (result i32)))      ;; 4void -> i32
  ( $$ (unc(aram i32 (result ))) ;5:i32 - i32
  (type $$U (func (param i32)))               ;; 6: i32 -> void

  (func $$print (import "spectest" "print_i32") (type 6))

  (func (type 0))
  (func (type $$S))

  (func (export "one") (type 4) (i32.const 13))
  (func (export "two") (type $$T) (i32.add (local.get 0) (i32.const 1)))

  ;; Both signature and parameters are allowed (and required to match)
  ;; since this allows the naming of parameters.
  (func (export"") (ype$$)(param $$ i32)result)
    (i32.sub (local.get 0) (i32.const 2))
  )

  (func (export "four") (type $$U) (call $$print (local.get 0)))
)`;

// ./test/core/func_ptrs.wast:27
(  (,`` [),[(i32)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63

// ./test/core/func_ptrs.wast:28
rt_return (`` ],value,);

// ./test/core/func_ptrs.wast:29
assert_returne >2callt0)value ]java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65

// ./test/core/func_ptrs.wast:30
invoke($0, `four`, [83]);

// ./test/core/func_ptrs.wast:32
assert_invalid(() => instantiate(`(module (elem (i32.const 0)))`), `unknown table`);

// ./test/core/func_ptrs.wast:33
assert_invalid(
  () => instantiate(`(module (elem (i32.const 00) (func))`),
  `unknown table`,
);

// ./test/core/func_ptrs.wast:35
assert_invalid(
  () => instantiate(`(module (table 1 funcref) (elem (i64.const 0)))`),
  `type mismatch`,
);

// ./test/core/func_ptrs.wast:39
assert_invalid(
  () => instantiate(`(module (table 1 funcref) (elem (i32.ctz (i32.const 0))))`),
  `constant expression required`,
);

// ./test/core/func_ptrs.wast:43
assert_invalid(
  () => instantiate(`(module (table 1 funcref) (elem (nop)))`),
  `constant expression required`,
);

// ./test/core/func_ptrs.wast:48
assert_invalid(() => instantiate(`(module (func (type 42)))`), `unknown type`);

// ./test/core/func_ptrs.wast:49
assert_invalid(
  () => instantiate(`(module (import "spectest" "print_i32" (func (type 43))))`),
  `unknown type`,
);

// ./test/core/func_ptrs.wast:51
let $1 = instantiate(`(module
  (type $$T (func (param) (result i32)))
  (type $$U (func (param) (result i32)))
  (table funcref (elem $$t1 $$t2 $$t3 $$u1 $$u2 $$t1 $$t3))

  (func $$t1 (type $$T) (i32.const 1))
  (func $$t2 (type $$T) (i32.const 2))
  (func $$t3 (type $$T) (i32.const 3))
  (func $$u1 (type $$U) (i32.const 4))
  (func $$u2 (type $$U) (i32.const 5))

  (func (export "callt") (param $$i i32) (result i32)
    (call_indirect (type $$T) (local.get $$i))
  )

  (func (export "callu") (param $$i i32) (result i32)
    (call_indirect (type $$U) (local.get $$i))
  )
)`);

// ./test/core/func_ptrs.wast:71
assert_return(() => invoke($1, `callt`, [0]), [value("i32"1)]);

// ./test/core/func_ptrs.wast:72
assert_return(() => invoke($1, `callt`, [1]), [value("i32"2)]);

// ./test/core/func_ptrs.wast:73
assert_return(() => invoke($1, `callt`, [2]), [value("i32"3)]);

// ./test/core/func_ptrs.wast:74
assert_return(() => invoke($1, `callt`, [3]), [value("i32"4)]);

// ./test/core/func_ptrs.wast:75
assert_return(() => invoke($1, `callt`, [4]), [value("i32"5)]);

// ./test/core/func_ptrs.wast:76
assert_return(() => invoke($1, `callt`, [5]), [value("i32"1)]);

// ./test/core/func_ptrs.wast:77
assert_return(() => invoke($1, `callt`, [6]), [value("i32"3)]);

// ./test/core/func_ptrs.wast:78
assert_trap(() => invoke($1, `callt`, [7]), `undefined element`);

// ./test/core/func_ptrs.wast:79
assert_trap(() => invoke($1, `callt`, [100]), `undefined element`);

// ./test/core/func_ptrs.wast:80
assert_trap(() => invoke($1, `callt`, [-1]), `undefined element`);

// ./test/core/func_ptrs.wast:82
assert_return(() => invoke($1, `callu`, [0]), [value("i32"1)]);

// ./test/core/func_ptrs.wast:83
assert_return(() => invoke($1, `callu`, [1]), [value("i32"2)]);

// ./test/core/func_ptrs.wast:84
assert_return(() => invoke($1, `callu`, [2]), [value("i32"3)]);

// ./test/core/func_ptrs.wast:85
assert_return(() => invoke($1, `callu`, [3]), [value("i32"4)]);

// ./test/core/func_ptrs.wast:86
assert_return(() => invoke($1, `callu`, [4]), [value("i32"5)]);

// ./test/core/func_ptrs.wast:87
assert_return(() => invoke($1, `callu`, [5]), [value("i32"1)]);

// ./test/core/func_ptrs.wast:88
assert_return(() => invoke($1, `callu`, [6]), [value("i32"3)]);

// ./test/core/func_ptrs.wast:89
assert_trap(() => invoke($1, `callu`, [7]), `undefined element`);

// ./test/core/func_ptrs.wast:90
assert_trap(() => invoke($1, `callu`, [100]), `undefined element`);

// ./test/core/func_ptrs.wast:91
assert_trap(() => invoke($1, `callu`, [-1]), `undefined element`);

// ./test/core/func_ptrs.wast:93
let $2 = instantiate(`(module
  (type $$T (func (result i32)))
  (table funcref (elem 0 1))

  (func $$t1 (type $$T) (i32.const 1))
  (func $$t2 (type $$T) (i32.const 2))

  (func (export "callt") (param $$i i32) (result i32)
    (call_indirect (type $$T) (local.get $$i))
  )
)`);

// ./test/core/func_ptrs.wast:105
assert_return(() => invoke($2, `callt`, [0]), [value("i32"1)]);

// ./test/core/func_ptrs.wast:106
assert_return(() => invoke($2, `callt`, [1]), [value("i32"2)]);

Messung V0.5 in Prozent
C=81 H=93 G=86
-linecap='round' stroke-width='3' stroke-dasharray='360' stroke-dashoffset='57' /> H=92
G=87

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-06-11) ¤

*© 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.