Skip to main content
このページの環境プロファイル・字句短縮・診断統一は、Storm Lua EngineのSDK統合ブランチに対応する実装の仕様です。既存の公開済みパッケージへ遡って適用されるものではありません。同じ版のSDKとStorm Minを使用してください。
@stormcat-works/stormmin が公開する関数は次の 6 つです。

CompileOptions

compile()/compileProject() に渡すオプションです。すべて省略可能です。 PropertyConfig:
numericMode を省略し、かつ numericTolerance を { abs: 0, rel: 0 } と明示した場合は exact モードとして扱われます。
pack/unpack、bit 演算、index、numeric-for の境界など exact route に到達する binding は、tolerant モードでも近似の対象になりません。 廃止済みのgeneral-expression-factoring、repeated-expression-factoring、scalar-vector-loop-synthesis、redundant-nil-fallback-eliminationは、true/falseのどちらを指定してもunknown-optimization-passになります。現在の登録は67件です。表示用のpassMetadata()は、全登録ID一覧と同じではありません。Engine SDKの全IDはpassIds()で取得できます。 numericMode: "exact"では、その意味論に合わない変換だけを無効化します。一部パスはexact-safeな部分だけを利用します。実際のdisabledPassesと数値前提を確認してください。 環境設定にはenvironment?: "game" | "extended"(既定game)とhostBindings?: string[]があります。ホスト値・関数のdot区切りパスを宣言するにはextendedが必要です。実行環境と同じ設定を渡してください。extendedと_ENV入力はトークンと行番号を保つ字句短縮を使います。

CompileResult

PassRecord:
Assumptions:
SearchStats:

ProjectCompileOptions / ProjectCompileResult

ProjectCompileOptions は CompileOptions に minify?: boolean(既定 true)を加えたものです。 ProjectCompileResult は CompileResult の統計フィールドに加えて、次を含みます。 失敗時(ok: false)は diagnostics のみが返され、code/map は含まれません。

analyze / AnalyzeResult

AnalyzeOptions: { disabledRules?: string[] } AnalyzeResult: { ok: boolean; diagnostics: Diagnostic[] } ok は内部エラーの場合にのみ false になります。Lua の構文エラーは ok: true のまま diagnostics に syntax-error として報告されます。

Diagnostic

compile()/compileProject()/analyze() すべてで共通のスキーマです。
code は安定な kebab-case 識別子で、廃止されることはあっても意味の変更・再利用はされません。message は常に英語固定で、ローカライズが必要な場合は code をキーにします。診断コードの一覧は 診断コードリファレンス を参照してください。

LuaProject

モジュールキーの命名規則は require によるモジュール分割 を参照してください。

scanProperties / passMetadata

scanProperties はソース中の property.get* 呼び出しを検出し、種類ごとのキー一覧と、動的(キーが定数でない)呼び出しの件数を返します。passMetadata は全 pass の ID と表示名のペアを返します(同じ pass ID が複数の表示名で登場することがあります)。どちらも Node.js / ブラウザの両方で利用できます。

terminate

ブラウザでは内部の Worker を終了し、保留中の呼び出しをすべて reject します。Node.js では no-op です。