diff truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/PolyglotEngine.java @ 22196:364e3f024643

Java objects passed into globalSymbol should be converted into something that Truffle languages can understand - e.g. TruffleObject instances.
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Fri, 25 Sep 2015 14:06:44 +0200
parents 7afb5e5cc3ca
children 7abcbeb12d08
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/PolyglotEngine.java	Thu Sep 24 15:50:38 2015 +0200
+++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/PolyglotEngine.java	Fri Sep 25 14:06:44 2015 +0200
@@ -293,7 +293,13 @@
          * @see PolyglotEngine#findGlobalSymbol(java.lang.String)
          */
         public Builder globalSymbol(String name, Object obj) {
-            globals.put(name, obj);
+            final Object truffleReady;
+            if (obj instanceof Number || obj instanceof String || obj instanceof Character || obj instanceof Boolean) {
+                truffleReady = obj;
+            } else {
+                truffleReady = JavaInterop.asTruffleObject(obj);
+            }
+            globals.put(name, truffleReady);
             return this;
         }