HaxeのJavaScriptターゲット用のビルトイン

Haxe 3.0から __js__() 以外にもいくつか追加されてたらしい。知らんかった。

The Haxe Magic - Haxe

untyped __js__(js : String) : Dynamic

インラインJavaScript

var console = untyped __js__("console");
untyped __js__("console.trace()");

untyped __instanceof__(obj : Dynamic, type : Dynamic) : Bool

JavaScriptの"instanceof"。@ktz_aliasさんが、標準APIのStd.is()を使えば良いのではって言ってたけど、本当にそうだと思う。

if (untyped __instanceof([], Array)) { // if ([] instanceof Array) {
}

untyped __typeof__(obj : Dynamic) : String

JavaScriptの"typeof"。Haxe 3.1から使えるようになったっぽい。

switch (untyped __typeof__(x)) { // switch (typeof(x)) {
    case "string":
    case "number":
    case "boolean"
    default:
}

untyped __strict_eq__(a : Dynamic, b : Dynamic) : Bool

JavaScriptの"==="。Haxe 3.1から使えるようになったっぽい。

if (untyped __strict_eq__(x, "hoge")) { // x === "hoge"
}

untyped __strict_neq__(a : Dynamic, b : Dynamic) : Bool

JavaScriptの"!=="。Haxe 3.1から使えるようになったっぽい。

if (untyped __strict_neq__(x, "fuga")) {  // x !== "fuga"
}