// |jit-test| skip-if: !wasmComponentsEnabled()
// Basic instantiation.
wasmValidateText(`
(component
(core module)
(core instance (instantiate 0 ))
)
`);
// Invalid module index.
wasmFailValidateText(`
(component
(core module)
(core instance (instantiate 1 ))
)
`, /invalid core module index 1 /);
wasmFailValidateText(`
(component
(core module)
(core instance (instantiate 99 ))
)
`, /invalid core module index 99 /);
// Multiple instances from different modules.
wasmValidateText(`
(component
(core module)
(core module)
(core instance (instantiate 0 ))
(core instance (instantiate 1 ))
)
`);
// Multiple instances from the same module.
wasmValidateText(`
(component
(core module)
(core instance (instantiate 0 ))
(core instance (instantiate 0 ))
)
`);
// Core module with actual code, instantiated.
wasmValidateText(`
(component
(core module
(func (export "add" ) (param i32 i32) (result i32)
(i32.add (local.get 0 ) (local.get 1 ))
)
)
(core instance (instantiate 0 ))
)
`);
// Instantiation with import args: a module that imports, satisfied by another
// instance's exports.
wasmValidateText(`
(component
(core module
(func (export "f" ) (result i32) (i32.const 42 ))
)
(core module
(import "imp" "f" (func (result i32)))
)
(core instance (instantiate 0 ))
(core instance (instantiate 1 (with "imp" (instance 0 ))))
)
`);
// Invalid instance index in instantiation args.
wasmFailValidateText(`
(component
(core module
(import "imp" "f" (func))
)
(core instance (instantiate 0 (with "imp" (instance 99 ))))
)
`, /invalid core instance index/);
// Instantiation arg name doesn't match any import on the module.
// TODO(wasm-cm): Import name validation not yet implemented.
if (false ) {
wasmFailValidateText(`
(component
(core module
(func (export "f" ) (result i32) (i32.const 42 ))
)
(core module
(import "imp" "f" (func (result i32)))
)
(core instance (instantiate 0 ))
(core instance (instantiate 1 (with "nonexistent" (instance 0 ))))
)
`, /does not import /);
}
// Instance's exports don't satisfy the module's imports.
// TODO(wasm-cm): Import satisfaction validation not yet implemented.
if (false ) {
wasmFailValidateText(`
(component
(core module
(global (export "g" ) i32 (i32.const 0 ))
)
(core module
(import "imp" "f" (func (result i32)))
)
(core instance (instantiate 0 ))
(core instance (instantiate 1 (with "imp" (instance 0 ))))
)
`, /does not satisfy/);
}
// Inline exports.
// TODO(wasm-cm): Inline exports not yet implemented.
wasmFailValidateText(`
(component
(core module
(func (export "f" ))
)
(core instance (instantiate 0 ))
(alias core export 0 "f" (core func))
(core instance (export "f" (func 0 )))
)
`, /inline exports are not yet supported/);
Messung V0.5 in Prozent C=92 H=97 G=94
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland