소스 검색

[js] generate `value instanceof MyClass` instead of `Std.is(value, MyClass)` (#6687)

Alexander Kuzmenko 7 년 전
부모
커밋
3b3207587b
1개의 변경된 파일2개의 추가작업 그리고 0개의 파일을 삭제
  1. 2 0
      src/optimization/optimizer.ml

+ 2 - 0
src/optimization/optimizer.ml

@@ -170,6 +170,8 @@ let api_inline ctx c field params p = match c.cl_path, field, params with
 			let null = mk (TConst TNull) (mk_mono()) p in
 			let not_enum = mk (TBinop (Ast.OpEq, enum, null)) tbool p in
 			Some (mk (TBinop (Ast.OpBoolAnd, iof, not_enum)) tbool p)
+		| TTypeExpr (TClassDecl cls) when not cls.cl_interface ->
+			Some (Texpr.Builder.fcall esyntax "instanceof" [o;t] tbool p)
 		| _ ->
 			None)
 	| (["cs" | "java"],"Lib"),("nativeArray"),[{ eexpr = TArrayDecl args } as edecl; _]