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 19 kB image not shown  

Quelle  store.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 the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * 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 and
 * limitations under the License.
 */


// ./test/core/store.wast

// ./test/core/store.wast:3
let $0 = instantiate(`(module
  (memory $$mem1 1)
  (memory $$mem2 1)

  (func (export "load1") (param i32) (result i64)
    (i64.load $$mem1 (local.get 0))
  )
  (func (export "load2") (param i32) (result i64)
    (i64.load $$mem2 (local.get 0))
  )

  (func (export "store1") (param i32 i64)
    (i64.store $$mem1 (local.get 0) (local.get 1))
  )
  (func (export "store2") (param i32 i64)
    (i64.store $$mem2 (local.get 0) (local.get 1))
  )
)`);

// ./test/core/store.wast:22
invoke($0, `store1`, [0, 1n]);

// ./test/core/store.wast:23
invoke($0, `store2`, [0, 2n]);

// ./test/core/store.wast:24
assert_return(() => invoke($0, `load1`, [0]), [value("i64", 1n)]);

// ./test/core/store.wast:25
assert_return(() => invoke($0, `load2`, [0]), [value("i64", 2n)]);

// ./test/core/store.wast:28
let $1 = instantiate(`(module $$M1
  (memory (export "mem") 1)

  (func (export "load") (param i32) (result i64)
    (i64.load (local.get 0))
  )
  (func (export "store") (param i32 i64)
    (i64.store (local.get 0) (local.get 1))
  )
)`);
let $M1 = $1;

// ./test/core/store.wast:38
register($1, `M1`);

// ./test/core/store.wast:40
let $2 = instantiate(`(module $$M2
  (memory (export "mem") 1)

  (func (export "load") (param i32) (result i64)
    (i64.load (local.get 0))
  )
  (func (export "store") (param i32 i64)
    (i64.store (local.get 0) (local.get 1))
  )
)`);
let $M2 = $2;

// ./test/core/store.wast:50
register($2, `M2`);

// ./test/core/store.wast:52
invoke($M1, `store`, [0, 1n]);

// ./test/core/store.wast:53
invoke($M2, `store`, [0, 2n]);

// ./test/core/store.wast:54
assert_return(() => invoke($M1, `load`, [0]), [value("i64", 1n)]);

// ./test/core/store.wast:55
assert_return(() => invoke($M2, `load`, [0]), [value("i64", 2n)]);

// ./test/core/store.wast:57
let $3 = instantiate(`(module
  (memory $$mem1 (import "M1" "mem") 1)
  (memory $$mem2 (import "M2" "mem") 1)

  (func (export "load1") (param i32) (result i64)
    (i64.load $$mem1 (local.get 0))
  )
  (func (export "load2") (param i32) (result i64)
    (i64.load $$mem2 (local.get 0))
  )

  (func (export "store1") (param i32 i64)
    (i64.store $$mem1 (local.get 0) (local.get 1))
  )
  (func (export "store2") (param i32 i64)
    (i64.store $$mem2 (local.get 0) (local.get 1))
  )
)`);

// ./test/core/store.wast:76
invoke($3, `store1`, [0, 1n]);

// ./test/core/store.wast:77
invoke($3, `store2`, [0, 2n]);

// ./test/core/store.wast:78
assert_return(() => invoke($3, `load1`, [0]), [value("i64", 1n)]);

// ./test/core/store.wast:79
assert_return(() => invoke($3, `load2`, [0]), [value("i64", 2n)]);

// ./test/core/store.wast:82
let $4 = instantiate(`(module
  (memory (export "mem") 2)
)`);

// ./test/core/store.wast:85
register($4, `M`);

