|
45 | 45 | import com.oracle.graal.python.builtins.Builtin;
|
46 | 46 | import com.oracle.graal.python.builtins.CoreFunctions;
|
47 | 47 | import com.oracle.graal.python.builtins.PythonBuiltins;
|
| 48 | +import com.oracle.graal.python.builtins.objects.PNone; |
48 | 49 | import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
|
| 50 | +import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode; |
49 | 51 | import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
|
50 | 52 | import com.oracle.graal.python.runtime.exception.PythonErrorType;
|
51 | 53 | import com.oracle.truffle.api.TruffleLanguage.Env;
|
@@ -82,4 +84,34 @@ Object type(String name) {
|
82 | 84 | }
|
83 | 85 | }
|
84 | 86 | }
|
| 87 | + |
| 88 | + @Builtin(name = "is_function", fixedNumOfPositionalArgs = 1) |
| 89 | + @GenerateNodeFactory |
| 90 | + abstract static class IsFunctionNode extends PythonUnaryBuiltinNode { |
| 91 | + @Specialization |
| 92 | + Object check(Object object) { |
| 93 | + Env env = getContext().getEnv(); |
| 94 | + return env.isHostFunction(object); |
| 95 | + } |
| 96 | + } |
| 97 | + |
| 98 | + @Builtin(name = "is_object", fixedNumOfPositionalArgs = 1) |
| 99 | + @GenerateNodeFactory |
| 100 | + abstract static class IsObjectNode extends PythonUnaryBuiltinNode { |
| 101 | + @Specialization |
| 102 | + Object check(Object object) { |
| 103 | + Env env = getContext().getEnv(); |
| 104 | + return env.isHostObject(object); |
| 105 | + } |
| 106 | + } |
| 107 | + |
| 108 | + @Builtin(name = "is_symbol", fixedNumOfPositionalArgs = 1) |
| 109 | + @GenerateNodeFactory |
| 110 | + abstract static class IsSymbolNode extends PythonUnaryBuiltinNode { |
| 111 | + @Specialization |
| 112 | + Object check(Object object) { |
| 113 | + Env env = getContext().getEnv(); |
| 114 | + return env.isHostSymbol(object); |
| 115 | + } |
| 116 | + } |
85 | 117 | }
|
0 commit comments