blob: eeffe752f609b7322e8f940101754e95b036e47e [file] [log] [blame]
// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// dart2wasmOptions=--extra-compiler-option=--enable-experimental-wasm-interop
import 'dart:_wasm';
external Memory get missingAnnotation;
// ^
// [web] This external getter returns a memory instance, but no annotation describing it was found
@pragma('wasm:memory-type', MemoryType(limits: Limits(1, 10)))
external Memory get validDefinition;
void main() {
validDefinition.loadUint8(10);
validDefinition.size;
print(validDefinition);
// ^
// [web] WebAssembly elements may only be referenced to directly call a method on them.
print(validDefinition.fill);
// ^
// [web] This intrinsic extension member may not be torn off.
}
void invalidDynamicMemory(Memory memory) {
memory.loadUint8(10);
// ^
// [web] The receiver of this call must be a top-level variable describing the WebAssembly element.
}
int get notAConstant => 3;
void invalidNonConstantArguments() {
validDefinition.loadUint8(0, offset: 12, align: 1);
validDefinition.loadUint8(0, offset: notAConstant);
// ^
// [web] The variable 'offset' is not a constant, only constant expressions are allowed.
validDefinition.loadUint8(0, align: notAConstant);
// ^
// [web] The variable 'align' is not a constant, only constant expressions are allowed.
}