// ./test/core/store.wast:87
let $5 = instantiate(`(module
  (memory $$mem1 (import "M" "mem") 2)
  (memory $$mem2 3)

  (data (memory $$mem1) (i32.const 20) "\\01\\02\\03\\04\\05")
  (data (memory $$mem2) (i32.const 50) "\\0A\\0B\\0C\\0D\\0E")

  (func (export "read1") (param i32) (result i32)
    (i32.load8_u $$mem1 (local.get 0))
  )
  (func (export "read2") (param i32) (result i32)
    (i32.load8_u $$mem2 (local.get 0))
  )

  (func (export "copy-1-to-2")
    (local $$i i32)
    (local.set $$i (i32.const 20))
    (loop $$cont
      (br_if 1 (i32.eq (local.get $$i) (i32.const 23)))
      (i32.store8 $$mem2 (local.get $$i) (i32.load8_u $$mem1 (local.get $$i)))
      (local.set $$i (i32.add (local.get $$i) (i32.const 1)))
      (br $$cont)
    )
  )

  (func (export "copy-2-to-1")
    (local $$i i32)
    (local.set $$i (i32.const 50))
    (loop $$cont
      (br_if 1 (i32.eq (local.get $$i) (i32.const 54)))
      (i32.store8 $$mem1 (local.get $$i) (i32.load8_u $$mem2 (local.get $$i)))
      (local.set $$i (i32.add (local.get $$i) (i32.const 1)))
      (br $$cont)
    )
  )
)`);

// ./test/core/store.wast:124
assert_return(() => invoke($5, `read2`, [20]), [value("i32", 0)]);

// ./test/core/store.wast:125
assert_return(() => invoke($5, `read2`, [21]), [value("i32", 0)]);

// ./test/core/store.wast:126
assert_return(() => invoke($5, `read2`, [22]), [value("i32", 0)]);

// ./test/core/store.wast:127
assert_return(() => invoke($5, `read2`, [23]), [value("i32", 0)]);

// ./test/core/store.wast:128
assert_return(() => invoke($5, `read2`, [24]), [value("i32", 0)]);

// ./test/core/store.wast:129
invoke($5, `copy-1-to-2`, []);

// ./test/core/store.wast:130
assert_return(() => invoke($5, `read2`, [20]), [value("i32", 1)]);

// ./test/core/store.wast:131
assert_return(() => invoke($5, `read2`, [21]), [value("i32", 2)]);

// ./test/core/store.wast:132
assert_return(() => invoke($5, `read2`, [22]), [value("i32", 3)]);

// ./test/core/store.wast:133
assert_return(() => invoke($5, `read2`, [23]), [value("i32", 0)]);

// ./test/core/store.wast:134
assert_return(() => invoke($5, `read2`, [24]), [value("i32", 0)]);

// ./test/core/store.wast:136
assert_return(() => invoke($5, `read1`, [50]), [value("i32", 0)]);

// ./test/core/store.wast:137
assert_return(() => invoke($5, `read1`, [51]), [value("i32", 0)]);

// ./test/core/store.wast:138
assert_return(() => invoke($5, `read1`, [52]), [value("i32", 0)]);

// ./test/core/store.wast:139
assert_return(() => invoke($5, `read1`, [53]), [value("i32", 0)]);

// ./test/core/store.wast:140
assert_return(() => invoke($5, `read1`, [54]), [value("i32", 0)]);

// ./test/core/store.wast:141
invoke($5, `copy-2-to-1`, []);

// ./test/core/store.wast:142
assert_return(() => invoke($5, `read1`, [50]), [value("i32", 10)]);

// ./test/core/store.wast:143
assert_return(() => invoke($5, `read1`, [51]), [value("i32", 11)]);

// ./test/core/store.wast:144
assert_return(() => invoke($5, `read1`, [52]), [value("i32", 12)]);

// ./test/core/store.wast:145
assert_return(() => invoke($5, `read1`, [53]), [value("i32", 13)]);

// ./test/core/store.wast:146
assert_return(() => invoke($5, `read1`, [54]), [value("i32", 0)]);

// ./test/core/store.wast:151
let $6 = instantiate(`(module
  (memory 1)

  (func (export "as-block-value")
    (block (i32.store (i32.const 0) (i32.const 1)))
  )
  (func (export "as-loop-value")
    (loop (i32.store (i32.const 0) (i32.const 1)))
  )

  (func (export "as-br-value")
    (block (br 0 (i32.store (i32.const 0) (i32.const 1))))
  )
  (func (export "as-br_if-value")
    (block
      (br_if 0 (i32.store (i32.const 0) (i32.const 1)) (i32.const 1))
    )
  )
  (func (export "as-br_if-value-cond")
    (block
      (br_if 0 (i32.const 6) (i32.store (i32.const 0) (i32.const 1)))
    )
  )
  (func (export "as-br_table-value")
    (block
      (br_table 0 (i32.store (i32.const 0) (i32.const 1)) (i32.const 1))
    )
  )

  (func (export "as-return-value")
    (return (i32.store (i32.const 0) (i32.const 1)))
  )

  (func (export "as-if-then")
    (if (i32.const 1) (then (i32.store (i32.const 0) (i32.const 1))))
  )
  (func (export "as-if-else")
    (if (i32.const 0) (then) (else (i32.store (i32.const 0) (i32.const 1))))
  )
)`);

// ./test/core/store.wast:192
assert_return(() => invoke($6, `as-block-value`, []), []);

// ./test/core/store.wast:193
assert_return(() => invoke($6, `as-loop-value`, []), []);

// ./test/core/store.wast:195
assert_return(() => invoke($6, `as-br-value`, []), []);

// ./test/core/store.wast:196
assert_return(() => invoke($6, `as-br_if-value`, []), []);

// ./test/core/store.wast:197
assert_return(() => invoke($6, `as-br_if-value-cond`, []), []);

// ./test/core/store.wast:198
assert_return(() => invoke($6, `as-br_table-value`, []), []);

// ./test/core/store.wast:200
assert_return(() => invoke($6, `as-return-value`, []), []);

// ./test/core/store.wast:202
assert_return(() => invoke($6, `as-if-then`, []), []);

// ./test/core/store.wast:203
assert_return(() => invoke($6, `as-if-else`, []), []);

// ./test/core/store.wast:205
assert_malformed(
  () => instantiate(`(memory 1) (func (param i32) (i32.store32 (local.get 0) (i32.const 0))) `),
  `unknown operator`,
);

// ./test/core/store.wast:212
assert_malformed(
  () => instantiate(`(memory 1) (func (param i32) (i32.store64 (local.get 0) (i64.const 0))) `),
  `unknown operator`,
);

// ./test/core/store.wast:220
assert_malformed(
  () => instantiate(`(memory 1) (func (param i32) (i64.store64 (local.get 0) (i64.const 0))) `),
  `unknown operator`,
);

// ./test/core/store.wast:228
assert_malformed(
  () => instantiate(`(memory 1) (func (param i32) (f32.store32 (local.get 0) (f32.const 0))) `),
  `unknown operator`,
);

// ./test/core/store.wast:235
assert_malformed(
  () => instantiate(`(memory 1) (func (param i32) (f32.store64 (local.get 0) (f64.const 0))) `),
  `unknown operator`,
);

// ./test/core/store.wast:243
assert_malformed(
  () => instantiate(`(memory 1) (func (param i32) (f64.store32 (local.get 0) (f32.const 0))) `),
  `unknown operator`,
);

// ./test/core/store.wast:250
assert_malformed(
  () => instantiate(`(memory 1) (func (param i32) (f64.store64 (local.get 0) (f64.const 0))) `),
  `unknown operator`,
);

// ./test/core/store.wast:259
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param i32) (result i32) (i32.store (i32.const 0) (i32.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:263
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param i64) (result i64) (i64.store (i32.const 0) (i64.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:267
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param f32) (result f32) (f32.store (i32.const 0) (f32.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:271
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param f64) (result f64) (f64.store (i32.const 0) (f64.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:275
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param i32) (result i32) (i32.store8 (i32.const 0) (i32.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:279
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param i32) (result i32) (i32.store16 (i32.const 0) (i32.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:283
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param i64) (result i64) (i64.store8 (i32.const 0) (i64.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:287
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param i64) (result i64) (i64.store16 (i32.const 0) (i64.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:291
assert_invalid(
  () => instantiate(`(module (memory 1) (func (param i64) (result i64) (i64.store32 (i32.const 0) (i64.const 1))))`),
  `type mismatch`,
);

// ./test/core/store.wast:297
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty
      (i32.store)
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:306
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty
     (i32.const 0) (i32.store)
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:315
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-block
      (i32.const 0) (i32.const 0)
      (block (i32.store))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:325
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-block
      (i32.const 0)
      (block (i32.const 0) (i32.store))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:335
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-loop
      (i32.const 0) (i32.const 0)
      (loop (i32.store))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:345
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-loop
      (i32.const 0)
      (loop (i32.const 0) (i32.store))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:355
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-then
      (i32.const 0) (i32.const 0)
      (if (then (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:365
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-then
      (i32.const 0)
      (if (then (i32.const 0) (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:375
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-else
      (i32.const 0) (i32.const 0)
      (if (result i32) (then (i32.const 0)) (else (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:385
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-else
      (i32.const 0)
      (if (result i32) (then (i32.const 0)) (else (i32.const 0) (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:395
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-br
      (i32.const 0) (i32.const 0)
      (block (br 0 (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:405
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-br
      (i32.const 0)
      (block (br 0 (i32.const 0) (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:415
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-br_if
      (i32.const 0) (i32.const 0)
      (block (br_if 0 (i32.store) (i32.const 1)) )
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:425
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-br_if
      (i32.const 0)
      (block (br_if 0 (i32.const 0) (i32.store) (i32.const 1)) )
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:435
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-br_table
      (i32.const 0) (i32.const 0)
      (block (br_table 0 (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:445
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-br_table
      (i32.const 0)
      (block (br_table 0 (i32.const 0) (i32.store)))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:455
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-return
      (return (i32.store))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:464
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-return
      (return (i32.const 0) (i32.store))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:473
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-select
      (select (i32.store) (i32.const 1) (i32.const 2))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:482
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-select
      (select (i32.const 0) (i32.store) (i32.const 1) (i32.const 2))
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:491
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-address-empty-in-call
      (call 1 (i32.store))
    )
    (func (param i32) (result i32) (local.get 0))
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:501
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$type-value-empty-in-call
      (call 1 (i32.const 0) (i32.store))
    )
    (func (param i32) (result i32) (local.get 0))
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:511
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$f (param i32) (result i32) (local.get 0))
    (type $$sig (func (param i32) (result i32)))
    (table funcref (elem $$f))
    (func $$type-address-empty-in-call_indirect
      (block (result i32)
        (call_indirect (type $$sig)
          (i32.store) (i32.const 0)
        )
      )
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:527
assert_invalid(
  () => instantiate(`(module
    (memory 1)
    (func $$f (param i32) (result i32) (local.get 0))
    (type $$sig (func (param i32) (result i32)))
    (table funcref (elem $$f))
    (func $$type-value-empty-in-call_indirect
      (block (result i32)
        (call_indirect (type $$sig)
          (i32.const 0) (i32.store) (i32.const 0)
        )
      )
    )
  )`),
  `type mismatch`,
);

// ./test/core/store.wast:547
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i32.store (f32.const 0) (i32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:548
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i32.store8 (f32.const 0) (i32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:549
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i32.store16 (f32.const 0) (i32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:550
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store (f32.const 0) (i32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:551
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store8 (f32.const 0) (i64.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:552
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store16 (f32.const 0) (i64.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:553
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store32 (f32.const 0) (i64.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:554
assert_invalid(
  () => instantiate(`(module (memory 1) (func (f32.store (f32.const 0) (f32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:555
assert_invalid(
  () => instantiate(`(module (memory 1) (func (f64.store (f32.const 0) (f64.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:557
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i32.store (i32.const 0) (f32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:558
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i32.store8 (i32.const 0) (f32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:559
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i32.store16 (i32.const 0) (f32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:560
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store (i32.const 0) (f32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:561
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store8 (i32.const 0) (f64.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:562
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store16 (i32.const 0) (f64.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:563
assert_invalid(
  () => instantiate(`(module (memory 1) (func (i64.store32 (i32.const 0) (f64.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:564
assert_invalid(
  () => instantiate(`(module (memory 1) (func (f32.store (i32.const 0) (i32.const 0))))`),
  `type mismatch`,
);

// ./test/core/store.wast:565
assert_invalid(
  () => instantiate(`(module (memory 1) (func (f64.store (i32.const 0) (i64.const 0))))`),
  `type mismatch`,
);

Messung V0.5
C=81 H=100 G=90

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