包详细信息

@putout/processor-wasm

coderaiser447MIT4.4.0

🐊Putout processor adds ability to parse wasm files and lint js *.wast files

putout, putout-processor, wasm

自述文件

@putout/processor-wasm NPM version

WebAssembly is a low-level assembly-like language with a compact binary format that runs with near-native performance. It designed to run alongside JavaScript, allowing both to work together.

(c) MDN

🐊Putout processor adds ability to lint wasm.

Install

npm i @putout/processor-wasm -D

Usage

{
    "processors": ["wasm"]
}

Rules

convert-get-local-to-local-get

The local.get instruction returns the value of the local at index $id in the locals vector of the current function execution. The type parameter is bound to the type of the local.

(c) Wasm Reference Manual

get_local is DEPRECATED.

-get_local $a
+local.get $a

convert-set-local-to-local-set

The local.set instruction returns the value of the local at index $id in the locals vector of the current function execution. The type parameter is bound to the type of the local.

(c) Wasm Reference Manual

set_local is DEPReCATED.

-set_local $a
+local.set $a

apply-nesting

❌ Example of incorrect code

(func (param $a i32) (param $b i32)
    (get_local $a)
    (get_local $b)
    (i32.add)
)

✅ Example of correct code

(func (param $a i32) (param $b i32)
    (i32.add (get_local $a) (get_local $b))
)

remove-unused

(module
    (func $one (result i32)
        i32.const 1
    )
    (func $oneTwo (param $y) (result i32 i32)
-       (call $one (local.get $y))
+       (call $one)
        i32.const 2
    )
)

remove-useless-args

(module
-   (func $answer (result i32)
-       i32.const 0x2A
-   )
)

License

MIT