diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/REngine.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/REngine.java
index 5d755314854fdd9ab12094c41ad34c8ae1000656..6160d8141098a3f27288eea7c5c5ca6b5f1ef6af 100644
--- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/REngine.java
+++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/REngine.java
@@ -332,7 +332,7 @@ final class REngine implements Engine, Engine.Timings {
         return new ExecutableNodeImpl(context.getLanguage(), list);
     }
 
-    private class ExecutableNodeImpl extends ExecutableNode {
+    private final class ExecutableNodeImpl extends ExecutableNode {
 
         @Child R2Foreign toForeignNode = R2Foreign.create();
         @Children final RNode[] statements;
@@ -685,7 +685,7 @@ final class REngine implements Engine, Engine.Timings {
             // this supports printing of non-R values (via toString for now)
             String str;
             if (result == null) {
-                str = "[external object (null)]";
+                str = "[polyglot value (null)]";
             } else if (result instanceof CharSequence) {
                 str = "[1] \"" + String.valueOf(result) + "\"";
             } else {
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java
index c6fcd9a521c2e1f545d4fb5eff9808070e8aa184..8fee931363e07a4b5d36f76730fc5e4cf98b3d97 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java
@@ -461,24 +461,15 @@ public class BasePackage extends RBuiltinPackage {
         add(FastRInterop.Export.class, FastRInteropFactory.ExportNodeGen::create);
         add(FastRInterop.Import.class, FastRInteropFactory.ImportNodeGen::create);
         add(FastRInterop.InteropNew.class, FastRInteropFactory.InteropNewNodeGen::create);
-        add(FastRInterop.IsNull.class, FastRInteropFactory.IsNullNodeGen::create);
-        add(FastRInterop.IsExecutable.class, FastRInteropFactory.IsExecutableNodeGen::create);
-        add(FastRInterop.DoCallExternal.class, FastRInteropFactory.DoCallExternalNodeGen::create);
         add(FastRInterop.IsExternal.class, FastRInteropFactory.IsExternalNodeGen::create);
-        add(FastRInterop.JavaClass.class, FastRInteropFactory.JavaClassNodeGen::create);
-        add(FastRInterop.GetJavaClass.class, FastRInteropFactory.GetJavaClassNodeGen::create);
-        add(FastRInterop.JavaClassName.class, FastRInteropFactory.JavaClassNameNodeGen::create);
+        add(FastRInterop.JavaType.class, FastRInteropFactory.JavaTypeNodeGen::create);
         add(FastRInterop.JavaAddToClasspath.class, FastRInteropFactory.JavaAddToClasspathNodeGen::create);
-        add(FastRInterop.JavaClasspath.class, FastRInteropFactory.JavaClasspathNodeGen::create);
         add(FastRInterop.JavaIsIdentical.class, FastRInteropFactory.JavaIsIdenticalNodeGen::create);
         add(FastRInterop.JavaIsAssignableFrom.class, FastRInteropFactory.JavaIsAssignableFromNodeGen::create);
         add(FastRInterop.JavaIsInstance.class, FastRInteropFactory.JavaIsInstanceNodeGen::create);
         add(FastRInterop.JavaAsTruffleObject.class, FastRInteropFactory.JavaAsTruffleObjectNodeGen::create);
-        add(FastRInterop.IsForeignArray.class, FastRInteropFactory.IsForeignArrayNodeGen::create);
-        add(FastRInterop.NewJavaArray.class, FastRInteropFactory.NewJavaArrayNodeGen::create);
         add(FastRInterop.ToJavaArray.class, FastRInteropFactory.ToJavaArrayNodeGen::create);
         add(FastRInterop.FromForeignArray.class, FastRInteropFactory.FromForeignArrayNodeGen::create);
-        add(FastRInterop.ToBoolean.class, FastRInteropFactory.ToBooleanNodeGen::create);
         add(FastRInterop.ToByte.class, FastRInteropFactory.ToByteNodeGen::create);
         add(FastRInterop.ToChar.class, FastRInteropFactory.ToCharNodeGen::create);
         add(FastRInterop.ToFloat.class, FastRInteropFactory.ToFloatNodeGen::create);
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java
index 2677032f64c39371eead62102ce392dbc3b817fd..e947151c02c39ac46ffdc78a4654980a1d264725 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsFiniteFunctions.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@ public class IsFiniteFunctions {
         @Specialization(guards = "isForeignObject(obj)")
         @TruffleBoundary
         protected byte doIsForeign(@SuppressWarnings("unused") TruffleObject obj) {
-            throw error(RError.Message.DEFAULT_METHOD_NOT_IMPLEMENTED_FOR_TYPE, "external object");
+            throw error(RError.Message.DEFAULT_METHOD_NOT_IMPLEMENTED_FOR_TYPE, "polyglot.value");
         }
 
         @Fallback
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java
index 7497a64aeea4d55b8f3beedb75f86997c422f179..46da6fa241e1133bec4f41f423170968ffd6b7d8 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java
@@ -34,7 +34,10 @@ import com.oracle.truffle.api.dsl.Cached;
 import com.oracle.truffle.api.dsl.Fallback;
 import com.oracle.truffle.api.dsl.ImportStatic;
 import com.oracle.truffle.api.dsl.Specialization;
+import com.oracle.truffle.api.interop.ForeignAccess;
+import com.oracle.truffle.api.interop.Message;
 import com.oracle.truffle.api.interop.TruffleObject;
+import com.oracle.truffle.api.nodes.Node;
 import com.oracle.truffle.api.object.DynamicObject;
 import com.oracle.truffle.api.profiles.ConditionProfile;
 import com.oracle.truffle.r.nodes.attributes.GetFixedAttributeNode;
@@ -428,6 +431,7 @@ public class IsTypeFunctions {
         }
     }
 
+    @ImportStatic({RRuntime.class, Message.class})
     @RBuiltin(name = "is.null", kind = PRIMITIVE, parameterNames = {"x"}, behavior = PURE)
     public abstract static class IsNull extends RBuiltinNode.Arg1 {
 
@@ -440,6 +444,12 @@ public class IsTypeFunctions {
             return RRuntime.LOGICAL_TRUE;
         }
 
+        @Specialization(guards = "isForeignObject(value)")
+        protected byte isType(Object value,
+                        @Cached("IS_NULL.createNode()") Node isNull) {
+            return RRuntime.asLogical(ForeignAccess.sendIsNull(isNull, (TruffleObject) value));
+        }
+
         @Fallback
         protected byte isType(@SuppressWarnings("unused") Object value) {
             return RRuntime.LOGICAL_FALSE;
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java
index 640e810a04473745043b6083ed629133b95750e5..5cc404381efee66ff90f607ecef529ca0fa1e116 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,6 +22,7 @@
  */
 package com.oracle.truffle.r.nodes.builtin.base;
 
+import com.oracle.truffle.api.CompilerDirectives;
 import static com.oracle.truffle.r.runtime.RDispatch.INTERNAL_GENERIC;
 import static com.oracle.truffle.r.runtime.builtins.RBehavior.PURE;
 import static com.oracle.truffle.r.runtime.builtins.RBuiltinKind.PRIMITIVE;
@@ -33,6 +34,7 @@ import com.oracle.truffle.api.dsl.ImportStatic;
 import com.oracle.truffle.api.dsl.Specialization;
 import com.oracle.truffle.api.interop.ForeignAccess;
 import com.oracle.truffle.api.interop.InteropException;
+import com.oracle.truffle.api.interop.Message;
 import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.api.interop.UnknownIdentifierException;
 import com.oracle.truffle.api.interop.UnsupportedMessageException;
@@ -44,6 +46,7 @@ import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
 import com.oracle.truffle.r.runtime.RInternalError;
 import com.oracle.truffle.r.runtime.RRuntime;
 import com.oracle.truffle.r.runtime.builtins.RBuiltin;
+import com.oracle.truffle.r.runtime.context.RContext;
 import com.oracle.truffle.r.runtime.data.RDataFactory;
 import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.data.RStringVector;
@@ -56,6 +59,7 @@ public abstract class Names extends RBuiltinNode.Arg1 {
 
     private final ConditionProfile hasNames = ConditionProfile.createBinaryProfile();
     @Child private GetNamesAttributeNode getNames = GetNamesAttributeNode.create();
+    @Child private Node executeNode;
 
     static {
         Casts.noCasts(Names.class);
@@ -92,12 +96,16 @@ public abstract class Names extends RBuiltinNode.Arg1 {
                 return RNull.instance;
             }
             String[] staticNames = new String[0];
-            try {
-                if (JavaInterop.isJavaObject(Object.class, obj)) {
-                    staticNames = readKeys(keysNode, toJavaClass(obj), getSizeNode, readNode);
+            if (JavaInterop.isJavaObject(obj) && !JavaInterop.isJavaObject(Class.class, obj)) {
+                if (executeNode == null) {
+                    CompilerDirectives.transferToInterpreterAndInvalidate();
+                    executeNode = insert(Message.createExecute(0).createNode());
+                }
+                try {
+                    TruffleObject clazzStatic = RContext.getInstance().toJavaStatic(obj, readNode, executeNode);
+                    staticNames = readKeys(keysNode, clazzStatic, getSizeNode, readNode);
+                } catch (UnknownIdentifierException | NoSuchFieldError | UnsupportedMessageException e) {
                 }
-            } catch (UnknownIdentifierException | NoSuchFieldError | UnsupportedMessageException e) {
-                // because it is a class ... ?
             }
             if (names.length == 0 && staticNames.length == 0) {
                 return RNull.instance;
@@ -111,11 +119,6 @@ public abstract class Names extends RBuiltinNode.Arg1 {
         }
     }
 
-    @TruffleBoundary
-    private static TruffleObject toJavaClass(TruffleObject obj) {
-        return JavaInterop.toJavaClass(obj);
-    }
-
     private static String[] readKeys(Node keysNode, TruffleObject obj, Node getSizeNode, Node readNode)
                     throws UnknownIdentifierException, InteropException, UnsupportedMessageException {
         TruffleObject keys = ForeignAccess.sendKeys(keysNode, obj);
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.byte.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.byte.Rd
deleted file mode 100644
index baaf99c8646f6d3f34ef095924431cb364407979..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.byte.Rd
+++ /dev/null
@@ -1,27 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{as.external.byte}
-\alias{as.external.byte}
-\title{Marks a R value to be converted to byte when passed over to a foreign language.}
-\usage{
-as.external.byte(value)
-}
-\arguments{
-\item{value}{a R value which can be converted to byte}
-}
-\value{
-An interop byte value. Error in case the given value can't be converted to a byte.
-}
-\description{
-Marks a R value to be converted to byte when passed over to a foreign language.
-}
-\examples{
-javaByte <- as.external.byte(123)
-
-## used to pass a java byte to a java method call
-byteClass <- new.java.class('java.lang.Byte')
-byteClass$valueOf(javaByte)
-}
-\seealso{
-\code{\link{as.external.char}}, \code{\link{as.external.float}}, \code{\link{as.external.long}}, \code{\link{as.external.short}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.char.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.char.Rd
deleted file mode 100644
index 7d0543e857c286f6cf942f46ca278c23e4d16e9c..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.char.Rd
+++ /dev/null
@@ -1,27 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{as.external.char}
-\alias{as.external.char}
-\title{Marks a R value to be converted to char when passed over to a foreign language.}
-\usage{
-as.external.char(value)
-}
-\arguments{
-\item{value}{a R value which can be converted to char}
-}
-\value{
-An interop char value. Error in case the given value can't be converted to a char.
-}
-\description{
-Marks a R value to be converted to char when passed over to a foreign language.
-}
-\examples{
-javaChar <- as.external.char(123)
-
-## used to pass a java char to a java method call
-charClass <- new.java.class('java.lang.Character')
-charClass$valueOf(javaChar)
-}
-\seealso{
-\code{\link{as.external.byte}}, \code{\link{as.external.float}}, \code{\link{as.external.long}}, \code{\link{as.external.short}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.float.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.float.Rd
deleted file mode 100644
index d291d565056ae4257c8a5651d44b29f80511d3a7..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.float.Rd
+++ /dev/null
@@ -1,27 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{as.external.float}
-\alias{as.external.float}
-\title{Marks a R value to be converted to float when passed over to a foreign language.}
-\usage{
-as.external.float(value)
-}
-\arguments{
-\item{value}{a R value which can be converted to float}
-}
-\value{
-An interop float value. Error in case the given value can't be converted to a float.
-}
-\description{
-Marks a R value to be converted to float when passed over to a foreign language.
-}
-\examples{
-javaFloat <- as.external.float(123)
-
-## used to pass a java float to a java method call
-floatClass <- new.java.class('java.lang.Float')
-floatClass$valueOf(javaFloat)
-}
-\seealso{
-\code{\link{as.external.byte}}, \code{\link{as.external.char}}, \code{\link{as.external.long}}, \code{\link{as.external.short}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.long.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.long.Rd
deleted file mode 100644
index dba6a9674177f60ffca1e93717a21bf7d1ebcd12..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.long.Rd
+++ /dev/null
@@ -1,27 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{as.external.long}
-\alias{as.external.long}
-\title{Marks a R value to be converted to long when passed over to a foreign language.}
-\usage{
-as.external.long(value)
-}
-\arguments{
-\item{value}{a R value which can be converted to long}
-}
-\value{
-An interop long value. Error in case the given value can't be converted to a long.
-}
-\description{
-Marks a R value to be converted to long when passed over to a foreign language.
-}
-\examples{
-javaLong <- as.external.long(123)
-
-## used to pass a java long to a java method call
-longClass <- new.java.class('java.lang.Long')
-longClass$valueOf(javaLong)
-}
-\seealso{
-\code{\link{as.external.byte}}, \code{\link{as.external.char}}, \code{\link{as.external.float}}, \code{\link{as.external.short}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.short.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.short.Rd
deleted file mode 100644
index a59e27d02c05aedcf709ac2f95f97c499b8e48ad..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.external.short.Rd
+++ /dev/null
@@ -1,27 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{as.external.short}
-\alias{as.external.short}
-\title{Marks a R value to be converted to short when passed over to a foreign language.}
-\usage{
-as.external.short(value)
-}
-\arguments{
-\item{value}{a R value which can be converted to short}
-}
-\value{
-An interop short value. Error in case the given value can't be converted to a short.
-}
-\description{
-Marks a R value to be converted to short when passed over to a foreign language.
-}
-\examples{
-javaShort <- as.external.short(123)
-
-## used to pass a java short to a java method call
-shortClass <- new.java.class('java.lang.Short')
-shortClass$valueOf(javaShort)
-}
-\seealso{
-\code{\link{as.external.byte}}, \code{\link{as.external.char}}, \code{\link{as.external.short}}, \code{\link{as.external.long}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.java.array.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.java.array.Rd
deleted file mode 100644
index cec497a4a38f0f761e81a497774d6ee8468fc2e8..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/as.java.array.Rd
+++ /dev/null
@@ -1,27 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{as.java.array}
-\alias{as.java.array}
-\title{Converts a R vector or list to a java array.}
-\usage{
-as.java.array(x, className)
-}
-\arguments{
-\item{x}{a vector or list}
-
-\item{className}{Optional. Determines the java array component type.}
-}
-\value{
-An external object representing a java array. Error in case the array could not be created.
-}
-\description{
-Converts a R vector or list to a java array.
-}
-\examples{
-as.java.array(c(1, 2, 3))
-as.java.array(c(1L, 2L, 3L), 'int')
-as.java.array(c(1L, 2L, 3L), 'java.lang.Integer')
-}
-\seealso{
-\code{\link{new.java.array}}, \code{\link{is.external.array}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.Rd
deleted file mode 100644
index 3912ef157cb6b5af02d16b2d52eae2b667e2fc20..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.Rd
+++ /dev/null
@@ -1,21 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{is.external}
-\alias{is.external}
-\title{Determines whether the given object is an external object or not.}
-\usage{
-is.external(obj)
-}
-\arguments{
-\item{obj}{an external object}
-}
-\value{
-TRUE in case the given value is executable, otherwise FALSE.
-}
-\description{
-Determines whether the given object is an external object or not.
-}
-\examples{
-javaClass <- new.java.class('java.util.ArrayList')
-is.external(javaClass)
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.array.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.array.Rd
deleted file mode 100644
index ddd27ee8ec3bdd962b9f77e10d9d08d3d9974618..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.array.Rd
+++ /dev/null
@@ -1,26 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{is.external.array}
-\alias{is.external.array}
-\title{Determines whether the given external object has a size. If an external object has a size, it is expected it represents an array-like structure.
-Note that even if an e.g. java ArrayList has a "size", the returned value still would be false, because it will be recognised as an array-like structure.}
-\usage{
-is.external.array(obj)
-}
-\arguments{
-\item{obj}{an external object}
-}
-\value{
-TRUE in case the given value is an array-like structure, otherwise FALSE.
-}
-\description{
-Determines whether the given external object has a size. If an external object has a size, it is expected it represents an array-like structure.
-Note that even if an e.g. java ArrayList has a "size", the returned value still would be false, because it will be recognised as an array-like structure.
-}
-\examples{
-javaClass <- new.java.class('java.util.ArrayList')
-is.external.array(javaClass)
-}
-\seealso{
-\code{\link{new.java.array}}, \code{\link{as.java.array}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.executable.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.executable.Rd
deleted file mode 100644
index a5907b740aa51961c53262f1f36d3e14f6e04fe8..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.executable.Rd
+++ /dev/null
@@ -1,21 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{is.external.executable}
-\alias{is.external.executable}
-\title{Determines whether the passed external object can be executed.}
-\usage{
-is.external.executable(value)
-}
-\arguments{
-\item{value}{an external object}
-}
-\value{
-TRUE in case the given value is executable, otherwise FALSE.
-}
-\description{
-Determines whether the passed external object can be executed.
-}
-\examples{
-javaClass <- new.java.class('java.util.Collections')
-is.external.executable(javaClass$addAll)
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.null.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.null.Rd
deleted file mode 100644
index 7bfbf3054ca46617b52166108346538ca907b7d6..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.external.null.Rd
+++ /dev/null
@@ -1,21 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{is.external.null}
-\alias{is.external.null}
-\title{Determines whether the given object (external object, or not) represents a Null value.}
-\usage{
-is.external.null(value)
-}
-\arguments{
-\item{value}{an external object}
-}
-\value{
-TRUE in case the given value is Null, otherwise FALSE.
-}
-\description{
-Determines whether the given object (external object, or not) represents a Null value.
-}
-\examples{
-javaClass <- new.java.class('java.util.Collections')
-is.external.null(javaClass)
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.polyglot.value.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.polyglot.value.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..765bd9466481f345b0a6114002577bda3567649c
--- /dev/null
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/is.polyglot.value.Rd
@@ -0,0 +1,21 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/fastrInteropt.R
+\name{is.polyglot.value}
+\alias{is.polyglot.value}
+\title{Determines whether the given object is a polyglot value or not.}
+\usage{
+is.polyglot.value(obj)
+}
+\arguments{
+\item{obj}{a polyglot value}
+}
+\value{
+TRUE in case the given value is external, otherwise FALSE.
+}
+\description{
+Determines whether the given object is a polyglot value or not.
+}
+\examples{
+javaClass <- java.type('java.util.ArrayList')
+is.polyglot.value(javaClass)
+}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.addToClasspath.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.addToClasspath.Rd
index 71bbd9225971a399b6d82e9b14a40aa7292dac24..160787e1f66d78ae94a1ea60e871ea7d78d054e3 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.addToClasspath.Rd
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.addToClasspath.Rd
@@ -18,5 +18,5 @@ Adds a class path entry to the class path.
 java.addClasspathEntry('/foo/bar.jar')
 }
 \seealso{
-\code{\link{new.java.class}}
+\code{\link{java.type}}
 }
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.class.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.class.Rd
deleted file mode 100644
index cc69669f516f6e00d66ab3d82006141d39a9387a..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.class.Rd
+++ /dev/null
@@ -1,25 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{java.class}
-\alias{java.class}
-\title{Returns the fully qualified class name for the given external object representing a java class.}
-\usage{
-java.class(class)
-}
-\arguments{
-\item{class}{an external object representing a java class.}
-}
-\value{
-fully qualified class name if the given value is an external object representing a java class.
-}
-\description{
-Returns the fully qualified class name for the given external object representing a java class.
-}
-\examples{
-javaClass <- new.java.class('java.util.ArrayList')
-javaObject <- new.external(javaClass)
-java.class(javaObject)
-}
-\seealso{
-\code{\link{new.external}}, \code{\link{new.java.class}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.type.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.type.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..9fed518212d7decac09cfc7a58b7b4dcab0ca22f
--- /dev/null
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/java.type.Rd
@@ -0,0 +1,27 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/fastrInteropt.R
+\name{java.type}
+\alias{java.type}
+\title{Access to a java type given by the fully qualified java class name. The class must be available on FastR`s interop classpath.}
+\usage{
+java.type(className, silent = FALSE)
+}
+\arguments{
+\item{silent}{logical, default FALSE. Determines whether errors should be reported or not.}
+
+\item{class}{a fully qualified java class name}
+}
+\value{
+An polyglot value representing a java type. Otherwise either NULL if silent is set to TRUE, or error in case the class name could not be determined.
+}
+\description{
+Access to a java type given by the fully qualified java class name. The class must be available on FastR`s interop classpath.
+}
+\examples{
+java.type('java.util.ArrayList')
+java.type('java.util.ArrayList')$class
+new(java.type('java.util.ArrayList'))$getClass()
+}
+\seealso{
+\code{\link{java.addClasspathEntry}}
+}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.external.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.external.Rd
deleted file mode 100644
index e1f12eec9348c0007c0f047db87c4c8db7c62bda..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.external.Rd
+++ /dev/null
@@ -1,24 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{new.external}
-\alias{new.external}
-\title{Creates a new external object from the given class.}
-\usage{
-new.external(class)
-}
-\arguments{
-\item{class}{an external object representing a class}
-}
-\value{
-An external object created from the given class. Error in case the object could not be created.
-}
-\description{
-Creates a new external object from the given class.
-}
-\examples{
-javaClass <- new.java.class('java.util.ArrayList')
-new.external(javaClass)
-}
-\seealso{
-\code{\link{java.class}}, \code{\link{new.java.class}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.java.array.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.java.array.Rd
deleted file mode 100644
index 402b78242837b89ea775596bf0ad72ba6deefc83..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.java.array.Rd
+++ /dev/null
@@ -1,27 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{new.java.array}
-\alias{new.java.array}
-\title{Creates a new java array given by the class name and length or dimensions.}
-\usage{
-new.java.array(class, dim)
-}
-\arguments{
-\item{class}{a fully qualified class name}
-
-\item{dim}{the array length or dimensions}
-}
-\value{
-An external object representing a java array. Error in case the array could not be created.
-}
-\description{
-Creates a new java array given by the class name and length or dimensions.
-}
-\examples{
-new.java.array('java.lang.Double', 10)
-new.java.array('java.lang.Double', c(2, 3))
-new.java.array('int', c(2L, 3L))
-}
-\seealso{
-\code{\link{as.java.array}}, \code{\link{is.external.array}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.java.class.Rd b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.java.class.Rd
deleted file mode 100644
index afc718272f49952b390b27cdaabb8326060bf8af..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Rd/new.java.class.Rd
+++ /dev/null
@@ -1,25 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/fastrInteropt.R
-\name{new.java.class}
-\alias{new.java.class}
-\title{Creates a java class given by the fully qualified java class name. The class must be available on FastR`s interop classpath.}
-\usage{
-new.java.class(class, silent = FALSE)
-}
-\arguments{
-\item{class}{a fully qualified java class name}
-
-\item{silent}{logical, default FALSE. Determines whether errors should be reported or not.}
-}
-\value{
-An external object representing a java class. Otherwise either NULL if silent is set to TRUE, or error in case the class name could not be determined.
-}
-\description{
-Creates a java class given by the fully qualified java class name. The class must be available on FastR`s interop classpath.
-}
-\examples{
-new.java.class('java.util.ArrayList')
-}
-\seealso{
-\code{\link{java.addClasspathEntry}}, \code{\link{new.external}}, \code{\link{java.class}}
-}
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/TruffleObjectPrinter.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/TruffleObjectPrinter.java
index 2ee892e92d92cc14873a1bbd7296c1189ffa5755..924375161074a38cbcdba627291d17dcb0e11bea 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/TruffleObjectPrinter.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/printer/TruffleObjectPrinter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,6 @@ final class TruffleObjectPrinter extends AbstractValuePrinter<TruffleObject> {
     @Override
     @TruffleBoundary
     protected void printValue(TruffleObject value, PrintContext printCtx) throws IOException {
-        printCtx.output().print("[external object]");
+        printCtx.output().print("[polyglot value]");
     }
 }
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRInterop.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRInterop.java
index 06f77fcdc7b2bc20cd6ea85ce106a5ee3938a822..badf668f96d6d03e0675857ce3de2dc205e3a359 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRInterop.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRInterop.java
@@ -28,7 +28,6 @@ import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.notLogicalNA
 import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.numericValue;
 import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.rawValue;
 import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.stringValue;
-import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.typeName;
 import static com.oracle.truffle.r.runtime.RVisibility.CUSTOM;
 import static com.oracle.truffle.r.runtime.RVisibility.OFF;
 import static com.oracle.truffle.r.runtime.RVisibility.ON;
@@ -36,7 +35,6 @@ import static com.oracle.truffle.r.runtime.RVisibility.ON;
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Array;
-import java.net.MalformedURLException;
 
 import com.oracle.truffle.api.CallTarget;
 import com.oracle.truffle.api.CompilerAsserts;
@@ -44,6 +42,8 @@ import com.oracle.truffle.api.CompilerDirectives;
 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.Truffle;
 import com.oracle.truffle.api.TruffleException;
+import com.oracle.truffle.api.TruffleFile;
+import com.oracle.truffle.api.TruffleLanguage.Env;
 import com.oracle.truffle.api.dsl.Cached;
 import com.oracle.truffle.api.dsl.Fallback;
 import com.oracle.truffle.api.dsl.ImportStatic;
@@ -96,12 +96,10 @@ import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.data.RRaw;
 import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector;
-import com.oracle.truffle.r.runtime.data.model.RAbstractListVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractLogicalVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractRawVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractVector;
-import com.oracle.truffle.r.runtime.data.nodes.GetReadonlyData;
 import com.oracle.truffle.r.runtime.interop.FastRInteropTryException;
 import com.oracle.truffle.r.runtime.interop.FastrInteropTryContextState;
 import com.oracle.truffle.r.runtime.interop.Foreign2R;
@@ -117,7 +115,7 @@ public class FastRInterop {
         isTesting = true;
     }
 
-    @RBuiltin(name = "eval.external", visibility = CUSTOM, kind = PRIMITIVE, parameterNames = {"mimeType", "source", "path"}, behavior = COMPLEX)
+    @RBuiltin(name = "eval.polyglot", visibility = CUSTOM, kind = PRIMITIVE, parameterNames = {"mimeType", "source", "path"}, behavior = COMPLEX)
     public abstract static class Eval extends RBuiltinNode.Arg3 {
 
         static {
@@ -284,47 +282,7 @@ public class FastRInterop {
         }
     }
 
-    @RBuiltin(name = "is.external.null", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
-    public abstract static class IsNull extends RBuiltinNode.Arg1 {
-
-        @Child private Node node = Message.IS_NULL.createNode();
-
-        static {
-            Casts.noCasts(IsNull.class);
-        }
-
-        @Specialization
-        public byte isNull(TruffleObject obj) {
-            return RRuntime.asLogical(ForeignAccess.sendIsNull(node, obj));
-        }
-
-        @Fallback
-        public byte isNull(@SuppressWarnings("unused") Object obj) {
-            return RRuntime.asLogical(false);
-        }
-    }
-
-    @RBuiltin(name = "is.external.executable", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
-    public abstract static class IsExecutable extends RBuiltinNode.Arg1 {
-
-        @Child private Node node = Message.IS_EXECUTABLE.createNode();
-
-        static {
-            Casts.noCasts(IsExecutable.class);
-        }
-
-        @Specialization
-        public byte isExecutable(TruffleObject obj) {
-            return RRuntime.asLogical(ForeignAccess.sendIsExecutable(node, obj));
-        }
-
-        @Fallback
-        public byte isExecutable(@SuppressWarnings("unused") Object obj) {
-            return RRuntime.asLogical(false);
-        }
-    }
-
-    @RBuiltin(name = "as.external.byte", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.interop.asByte", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
     public abstract static class ToByte extends RBuiltinNode.Arg1 {
 
         static {
@@ -347,7 +305,7 @@ public class FastRInterop {
         }
     }
 
-    @RBuiltin(name = "as.external.char", visibility = ON, kind = PRIMITIVE, parameterNames = {"value", "pos"}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.interop.asChar", visibility = ON, kind = PRIMITIVE, parameterNames = {"value", "pos"}, behavior = COMPLEX)
     public abstract static class ToChar extends RBuiltinNode.Arg2 {
 
         static {
@@ -390,7 +348,7 @@ public class FastRInterop {
         }
     }
 
-    @RBuiltin(name = "as.external.float", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.interop.asFloat", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
     public abstract static class ToFloat extends RBuiltinNode.Arg1 {
 
         static {
@@ -413,7 +371,7 @@ public class FastRInterop {
         }
     }
 
-    @RBuiltin(name = "as.external.long", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.interop.asLong", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
     public abstract static class ToLong extends RBuiltinNode.Arg1 {
 
         static {
@@ -436,7 +394,7 @@ public class FastRInterop {
         }
     }
 
-    @RBuiltin(name = "as.external.short", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.interop.asShort", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
     public abstract static class ToShort extends RBuiltinNode.Arg1 {
 
         static {
@@ -463,111 +421,59 @@ public class FastRInterop {
         casts.arg("value").mustBe(integerValue().or(doubleValue().or(rawValue())), RError.Message.INVALID_ARGUMENT_OF_TYPE, "value", Predef.typeName()).asVector().mustBe(singleElement()).findFirst();
     }
 
-    @RBuiltin(name = ".fastr.interop.toBoolean", visibility = ON, kind = PRIMITIVE, parameterNames = {"value"}, behavior = COMPLEX)
-    public abstract static class ToBoolean extends RBuiltinNode.Arg1 {
-
-        static {
-            Casts casts = new Casts(ToBoolean.class);
-            casts.arg("value").mustBe(logicalValue()).asLogicalVector().mustBe(singleElement()).findFirst().mustBe(notLogicalNA()).map(Predef.toBoolean());
-        }
-
-        @Specialization
-        public boolean toBoolean(boolean value) {
-            return value;
-        }
-    }
-
-    @RBuiltin(name = "new.java.class", visibility = ON, kind = PRIMITIVE, parameterNames = {"class", "silent"}, behavior = COMPLEX)
-    public abstract static class JavaClass extends RBuiltinNode.Arg2 {
-
-        private static final Object accessError = new Object();
+    @RBuiltin(name = "java.type", visibility = ON, kind = PRIMITIVE, parameterNames = {"className", "silent"}, behavior = COMPLEX)
+    public abstract static class JavaType extends RBuiltinNode.Arg2 {
 
         static {
-            Casts casts = new Casts(JavaClass.class);
-            casts.arg("class").mustBe(stringValue()).asStringVector().mustBe(Predef.singleElement()).findFirst();
+            Casts casts = new Casts(JavaType.class);
+            casts.arg("className").mustBe(stringValue()).asStringVector().mustBe(Predef.singleElement()).findFirst();
             casts.arg("silent").mapMissing(Predef.constant(RRuntime.LOGICAL_FALSE)).mustBe(logicalValue().or(Predef.nullValue())).asLogicalVector().mustBe(singleElement()).findFirst().mustBe(
                             notLogicalNA()).map(Predef.toBoolean());
         }
 
-        @Specialization
-        @TruffleBoundary
-        public TruffleObject javaClass(TruffleObject obj, boolean silent) {
-            if (JavaInterop.isJavaObject(obj)) {
-                return JavaInterop.toJavaClass(obj);
-            }
-            throw error(RError.Message.GENERIC, "unsupported type " + obj.getClass().getName());
+        @SuppressWarnings("unused")
+        @Specialization(guards = {"isClass(className)", "className.equals(cachedClazz)"}, limit = "10")
+        public TruffleObject javaClassCached(String className, boolean silent,
+                        @Cached("className") String cachedClazz,
+                        @Cached("getJavaClass(className, silent)") Object result,
+                        @Cached("create()") BranchProfile interopExceptionProfile) {
+            return javaClassToTruffleObject(className, result, interopExceptionProfile);
         }
 
-        protected boolean isClass(Object obj) {
-            return obj != null && obj instanceof Class;
+        @Specialization(replaces = "javaClassCached")
+        public TruffleObject javaClass(String className, boolean silent,
+                        @Cached("create()") BranchProfile interopExceptionProfile) {
+            Object result = getJavaClass(className, silent);
+            return javaClassToTruffleObject(className, result, interopExceptionProfile);
         }
 
-        @Specialization(guards = {"isClass(clazz)", "clazz.equals(cachedClazz)"}, limit = "10")
-        public TruffleObject javaClassCached(String clazz, boolean silent,
-                        @Cached("clazz") String cachedClazz,
-                        @Cached("getJavaClass(clazz, silent)") Object result,
-                        @Cached("create()") BranchProfile interopExceptionProfile) {
-            return javaClassToTruffleObject(clazz, result, interopExceptionProfile);
+        protected boolean isClass(Object obj) {
+            return obj != null && obj instanceof Class;
         }
 
-        @Specialization(replaces = "javaClassCached")
-        public TruffleObject javaClass(String clazz, boolean silent,
-                        @Cached("create()") BranchProfile interopExceptionProfile) {
-            Object result = getJavaClass(clazz, silent);
-            return javaClassToTruffleObject(clazz, result, interopExceptionProfile);
+        protected Object getJavaClass(String clazz, boolean silent) {
+            return classForName(clazz, silent);
         }
 
         @TruffleBoundary
-        private TruffleObject javaClassToTruffleObject(String clazz, Object result, BranchProfile interopExceptionProfile) {
+        protected TruffleObject javaClassToTruffleObject(String clazz, Object result, BranchProfile interopExceptionProfile) {
             if (result == RNull.instance) {
                 return RNull.instance;
             }
-            if (result instanceof Class<?>) {
+            if (result instanceof TruffleObject) {
+                return (TruffleObject) result;
+            } else if (result instanceof Class<?>) {
                 return JavaInterop.asTruffleObject(result);
-            } else if (result == accessError) {
-                CompilerDirectives.transferToInterpreter();
-                throw error(RError.Message.GENERIC, "error while accessing Java class: " + clazz);
             } else {
                 interopExceptionProfile.enter();
                 if (result instanceof RuntimeException) {
                     throw RError.handleInteropException(this, (RuntimeException) result);
                 } else {
-                    assert result instanceof Throwable;
+                    assert result instanceof Throwable : "class " + clazz + " resulted into " + (result == null ? "NULL" : result.getClass().getName());
                     throw RError.handleInteropException(this, new RuntimeException((Throwable) result));
                 }
             }
         }
-
-        protected static Object getJavaClass(String className, boolean silent) {
-            Class<?> clazz = getPrimitiveClass(className);
-            if (clazz != null) {
-                return clazz;
-            }
-            return loadClass(className, silent);
-        }
-
-        @TruffleBoundary
-        private static Object loadClass(String clazz, boolean silent) {
-            try {
-                Class<?> result = RContext.getInstance().loadClass(clazz);
-                if (result == null) {
-                    // not found
-                    if (silent) {
-                        return RNull.instance;
-                    } else {
-                        return new ClassNotFoundException(clazz + " not found");
-                    }
-                }
-                return result;
-            } catch (SecurityException | IllegalArgumentException e) {
-                return accessError;
-            } catch (RuntimeException e) {
-                if (silent) {
-                    return RNull.instance;
-                }
-                return e;
-            }
-        }
     }
 
     @RBuiltin(name = "java.addToClasspath", visibility = OFF, kind = PRIMITIVE, parameterNames = {"value", "silent"}, behavior = COMPLEX)
@@ -582,112 +488,24 @@ public class FastRInterop {
 
         @Specialization
         @TruffleBoundary
-        public TruffleObject addEntries(RAbstractStringVector value, boolean silent) {
-            try {
-                RContext ctx = RContext.getInstance();
-                String[] entriesArr = new String[value.getLength()];
-                for (int i = 0; i < value.getLength(); i++) {
-                    entriesArr[i] = value.getDataAt(i);
-                }
-                ctx.addInteropClasspathEntries(entriesArr);
-                return value;
-            } catch (MalformedURLException e) {
-                if (silent) {
-                    return RNull.instance;
-                }
-                throw error(RError.Message.GENERIC, "error while adding classpath entry: " + e.getMessage());
-            }
-        }
-    }
-
-    @RBuiltin(name = "java.classpath", visibility = ON, kind = PRIMITIVE, parameterNames = {}, behavior = COMPLEX)
-    public abstract static class JavaClasspath extends RBuiltinNode.Arg0 {
-
-        static {
-            Casts.noCasts(JavaClasspath.class);
-        }
-
-        @Specialization
-        @TruffleBoundary
-        public RAbstractStringVector getEntries() {
-            RContext ctx = RContext.getInstance();
-            String[] paths = ctx.getInteropClasspathEntries();
-            return RDataFactory.createStringVector(paths, true);
-        }
-    }
-
-    @ImportStatic({RRuntime.class})
-    @RBuiltin(name = "java.class", visibility = ON, kind = PRIMITIVE, parameterNames = {"obj", "getClassName"}, behavior = COMPLEX)
-    public abstract static class JavaClassName extends RBuiltinNode.Arg2 {
-
-        static {
-            Casts casts = new Casts(JavaClassName.class);
-            casts.arg("getClassName").mapMissing(Predef.constant(RRuntime.LOGICAL_FALSE)).mustBe(logicalValue().or(Predef.nullValue())).asLogicalVector().mustBe(singleElement()).findFirst().mustBe(
-                            notLogicalNA()).map(Predef.toBoolean());
-        }
+        public TruffleObject addEntries(@SuppressWarnings("unused") RAbstractStringVector value, @SuppressWarnings("unused") boolean silent) {
+            Env env = RContext.getInstance().getEnv();
+
+            for (int i = 0; i < value.getLength(); i++) {
+                TruffleFile file = env.getTruffleFile(value.getDataAt(i));
+                try {
+                    env.addToHostClassPath(file);
+                } catch (Exception e) {
+                    if (silent) {
+                        return RNull.instance;
+                    }
+                    throw error(RError.Message.GENERIC, "error while adding classpath entry: " +
+                                    e.getMessage());
 
-        @Specialization(guards = {"isJavaObject(obj)"})
-        @TruffleBoundary
-        public Object javaClassName(Object obj, boolean getClassName) {
-            if (isJavaObject(obj)) {
-                Object o = JavaInterop.asJavaObject(Object.class, (TruffleObject) obj);
-                if (o == null) {
-                    return RNull.instance;
-                }
-                if (getClassName && o instanceof Class) {
-                    return ((Class<?>) o).getName();
                 }
-                return o.getClass().getName();
-            } else {
-                throw error(RError.Message.GENERIC, "unsupported type " + obj.getClass().getName());
             }
-        }
-
-        protected boolean isJavaObject(Object obj) {
-            return RRuntime.isForeignObject(obj) && JavaInterop.isJavaObject(obj);
-        }
-
-        @Fallback
-        public String javaClassName(@SuppressWarnings("unused") Object obj,
-                        @SuppressWarnings("unused") Object getClassName) {
-            throw error(RError.Message.GENERIC, "unsupported type " + obj.getClass().getName());
-        }
-    }
-
-    @ImportStatic({Message.class, RRuntime.class})
-    @RBuiltin(name = "is.external.array", visibility = ON, kind = PRIMITIVE, parameterNames = {"obj"}, behavior = COMPLEX)
-    public abstract static class IsForeignArray extends RBuiltinNode.Arg1 {
-
-        static {
-            Casts.noCasts(IsForeignArray.class);
-        }
 
-        @Specialization(guards = {"isForeignObject(obj)"})
-        public byte isArray(TruffleObject obj,
-                        @Cached("HAS_SIZE.createNode()") Node hasSize) {
-            return RRuntime.asLogical(ForeignAccess.sendHasSize(hasSize, obj));
-        }
-
-        @Fallback
-        public byte isArray(@SuppressWarnings("unused") Object obj) {
-            return RRuntime.LOGICAL_FALSE;
-        }
-    }
-
-    @RBuiltin(name = ".fastr.interop.getJavaClass", visibility = ON, kind = PRIMITIVE, parameterNames = {"obj"}, behavior = COMPLEX)
-    public abstract static class GetJavaClass extends RBuiltinNode.Arg1 {
-
-        static {
-            Casts.noCasts(GetJavaClass.class);
-        }
-
-        @Specialization
-        @TruffleBoundary
-        public TruffleObject javaClass(TruffleObject obj) {
-            if (JavaInterop.isJavaObject(obj)) {
-                return JavaInterop.toJavaClass(obj);
-            }
-            throw error(RError.Message.GENERIC, "unsupported type " + obj.getClass().getName());
+            return RNull.instance;
         }
     }
 
@@ -706,7 +524,7 @@ public class FastRInterop {
 
         @Fallback
         @TruffleBoundary
-        public byte isIdentical(@SuppressWarnings("unused") Object x1, @SuppressWarnings("unused") Object x2) {
+        public byte isIdentical(Object x1, Object x2) {
             throw error(RError.Message.GENERIC, String.format("unsupported types: %s, %s", x1.getClass().getName(), x2.getClass().getName()));
         }
 
@@ -770,7 +588,7 @@ public class FastRInterop {
 
         @Fallback
         @TruffleBoundary
-        public byte asTruffleObject(@SuppressWarnings("unused") Object x) {
+        public byte asTruffleObject(Object x) {
             throw error(RError.Message.GENERIC, String.format("unsupported type: %s", x.getClass().getName()));
         }
     }
@@ -794,7 +612,7 @@ public class FastRInterop {
 
         @Fallback
         @TruffleBoundary
-        public byte isAssignable(@SuppressWarnings("unused") Object x1, @SuppressWarnings("unused") Object x2) {
+        public byte isAssignable(Object x1, Object x2) {
             throw error(RError.Message.GENERIC, String.format("unsupported types: %s, %s", x1.getClass().getName(), x2.getClass().getName()));
         }
 
@@ -845,7 +663,7 @@ public class FastRInterop {
 
         @Fallback
         @TruffleBoundary
-        public byte isInstance(@SuppressWarnings("unused") Object x1, @SuppressWarnings("unused") Object x2) {
+        public byte isInstance(Object x1, Object x2) {
             throw error(RError.Message.GENERIC, String.format("unsupported types: %s, %s", x1.getClass().getName(), x2.getClass().getName()));
         }
 
@@ -862,44 +680,12 @@ public class FastRInterop {
         }
     }
 
-    @RBuiltin(name = "new.java.array", visibility = ON, kind = PRIMITIVE, parameterNames = {"class", "dim"}, behavior = COMPLEX)
-    public abstract static class NewJavaArray extends RBuiltinNode.Arg2 {
-
-        static {
-            Casts casts = new Casts(NewJavaArray.class);
-            casts.arg("class").mustBe(stringValue()).asStringVector().mustBe(Predef.singleElement()).findFirst();
-            casts.arg("dim").mustBe(integerValue().or(doubleValue()), RError.Message.INVALID_ARGUMENT_OF_TYPE, "dim", typeName()).asIntegerVector();
-        }
-
-        @Specialization
-        @TruffleBoundary
-        public Object newArray(String clazz, int length) {
-            return JavaInterop.asTruffleObject(Array.newInstance(getClazz(clazz), length));
-        }
-
-        @Specialization
-        @TruffleBoundary
-        public Object newArray(String clazz, RAbstractIntVector dim) {
-            int[] dima = new int[dim.getLength()];
-            for (int i = 0; i < dima.length; i++) {
-                dima[i] = dim.getDataAt(i);
-            }
-            return JavaInterop.asTruffleObject(Array.newInstance(getClazz(clazz), dima));
-        }
-
-        private Class<?> getClazz(String className) throws RError {
-            Class<?> result = classForName(className);
-            if (result == null) {
-                throw error(RError.Message.GENERIC, "cannot access Java class %s", className);
-            }
-            return result;
-        }
-    }
-
     @ImportStatic({Message.class, RRuntime.class})
-    @RBuiltin(name = "as.java.array", visibility = ON, kind = PRIMITIVE, parameterNames = {"x", "className", "flat"}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.interop.asJavaArray", visibility = ON, kind = PRIMITIVE, parameterNames = {"x", "className", "flat"}, behavior = COMPLEX)
     public abstract static class ToJavaArray extends RBuiltinNode.Arg3 {
 
+        BranchProfile interopExceptionProfile = BranchProfile.create();
+
         static {
             Casts casts = new Casts(ToJavaArray.class);
             casts.arg("x").castForeignObjects(false).mustNotBeMissing();
@@ -908,6 +694,8 @@ public class FastRInterop {
                             notLogicalNA()).map(Predef.toBoolean());
         }
 
+        abstract Object execute(Object arg1, Object arg2, Object arg3);
+
         @Specialization
         @TruffleBoundary
         public Object toArray(RAbstractLogicalVector vec, @SuppressWarnings("unused") RMissing className, boolean flat,
@@ -1052,6 +840,7 @@ public class FastRInterop {
 
         private static Object toArray(RAbstractVector vec, boolean flat, Class<?> clazz, VecElementToArray vecToArray) throws IllegalArgumentException, ArrayIndexOutOfBoundsException {
             int[] dims = getDim(flat, vec);
+            // TODO need ForeignAccess.sendNew(multiDimArrayClass, dims)
             final Object array = Array.newInstance(clazz, dims);
             for (int d = 0; d < dims.length; d++) {
                 int dim = dims[d];
@@ -1116,12 +905,21 @@ public class FastRInterop {
             throw error(RError.Message.GENERIC, "unsupported type");
         }
 
+        @TruffleBoundary
         private Class<?> getClazz(String className) throws RError {
-            Class<?> result = classForName(className);
-            if (result == null) {
-                throw error(RError.Message.GENERIC, "cannot access Java class %s", className);
+            Object result = classForName(className);
+
+            if (result instanceof TruffleObject && JavaInterop.isJavaObject(Class.class, (TruffleObject) result)) {
+                return JavaInterop.asJavaObject(Class.class, (TruffleObject) result);
+            } else {
+                interopExceptionProfile.enter();
+                if (result instanceof RuntimeException) {
+                    throw RError.handleInteropException(this, (RuntimeException) result);
+                } else {
+                    assert result instanceof Throwable : "class " + className + " resulted into " + (result == null ? "NULL" : result.getClass().getName());
+                    throw RError.handleInteropException(this, new RuntimeException((Throwable) result));
+                }
             }
-            return result;
         }
 
         protected boolean isJavaObject(TruffleObject obj) {
@@ -1169,7 +967,7 @@ public class FastRInterop {
     }
 
     @ImportStatic({Message.class, RRuntime.class})
-    @RBuiltin(name = "new.external", visibility = ON, kind = PRIMITIVE, parameterNames = {"class", "..."}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.interop.new", visibility = ON, kind = PRIMITIVE, parameterNames = {"class", "..."}, behavior = COMPLEX)
     public abstract static class InteropNew extends RBuiltinNode.Arg2 {
 
         static {
@@ -1189,7 +987,33 @@ public class FastRInterop {
                 }
                 Object result = ForeignAccess.sendNew(sendNew, clazz, argValues);
                 return foreign2R.execute(result);
-            } catch (IllegalStateException | SecurityException | IllegalArgumentException | UnsupportedTypeException | ArityException | UnsupportedMessageException e) {
+            } catch (UnsupportedTypeException ute) {
+                if (JavaInterop.isJavaObject(Class.class, clazz)) {
+                    Class<?> cls = JavaInterop.asJavaObject(Class.class, clazz);
+                    if (cls.isArray()) {
+                        // TODO temporary hot fix
+                        // need ForeignAccess.sendNew(multiDimArrayClass, dims)
+                        Object arg0 = args.getArgument(0);
+                        if (arg0 instanceof RAbstractIntVector) {
+                            RAbstractIntVector vec = (RAbstractIntVector) arg0;
+                            int[] dims = new int[vec.getLength()];
+
+                            for (int i = 0; i < vec.getLength(); i++) {
+                                Array.setInt(dims, i, vec.getDataAt(i));
+                            }
+                            cls = cls.getComponentType();
+                            while (cls.isArray()) {
+                                cls = cls.getComponentType();
+                            }
+
+                            Object a = Array.newInstance(cls, dims);
+                            return JavaInterop.asTruffleObject(a);
+                        }
+                    }
+                }
+                String msg = isTesting ? "error during Java object instantiation" : "error during Java object instantiation: " + ute.getMessage();
+                throw error(RError.Message.GENERIC, msg);
+            } catch (IllegalStateException | SecurityException | IllegalArgumentException | ArityException | UnsupportedMessageException e) {
                 String msg = isTesting ? "error during Java object instantiation" : "error during Java object instantiation: " + e.getMessage();
                 throw error(RError.Message.GENERIC, msg);
             } catch (RuntimeException e) {
@@ -1204,7 +1028,7 @@ public class FastRInterop {
     }
 
     @ImportStatic(RRuntime.class)
-    @RBuiltin(name = "is.external", visibility = ON, kind = PRIMITIVE, parameterNames = {"obj"}, behavior = COMPLEX)
+    @RBuiltin(name = "is.polyglot.value", visibility = ON, kind = PRIMITIVE, parameterNames = {"obj"}, behavior = COMPLEX)
     public abstract static class IsExternal extends RBuiltinNode.Arg1 {
 
         static {
@@ -1222,79 +1046,30 @@ public class FastRInterop {
         }
     }
 
-    private static Class<?> classForName(String className) {
-        Class<?> clazz = getPrimitiveClass(className);
-        if (clazz != null) {
-            return clazz;
-        }
-        return RContext.getInstance().loadClass(className);
-    }
-
-    private static Class<?> getPrimitiveClass(String className) {
-        if (Boolean.TYPE.getName().equals(className)) {
-            return Boolean.TYPE;
-        } else if (Byte.TYPE.getName().equals(className)) {
-            return Byte.TYPE;
-        } else if (Character.TYPE.getName().equals(className)) {
-            return Character.TYPE;
-        } else if (Double.TYPE.getName().equals(className)) {
-            return Double.TYPE;
-        } else if (Float.TYPE.getName().equals(className)) {
-            return Float.TYPE;
-        } else if (Integer.TYPE.getName().equals(className)) {
-            return Integer.TYPE;
-        } else if (Long.TYPE.getName().equals(className)) {
-            return Long.TYPE;
-        } else if (Short.TYPE.getName().equals(className)) {
-            return Short.TYPE;
-        }
-        return null;
+    private static Object classForName(String className) {
+        return classForName(className, false);
     }
 
-    @RBuiltin(name = "do.call.external", visibility = ON, kind = PRIMITIVE, parameterNames = {"receiver", "what", "args"}, behavior = COMPLEX)
-    public abstract static class DoCallExternal extends RBuiltinNode.Arg3 {
-
-        static {
-            Casts casts = new Casts(DoCallExternal.class);
-            casts.arg("args").mustBe(RAbstractListVector.class, RError.Message.GENERIC, "third argument must be a list");
-        }
-
-        @Child private GetReadonlyData.ListData getDataNode;
-
-        protected Node createInvoke(int nargs) {
-            return Message.createInvoke(nargs).createNode();
-        }
-
-        @Specialization
-        public Object invoke(TruffleObject obj, String what, RAbstractListVector args,
-                        @Cached("create()") Foreign2R foreign2R,
-                        @Cached("create()") R2Foreign r2Foreign,
-                        @Cached("createInvoke(args.getLength())") Node invokeNode) {
-
-            if (getDataNode == null) {
-                CompilerDirectives.transferToInterpreterAndInvalidate();
-                getDataNode = insert(GetReadonlyData.ListData.create());
-            }
-
-            Object[] argValues = getDataNode.execute(args);
-            for (int i = 0; i < argValues.length; i++) {
-                argValues[i] = r2Foreign.execute(argValues[i]);
-            }
+    private static Object classForName(String className, boolean silent) {
+        Env env = RContext.getInstance().getEnv();
+        if (env != null && env.isHostLookupAllowed()) {
             try {
-                return foreign2R.execute(ForeignAccess.sendInvoke(invokeNode, obj, what, argValues));
-            } catch (UnsupportedTypeException e) {
-                throw error(RError.Message.GENERIC, "Invalid argument types provided");
-            } catch (ArityException e) {
-                throw error(RError.Message.INVALID_ARG_NUMBER, what);
-            } catch (UnknownIdentifierException e) {
-                throw error(RError.Message.UNKNOWN_FUNCTION, what);
-            } catch (UnsupportedMessageException e) {
-                throw error(RError.Message.MUST_BE_STRING_OR_FUNCTION, "what");
-            } catch (RuntimeException e) {
-                CompilerDirectives.transferToInterpreter();
-                throw error(RError.Message.GENERIC, e.getMessage());
+                Object found = env.lookupHostSymbol(demangle(className));
+                if (found != null) {
+                    return found;
+                }
+            } catch (Exception ex) {
             }
+        } else {
+            throw RError.error(RError.SHOW_CALLER, RError.Message.GENERIC,
+                            "Java Interop is not available, please run FastR with --jvm, e.g. '$bin/R --jvm CMD INSTALL' or '$bin/Rscript --jvm myscript.R'");
         }
+        return silent ? RNull.instance : new ClassNotFoundException(className + " not found");
+    }
+
+    @TruffleBoundary
+    private static String demangle(String className) {
+        return className.replaceAll("/", ".");
     }
 
     @RBuiltin(name = ".fastr.interop.try", kind = PRIMITIVE, parameterNames = {"function", "check"}, behavior = COMPLEX)
@@ -1345,12 +1120,12 @@ public class FastRInterop {
         }
 
         @Specialization
-        public Object getException(VirtualFrame frame, byte silent, RMissing callerFor) {
-            return getException(frame, silent, (String) null);
+        public Object getException(byte silent, @SuppressWarnings("unused") RMissing callerFor) {
+            return getException(silent, (String) null);
         }
 
         @Specialization
-        public Object getException(VirtualFrame frame, byte silent, String showCallerOf) {
+        public Object getException(byte silent, String showCallerOf) {
             Throwable t = getInteropTryState().lastException;
             if (t != null) {
                 CompilerDirectives.transferToInterpreter();
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/methods/R/methods_overrides.R b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/methods/R/methods_overrides.R
index 83b0473a58d44dcfa8d72db4ca09781807a45c9b..0eb43ee900daf5ef38ee37c0e1c4c81d6148feb8 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/methods/R/methods_overrides.R
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/methods/R/methods_overrides.R
@@ -26,13 +26,13 @@ eval(expression({
 
 new <- function (Class, ...) {
     if(is.character(Class)) {
-        javaClass <- new.java.class(Class, silent=TRUE)
+        javaClass <- java.type(Class, silent=TRUE)
         if(!is.null(javaClass)) {
             Class <- javaClass
         }
     }
-    if(is.external(Class)) {
-        new.external(Class, ...)
+    if(is.polyglot.value(Class)) {
+        .fastr.interop.new(Class, ...)
     } else {
         ClassDef <- getClass(Class, where = topenv(parent.frame()))
         value <- .Call(C_new_object, ClassDef)
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java
index 55e0a68fa0e4f6cac82e6a4dc0a3538fd00858c4..345566a4bf29c736bfa1e655cfe45eac7d398382 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ExtractVectorNode.java
@@ -49,6 +49,7 @@ import com.oracle.truffle.r.nodes.unary.FirstStringNode;
 import com.oracle.truffle.r.runtime.RError;
 import com.oracle.truffle.r.runtime.RRuntime;
 import com.oracle.truffle.r.runtime.RType;
+import com.oracle.truffle.r.runtime.context.RContext;
 import com.oracle.truffle.r.runtime.data.RPairList;
 import com.oracle.truffle.r.runtime.data.RLogical;
 import com.oracle.truffle.r.runtime.data.RMissing;
@@ -367,6 +368,7 @@ public abstract class ExtractVectorNode extends RBaseNode {
 
         @Child private Node foreignRead = com.oracle.truffle.api.interop.Message.READ.createNode();
         @Child private Node classForeignRead;
+        @Child private Node executeNode;
         @Child private Node keyInfoNode;
 
         public Object execute(Object position, TruffleObject object) throws InteropException {
@@ -382,21 +384,32 @@ public abstract class ExtractVectorNode extends RBaseNode {
             int info = ForeignAccess.sendKeyInfo(keyInfoNode, object, pos);
             if (KeyInfo.isReadable(info) || hasSize(object)) {
                 return ForeignAccess.sendRead(foreignRead, object, pos);
-            } else if (pos instanceof String && !KeyInfo.isExisting(info) && JavaInterop.isJavaObject(Object.class, object)) {
+            } else if (pos instanceof String && !KeyInfo.isExisting(info) && JavaInterop.isJavaObject(object) && !JavaInterop.isJavaObject(Class.class, object)) {
                 if (classForeignRead == null) {
                     CompilerDirectives.transferToInterpreterAndInvalidate();
                     classForeignRead = insert(com.oracle.truffle.api.interop.Message.READ.createNode());
                 }
-                return ForeignAccess.sendRead(classForeignRead, toJavaClass(object), pos);
+                TruffleObject clazz = RContext.getInstance().toJavaStatic(object, classForeignRead, getExecuteNode());
+                try {
+                    return ForeignAccess.sendRead(classForeignRead, clazz, pos);
+                } catch (InteropException e) {
+                    if (KeyInfo.isReadable(ForeignAccess.sendKeyInfo(keyInfoNode, clazz, pos))) {
+                        CompilerDirectives.transferToInterpreter();
+                        error(RError.Message.GENERIC, "error in foreign access: " + pos + " " + e.getMessage());
+                    }
+                }
             }
             CompilerDirectives.transferToInterpreter();
             throw error(RError.Message.GENERIC, "invalid index/identifier during foreign access: " + pos);
         }
-    }
 
-    @TruffleBoundary
-    private static TruffleObject toJavaClass(TruffleObject obj) {
-        return JavaInterop.toJavaClass(obj);
+        private Node getExecuteNode() {
+            if (executeNode == null) {
+                CompilerDirectives.transferToInterpreterAndInvalidate();
+                executeNode = insert(com.oracle.truffle.api.interop.Message.createExecute(0).createNode());
+            }
+            return executeNode;
+        }
     }
 
     @SuppressWarnings("unused")
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java
index 5dfaade26ba9128699e04c2f9ad137ac7448fbc0..5583342bf776f40a293cd0d64756b3e3db5c26b1 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/ReplaceVectorNode.java
@@ -49,6 +49,7 @@ import com.oracle.truffle.r.runtime.RError;
 import com.oracle.truffle.r.runtime.RInternalError;
 import com.oracle.truffle.r.runtime.RRuntime;
 import com.oracle.truffle.r.runtime.RType;
+import com.oracle.truffle.r.runtime.context.RContext;
 import com.oracle.truffle.r.runtime.data.RList;
 import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.data.RPairList;
@@ -293,6 +294,8 @@ public abstract class ReplaceVectorNode extends RBaseNode {
         @Child private Node foreignWrite = com.oracle.truffle.api.interop.Message.WRITE.createNode();
         @Child private Node classForeignWrite;
         @Child private R2Foreign r2Foreign = R2Foreign.create();
+        @Child private Node executeNode;
+        @Child private Node readNode;
 
         private void execute(Object position, TruffleObject object, Object writtenValue) throws InteropException {
             Object pos = extractPosition(position);
@@ -310,24 +313,35 @@ public abstract class ReplaceVectorNode extends RBaseNode {
             if (KeyInfo.isWritable(info) || hasSize(object)) {
                 ForeignAccess.sendWrite(foreignWrite, object, pos, value);
                 return;
-            } else if (pos instanceof String && !KeyInfo.isExisting(info) && JavaInterop.isJavaObject(Object.class, object)) {
+            } else if (pos instanceof String && !KeyInfo.isExisting(info) && JavaInterop.isJavaObject(object) && !JavaInterop.isJavaObject(Class.class, object)) {
                 if (classForeignWrite == null) {
                     CompilerDirectives.transferToInterpreterAndInvalidate();
                     classForeignWrite = insert(com.oracle.truffle.api.interop.Message.WRITE.createNode());
                 }
-                ForeignAccess.sendWrite(classForeignWrite, toJavaClass(object), pos, value);
-                return;
+                if (executeNode == null) {
+                    CompilerDirectives.transferToInterpreterAndInvalidate();
+                    executeNode = insert(com.oracle.truffle.api.interop.Message.createExecute(0).createNode());
+                }
+                if (readNode == null) {
+                    CompilerDirectives.transferToInterpreterAndInvalidate();
+                    readNode = insert(com.oracle.truffle.api.interop.Message.READ.createNode());
+                }
+                TruffleObject classStatic = RContext.getInstance().toJavaStatic(object, readNode, executeNode);
+                try {
+                    ForeignAccess.sendWrite(classForeignWrite, classStatic, pos, value);
+                    return;
+                } catch (InteropException e) {
+                    if (KeyInfo.isWritable(ForeignAccess.sendKeyInfo(keyInfoNode, classStatic, pos))) {
+                        CompilerDirectives.transferToInterpreter();
+                        error(RError.Message.GENERIC, "error in foreign access: " + pos + " " + e.getMessage());
+                    }
+                }
             }
             CompilerDirectives.transferToInterpreter();
             throw error(RError.Message.GENERIC, "invalid index/identifier during foreign access: " + pos);
         }
     }
 
-    @TruffleBoundary
-    private static TruffleObject toJavaClass(TruffleObject obj) {
-        return JavaInterop.toJavaClass(obj);
-    }
-
     @SuppressWarnings("unused")
     @Fallback
     protected Object access(Object object, Object[] positions, Object value) {
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java
index 3d7cbc9c5ef630445562ea8bfc3005d0aa7fcbe0..4efe5bce102cfbbb932545279d4370bc6244f910 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@ public abstract class ClassHierarchyNode extends UnaryNode {
         return false;
     }
 
-    private static final RStringVector truffleObjectClassHeader = RDataFactory.createStringVectorFromScalar("truffle.object");
+    private static final RStringVector truffleObjectClassHeader = RDataFactory.createStringVectorFromScalar("polyglot.value");
 
     @Child private GetFixedAttributeNode access;
     @Child private S4Class s4Class;
diff --git a/com.oracle.truffle.r.pkgs/rJava/R/J.R b/com.oracle.truffle.r.pkgs/rJava/R/J.R
index 59cb21061c77ce7e8f5dd8c2dc9e50979ec3297f..e9ca59afe89a6e6f3a98cfc1a1c3e9aca3417729 100644
--- a/com.oracle.truffle.r.pkgs/rJava/R/J.R
+++ b/com.oracle.truffle.r.pkgs/rJava/R/J.R
@@ -39,8 +39,9 @@ setMethod("$", c(x="jclassName"), function(x, name) {
 	}
 })
 setMethod("$<-", c(x="jclassName"), function(x, name, value) {    
-    .jfield(x@jobj, name) <- value
-    # FASTR <<<<<
+    # FASTR <<<<<    
+    # .jfield(x@jobj, name) <- value
+    .jfield(x@name, name) <- value
     # Fix: return x, otherwise LHS of $<- is overriden with 
     # the result of .jfield(x@jobj, name) <- value which is the field value
     x
diff --git a/com.oracle.truffle.r.pkgs/rJava/R/call.R b/com.oracle.truffle.r.pkgs/rJava/R/call.R
index 8bd0cb94b188ced9dee1728735f612835879cad5..9b745e0772c0da97f866b56876ecbfc8e39daa18 100644
--- a/com.oracle.truffle.r.pkgs/rJava/R/call.R
+++ b/com.oracle.truffle.r.pkgs/rJava/R/call.R
@@ -149,7 +149,7 @@
           if(is.null(clazzname)) {
               # returnSig is not primitive, but we might have an unboxed primitive value              
               # typicaly, this can happen when called from .jrcall (in cases like rJavaObject$someMethodReturningInt())
-              # and .jrcall for now always simplyfies the return value and dumps the class name anyway
+              # and .jrcall for now always simplifies the return value and dumps the class name anyway
               # so lets retrieve it "just in case"
               if (is.character(o)) {
                   clazzname <- "java.lang.String"
@@ -160,7 +160,10 @@
               } else if (is.logical(o)) {
                   clazzname <- "java.lang.Boolean"
               } else {
-                  clazzname <- java.class(o, getClassName = TRUE)
+                  clazzname <- o$getClass()$getName()
+                  if(clazzname == "java.lang.Class") {
+                      clazzname <- o$getName()
+                  }
               }
           }
           # FASTR >>>>>>
diff --git a/com.oracle.truffle.r.pkgs/rJava/R/jfirst.R b/com.oracle.truffle.r.pkgs/rJava/R/jfirst.R
index a43a273fb9394c62ec5597ae0b40ae508b910fbf..0437c275290dc444233fc8136a036e470ac07a8c 100644
--- a/com.oracle.truffle.r.pkgs/rJava/R/jfirst.R
+++ b/com.oracle.truffle.r.pkgs/rJava/R/jfirst.R
@@ -105,7 +105,7 @@
         if(is.null(zr)) {
             return(FALSE)
         }
-    } else if(!is.external(o)) {
+    } else if(!is.polyglot.value(o)) {
         # truffle unboxes first and fastr then converts primitive types into equivalent R values
         # and the external.object attr in such a case isn't a truffle object 
         # in e.g. .jnew and .jcall rJava knows and stores the return value class name in the jclass slot,
@@ -189,10 +189,10 @@
     }
     o1 <- attr(x1, "external.object", exact=TRUE)
     o2 <- attr(x2, "external.object", exact=TRUE)
-    if(!(is.external(o1) && is.external(o2))) {
+    if(!(is.polyglot.value(o1) && is.polyglot.value(o2))) {
         return(identical(o1, o2))
     }
-    if(!is.external(o1) || !is.external(o2)) {
+    if(!is.polyglot.value(o1) || !is.polyglot.value(o2)) {
         return(NULL)
     }
     .fastr.interop.isIdentical(o1, o2)
@@ -232,36 +232,25 @@
     # truffle provides no access to j.l.Class methods
     if (method == "forName") {
         if (!is.null(clnam) && clnam %in% c("java/lang/Class", "java.lang.Class")) {
-            res <- .fastr.interop.try(function() { new.java.class(list(...)[[1]]) }, FALSE)            
+            res <- .fastr.interop.try(function() { 
+                jt <- java.type(list(...)[[1]]) 
+                jt$class
+            }, FALSE)         
             return(.fromJ(res))
         }
-    } else if (method == "getName" && !is.null(o)) {
-        if (java.class(o) %in% c("java/lang/Class", "java.lang.Class")) {
-            res <- java.class(o, T)
-            return(.fromJ(res))
-        }           
-    } else if (method == "isInstance") {
-        if (!is.external(o)) {
-            o <- new.java.class(attr(obj, "external.classname", exact=TRUE))
-        }
-        o2 <- .toJ(list(...)[[1]])
-        res <- .fastr.interop.isInstance(o, o2)
-        return(.fromJ(res))        
     } else if (method == "getClass") {
-        if(is.external(o)) {            
-            res <- .fastr.interop.getJavaClass(o)
-            return(.fromJ(res))
-        } else {
+        if(is.polyglot.value(o)) {            
             extClName <- attr(obj, "external.classname", exact=TRUE)
             if(!is.null(extClName)) {
-                res <- new.java.class(extClName)  
+                res <- java.type(extClName)
+                res <- res$class
                 return(.fromJ(res))
             }                        
         }
     } 
     # >>>>>> j.l.Class HACKs >>>>>>
     
-    if (!is.null(o) && !is.external(o)) {        
+    if (!is.null(o) && !is.polyglot.value(o)) {        
         o <- .asTruffleObject(o, attr(obj, "external.classname", exact=TRUE))
     } 
 
@@ -281,7 +270,7 @@
     if(is.null(o)) { 
         cls <- NULL
         if (!is.null(clnam)) {
-            cls <- .fastr.interop.try(function() { new.java.class(clnam) }, FALSE)
+            cls <- .fastr.interop.try(function() { java.type(clnam) }, FALSE)
         } 
         if (is.null(cls)) {
             stop("RcallMethod: cannot determine object class")
@@ -339,12 +328,12 @@
     }       
         
     if(!is.null(o)) {
-        if(!is.external(o)) {
+        if(!is.polyglot.value(o)) {
             o <- .asTruffleObject(o, externalClassName)
         }
         res <- o[name]
     } else {
-        cls <- new.java.class(clnam)
+        cls <- java.type(clnam)
         if (is.null(cls)) {
             stop("cannot determine object class")
         }
@@ -353,7 +342,7 @@
     if(is.null(res)) {
         return(.jnull())
     }
-    if(!is.external(res)) {
+    if(!is.polyglot.value(res)) {
         # TODO there are cases when the passed signature is NULL - e.g. rJavaObject$someField 
         # with truffle we have no way to defferenciate if the unboxed return value relates to an Object or primitive field
         # but the original field.c RgetField implementation checks the return type and 
@@ -364,7 +353,7 @@
         # vs fastr:
         # > rJavaObject$fieldIntegerObject
         # [1] 2147483647
-        # Note that his is not the case in rjava with method calls:
+        # Note that this is not the case in rjava with method calls:
         # > rJavaObject$methodIntegerObject()
         # [1] 2147483647
         return(res)
@@ -372,7 +361,7 @@
     
     # as opposed to RcallMethod, we have to return a S4 objects at this place
     if(trueclass) {
-        clsname <- java.class(res)
+        clsname <- res$getClass()$getName()
     } else {
         clsname <- .signatureToClassName(sig)
     }
@@ -412,7 +401,7 @@
     if(!is.null(o)) {
         o[name] <- value
     } else {
-        cls <- new.java.class(clnam)
+        cls <- java.type(clnam)
         cls[name] <- value
     }
     ref
@@ -425,12 +414,12 @@
         stop("RcreateObject: invalid class name")
     }
 
-    co <- .fastr.interop.try(function() { new.java.class(class, silent) }, FALSE)
+    co <- .fastr.interop.try(function() { java.type(class, silent) }, FALSE)
     if(is.null(co)) {
         return(NULL)
     }
     args <- .ellipsisToJ(co, ...)
-    res <- .fastr.interop.try(function() { do.call(new.external, args) }, FALSE)
+    res <- .fastr.interop.try(function() { do.call(.fastr.interop.new, args) }, FALSE)
 
     # create an external pointer even for java.lang.String & co    
     .fromJ(res, toExtPointer=TRUE)
@@ -538,7 +527,7 @@
     type <- typeof(ar)
     if(type %in% c("integer", "double", "character", "logical", "raw")) {
         ar <- .vectorToJArray(ar)
-        sig <- java.class(ar)
+        sig <- ar$getClass()$getName()
         return(new("jarrayRef", jobj=.fromJ(ar), jclass=sig, jsig=sig))
     } else if(is.list(ar)) {
 
@@ -554,8 +543,8 @@
             clsName <- "java.lang.Object"    
         }
         ar <- .listToJ(ar)
-        ar <- as.java.array(ar, clsName)
-        sig <- java.class(ar)
+        ar <- .fastr.interop.asJavaArray(ar, clsName)
+        sig <- ar$getClass()$getName()
         return(new("jarrayRef", jobj=.fromJ(ar), jclass=sig, jsig=sig))
     } 
     stop("Unsupported type to create Java array from.")
@@ -574,9 +563,11 @@
     
     if(!is.null(attr(obj, "external.object", exact=TRUE))) {
         obj <- .toJ(obj)
-        if(is.external(obj)) {
-            if(java.class(obj) == "java.lang.Class") {
-                res <- paste0("class ", java.class(obj, T))
+        if(is.polyglot.value(obj)) {
+            clsName <- obj$getClass()$getName()
+            if(clsName == "java.lang.Class") {
+                clsName <- obj$getName()
+                res <- paste0("class ", clsName)
             } else {
                 res <- obj["toString"]()
             }        
@@ -626,7 +617,7 @@
     if(is.null(x)) {
         return(.jzeroRef)
     } else {        
-        if(toExtPointer || is.external(x)) {
+        if(toExtPointer || is.polyglot.value(x)) {
             ep <- methods:::.newExternalptr() 
             attr(ep, "external.object") <- x            
             ep
@@ -662,7 +653,7 @@
             if (is.null(xo)) {
                 stop(paste0("missing 'external' attribute on: ", x))
             }
-            if (is.external(xo)) {
+            if (is.polyglot.value(xo)) {
                 return(xo)
             } else {                
                 return(.asTruffleObject(xo, attr(x, "external.classname", exact=TRUE)))
@@ -673,15 +664,15 @@
         .vectorToJArray(x)
     } else {
         if (inherits(x, "jbyte")) {
-            x <- as.external.byte(x)    
+            x <- .fastr.interop.asByte(x)    
         } else if (inherits(x, "jchar")) {
-            x <- as.external.char(x)
+            x <- .fastr.interop.asChar(x)
         } else if (inherits(x, "jfloat")) {
-            x <- as.external.float(x)
+            x <- .fastr.interop.asFloat(x)
         } else if (inherits(x, "jlong")) {
-            x <- as.external.long(x)
+            x <- .fastr.interop.asLong(x)
         } else if (inherits(x, "jshort")) {
-            x <- as.external.short(x)        
+            x <- .fastr.interop.asShort(x)
         }
         x
     }
@@ -691,12 +682,12 @@
     x # force args
 
     switch(class(x),
-        "jbyte" = as.java.array(x, "byte"),
-        "jchar" = as.java.array(x, "char"),
-        "jfloat" = as.java.array(x, "float"),
-        "jlong" = as.java.array(x, "long"),
-        "jshort" = as.java.array(x, "short"),
-        as.java.array(x)
+        "jbyte" = .fastr.interop.asJavaArray(x, "byte"),
+        "jchar" = .fastr.interop.asJavaArray(x, "char"),
+        "jfloat" = .fastr.interop.asJavaArray(x, "float"),
+        "jlong" = .fastr.interop.asJavaArray(x, "long"),
+        "jshort" = .fastr.interop.asJavaArray(x, "short"),
+        .fastr.interop.asJavaArray(x)
     )
 }
 
@@ -705,11 +696,11 @@
 
     if(!is.null(className)) {
         x <- switch(gsub("/", ".", className),
-            "java.lang.Byte" = as.external.byte(x),
-            "java.lang.Character" = as.external.char(x),
-            "java.lang.Float" = as.external.float(x),
-            "java.lang.Long" = as.external.long(x),
-            "java.lang.Short" = as.external.short(x),        
+            "java.lang.Byte" = .fastr.interop.asByte(x),
+            "java.lang.Character" = .fastr.interop.asChar(x),
+            "java.lang.Float" = .fastr.interop.asFloat(x),
+            "java.lang.Long" = .fastr.interop.asLong(x),
+            "java.lang.Short" = .fastr.interop.asShort(x),
             x
         )        
     }
diff --git a/com.oracle.truffle.r.pkgs/rJava/R/loader.R b/com.oracle.truffle.r.pkgs/rJava/R/loader.R
index 07603a50130abd7acaf9e5d90d3e84cfe0a91d10..afb8710fcd8584d2939f27e4bf8c6f33b551fc7c 100644
--- a/com.oracle.truffle.r.pkgs/rJava/R/loader.R
+++ b/com.oracle.truffle.r.pkgs/rJava/R/loader.R
@@ -30,7 +30,9 @@
     # } else {
     #     .jcall(.rJava.class.loader,"[Ljava/lang/String;","getClassPath")
     # }
-    java.classpath()
+    
+    # not provided, do nothing
+
     # FASTR >>>>>
 }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java
index 376ba865e2ab3799c5ab434ed3821fb517e7fbe1..2f01fd7d28f7d9e5f4d4675767be0a60f00b9685 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java
@@ -676,8 +676,8 @@ public final class RError extends RuntimeException implements TruffleException {
         INVALID_FORMAT_LOGICAL("invalid format '%s'; use format %%d or %%i for logical objects"),
         INVALID_FORMAT_INTEGER("invalid format '%s'; use format %%d, %%i, %%o, %%x or %%X for integer objects"),
         POS_NOT_ALLOWED_WITH_NUMERIC("pos argument not allowed with a numeric value"),
-        OBJ_CANNOT_BE_ATTRIBUTED("external object cannot be attributed"),
-        CANNOT_COERCE_EXTERNAL_OBJECT_TO_VECTOR("no method for coercing this external object to a %s"),
+        OBJ_CANNOT_BE_ATTRIBUTED("polyglot value cannot be attributed"),
+        CANNOT_COERCE_EXTERNAL_OBJECT_TO_VECTOR("no method for coercing this polyglot value to a %s"),
         NO_METHOD_ASSIGNING_SUBSET_S4("no method for assigning subsets of this S4 class"),
         CANNOT_COERCE_S4_TO_VECTOR("no method for coercing this S4 class to a vector"),
         // the following list is incomplete (but like GNU-R)
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java
index 1f5be9122cd4a55506abb92e55a294b90577ef97..9ce0b2aea175901d30b86102d4c45c01f3295c37 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java
@@ -1043,7 +1043,7 @@ public class RRuntime {
 
     public static String getRTypeName(Object arg) {
         CompilerAsserts.neverPartOfCompilation();
-        return isForeignObject(arg) ? "external object" : ((RTypedValue) convertScalarVectors(arg)).getRType().getName();
+        return isForeignObject(arg) ? "polyglot.value" : ((RTypedValue) convertScalarVectors(arg)).getRType().getName();
     }
 
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RType.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RType.java
index ccd1f53dc14cbaf1b67fa087ba369dc6db7ecd82..b7bbb17c75f8c4b53548131c42a05ea590defb6f 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RType.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RType.java
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1995-2012, The R Core Team
  * Copyright (c) 2003, The R Foundation
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates
  *
  * All rights reserved.
  */
@@ -48,7 +48,7 @@ public enum RType {
     S4Object("S4", -1),
     Connection("connection", -1),
     Dots("...", -1),
-    TruffleObject("truffle.object", -1),
+    TruffleObject("polyglot.value", -1),
     RInteropByte("interopt.byte", -1),
     RInteropChar("interopt.char", -1),
     RInteropFloat("interopt.float", -1),
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java
index dfdf08646513d442ee3f2cf655b81cc45fe3453d..24e34b27e503c8c649a95fed8ffa387cd1d287d2 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java
@@ -29,16 +29,12 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.lang.ref.WeakReference;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
 import java.nio.ByteBuffer;
 import java.nio.CharBuffer;
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CodingErrorAction;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.EnumSet;
@@ -60,18 +56,19 @@ import com.oracle.truffle.api.TruffleLanguage;
 import com.oracle.truffle.api.TruffleLanguage.Env;
 import com.oracle.truffle.api.instrumentation.AllocationReporter;
 import com.oracle.truffle.api.instrumentation.Instrumenter;
+import com.oracle.truffle.api.interop.ArityException;
 import com.oracle.truffle.api.interop.ForeignAccess;
 import com.oracle.truffle.api.interop.Message;
 import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.api.interop.UnknownIdentifierException;
 import com.oracle.truffle.api.interop.UnsupportedMessageException;
 import com.oracle.truffle.api.interop.UnsupportedTypeException;
+import com.oracle.truffle.api.interop.java.JavaInterop;
 import com.oracle.truffle.api.nodes.Node;
 import com.oracle.truffle.api.source.Source;
 import com.oracle.truffle.r.launcher.RCmdOptions;
 import com.oracle.truffle.r.launcher.RCmdOptions.Client;
 import com.oracle.truffle.r.launcher.RStartParams;
-import com.oracle.truffle.r.runtime.FastRConfig;
 import com.oracle.truffle.r.runtime.LazyDBCache;
 import com.oracle.truffle.r.runtime.PrimitiveMethodsInfo;
 import com.oracle.truffle.r.runtime.REnvVars;
@@ -281,9 +278,6 @@ public final class RContext {
 
     @CompilationFinal private PrimitiveMethodsInfo primitiveMethodsInfo;
 
-    /** Class loader for Java interop. */
-    private ClassLoader interopClassLoader = FastRConfig.InternalGridAwtSupport ? getClass().getClassLoader() : null;
-
     /**
      * Set to {@code true} when in embedded mode to allow other parts of the system to determine
      * whether embedded mode is in effect, <b>before</b> the initial context is created.
@@ -827,68 +821,19 @@ public final class RContext {
         }
     };
 
-    private final HashMap<String, Class<?>> classCache = new HashMap<>();
-
-    /**
-     * This function also takes class names with '/' instead of '.'. A null return value means that
-     * the class was not found.
-     */
-    public Class<?> loadClass(String className) {
-        if (classCache.containsKey(className)) {
-            return classCache.get(className);
-        }
-        String demangled = className.replaceAll("/", ".");
-        Class<?> result;
-        try {
-            if (FastRConfig.InternalGridAwtSupport) {
-                result = interopClassLoader.loadClass(demangled);
-            } else {
-                result = Class.forName(demangled);
-            }
-        } catch (ClassNotFoundException e) {
-            result = null;
-        }
-        classCache.put(className, result);
-        return result;
-    }
-
-    /**
-     * Adds entries to the Java interop class loader. This will effectively create a new class
-     * loader with the previous one as parent.
-     */
-    public void addInteropClasspathEntries(String... entries) throws MalformedURLException {
-        if (!FastRConfig.InternalGridAwtSupport) {
-            throw RError.error(RError.NO_CALLER, RError.Message.GENERIC, "Custom class loading not supported.");
-        }
-
-        URL[] urls = new URL[entries.length];
-        for (int i = 0; i < entries.length; i++) {
-            urls[i] = Paths.get(entries[i]).toUri().toURL();
-        }
-        interopClassLoader = URLClassLoader.newInstance(urls, interopClassLoader);
-        classCache.clear();
-    }
-
-    /**
-     * Returns all entries in the Java interop class loader.
-     * 
-     * @return the CP entries
-     */
-    public String[] getInteropClasspathEntries() {
-        if (!FastRConfig.InternalGridAwtSupport) {
-            throw RError.error(RError.NO_CALLER, RError.Message.GENERIC, "Custom class loading not supported.");
-        }
-        if (interopClassLoader instanceof URLClassLoader) {
-            URL[] urls = ((URLClassLoader) interopClassLoader).getURLs();
-            if (urls != null) {
-                String[] ret = new String[urls.length];
-                for (int i = 0; i < urls.length; i++) {
-                    ret[i] = urls[i].getPath();
-                }
-                return ret;
-            }
+    public TruffleObject toJavaStatic(TruffleObject obj, Node readNode, Node executeNode)
+                    throws UnknownIdentifierException, UnsupportedMessageException, UnsupportedTypeException, ArityException {
+        assert JavaInterop.isJavaObject(obj) && !JavaInterop.isJavaObject(Class.class, obj);
+
+        Env env = getEnv();
+        if (env != null && env.isHostLookupAllowed()) {
+            TruffleObject gcf = (TruffleObject) ForeignAccess.sendRead(readNode, obj, "getClass");
+            TruffleObject clazz = (TruffleObject) ForeignAccess.sendExecute(executeNode, gcf);
+            TruffleObject cnf = (TruffleObject) ForeignAccess.sendRead(readNode, clazz, "getName");
+            String className = (String) ForeignAccess.sendExecute(executeNode, cnf);
+            return (TruffleObject) env.lookupHostSymbol(className);
         }
-        return new String[0];
+        return null;
     }
 
     public final class ConsoleIO {
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java
index 6f7f5c8e225d06648bc00b9ce41cbb411be430db..1eb3302b88261a6086902fc7b1db5317c9d16fc9 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java
@@ -234,6 +234,7 @@ public final class RScope {
             @Resolve(message = "KEY_INFO")
             public abstract static class VarMapsKeyInfoNode extends Node {
 
+                @TruffleBoundary
                 protected Object access(VariablesObject receiver, String identifier) {
                     int result = KeyInfo.READABLE;
                     if (!receiver.frameAccess.bindingIsLocked(identifier)) {
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java
index e3ca6bcac927d0cf283afb8b0fb05dc11fd8f33f..8b266427a94cd134782c3b71337eb1250642428d 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/interop/ForeignArray2R.java
@@ -23,7 +23,6 @@
 package com.oracle.truffle.r.runtime.interop;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.function.Function;
 import java.util.function.Supplier;
@@ -158,7 +157,7 @@ public abstract class ForeignArray2R extends RBaseNode {
         try {
             return getIterableElements(arrayData == null ? new ForeignArrayData() : arrayData, obj, execute);
         } catch (UnsupportedMessageException | UnknownIdentifierException | UnsupportedTypeException | ArityException e) {
-            throw error(RError.Message.GENERIC, "error while casting external object to list: " + e.getMessage());
+            throw error(RError.Message.GENERIC, "error while casting polyglot value to list: " + e.getMessage());
         }
     }
 
@@ -322,10 +321,6 @@ public abstract class ForeignArray2R extends RBaseNode {
         return RDataFactory.createList(arrayData.elements.toArray(new Object[arrayData.elements.size()]));
     }
 
-    private static int sizeByDims(int[] dims) {
-        return Arrays.stream(dims).reduce(1, (x, y) -> x * y);
-    }
-
     @FunctionalInterface
     private interface WriteArray<A> {
         void apply(A array, int resultIdx, int sourceIdx, boolean[] complete);
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
index 72c6e21212ac8da5a68b88a650b97445379336f6..45c841443a6b2e744807eed12494442a4a26caba 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
@@ -143178,42 +143178,42 @@ NULL
 [1] "Hello, World!" "second line"
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEval#
-#if (!any(R.version$engine == "FastR")) { 1 } else { eval.external('application/x-r', '1') }
+#if (!any(R.version$engine == "FastR")) { 1 } else { eval.polyglot('application/x-r', '1') }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEval#
-#if (!any(R.version$engine == "FastR")) { 16 } else { eval.external('application/x-r', '14 + 2') }
+#if (!any(R.version$engine == "FastR")) { 16 } else { eval.polyglot('application/x-r', '14 + 2') }
 [1] 16
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEval#
-#if (!any(R.version$engine == "FastR")) { 1L } else { eval.external('application/x-r', '1L') }
+#if (!any(R.version$engine == "FastR")) { 1L } else { eval.polyglot('application/x-r', '1L') }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEval#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { eval.external('application/x-r', 'TRUE') }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { eval.polyglot('application/x-r', 'TRUE') }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEval#
-#if (!any(R.version$engine == "FastR")) { as.character(123) } else { eval.external('application/x-r', 'as.character(123)') }
+#if (!any(R.version$engine == "FastR")) { as.character(123) } else { eval.polyglot('application/x-r', 'as.character(123)') }
 [1] "123"
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEvalFile#
-#if (!any(R.version$engine == "FastR")) { cat('Error in eval.external() : invalid \'source\' or \'path\' argument\n') } else { eval.external() }
-Error in eval.external() : invalid 'source' or 'path' argument
+#if (!any(R.version$engine == "FastR")) { cat('Error in eval.polyglot() : invalid \'source\' or \'path\' argument\n') } else { eval.polyglot() }
+Error in eval.polyglot() : invalid 'source' or 'path' argument
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEvalFile#
-#if (!any(R.version$engine == "FastR")) { cat('Error in eval.external(, "abc", ) : invalid mimeType argument\n') } else { eval.external(,'abc',) }
-Error in eval.external(, "abc", ) : invalid mimeType argument
+#if (!any(R.version$engine == "FastR")) { cat('Error in eval.polyglot(, "abc", ) : invalid mimeType argument\n') } else { eval.polyglot(,'abc',) }
+Error in eval.polyglot(, "abc", ) : invalid mimeType argument
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEvalFile#
-#if (!any(R.version$engine == "FastR")) { cat('[1] "Error reading file: /a/b.R"\n') } else { tryCatch(eval.external(path="/a/b.R"),  error = function(e) e$message) }
+#if (!any(R.version$engine == "FastR")) { cat('[1] "Error reading file: /a/b.R"\n') } else { tryCatch(eval.polyglot(path="/a/b.R"),  error = function(e) e$message) }
 [1] "Error reading file: /a/b.R"
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEvalFile#
-#if (!any(R.version$engine == "FastR")) { x<-c(1);cat(x) } else { fileConn<-file("_testInteropEvalFile_testScript_.R");writeLines(c("x<-c(1)","cat(x)"), fileConn);close(fileConn);eval.external(mimeType="application/x-r", path="_testInteropEvalFile_testScript_.R") }
+#if (!any(R.version$engine == "FastR")) { x<-c(1);cat(x) } else { fileConn<-file("_testInteropEvalFile_testScript_.R");writeLines(c("x<-c(1)","cat(x)"), fileConn);close(fileConn);eval.polyglot(mimeType="application/x-r", path="_testInteropEvalFile_testScript_.R") }
 1
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropEvalFile#
-#if (!any(R.version$engine == "FastR")) { x<-c(1);cat(x) } else { fileConn<-file("_testInteropEvalFile_testScript_.R");writeLines(c("x<-c(1)","cat(x)"), fileConn);close(fileConn);eval.external(path="_testInteropEvalFile_testScript_.R") }
+#if (!any(R.version$engine == "FastR")) { x<-c(1);cat(x) } else { fileConn<-file("_testInteropEvalFile_testScript_.R");writeLines(c("x<-c(1)","cat(x)"), fileConn);close(fileConn);eval.polyglot(path="_testInteropEvalFile_testScript_.R") }
 1
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInteropExport#
 #if (!any(R.version$engine == "FastR")) { invisible() } else { export('foo', 'foo') }
@@ -143228,62 +143228,31 @@ Error in eval.external(, "abc", ) : invalid mimeType argument
 #if (!any(R.version$engine == "FastR")) { invisible() } else { export('foo', new.env()) }
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInvoke#
-#if (!any(R.version$engine == "FastR")) { cat('Error in fo@bitLength :<<<NEWLINE>>>  cannot get a slot ("bitLength") from an object of type "external object"<<<NEWLINE>>>') } else { cl <- new.java.class('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength, silent=TRUE); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength }
+#if (!any(R.version$engine == "FastR")) { cat('Error in fo@bitLength :<<<NEWLINE>>>  cannot get a slot ("bitLength") from an object of type "polyglot.value"<<<NEWLINE>>>') } else { cl <- java.type('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength, silent=TRUE); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength }
 Error in fo@bitLength :
-  cannot get a slot ("bitLength") from an object of type "external object"
+  cannot get a slot ("bitLength") from an object of type "polyglot.value"
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInvoke#
-#if (!any(R.version$engine == "FastR")) { cat('Error in fo@bitLength :<<<NEWLINE>>>  cannot get a slot ("bitLength") from an object of type "external object"<<<NEWLINE>>>') } else { cl <- new.java.class('java.math.BigInteger'); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength }
+#if (!any(R.version$engine == "FastR")) { cat('Error in fo@bitLength :<<<NEWLINE>>>  cannot get a slot ("bitLength") from an object of type "polyglot.value"<<<NEWLINE>>>') } else { cl <- java.type('java.math.BigInteger'); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength }
 Error in fo@bitLength :
-  cannot get a slot ("bitLength") from an object of type "external object"
+  cannot get a slot ("bitLength") from an object of type "polyglot.value"
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInvoke#
-#if (!any(R.version$engine == "FastR")) { print(72L) } else { cl <- new.java.class('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength(), silent=TRUE); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength() }
+#if (!any(R.version$engine == "FastR")) { print(72L) } else { cl <- java.type('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength(), silent=TRUE); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength() }
 [1] 72
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testInvoke#
-#if (!any(R.version$engine == "FastR")) { print(72L) } else { cl <- new.java.class('java.math.BigInteger'); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength() }
+#if (!any(R.version$engine == "FastR")) { print(72L) } else { cl <- java.type('java.math.BigInteger'); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength() }
 [1] 72
 
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { is.external.executable() }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { is.external.executable(NULL) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { is.external.executable(c(1)) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { is.external.executable(list(1)) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { is.external.executable(sum) }
-[1] TRUE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalNull#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { is.external.null() }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalNull#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { is.external.null(c(1)) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalNull#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { is.external.null(list(1)) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestInterop.testIsExternalNull#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { is.external.null(NULL) }
-[1] TRUE
+##com.oracle.truffle.r.test.library.fastr.TestInterop.testPrinting#
+#if (!any(R.version$engine == "FastR")) { c('stringValue', 'charValue', 'intValue', 'shortValue', 'booleanValue', 'longValue', 'class') } else { v <- import('testPOJO'); names(v) }
+[1] "stringValue"  "charValue"    "intValue"     "shortValue"   "booleanValue"
+[6] "longValue"    "class"
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testPrinting#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n$stringValue\n[1] "foo"\n\n$charValue\n[1] "R"\n\n$intValue\n[1] 1\n\n$shortValue\n[1] -100\n\n$booleanValue\n[1] TRUE\n\n$longValue\n[1] 123412341234\n\n') } else { v <- import('testPOJO'); print(v) }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n$stringValue\n[1] "foo"\n\n$charValue\n[1] "R"\n\n$intValue\n[1] 1\n\n$shortValue\n[1] -100\n\n$booleanValue\n[1] TRUE\n\n$longValue\n[1] 123412341234\n\n') } else { v <- import('testPOJO'); print(v) }
+[polyglot value]
 $stringValue
 [1] "foo"
 
@@ -143304,108 +143273,112 @@ $longValue
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testPrinting#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1]   1  -5 199\n') } else { v <- import('testIntArray'); print(v) }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1]   1  -5 199\n') } else { v <- import('testIntArray'); print(v) }
+[polyglot value]
 [1]   1  -5 199
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testPrinting#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1]   1  -5 199\n') } else { v <- import('testIntArray'); v }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1]   1  -5 199\n') } else { v <- import('testIntArray'); v }
+[polyglot value]
 [1]   1  -5 199
 
 ##com.oracle.truffle.r.test.library.fastr.TestInterop.testPrinting#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a"   ""    "foo"\n') } else { v <- import('testStringArray'); print(v) }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a"   ""    "foo"\n') } else { v <- import('testStringArray'); print(v) }
+[polyglot value]
 [1] "a"   ""    "foo"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAddToList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list();  l$foreignobject <- to; identical(to, l$foreignobject) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list();  l$foreignobject <- to; identical(to, l$foreignobject) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAddToList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list(1); l$foreignobject <- 1; l$foreignobject <- to; identical(to, l$foreignobject) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list(1); l$foreignobject <- 1; l$foreignobject <- to; identical(to, l$foreignobject) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAddToList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list(1); l$foreignobject <- to; identical(to, l$foreignobject) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list(1); l$foreignobject <- to; identical(to, l$foreignobject) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAddToList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list(to); is.list(l) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l <- list(to); is.list(l) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAllTypes#
-#if (!any(R.version$engine == "FastR")) { "true127a32767214748364721474836471.7976931348623157E3082.0testString" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$allTypesMethod(TRUE, as.external.byte(127), as.external.char("a"), as.external.short(32767), 2147483647L,  as.external.long(2147483647), 1.7976931348623157E308, as.external.float(2.0), "testString") }
+#if (!any(R.version$engine == "FastR")) { "true127a32767214748364721474836471.7976931348623157E3082.0testString" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$allTypesMethod(TRUE, .fastr.interop.asByte(127), .fastr.interop.asChar("a"), .fastr.interop.asShort(32767), 2147483647L,  .fastr.interop.asLong(2147483647), 1.7976931348623157E308, .fastr.interop.asFloat(2.0), "testString") }
+[1] "true127a32767214748364721474836471.7976931348623157E3082.0testString"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAllTypes#
+#if (!any(R.version$engine == "FastR")) { "true127a32767214748364721474836471.7976931348623157E3082.0testString" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$allTypesStaticMethod(TRUE, .fastr.interop.asByte(127), .fastr.interop.asChar("a"), .fastr.interop.asShort(32767), 2147483647L,  .fastr.interop.asLong(2147483647), 1.7976931348623157E308, .fastr.interop.asFloat(2.0), "testString") }
 [1] "true127a32767214748364721474836471.7976931348623157E3082.0testString"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayAsParameter#
-#if (!any(R.version$engine == "FastR")) { '[I' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));ja <- as.java.array(c(1L, 2L, 3L), 'int'); to$isIntArray(ja) }
+#if (!any(R.version$engine == "FastR")) { '[I' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));ja <- .fastr.interop.asJavaArray(c(1L, 2L, 3L), 'int'); to$isIntArray(ja) }
 [1] "[I"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayAsParameter#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Integer;' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));ja <- as.java.array(c(1L, 2L, 3L), 'java.lang.Integer'); to$isIntegerArray(ja) }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Integer;' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));ja <- .fastr.interop.asJavaArray(c(1L, 2L, 3L), 'java.lang.Integer'); to$isIntegerArray(ja) }
 [1] "[Ljava.lang.Integer;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 1 } else { a <- as.java.array(c(1,2,3)); a[1] }
+#if (!any(R.version$engine == "FastR")) { 1 } else { a <- .fastr.interop.asJavaArray(c(1,2,3)); a[1] }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 1 } else { a <- as.java.array(c(1,2,3)); a[[1]] }
+#if (!any(R.version$engine == "FastR")) { 1 } else { a <- .fastr.interop.asJavaArray(c(1,2,3)); a[[1]] }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[1]; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[1]; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[[1]]; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[[1]]; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 123 } else { a <- as.java.array(c(1,2,3)); a[1] <- 123; a[1] }
+#if (!any(R.version$engine == "FastR")) { 123 } else { a <- .fastr.interop.asJavaArray(c(1,2,3)); a[1] <- 123; a[1] }
 [1] 123
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 123 } else { a <- as.java.array(c(1,2,3)); a[[1]] <- 123; a[[1]] }
+#if (!any(R.version$engine == "FastR")) { 123 } else { a <- .fastr.interop.asJavaArray(c(1,2,3)); a[[1]] <- 123; a[[1]] }
 [1] 123
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 123 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[1] <- 123L; to$fieldIntegerArray[1] }
+#if (!any(R.version$engine == "FastR")) { 123 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[1] <- 123L; to$fieldIntegerArray[1] }
 [1] 123
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 1234 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[[1]] <- 1234L; to$fieldIntegerArray[[1]] }
+#if (!any(R.version$engine == "FastR")) { 1234 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray[[1]] <- 1234L; to$fieldIntegerArray[[1]] }
 [1] 1234
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 1234 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[1,2] <- 1234L; to$int2DimArray[1,2] }
+#if (!any(R.version$engine == "FastR")) { 1234 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[1,2] <- 1234L; to$int2DimArray[1,2] }
 [1] 1234
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 12345 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[[1,2]] <- 12345L; to$int2DimArray[[1,2]] }
+#if (!any(R.version$engine == "FastR")) { 12345 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[[1,2]] <- 12345L; to$int2DimArray[[1,2]] }
 [1] 12345
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 2 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[1,2] }
+#if (!any(R.version$engine == "FastR")) { 2 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[1,2] }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { 2 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[[1,2]] }
+#if (!any(R.version$engine == "FastR")) { 2 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[[1,2]] }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { NULL } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringArray[1] <- NULL; to$fieldStringArray[1] }
+#if (!any(R.version$engine == "FastR")) { NULL } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringArray[1] <- NULL; to$fieldStringArray[1] }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2 3\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[1] }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2 3\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[1] }
+[polyglot value]
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArrayReadWrite#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2 3\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[[1]] }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2 3\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$int2DimArray[[1]] }
+[polyglot value]
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testArraysWithNullConversion#
@@ -143517,1237 +143490,1740 @@ NULL
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); l[[1]]$data }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); l[[1]]$data }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); l[[1]] }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); l[[1]] }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); l[[1]]$data }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); l[[1]]$data }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); l[[1]] }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); l[[1]] }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); l[[2]]$data }
+#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); l[[2]]$data }
 [1] "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); l[[2]] }
+#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); l[[2]] }
 [1] "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); l[[2]]$data }
+#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); l[[2]]$data }
 [1] "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); l[[2]] }
+#if (!any(R.version$engine == "FastR")) { 'b' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); l[[2]] }
 [1] "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 3 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); length(l) }
+#if (!any(R.version$engine == "FastR")) { 3 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); length(l) }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 3 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); length(l) }
+#if (!any(R.version$engine == "FastR")) { 3 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); length(l) }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 4 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); length(l) }
+#if (!any(R.version$engine == "FastR")) { 4 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); length(l) }
 [1] 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { 4 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); length(l) }
+#if (!any(R.version$engine == "FastR")) { 4 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); length(l) }
 [1] 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { NULL } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); l[[4]]$data }
+#if (!any(R.version$engine == "FastR")) { NULL } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); l[[4]]$data }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { NULL } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); l[[4]]$data }
+#if (!any(R.version$engine == "FastR")) { NULL } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); l[[4]]$data }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); is.list(l) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$arrayObject); is.list(l) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); is.list(l) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$fieldStringArray); is.list(l) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); is.list(l) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listObject); is.list(l) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); is.list(l) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to$listString); is.list(l) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsList#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.list(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a list', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.list(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a list', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); l<-as.list(to); }
 Error in as.list(to) :
-  no method for coercing this external object to a list
+  no method for coercing this polyglot value to a list
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "character" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticCharArray); typeof(v) }
+[1] "character"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "character" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticStringArray); typeof(v) }
+[1] "character"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticDoubleArray); typeof(v) }
+[1] "double"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticFloatArray); typeof(v) }
+[1] "double"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticLongArray); typeof(v) }
+[1] "double"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { "double" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); typeof(v) }
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); typeof(v) }
 [1] "double"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); typeof(v) }
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticByteArray); typeof(v) }
+[1] "integer"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticIntegerArray); typeof(v) }
 [1] "integer"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); is.list(v) }
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticShortArray); typeof(v) }
+[1] "integer"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); typeof(v) }
+[1] "integer"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { "logical" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticBooleanArray); typeof(v) }
+[1] "logical"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticBooleanArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticByteArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$mixedTypesArray); is.list(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticCharArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectArray); is.list(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticDoubleArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); is.vector(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticFloatArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); is.vector(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticIntegerArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { list(1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); v[1] }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticLongArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticShortArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticStringArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); is.list(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$mixedTypesArray); is.list(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectArray); is.list(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
+#if (!any(R.version$engine == "FastR")) { list(1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); v[1] }
 [[1]]
 [1] 1
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { list(3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); v[3] }
+#if (!any(R.version$engine == "FastR")) { list(3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); v[3] }
 [[1]]
 [1] 3
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsVectorFromArray#
-#if (!any(R.version$engine == "FastR")) { list(NULL) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); v[2] }
+#if (!any(R.version$engine == "FastR")) { list(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$hasNullIntArray); v[2] }
 [[1]]
 NULL
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.character("1.10000002384186") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticFloatObject) }
+[1] "1.10000002384186"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character("1.79769313486231e+308") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticDoubleObject) }
+[1] "1.79769313486231e+308"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character("NaN") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticNaNObject) }
+[1] "NaN"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticStringObject) }
+[1] "a string"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticCharObject) }
+[1] "a"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticByteObject) }
+[1] "127"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticIntegerObject) }
+[1] "2147483647"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticShortObject) }
+[1] "32767"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
+#if (!any(R.version$engine == "FastR")) { as.character(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticLongObject) }
+[1] "9223372036854775808"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticNullObject) }
+character(0)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStaticBooleanObject) }
+[1] "TRUE"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.character(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStringIntArray); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listStringInt); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("1.1","2.1","3.1")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("1.1","2.1","3.1")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldDoubleArray); }
 [1] "1.1" "2.1" "3.1"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("1.1","2.1","3.1")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("1.1","2.1","3.1")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listDouble); }
 [1] "1.1" "2.1" "3.1"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("1.10000002384186","2.09999990463257","3.09999990463257")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("1.10000002384186","2.09999990463257","3.09999990463257")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldFloatArray); }
 [1] "1.10000002384186" "2.09999990463257" "3.09999990463257"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("1.10000002384186","2.09999990463257","3.09999990463257")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("1.10000002384186","2.09999990463257","3.09999990463257")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listFloat); }
 [1] "1.10000002384186" "2.09999990463257" "3.09999990463257"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStringBooleanArray); }
 [1] "TRUE"  "TRUE"  "FALSE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listStringBoolean); }
 [1] "TRUE"  "TRUE"  "FALSE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldCharArray); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldStringArray); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listChar); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.character(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listString); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldByteArray); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldIntegerArray); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldLongArray); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldShortArray); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listByte); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listInteger); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listLong); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listShort); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$fieldBooleanArray); }
 [1] "TRUE"  "FALSE" "TRUE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.character(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.character(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listBoolean); }
 [1] "TRUE"  "FALSE" "TRUE"
 
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.complex("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticStringObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.complex("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticCharObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticFloatObject) }
+[1] 1.1+0i
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticDoubleObject) }
+[1] 1.797693e+308+0i
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticByteObject) }
+[1] 127+0i
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticIntegerObject) }
+[1] 2147483647+0i
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticShortObject) }
+[1] 32767+0i
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticLongObject) }
+[1] 9.223372e+18+0i
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticNullObject) }
+complex(0)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticNaNObject) }
+[1] NaN+0i
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.complex(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStaticBooleanObject) }
+[1] 1+0i
+
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStringIntArray); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listStringInt); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStringBooleanArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listStringBoolean); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldCharArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldStringArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listChar); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listString); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldByteArray); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldIntegerArray); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldLongArray); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldShortArray); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listByte); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listInteger); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listLong); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listShort); }
 [1] 1+0i 2+0i 3+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldDoubleArray); }
 [1] 1.1+0i 2.1+0i 3.1+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldFloatArray); }
 [1] 1.1+0i 2.1+0i 3.1+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listDouble); }
 [1] 1.1+0i 2.1+0i 3.1+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listFloat); }
 [1] 1.1+0i 2.1+0i 3.1+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$fieldBooleanArray); }
 [1] 1+0i 0+0i 1+0i
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.complex(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.complex(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to$listBoolean); }
 [1] 1+0i 0+0i 1+0i
 
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.double("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticStringObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.double("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticCharObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticFloatObject) }
+[1] 1.1
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticDoubleObject) }
+[1] 1.797693e+308
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticByteObject) }
+[1] 127
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticIntegerObject) }
+[1] 2147483647
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticShortObject) }
+[1] 32767
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticLongObject) }
+[1] 9.223372e+18
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticNullObject) }
+numeric(0)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticNaNObject) }
+[1] NaN
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.double(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStaticBooleanObject) }
+[1] 1
+
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStringIntArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listStringInt); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.double(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStringBooleanArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.double(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listStringBoolean); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldCharArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldStringArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listChar); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.double(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listString); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldByteArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldIntegerArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldLongArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldShortArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listByte); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listInteger); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listLong); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listShort); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldDoubleArray); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldFloatArray); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listDouble); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listFloat); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$fieldBooleanArray); }
 [1] 1 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.double(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.double(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to$listBoolean); }
 [1] 1 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticStringObject) }
+expression("a string")
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticCharObject) }
+expression("a")
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticFloatObject) }
+expression(1.1)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
+#if (!any(R.version$engine == "FastR")) { as.expression(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticDoubleObject) }
+expression(1.79769313486232e+308)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticByteObject) }
+expression(127)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticIntegerObject) }
+expression(2147483647)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticShortObject) }
+expression(32767)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
+#if (!any(R.version$engine == "FastR")) { as.expression(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticLongObject) }
+expression(9223372036854775808)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticNullObject) }
+expression(NULL)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticNaNObject) }
+expression(NaN)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStaticBooleanObject) }
+expression(TRUE)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.expression(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStringIntArray); }
 expression("1", "2", "3")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listStringInt); }
 expression("1", "2", "3")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStringBooleanArray); }
 expression("TRUE", "TRUE", "FALSE")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listStringBoolean); }
 expression("TRUE", "TRUE", "FALSE")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldCharArray); }
 expression("a", "b", "c")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldStringArray); }
 expression("a", "b", "c")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listChar); }
 expression("a", "b", "c")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listString); }
 expression("a", "b", "c")
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldByteArray); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldIntegerArray); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldLongArray); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldShortArray); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listByte); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listInteger); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listLong); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listShort); }
 expression(1, 2, 3)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldDoubleArray); }
 expression(1.1, 2.1, 3.1)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldFloatArray); }
 expression(1.1, 2.1, 3.1)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listDouble); }
 expression(1.1, 2.1, 3.1)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listFloat); }
 expression(1.1, 2.1, 3.1)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$fieldBooleanArray); }
 expression(TRUE, FALSE, TRUE)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.expression(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.expression(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to$listBoolean); }
 expression(TRUE, FALSE, TRUE)
 
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.integer("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticStringObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.integer("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticCharObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticFloatObject) }
+[1] 1
+
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticDoubleObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion to integer range
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticByteObject) }
+[1] 127
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticIntegerObject) }
+[1] 2147483647
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticShortObject) }
+[1] 32767
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticLongObject) }
+[1] NA
+Warning message:
+NAs introduced by coercion to integer range
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticNullObject) }
+integer(0)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticNaNObject) }
+[1] NA
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStaticBooleanObject) }
+[1] 1
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.integer(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStringIntArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listStringInt); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStringBooleanArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listStringBoolean); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldCharArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldStringArray); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listChar); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listString); }
 [1] NA NA NA
 Warning message:
 NAs introduced by coercion
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldByteArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldIntegerArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldLongArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldShortArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listByte); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listInteger); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listLong); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listShort); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldDoubleArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldFloatArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listDouble); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listFloat); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$fieldBooleanArray); }
 [1] 1 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.integer(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.integer(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to$listBoolean); }
 [1] 1 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticStringObject) }
+[1] NA
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticCharObject) }
+[1] NA
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticFloatObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticDoubleObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticByteObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticIntegerObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticShortObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticLongObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticNullObject) }
+logical(0)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticNaNObject) }
+[1] NA
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStaticBooleanObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.logical(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStringIntArray); }
 [1] NA NA NA
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listStringInt); }
 [1] NA NA NA
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStringBooleanArray); }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listStringBoolean); }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldCharArray); }
 [1] NA NA NA
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldStringArray); }
 [1] NA NA NA
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listChar); }
 [1] NA NA NA
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listString); }
 [1] NA NA NA
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldByteArray); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldIntegerArray); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldLongArray); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldShortArray); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listByte); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listInteger); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listLong); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listShort); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldDoubleArray); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldFloatArray); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listDouble); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listFloat); }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$fieldBooleanArray); }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.logical(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.logical(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to$listBoolean); }
 [1]  TRUE FALSE  TRUE
 
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.raw("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticStringObject) }
+[1] 00
+Warning messages:
+1: NAs introduced by coercion
+2: out-of-range values treated as 0 in coercion to raw
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.raw("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticCharObject) }
+[1] 00
+Warning messages:
+1: NAs introduced by coercion
+2: out-of-range values treated as 0 in coercion to raw
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.raw(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticFloatObject) }
+[1] 01
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.raw(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticDoubleObject) }
+[1] 00
+Warning messages:
+1: NAs introduced by coercion to integer range
+2: out-of-range values treated as 0 in coercion to raw
+
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticByteObject) }
+[1] 7f
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.raw(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticIntegerObject) }
+[1] 00
+Warning message:
+out-of-range values treated as 0 in coercion to raw
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.raw(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticShortObject) }
+[1] 00
+Warning message:
+out-of-range values treated as 0 in coercion to raw
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.raw(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticLongObject) }
+[1] 00
+Warning messages:
+1: NAs introduced by coercion to integer range
+2: out-of-range values treated as 0 in coercion to raw
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.raw(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticNullObject) }
+raw(0)
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
+#if (!any(R.version$engine == "FastR")) { as.raw(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticNaNObject) }
+[1] 00
+Warning message:
+out-of-range values treated as 0 in coercion to raw
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.raw(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStaticBooleanObject) }
+[1] 01
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.raw(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStringIntArray); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listStringInt); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStringBooleanArray); }
 [1] 00 00 00
 Warning messages:
 1: NAs introduced by coercion
 2: out-of-range values treated as 0 in coercion to raw
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listStringBoolean); }
 [1] 00 00 00
 Warning messages:
 1: NAs introduced by coercion
 2: out-of-range values treated as 0 in coercion to raw
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldCharArray); }
 [1] 00 00 00
 Warning messages:
 1: NAs introduced by coercion
 2: out-of-range values treated as 0 in coercion to raw
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldStringArray); }
 [1] 00 00 00
 Warning messages:
 1: NAs introduced by coercion
 2: out-of-range values treated as 0 in coercion to raw
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningMessage#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listChar); }
 [1] 00 00 00
 Warning messages:
 1: NAs introduced by coercion
 2: out-of-range values treated as 0 in coercion to raw
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listString); }
 [1] 00 00 00
 Warning messages:
 1: NAs introduced by coercion
 2: out-of-range values treated as 0 in coercion to raw
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldByteArray); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldIntegerArray); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldLongArray); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldShortArray); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listByte); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listInteger); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listLong); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listShort); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldDoubleArray); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldFloatArray); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listDouble); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listFloat); }
 [1] 01 02 03
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$fieldBooleanArray); }
 [1] 01 00 01
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.raw(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.raw(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to$listBoolean); }
 [1] 01 00 01
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticStringObject) }
+`a string`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.symbol("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticCharObject) }
+a
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
+#if (!any(R.version$engine == "FastR")) { as.symbol(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticFloatObject) }
+`1.1`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
+#if (!any(R.version$engine == "FastR")) { as.symbol(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticDoubleObject) }
+`1.797693e+308`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.symbol(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticByteObject) }
+`127`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.symbol(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticIntegerObject) }
+`2147483647`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.symbol(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticShortObject) }
+`32767`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
+#if (!any(R.version$engine == "FastR")) { as.symbol(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticLongObject) }
+`9.223372e+18`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreErrorContext#
+#if (!any(R.version$engine == "FastR")) { as.symbol(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticNullObject) }
+Error in as.symbol(NULL) :
+  invalid type/length (symbol/0) in vector allocation
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.symbol(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticNaNObject) }
+`NaN`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.symbol(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStaticBooleanObject) }
+`TRUE`
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStringIntArray); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listStringInt); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStringBooleanArray); }
 `TRUE`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listStringBoolean); }
 `TRUE`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldCharArray); }
 a
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldStringArray); }
 a
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listChar); }
 a
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listString); }
 a
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldByteArray); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldIntegerArray); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldLongArray); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldShortArray); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listByte); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listInteger); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listLong); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listShort); }
 `1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldDoubleArray); }
 `1.1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldFloatArray); }
 `1.1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listDouble); }
 `1.1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Ignored.ImplementationError#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listFloat); }
 `1.1`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$fieldBooleanArray); }
 `TRUE`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.symbol(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.symbol(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to$listBoolean); }
 `TRUE`
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStringIntArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector("a string") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticStringObject) }
+[1] "a string"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector("a") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticCharObject) }
+[1] "a"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(1.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticFloatObject) }
+[1] 1.1
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(1.7976931348623157E308) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticDoubleObject) }
+[1] 1.797693e+308
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(127) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticByteObject) }
+[1] 127
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticIntegerObject) }
+[1] 2147483647
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(32767) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticShortObject) }
+[1] 32767
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(9223372036854775807) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticLongObject) }
+[1] 9.223372e+18
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticNullObject) }
+NULL
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(NaN) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticNaNObject) }
+[1] NaN
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStaticBooleanObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
+#if (!any(R.version$engine == "FastR")) { as.vector(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStringIntArray); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("1","2","3")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listStringInt); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c("1","2","3")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listStringInt); }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStringBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStringBooleanArray); }
 [1] "TRUE"  "TRUE"  "FALSE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("TRUE","TRUE","FALSE")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listStringBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c("TRUE","TRUE","FALSE")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listStringBoolean); }
 [1] "TRUE"  "TRUE"  "FALSE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldCharArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldCharArray); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStringArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldStringArray); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listChar); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listChar); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listString); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c("a","b","c")) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listString); }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldByteArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldByteArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldIntegerArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldIntegerArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldLongArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldLongArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldShortArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldShortArray); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listByte); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listByte); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listInteger); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listInteger); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listLong); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listLong); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listShort); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1,2,3)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listShort); }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldDoubleArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldDoubleArray); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldFloatArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldFloatArray); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listDouble); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listDouble); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listFloat); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(1.1,2.1,3.1)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listFloat); }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldBooleanArray); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$fieldBooleanArray); }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { as.vector(c(TRUE,FALSE,TRUE)) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listBoolean); }
+#if (!any(R.version$engine == "FastR")) { as.vector(c(TRUE,FALSE,TRUE)) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to$listBoolean); }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.character(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.character(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to); }
 Error in as.character(to) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.complex(to) :', '<<<NEWLINE>>>', ' cannot coerce type \'truffleobject\' to vector of type \'complex\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.complex(to) :', '<<<NEWLINE>>>', ' cannot coerce type \'truffleobject\' to vector of type \'complex\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.complex(to); }
 Error in as.complex(to) :
   cannot coerce type 'truffleobject' to vector of type 'complex'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.double(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.double(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.double(to); }
 Error in as.double(to) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.expression(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.expression(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.expression(to); }
 Error in as.expression(to) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.integer(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.integer(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.integer(to); }
 Error in as.integer(to) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.logical(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.logical(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.logical(to); }
 Error in as.logical(to) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.raw(to) :', '<<<NEWLINE>>>', ' cannot coerce type \'truffleobject\' to vector of type \'raw\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.raw(to) :', '<<<NEWLINE>>>', ' cannot coerce type \'truffleobject\' to vector of type \'raw\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.raw(to); }
 Error in as.raw(to) :
   cannot coerce type 'truffleobject' to vector of type 'raw'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.symbol(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.symbol(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.symbol(to); }
 Error in as.symbol(to) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAsXXX#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.vector(to) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to); }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.vector(to) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.vector(to); }
 Error in as.vector(to) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAttributes#
-#if (!any(R.version$engine == "FastR")) { NULL } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); attributes(to) }
+#if (!any(R.version$engine == "FastR")) { NULL } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); attributes(to) }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAttributes#
-#if (!any(R.version$engine == "FastR")) { cat('Error in attr(to, "a") <- "a" : external object cannot be attributed', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); attr(to, 'a')<-'a' }
-Error in attr(to, "a") <- "a" : external object cannot be attributed
+#if (!any(R.version$engine == "FastR")) { cat('Error in attr(to, "a") <- "a" : polyglot value cannot be attributed', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); attr(to, 'a')<-'a' }
+Error in attr(to, "a") <- "a" : polyglot value cannot be attributed
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testAttributes#
-#if (!any(R.version$engine == "FastR")) { cat('Error in attr(to, which = "a") : external object cannot be attributed', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); attr(to, which = 'a') }
-Error in attr(to, which = "a") : external object cannot be attributed
+#if (!any(R.version$engine == "FastR")) { cat('Error in attr(to, which = "a") : polyglot value cannot be attributed', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); attr(to, which = 'a') }
+Error in attr(to, which = "a") : polyglot value cannot be attributed
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testClassAsParameter#Ignored.ImplementationError#
-#if (!any(R.version$engine == "FastR")) { "com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$classAsArg(new.java.class(com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass)) }
+#if (!any(R.version$engine == "FastR")) { "com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$classAsArg(java.type(com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass)) }
 [1] "com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { 'list' } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); t <- new.external(tc); t1 <- new.external(tc); class(c(t, t1)) }
+#if (!any(R.version$engine == "FastR")) { 'list' } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); t <- .fastr.interop.new(tc); t1 <- .fastr.interop.new(tc); class(c(t, t1)) }
 [1] "list"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { 'list' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); class(c(1, t)) }
+#if (!any(R.version$engine == "FastR")) { 'list' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); class(c(1, t)) }
 [1] "list"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { 'list' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); class(c(t, 1)) }
+#if (!any(R.version$engine == "FastR")) { 'list' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); class(c(t, 1)) }
 [1] "list"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { 'list' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); class(c(to)) }
+#if (!any(R.version$engine == "FastR")) { 'list' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); class(c(to)) }
 [1] "list"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("1","2","3") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringInt) }
+#if (!any(R.version$engine == "FastR")) { c("1","2","3") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringInt) }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("1","2","3","1","2","3") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringInt, to$listStringInt) }
+#if (!any(R.version$engine == "FastR")) { c("1","2","3","1","2","3") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringInt, to$listStringInt) }
 [1] "1" "2" "3" "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("TRUE","TRUE","FALSE") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringBoolean) }
+#if (!any(R.version$engine == "FastR")) { c("TRUE","TRUE","FALSE") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringBoolean) }
 [1] "TRUE"  "TRUE"  "FALSE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("TRUE","TRUE","FALSE","TRUE","TRUE","FALSE") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringBoolean, to$listStringBoolean) }
+#if (!any(R.version$engine == "FastR")) { c("TRUE","TRUE","FALSE","TRUE","TRUE","FALSE") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listStringBoolean, to$listStringBoolean) }
 [1] "TRUE"  "TRUE"  "FALSE" "TRUE"  "TRUE"  "FALSE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldCharArray) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldCharArray) }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldStringArray) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldStringArray) }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listChar) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listChar) }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listString) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listString) }
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldCharArray, to$fieldCharArray) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldCharArray, to$fieldCharArray) }
 [1] "a" "b" "c" "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldStringArray, to$fieldStringArray) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldStringArray, to$fieldStringArray) }
 [1] "a" "b" "c" "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listChar, to$listChar) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listChar, to$listChar) }
 [1] "a" "b" "c" "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listString, to$listString) }
+#if (!any(R.version$engine == "FastR")) { c("a","b","c","a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listString, to$listString) }
 [1] "a" "b" "c" "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c() } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listEmpty) }
+#if (!any(R.version$engine == "FastR")) { c() } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listEmpty) }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c() } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listEmpty, to$listEmpty) }
+#if (!any(R.version$engine == "FastR")) { c() } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listEmpty, to$listEmpty) }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldByteArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldByteArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldIntegerArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldIntegerArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldLongArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldLongArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldShortArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldShortArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listByte) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listByte) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listInteger) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listInteger) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listLong) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listLong) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listShort) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listShort) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldByteArray, to$fieldByteArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldByteArray, to$fieldByteArray) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldIntegerArray, to$fieldIntegerArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldIntegerArray, to$fieldIntegerArray) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldLongArray, to$fieldLongArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldLongArray, to$fieldLongArray) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldShortArray, to$fieldShortArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldShortArray, to$fieldShortArray) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listByte, to$listByte) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listByte, to$listByte) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listInteger, to$listInteger) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listInteger, to$listInteger) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listLong, to$listLong) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listLong, to$listLong) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listShort, to$listShort) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3,1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listShort, to$listShort) }
 [1] 1 2 3 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldDoubleArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldDoubleArray) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldFloatArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldFloatArray) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listDouble) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listDouble) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listFloat) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listFloat) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldDoubleArray, to$fieldDoubleArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldDoubleArray, to$fieldDoubleArray) }
 [1] 1.1 2.1 3.1 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldFloatArray, to$fieldFloatArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldFloatArray, to$fieldFloatArray) }
 [1] 1.1 2.1 3.1 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listDouble, to$listDouble) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listDouble, to$listDouble) }
 [1] 1.1 2.1 3.1 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listFloat, to$listFloat) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1,1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listFloat, to$listFloat) }
 [1] 1.1 2.1 3.1 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldBooleanArray) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldBooleanArray) }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listBoolean) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listBoolean) }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE,TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldBooleanArray, to$fieldBooleanArray) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE,TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$fieldBooleanArray, to$fieldBooleanArray) }
 [1]  TRUE FALSE  TRUE  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineForeignObjects#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE,TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listBoolean, to$listBoolean) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE,TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(to$listBoolean, to$listBoolean) }
 [1]  TRUE FALSE  TRUE  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineInteropTypes#
-#if (!any(R.version$engine == "FastR")) { 'interopt.byte' } else { class(c(as.external.byte(123))) }
+#if (!any(R.version$engine == "FastR")) { 'interopt.byte' } else { class(c(.fastr.interop.asByte(123))) }
 [1] "interopt.byte"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineInteropTypes#
-#if (!any(R.version$engine == "FastR")) { 'list' } else { class(c(1, as.external.byte(123))) }
+#if (!any(R.version$engine == "FastR")) { 'list' } else { class(c(.fastr.interop.asByte(123), .fastr.interop.asByte(234))) }
 [1] "list"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineInteropTypes#
-#if (!any(R.version$engine == "FastR")) { 'list' } else { class(c(as.external.byte(123), 1)) }
+#if (!any(R.version$engine == "FastR")) { 'list' } else { class(c(.fastr.interop.asByte(123), 1)) }
 [1] "list"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testCombineInteropTypes#
-#if (!any(R.version$engine == "FastR")) { 'list' } else { class(c(as.external.byte(123), as.external.byte(234))) }
+#if (!any(R.version$engine == "FastR")) { 'list' } else { class(c(1, .fastr.interop.asByte(123))) }
 [1] "list"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testConvertEmptyList#
-#if (!any(R.version$engine == "FastR")) { as.character(list()) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listEmpty); }
+#if (!any(R.version$engine == "FastR")) { as.character(list()) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));as.character(to$listEmpty); }
 character(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testElseIf#
@@ -144775,105 +145251,125 @@ character(0)
 [1] NA NA NA
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testElseIf#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.logical(test) :', '<<<NEWLINE>>>', ' no method for coercing this external object to a vector', '<<<NEWLINE>>>') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); ifelse(ta) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in as.logical(test) :', '<<<NEWLINE>>>', ' no method for coercing this polyglot value to a vector', '<<<NEWLINE>>>') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); ifelse(ta) }
 Error in as.logical(test) :
-  no method for coercing this external object to a vector
+  no method for coercing this polyglot value to a vector
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
+#if (!any(R.version$engine == "FastR")) { cat('Error in .fastr.interop.new(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.io.IOException', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.io.IOException'); }
+Error in .fastr.interop.new(Class, ...) :
+  Foreign function failed: java.io.IOException
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
+#if (!any(R.version$engine == "FastR")) { cat('Error in .fastr.interop.new(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.io.IOException: msg', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.io.IOException', 'msg'); }
+Error in .fastr.interop.new(Class, ...) :
+  Foreign function failed: java.io.IOException: msg
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
+#if (!any(R.version$engine == "FastR")) { cat('Error in .fastr.interop.new(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.lang.RuntimeException', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.lang.RuntimeException'); }
+Error in .fastr.interop.new(Class, ...) :
+  Foreign function failed: java.lang.RuntimeException
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
+#if (!any(R.version$engine == "FastR")) { cat('Error in .fastr.interop.new(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.lang.RuntimeException: msg', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.lang.RuntimeException', 'msg'); }
+Error in .fastr.interop.new(Class, ...) :
+  Foreign function failed: java.lang.RuntimeException: msg
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
-#if (!any(R.version$engine == "FastR")) { cat('Error in new.external(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.io.IOException', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.io.IOException'); }
-Error in new.external(Class, ...) :
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$exception("java.io.IOException") :', '<<<NEWLINE>>>', ' Foreign function failed: java.io.IOException', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass');to$exception('java.io.IOException') }
+Error in to$exception("java.io.IOException") :
   Foreign function failed: java.io.IOException
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
-#if (!any(R.version$engine == "FastR")) { cat('Error in new.external(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.io.IOException: msg', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.io.IOException', 'msg'); }
-Error in new.external(Class, ...) :
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$exception("java.io.IOException", "msg") :', '<<<NEWLINE>>>', ' Foreign function failed: java.io.IOException: msg', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass');to$exception('java.io.IOException', 'msg') }
+Error in to$exception("java.io.IOException", "msg") :
   Foreign function failed: java.io.IOException: msg
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
-#if (!any(R.version$engine == "FastR")) { cat('Error in new.external(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.lang.RuntimeException', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.lang.RuntimeException'); }
-Error in new.external(Class, ...) :
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$exception("java.lang.RuntimeException") :', '<<<NEWLINE>>>', ' Foreign function failed: java.lang.RuntimeException', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass');to$exception('java.lang.RuntimeException') }
+Error in to$exception("java.lang.RuntimeException") :
   Foreign function failed: java.lang.RuntimeException
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testException#
-#if (!any(R.version$engine == "FastR")) { cat('Error in new.external(Class, ...) :', '<<<NEWLINE>>>', ' Foreign function failed: java.lang.RuntimeException: msg', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass', 'java.lang.RuntimeException', 'msg'); }
-Error in new.external(Class, ...) :
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$exception("java.lang.RuntimeException", "msg") :', '<<<NEWLINE>>>', ' Foreign function failed: java.lang.RuntimeException: msg', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestExceptionsClass');to$exception('java.lang.RuntimeException', 'msg') }
+Error in to$exception("java.lang.RuntimeException", "msg") :
   Foreign function failed: java.lang.RuntimeException: msg
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { "a string" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringObject }
+#if (!any(R.version$engine == "FastR")) { "a string" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringObject }
 [1] "a string"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { "a" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldChar }
+#if (!any(R.version$engine == "FastR")) { "a" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldChar }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { "a" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldCharObject }
+#if (!any(R.version$engine == "FastR")) { "a" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldCharObject }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldFloat }
+#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldFloat }
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldFloatObject }
+#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldFloatObject }
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldDouble }
+#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldDouble }
 [1] 1.797693e+308
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldDoubleObject }
+#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldDoubleObject }
 [1] 1.797693e+308
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 127 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldByte }
+#if (!any(R.version$engine == "FastR")) { 127 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldByte }
 [1] 127
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 127 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldByteObject }
+#if (!any(R.version$engine == "FastR")) { 127 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldByteObject }
 [1] 127
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldInteger }
+#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldInteger }
 [1] 2147483647
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerObject }
+#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerObject }
 [1] 2147483647
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldShort }
+#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldShort }
 [1] 32767
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldShortObject }
+#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldShortObject }
 [1] 32767
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldLong }
+#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldLong }
 [1] 9.223372e+18
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldLongObject }
+#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldLongObject }
 [1] 9.223372e+18
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { NULL } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldNullObject }
+#if (!any(R.version$engine == "FastR")) { NULL } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldNullObject }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldBoolean }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldBoolean }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldBooleanObject }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldBooleanObject }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]<<<NEWLINE>>>[[1]]<<<NEWLINE>>>[1] 1<<<NEWLINE>>><<<NEWLINE>>>[[2]]<<<NEWLINE>>>[1] 2.1<<<NEWLINE>>><<<NEWLINE>>>[[3]]<<<NEWLINE>>>[1] "a"<<<NEWLINE>>><<<NEWLINE>>>[[4]]<<<NEWLINE>>>[1] TRUE<<<NEWLINE>>><<<NEWLINE>>>[[5]]<<<NEWLINE>>>NULL<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$mixedTypesArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]<<<NEWLINE>>>[[1]]<<<NEWLINE>>>[1] 1<<<NEWLINE>>><<<NEWLINE>>>[[2]]<<<NEWLINE>>>[1] 2.1<<<NEWLINE>>><<<NEWLINE>>>[[3]]<<<NEWLINE>>>[1] "a"<<<NEWLINE>>><<<NEWLINE>>>[[4]]<<<NEWLINE>>>[1] TRUE<<<NEWLINE>>><<<NEWLINE>>>[[5]]<<<NEWLINE>>>NULL<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$mixedTypesArray }
+[polyglot value]
 [[1]]
 [1] 1
 
@@ -144891,2730 +145387,2796 @@ NULL
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1]  TRUE FALSE  TRUE\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldBooleanArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1]  TRUE FALSE  TRUE\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldBooleanArray }
+[polyglot value]
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "1" "2" "3"\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringIntArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "1" "2" "3"\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringIntArray }
+[polyglot value]
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "TRUE"  "TRUE"  "FALSE"\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringBooleanArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "TRUE"  "TRUE"  "FALSE"\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringBooleanArray }
+[polyglot value]
 [1] "TRUE"  "TRUE"  "FALSE"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a" "b" "c"\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldCharArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a" "b" "c"\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldCharArray }
+[polyglot value]
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a" "b" "c"\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a" "b" "c"\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringArray }
+[polyglot value]
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2 3\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldByteArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2 3\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldByteArray }
+[polyglot value]
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2 3\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2 3\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldIntegerArray }
+[polyglot value]
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2 3\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldLongArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2 3\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldLongArray }
+[polyglot value]
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2 3\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldShortArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2 3\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldShortArray }
+[polyglot value]
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.1 2.1 3.1\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldDoubleArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.1 2.1 3.1\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldDoubleArray }
+[polyglot value]
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFields#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.1 2.1 3.1\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldFloatArray }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.1 2.1 3.1\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldFloatArray }
+[polyglot value]
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFor#
-#if (!any(R.version$engine == "FastR")) { for(i in c(1,2,3)) print(i) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));for(i in to$fieldIntegerArray) print(i) }
+#if (!any(R.version$engine == "FastR")) { for(i in c(1,2,3)) print(i) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));for(i in to$fieldIntegerArray) print(i) }
 [1] 1
 [1] 2
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFor#
-#if (!any(R.version$engine == "FastR")) { for(i in c(1,2,3)) print(i) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));for(i in to$listInteger) print(i) }
+#if (!any(R.version$engine == "FastR")) { for(i in c(1,2,3)) print(i) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));for(i in to$listInteger) print(i) }
 [1] 1
 [1] 2
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 0, 1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldBooleanArray) }
+#if (!any(R.version$engine == "FastR")) { c(1, 0, 1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldBooleanArray) }
 [1] 1 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 0, 1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listBoolean) }
+#if (!any(R.version$engine == "FastR")) { c(1, 0, 1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listBoolean) }
 [1] 1 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldByteArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldByteArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldIntegerArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldIntegerArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldLongArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldLongArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldShortArray) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldShortArray) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listByte) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listByte) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listInteger) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listInteger) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listLong) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listLong) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listShort) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listShort) }
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldDoubleArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldDoubleArray) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldFloatArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldFloatArray) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listDouble) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listDouble) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listFloat) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listFloat) }
 [1] 1.1 2.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$fieldCharArray) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldCharArray) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$fieldCharArray) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldCharArray) }
 Error in abs(to$fieldCharArray) :
   non-numeric argument to mathematical function
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$fieldStringArray) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldStringArray) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$fieldStringArray) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$fieldStringArray) }
 Error in abs(to$fieldStringArray) :
   non-numeric argument to mathematical function
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$listChar) : non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listChar) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$listChar) : non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listChar) }
 Error in abs(to$listChar) : non-numeric argument to mathematical function
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$listString) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listString) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$listString) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listString) }
 Error in abs(to$listString) :
   non-numeric argument to mathematical function
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$listStringInt) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listStringInt) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to$listStringInt) :', '<<<NEWLINE>>>', ' non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to$listStringInt) }
 Error in abs(to$listStringInt) :
   non-numeric argument to mathematical function
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to) : non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in abs(to) : non-numeric argument to mathematical function', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));abs(to) }
 Error in abs(to) : non-numeric argument to mathematical function
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c('1', '3') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listStringInt) }
+#if (!any(R.version$engine == "FastR")) { c('1', '3') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listStringInt) }
 [1] "1" "3"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldCharArray) }
+#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldCharArray) }
 [1] "a" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldStringArray) }
+#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldStringArray) }
 [1] "a" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listChar) }
+#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listChar) }
 [1] "a" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listString) }
+#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listString) }
 [1] "a" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(0, 1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldBooleanArray) }
+#if (!any(R.version$engine == "FastR")) { c(0, 1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldBooleanArray) }
 [1] 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(0, 1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listBoolean) }
+#if (!any(R.version$engine == "FastR")) { c(0, 1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listBoolean) }
 [1] 0 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldByteArray) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldByteArray) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldIntegerArray) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldIntegerArray) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldLongArray) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldLongArray) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldShortArray) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldShortArray) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listByte) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listByte) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listInteger) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listInteger) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listLong) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listLong) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listShort) }
+#if (!any(R.version$engine == "FastR")) { c(1, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listShort) }
 [1] 1 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldDoubleArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldDoubleArray) }
 [1] 1.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldFloatArray) }
+#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$fieldFloatArray) }
 [1] 1.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listDouble) }
+#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listDouble) }
 [1] 1.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listFloat) }
+#if (!any(R.version$engine == "FastR")) { c(1.1, 3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to$listFloat) }
 [1] 1.1 3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignUnaryArithmeticReduceOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in range(to) : invalid \'type\' (external object) of argument', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to) }
-Error in range(to) : invalid 'type' (external object) of argument
+#if (!any(R.version$engine == "FastR")) { cat('Error in range(to) : invalid \'type\' (polyglot.value) of argument', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));range(to) }
+Error in range(to) : invalid 'type' (polyglot.value) of argument
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldByteArray) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldByteArray) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldIntegerArray) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldIntegerArray) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldLongArray) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldLongArray) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldShortArray) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldShortArray) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listByte) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listByte) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listInteger) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listInteger) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listLong) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listLong) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listShort) }
+#if (!any(R.version$engine == "FastR")) { -c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listShort) }
 [1] -1 -2 -3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldDoubleArray) }
+#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldDoubleArray) }
 [1] -1.1 -2.1 -3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldFloatArray) }
+#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldFloatArray) }
 [1] -1.1 -2.1 -3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listDouble) }
+#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listDouble) }
 [1] -1.1 -2.1 -3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listFloat) }
+#if (!any(R.version$engine == "FastR")) { -c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listFloat) }
 [1] -1.1 -2.1 -3.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldBooleanArray) }
+#if (!any(R.version$engine == "FastR")) { -c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldBooleanArray) }
 [1] -1  0 -1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { -c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listBoolean) }
+#if (!any(R.version$engine == "FastR")) { -c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listBoolean) }
 [1] -1  0 -1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldByteArray }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldIntegerArray }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldLongArray }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldShortArray }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listByte }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listByte }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listInteger }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listInteger }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listLong }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listLong }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listShort }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listShort }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldDoubleArray }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldFloatArray }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listDouble }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listDouble }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listFloat }
+#if (!any(R.version$engine == "FastR")) { 1 + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listFloat }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { 1 + c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldBooleanArray }
 [1] 2 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { 1 + c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { 1 + c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listBoolean }
 [1] 2 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldByteArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldIntegerArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldLongArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldShortArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listByte }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listInteger }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listLong }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listShort }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldDoubleArray }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldFloatArray }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listDouble }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listFloat }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldBooleanArray }
 [1] 2 2 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(1, 2, 3) + c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listBoolean }
 [1] 2 2 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + 1 }
 [1] 2 3 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + c(1, 2, 3) }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + to$fieldByteArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + to$fieldIntegerArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + to$fieldLongArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + to$fieldShortArray }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + to$listByte }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + to$listInteger }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + to$listLong }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) + c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + to$listShort }
 [1] 2 4 6
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + 1 }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + 1 }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + 1 }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + 1 }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + 1 }
 [1] 2.1 3.1 4.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + c(1, 2, 3) }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + c(1, 2, 3) }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + c(1, 2, 3) }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + c(1, 2, 3) }
 [1] 2.1 4.1 6.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + to$fieldDoubleArray }
 [1] 2.2 4.2 6.2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + to$fieldFloatArray }
 [1] 2.2 4.2 6.2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + to$listDouble }
 [1] 2.2 4.2 6.2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) + c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + to$listFloat }
 [1] 2.2 4.2 6.2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + 1 }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + 1 }
 [1] 2 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + 1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + 1 }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + 1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + 1 }
 [1] 2 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + c(1, 2, 3) }
 [1] 2 2 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(1, 2, 3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(1, 2, 3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + c(1, 2, 3) }
 [1] 2 2 4
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + to$fieldBooleanArray }
 [1] 2 0 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) + c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + to$listBoolean }
 [1] 2 0 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$fieldCharArray) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldCharArray) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$fieldCharArray) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldCharArray) }
 Error in -(to$fieldCharArray) : invalid argument to unary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$fieldStringArray) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldStringArray) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$fieldStringArray) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$fieldStringArray) }
 Error in -(to$fieldStringArray) : invalid argument to unary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$listChar) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listChar) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$listChar) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listChar) }
 Error in -(to$listChar) : invalid argument to unary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$listString) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listString) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$listString) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listString) }
 Error in -(to$listString) : invalid argument to unary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$listStringInt) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listStringInt) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in -(to$listStringInt) : invalid argument to unary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));-(to$listStringInt) }
 Error in -(to$listStringInt) : invalid argument to unary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to }
+#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to }
 Error in 1 + to : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$fieldCharArray : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$fieldCharArray : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldCharArray }
 Error in 1 + to$fieldCharArray : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$fieldStringArray }
 Error in 1 + to$fieldStringArray :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$listChar : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$listChar : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listChar }
 Error in 1 + to$listChar : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$listString : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$listString : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listString }
 Error in 1 + to$listString : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$listStringInt : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in 1 + to$listStringInt : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));1 + to$listStringInt }
 Error in 1 + to$listStringInt : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$fieldCharArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$fieldCharArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldCharArray }
 Error in NULL + to$fieldCharArray :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldStringArray }
 Error in NULL + to$fieldStringArray :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$listChar : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$listChar : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listChar }
 Error in NULL + to$listChar : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$listString : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$listString : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listString }
 Error in NULL + to$listString : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$listStringInt :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL + to$listStringInt :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listStringInt }
 Error in NULL + to$listStringInt :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$fieldCharArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$fieldCharArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldCharArray }
 Error in c(1, 2, 3) + to$fieldCharArray :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$fieldStringArray }
 Error in c(1, 2, 3) + to$fieldStringArray :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$listChar :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$listChar :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listChar }
 Error in c(1, 2, 3) + to$listChar :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$listString :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$listString :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listString }
 Error in c(1, 2, 3) + to$listString :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$listStringInt :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(1, 2, 3) + to$listStringInt :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(1, 2, 3) + to$listStringInt }
 Error in c(1, 2, 3) + to$listStringInt :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to + 1 }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to + 1 }
 Error in to + 1 : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to + to : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to + to }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to + to : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to + to }
 Error in to + to : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + 1 }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + 1 }
 Error in to$fieldCharArray + 1 : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + NULL :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + NULL :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + NULL }
 Error in to$fieldCharArray + NULL :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + c(1, 2, 3) }
 Error in to$fieldCharArray + c(1, 2, 3) :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + to$fieldCharArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray + to$fieldCharArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray + to$fieldCharArray }
 Error in to$fieldCharArray + to$fieldCharArray :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + 1 :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + 1 }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + 1 :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + 1 }
 Error in to$fieldStringArray + 1 :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + NULL :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + NULL :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + NULL }
 Error in to$fieldStringArray + NULL :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + c(1, 2, 3) }
 Error in to$fieldStringArray + c(1, 2, 3) :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray + to$fieldStringArray :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray + to$fieldStringArray }
 Error in to$fieldStringArray + to$fieldStringArray :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + 1 }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + 1 }
 Error in to$listChar + 1 : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + NULL : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + NULL : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + NULL }
 Error in to$listChar + NULL : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + c(1, 2, 3) }
 Error in to$listChar + c(1, 2, 3) :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + to$listChar :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar + to$listChar :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar + to$listChar }
 Error in to$listChar + to$listChar :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + 1 }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + 1 }
 Error in to$listString + 1 : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + NULL : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + NULL : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + NULL }
 Error in to$listString + NULL : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + c(1, 2, 3) }
 Error in to$listString + c(1, 2, 3) :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + to$listString :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString + to$listString :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString + to$listString }
 Error in to$listString + to$listString :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + 1 }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + 1 : non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + 1 }
 Error in to$listStringInt + 1 : non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + NULL :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + NULL :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + NULL }
 Error in to$listStringInt + NULL :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + c(1, 2, 3) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + c(1, 2, 3) :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + c(1, 2, 3) }
 Error in to$listStringInt + c(1, 2, 3) :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + to$listStringInt :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt + to$listStringInt :', '<<<NEWLINE>>>', ' non-numeric argument to binary operator', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt + to$listStringInt }
 Error in to$listStringInt + to$listStringInt :
   non-numeric argument to binary operator
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldBooleanArray }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldByteArray }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldIntegerArray }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldShortArray }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listBoolean }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listByte }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listByte }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listInteger }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listInteger }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listShort }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listShort }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + NULL }
+#if (!any(R.version$engine == "FastR")) { integer(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort + NULL }
 integer(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldDoubleArray }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldFloatArray }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$fieldLongArray }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listDouble }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listDouble }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listFloat }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listFloat }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listLong }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL + to$listLong }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + NULL }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray + NULL }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + NULL }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray + NULL }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + NULL }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray + NULL }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + NULL }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble + NULL }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + NULL }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat + NULL }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorArithmeticOp#
-#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + NULL }
+#if (!any(R.version$engine == "FastR")) { numeric(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong + NULL }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldByteArray) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldByteArray) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldIntegerArray) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldIntegerArray) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldLongArray) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldLongArray) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldShortArray) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldShortArray) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listByte) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listByte) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listInteger) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listInteger) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listLong) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listLong) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listShort) }
+#if (!any(R.version$engine == "FastR")) { !c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listShort) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldDoubleArray) }
+#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldDoubleArray) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldFloatArray) }
+#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldFloatArray) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listDouble) }
+#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listDouble) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listFloat) }
+#if (!any(R.version$engine == "FastR")) { !c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listFloat) }
 [1] FALSE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldBooleanArray) }
+#if (!any(R.version$engine == "FastR")) { !c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldBooleanArray) }
 [1] FALSE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { !c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listBoolean) }
+#if (!any(R.version$engine == "FastR")) { !c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listBoolean) }
 [1] FALSE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldByteArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldIntegerArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldLongArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldShortArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listByte }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listByte }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listInteger }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listInteger }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listLong }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listLong }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listShort }
+#if (!any(R.version$engine == "FastR")) { T & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listShort }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldDoubleArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldFloatArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listDouble }
+#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listDouble }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listFloat }
+#if (!any(R.version$engine == "FastR")) { T & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listFloat }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { T & c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldBooleanArray }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T & c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { T & c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listBoolean }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & to$fieldByteArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & to$fieldIntegerArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & to$fieldLongArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & to$fieldShortArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & to$listByte }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & to$listInteger }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & to$listLong }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & to$listShort }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & T }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & to$fieldDoubleArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & to$fieldFloatArray }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & to$listDouble }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & to$listFloat }
 [1] TRUE TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & c(T, T, F) }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldByteArray }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldIntegerArray }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldLongArray }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldShortArray }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listByte }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listInteger }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listLong }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listShort }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldDoubleArray }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldFloatArray }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listDouble }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listFloat }
 [1]  TRUE  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldBooleanArray }
 [1]  TRUE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) & c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listBoolean }
 [1]  TRUE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & T }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & T }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & T }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & T }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & c(T, T, F) }
 [1]  TRUE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & c(T, T, F) }
 [1]  TRUE FALSE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & to$fieldBooleanArray }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) & c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & to$listBoolean }
 [1]  TRUE FALSE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$fieldCharArray) : invalid argument type', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldCharArray) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$fieldCharArray) : invalid argument type', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldCharArray) }
 Error in !(to$fieldCharArray) : invalid argument type
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$fieldStringArray) : invalid argument type', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldStringArray) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$fieldStringArray) : invalid argument type', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$fieldStringArray) }
 Error in !(to$fieldStringArray) : invalid argument type
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$listChar) : invalid argument type', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listChar) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$listChar) : invalid argument type', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listChar) }
 Error in !(to$listChar) : invalid argument type
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$listString) : invalid argument type', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listString) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$listString) : invalid argument type', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listString) }
 Error in !(to$listString) : invalid argument type
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$listStringInt) : invalid argument type', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listStringInt) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in !(to$listStringInt) : invalid argument type', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));!(to$listStringInt) }
 Error in !(to$listStringInt) : invalid argument type
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T & to :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T & to :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to }
 Error in T & to :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$fieldCharArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$fieldCharArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldCharArray }
 Error in T & to$fieldCharArray :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$fieldStringArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$fieldStringArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$fieldStringArray }
 Error in T & to$fieldStringArray :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$listChar :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$listChar :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listChar }
 Error in T & to$listChar :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$listString :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$listString :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listString }
 Error in T & to$listString :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$listStringInt :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T & to$listStringInt :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T & to$listStringInt }
 Error in T & to$listStringInt :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$fieldCharArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$fieldCharArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldCharArray }
 Error in c(T, T, F) & to$fieldCharArray :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$fieldStringArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$fieldStringArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$fieldStringArray }
 Error in c(T, T, F) & to$fieldStringArray :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$listChar :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$listChar :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listChar }
 Error in c(T, T, F) & to$listChar :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$listString :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$listString :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listString }
 Error in c(T, T, F) & to$listString :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$listStringInt :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) & to$listStringInt :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) & to$listStringInt }
 Error in c(T, T, F) & to$listStringInt :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to & T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to & T }
 Error in to & T :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to & to :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to & to }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to & to :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to & to }
 Error in to & to :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & T }
 Error in to$fieldCharArray & T :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & c(T, T, F) }
 Error in to$fieldCharArray & c(T, T, F) :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray & to$fieldCharArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray & to$fieldCharArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & to$fieldCharArray }
 Error in to$fieldCharArray & to$fieldCharArray :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & T }
 Error in to$fieldStringArray & T :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & c(T, T, F) }
 Error in to$fieldStringArray & c(T, T, F) :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray & to$fieldStringArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray & to$fieldStringArray :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & to$fieldStringArray }
 Error in to$fieldStringArray & to$fieldStringArray :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & T }
 Error in to$listChar & T :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & c(T, T, F) }
 Error in to$listChar & c(T, T, F) :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar & to$listChar :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar & to$listChar :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & to$listChar }
 Error in to$listChar & to$listChar :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & T }
 Error in to$listString & T :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & c(T, T, F) }
 Error in to$listString & c(T, T, F) :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString & to$listString :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString & to$listString :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & to$listString }
 Error in to$listString & to$listString :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt & T :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & T }
 Error in to$listStringInt & T :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt & c(T, T, F) :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & c(T, T, F) }
 Error in to$listStringInt & c(T, T, F) :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt & to$listStringInt :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt & to$listStringInt :', '<<<NEWLINE>>>', ' operations are possible only for numeric, logical or complex types', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & to$listStringInt }
 Error in to$listStringInt & to$listStringInt :
   operations are possible only for numeric, logical or complex types
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldBooleanArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldByteArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldCharArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldDoubleArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldFloatArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldIntegerArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldLongArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldShortArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$fieldStringArray }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listBoolean }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listByte }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listByte }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listChar }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listChar }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listDouble }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listDouble }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listFloat }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listFloat }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listInteger }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listInteger }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listLong }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listLong }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listShort }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listShort }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listString }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listString }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL & to$listStringInt }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorBooleanOp#
-#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & NULL }
+#if (!any(R.version$engine == "FastR")) { logical(0) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt & NULL }
 logical(0)
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldByteArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldIntegerArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldLongArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldShortArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listByte }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listByte }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listInteger }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listInteger }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listLong }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listLong }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listShort }
+#if (!any(R.version$engine == "FastR")) { T && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listShort }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldDoubleArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldFloatArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listDouble }
+#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listDouble }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listFloat }
+#if (!any(R.version$engine == "FastR")) { T && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listFloat }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { T && c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldBooleanArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T && c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { T && c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listBoolean }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c("1","2","3") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { T || c("1","2","3") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listStringInt }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldCharArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldStringArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listChar }
+#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listChar }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listString }
+#if (!any(R.version$engine == "FastR")) { T || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listString }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldByteArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldIntegerArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldLongArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldShortArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listByte }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listByte }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listInteger }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listInteger }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listLong }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listLong }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listShort }
+#if (!any(R.version$engine == "FastR")) { T || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listShort }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldDoubleArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldFloatArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listDouble }
+#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listDouble }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listFloat }
+#if (!any(R.version$engine == "FastR")) { T || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listFloat }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { T || c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$fieldBooleanArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { T || c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { T || c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to$listBoolean }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T || to }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || NULL }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || NULL }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && to$fieldByteArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && to$fieldIntegerArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && to$fieldLongArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && to$fieldShortArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && to$listByte }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && to$listInteger }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && to$listLong }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && to$listShort }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || to$fieldByteArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || to$fieldIntegerArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || to$fieldLongArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || to$fieldShortArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || to$listByte }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || to$listInteger }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || to$listLong }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || to$listShort }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || T }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1,2,3)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && to$fieldDoubleArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && to$fieldFloatArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && to$listDouble }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && to$listFloat }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || to$fieldDoubleArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || to$fieldFloatArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || to$listDouble }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || to$listFloat }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || T }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(1.1,2.1,3.1)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldByteArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldIntegerArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldLongArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldShortArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listByte }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listInteger }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listLong }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listShort }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldDoubleArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldFloatArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listDouble }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listFloat }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldBooleanArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) && c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listBoolean }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("1","2","3") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("1","2","3") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listStringInt }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldCharArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldStringArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listChar }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listChar }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listString }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c("a","b","c") } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listString }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldByteArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldIntegerArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldLongArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldShortArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listByte }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listByte }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listInteger }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listInteger }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listLong }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listLong }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listShort }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1,2,3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listShort }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldDoubleArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldFloatArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listDouble }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listDouble }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listFloat }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(1.1,2.1,3.1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listFloat }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$fieldBooleanArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(T, T, F) || c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) || to$listBoolean }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) && c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) && c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && to$fieldBooleanArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) && c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) && c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && to$listBoolean }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) || c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) || c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || to$fieldBooleanArray }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) || c(TRUE,FALSE,TRUE) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE) || c(TRUE,FALSE,TRUE) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || to$listBoolean }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && T }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && T }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)&& c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || T }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| T } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || T }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| T } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || T }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| c(T, T, F) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { c(TRUE,FALSE,TRUE)|| c(T, T, F) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean || c(T, T, F) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldBooleanArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldBooleanArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldBooleanArray }
 Error in NULL && to$fieldBooleanArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldByteArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldByteArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldByteArray }
 Error in NULL && to$fieldByteArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldCharArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldCharArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldCharArray }
 Error in NULL && to$fieldCharArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldDoubleArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldDoubleArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldDoubleArray }
 Error in NULL && to$fieldDoubleArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldFloatArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldFloatArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldFloatArray }
 Error in NULL && to$fieldFloatArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldIntegerArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldIntegerArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldIntegerArray }
 Error in NULL && to$fieldIntegerArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldLongArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldLongArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldLongArray }
 Error in NULL && to$fieldLongArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldShortArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldShortArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldShortArray }
 Error in NULL && to$fieldShortArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldStringArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$fieldStringArray : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$fieldStringArray }
 Error in NULL && to$fieldStringArray : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listBoolean : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listBoolean : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listBoolean }
 Error in NULL && to$listBoolean : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listByte : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listByte }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listByte : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listByte }
 Error in NULL && to$listByte : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listChar : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listChar : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listChar }
 Error in NULL && to$listChar : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listDouble : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listDouble }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listDouble : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listDouble }
 Error in NULL && to$listDouble : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listFloat : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listFloat }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listFloat : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listFloat }
 Error in NULL && to$listFloat : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listInteger : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listInteger }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listInteger : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listInteger }
 Error in NULL && to$listInteger : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listLong : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listLong }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listLong : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listLong }
 Error in NULL && to$listLong : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listShort : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listShort }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listShort : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listShort }
 Error in NULL && to$listShort : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listString : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listString : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listString }
 Error in NULL && to$listString : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listStringInt : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL && to$listStringInt : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL && to$listStringInt }
 Error in NULL && to$listStringInt : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldBooleanArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldBooleanArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldBooleanArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldBooleanArray }
 Error in NULL || to$fieldBooleanArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldByteArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldByteArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldByteArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldByteArray }
 Error in NULL || to$fieldByteArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldCharArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldCharArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldCharArray }
 Error in NULL || to$fieldCharArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldDoubleArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldDoubleArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldDoubleArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldDoubleArray }
 Error in NULL || to$fieldDoubleArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldFloatArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldFloatArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldFloatArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldFloatArray }
 Error in NULL || to$fieldFloatArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldIntegerArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldIntegerArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldIntegerArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldIntegerArray }
 Error in NULL || to$fieldIntegerArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldLongArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldLongArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldLongArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldLongArray }
 Error in NULL || to$fieldLongArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldShortArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldShortArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldShortArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldShortArray }
 Error in NULL || to$fieldShortArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldStringArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$fieldStringArray : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$fieldStringArray }
 Error in NULL || to$fieldStringArray : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listBoolean : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listBoolean }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listBoolean : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listBoolean }
 Error in NULL || to$listBoolean : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listByte : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listByte }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listByte : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listByte }
 Error in NULL || to$listByte : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listChar : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listChar : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listChar }
 Error in NULL || to$listChar : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listDouble : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listDouble }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listDouble : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listDouble }
 Error in NULL || to$listDouble : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listFloat : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listFloat }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listFloat : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listFloat }
 Error in NULL || to$listFloat : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listInteger : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listInteger }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listInteger : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listInteger }
 Error in NULL || to$listInteger : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listLong : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listLong }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listLong : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listLong }
 Error in NULL || to$listLong : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listShort : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listShort }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listShort : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listShort }
 Error in NULL || to$listShort : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listString : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listString : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listString }
 Error in NULL || to$listString : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listStringInt : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in NULL || to$listStringInt : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));NULL || to$listStringInt }
 Error in NULL || to$listStringInt : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T && to : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T && to : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to }
 Error in T && to : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$fieldCharArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$fieldCharArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldCharArray }
 Error in T && to$fieldCharArray : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$fieldStringArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$fieldStringArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$fieldStringArray }
 Error in T && to$fieldStringArray : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$listChar : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$listChar : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listChar }
 Error in T && to$listChar : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$listString : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$listString : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listString }
 Error in T && to$listString : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$listStringInt : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in T && to$listStringInt : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));T && to$listStringInt }
 Error in T && to$listStringInt : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$fieldCharArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$fieldCharArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldCharArray }
 Error in c(T, T, F) && to$fieldCharArray : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$fieldStringArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$fieldStringArray : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$fieldStringArray }
 Error in c(T, T, F) && to$fieldStringArray : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$listChar : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$listChar : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listChar }
 Error in c(T, T, F) && to$listChar : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$listString : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$listString : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listString }
 Error in c(T, T, F) && to$listString : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$listStringInt : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in c(T, T, F) && to$listStringInt : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); c(T, T, F) && to$listStringInt }
 Error in c(T, T, F) && to$listStringInt : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to && T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to && T }
 Error in to && T : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to && to : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to && to }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to && to : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to && to }
 Error in to && to : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to || T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to || T }
 Error in to || T : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to || to : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to || to }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to || to : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to || to }
 Error in to || to : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldBooleanArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldBooleanArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldBooleanArray && NULL }
 Error in to$fieldBooleanArray && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldByteArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldByteArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldByteArray && NULL }
 Error in to$fieldByteArray && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && NULL }
 Error in to$fieldCharArray && NULL : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && T }
 Error in to$fieldCharArray && T : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && c(T, T, F) }
 Error in to$fieldCharArray && c(T, T, F) : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && to$fieldCharArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray && to$fieldCharArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray && to$fieldCharArray }
 Error in to$fieldCharArray && to$fieldCharArray :
   invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || NULL }
 Error in to$fieldCharArray || NULL : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || T }
 Error in to$fieldCharArray || T : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || c(T, T, F) }
 Error in to$fieldCharArray || c(T, T, F) : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || to$fieldCharArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || to$fieldCharArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldCharArray || to$fieldCharArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldCharArray || to$fieldCharArray }
 Error in to$fieldCharArray || to$fieldCharArray :
   invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldDoubleArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldDoubleArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldDoubleArray && NULL }
 Error in to$fieldDoubleArray && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldFloatArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldFloatArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldFloatArray && NULL }
 Error in to$fieldFloatArray && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldIntegerArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldIntegerArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldIntegerArray && NULL }
 Error in to$fieldIntegerArray && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldLongArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldLongArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldLongArray && NULL }
 Error in to$fieldLongArray && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldShortArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldShortArray && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldShortArray && NULL }
 Error in to$fieldShortArray && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && NULL }
 Error in to$fieldStringArray && NULL : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && T }
 Error in to$fieldStringArray && T : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && c(T, T, F) }
 Error in to$fieldStringArray && c(T, T, F) : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && to$fieldStringArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray && to$fieldStringArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray && to$fieldStringArray }
 Error in to$fieldStringArray && to$fieldStringArray :
   invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || NULL }
 Error in to$fieldStringArray || NULL : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || T }
 Error in to$fieldStringArray || T : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || c(T, T, F) }
 Error in to$fieldStringArray || c(T, T, F) : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || to$fieldStringArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || to$fieldStringArray }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$fieldStringArray || to$fieldStringArray :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$fieldStringArray || to$fieldStringArray }
 Error in to$fieldStringArray || to$fieldStringArray :
   invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listBoolean && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listBoolean && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listBoolean && NULL }
 Error in to$listBoolean && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listByte && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listByte && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listByte && NULL }
 Error in to$listByte && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && NULL }
 Error in to$listChar && NULL : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && T }
 Error in to$listChar && T : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && c(T, T, F) }
 Error in to$listChar && c(T, T, F) : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && to$listChar : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar && to$listChar : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar && to$listChar }
 Error in to$listChar && to$listChar : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || NULL }
 Error in to$listChar || NULL : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || T }
 Error in to$listChar || T : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || c(T, T, F) }
 Error in to$listChar || c(T, T, F) : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || to$listChar : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || to$listChar }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listChar || to$listChar : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listChar || to$listChar }
 Error in to$listChar || to$listChar : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listDouble && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listDouble && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listDouble && NULL }
 Error in to$listDouble && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listFloat && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listFloat && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listFloat && NULL }
 Error in to$listFloat && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listInteger && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listInteger && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listInteger && NULL }
 Error in to$listInteger && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listLong && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listLong && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listLong && NULL }
 Error in to$listLong && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listShort && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listShort && NULL : invalid \'y\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listShort && NULL }
 Error in to$listShort && NULL : invalid 'y' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && NULL }
 Error in to$listString && NULL : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && T }
 Error in to$listString && T : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && c(T, T, F) }
 Error in to$listString && c(T, T, F) : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && to$listString : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString && to$listString : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString && to$listString }
 Error in to$listString && to$listString : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || NULL }
 Error in to$listString || NULL : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || T }
 Error in to$listString || T : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || c(T, T, F) }
 Error in to$listString || c(T, T, F) : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || to$listString : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || to$listString }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listString || to$listString : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listString || to$listString }
 Error in to$listString || to$listString : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && NULL : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && NULL }
 Error in to$listStringInt && NULL : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && T : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && T }
 Error in to$listStringInt && T : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && c(T, T, F) : invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && c(T, T, F) }
 Error in to$listStringInt && c(T, T, F) : invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && to$listStringInt :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt && to$listStringInt :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x && y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt && to$listStringInt }
 Error in to$listStringInt && to$listStringInt :
   invalid 'x' type in 'x && y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || NULL }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || NULL : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || NULL }
 Error in to$listStringInt || NULL : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || T }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || T : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || T }
 Error in to$listStringInt || T : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || c(T, T, F) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || c(T, T, F) : invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || c(T, T, F) }
 Error in to$listStringInt || c(T, T, F) : invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testForeignVectorScalarBooleanOp#
-#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || to$listStringInt :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || to$listStringInt }
+#if (!any(R.version$engine == "FastR")) { cat('Error in to$listStringInt || to$listStringInt :', '<<<NEWLINE>>>', ' invalid \'x\' type in \'x || y\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$listStringInt || to$listStringInt }
 Error in to$listStringInt || to$listStringInt :
   invalid 'x' type in 'x || y'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { "double" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); typeof(v) }
+#if (!any(R.version$engine == "FastR")) { "character" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticCharArray); typeof(v) }
+[1] "character"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "character" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticStringArray); typeof(v) }
+[1] "character"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticDoubleArray); typeof(v) }
+[1] "double"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticFloatArray); typeof(v) }
+[1] "double"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticLongArray); typeof(v) }
+[1] "double"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "double" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); typeof(v) }
 [1] "double"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); typeof(v) }
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticByteArray); typeof(v) }
 [1] "integer"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); is.list(v) }
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticIntegerArray); typeof(v) }
+[1] "integer"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticShortArray); typeof(v) }
+[1] "integer"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "integer" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); typeof(v) }
+[1] "integer"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { "logical" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticBooleanArray); typeof(v) }
+[1] "logical"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); is.list(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$mixedTypesArray); is.list(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$objectArray); is.list(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticBooleanArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticByteArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticCharArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticDoubleArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$mixedTypesArray); is.list(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticFloatArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$objectArray); is.list(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticIntegerArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); is.vector(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticLongArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); is.vector(v) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticShortArray); is.vector(v) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { list() } else { ja <- new.java.array('java.lang.String', 0L); .fastr.interop.fromArray(ja) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$fieldStaticStringArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectDoubleArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- as.vector(to$objectIntArray); is.vector(v) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
+#if (!any(R.version$engine == "FastR")) { list() } else { ja <- new(java.type('java.lang.String[]'), 0L); .fastr.interop.fromArray(ja) }
 list()
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { list(1) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); v[1] }
+#if (!any(R.version$engine == "FastR")) { list(1) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); v[1] }
 [[1]]
 [1] 1
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { list(3) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); v[3] }
+#if (!any(R.version$engine == "FastR")) { list(3) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); v[3] }
 [[1]]
 [1] 3
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testFromArray#
-#if (!any(R.version$engine == "FastR")) { list(NULL) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); v[2] }
+#if (!any(R.version$engine == "FastR")) { list(NULL) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); v <- .fastr.interop.fromArray(to$hasNullIntArray); v[2] }
 [[1]]
 NULL
 
 
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testGetClass#
-#if (!any(R.version$engine == "FastR")) { 'com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass' } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));java.class(to) }
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testGetClassAndClassName#
+#if (!any(R.version$engine == "FastR")) { 'com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$class$getName() }
 [1] "com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass"
 
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testGetClass#
-#if (!any(R.version$engine == "FastR")) { cat('Error in java.class(1) : unsupported type java.lang.Double', '<<<NEWLINE>>>') } else { java.class(1) }
-Error in java.class(1) : unsupported type java.lang.Double
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testGetClass#
-#if (!any(R.version$engine == "FastR")) { cat('Error in java.class(NULL) :', '<<<NEWLINE>>>', ' unsupported type com.oracle.truffle.r.runtime.data.RNull', '<<<NEWLINE>>>') } else { java.class(NULL) }
-Error in java.class(NULL) :
-  unsupported type com.oracle.truffle.r.runtime.data.RNull
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testGetClassAndClassName#
+#if (!any(R.version$engine == "FastR")) { 'com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$getClass()$getName() }
+[1] "com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass"
 
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testGetClass#
-#if (!any(R.version$engine == "FastR")) { cat('Error in java.class(to$methodReturnsNull()) :', '<<<NEWLINE>>>', ' unsupported type com.oracle.truffle.r.runtime.data.RNull', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));java.class(to$methodReturnsNull()) }
-Error in java.class(to$methodReturnsNull()) :
-  unsupported type com.oracle.truffle.r.runtime.data.RNull
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testGetClassAndClassName#
+#if (!any(R.version$engine == "FastR")) { 'java.lang.Class' } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));to$class$getClass()$getName() }
+[1] "java.lang.Class"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIdentical#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { b1 <- as.external.byte(1); b2 <- as.external.byte(1); identical(b1, b2) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { b1 <- .fastr.interop.asByte(1); b2 <- .fastr.interop.asByte(1); identical(b1, b2) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIdentical#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { b1 <- as.external.byte(1); s1 <- as.external.short(1); identical(b1, s1) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { b1 <- .fastr.interop.asByte(1); s1 <- .fastr.interop.asShort(1); identical(b1, s1) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIdentical#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { ll <- new.external(new.java.class('java.util.LinkedList')); al <- new.external(new.java.class('java.util.ArrayList')); identical(al, ll) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { ll <- .fastr.interop.new(java.type('java.util.LinkedList')); al <- .fastr.interop.new(java.type('java.util.ArrayList')); identical(al, ll) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIdentical#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { al <- new.external(new.java.class('java.util.ArrayList')); identical(t, t) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { al <- .fastr.interop.new(java.type('java.util.ArrayList')); identical(t, t) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIdentical#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { b1 <- as.external.byte(1); identical(b1, b1) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { b1 <- .fastr.interop.asByte(1); identical(b1, b1) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { cat('Error in if (T) print(\'OK\') :  argument is not interpretable as logical', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to) print('OK') }
+#if (!any(R.version$engine == "FastR")) { cat('Error in if (T) print(\'OK\') :  argument is not interpretable as logical', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to) print('OK') }
 Error in if (T) print('OK') :  argument is not interpretable as logical
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#
-#if (!any(R.version$engine == "FastR")) { if(1) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldInteger) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(1) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldInteger) print('OK') }
 [1] "OK"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#
-#if (!any(R.version$engine == "FastR")) { if(T) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldBoolean) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(T) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldBoolean) print('OK') }
 [1] "OK"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { if(c("TRUE","TRUE","FALSE")) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listStringBoolean) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c("TRUE","TRUE","FALSE")) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listStringBoolean) print('OK') }
 [1] "OK"
 Warning message:
 In if (c("TRUE", "TRUE", "FALSE")) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { if(c('A', 'B')) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listString) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c('A', 'B')) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listString) print('OK') }
 Error in if (c("A", "B")) print("OK") :
   argument is not interpretable as logical
 In addition: Warning message:
@@ -147622,14 +148184,14 @@ In if (c("A", "B")) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { if(c('TRUE', 'TRUE', 'FALSE')) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldStringBooleanArray) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c('TRUE', 'TRUE', 'FALSE')) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldStringBooleanArray) print('OK') }
 [1] "OK"
 Warning message:
 In if (c("TRUE", "TRUE", "FALSE")) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreWarningContext#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { if(c('a', 'b')) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldStringArray) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c('a', 'b')) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldStringArray) print('OK') }
 Error in if (c("a", "b")) print("OK") :
   argument is not interpretable as logical
 In addition: Warning message:
@@ -147637,279 +148199,255 @@ In if (c("a", "b")) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldBooleanArray) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldBooleanArray) print('OK') }
 [1] "OK"
 Warning message:
 In if (c(T, F)) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldIntegerArray) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldIntegerArray) print('OK') }
 [1] "OK"
 Warning message:
 In if (c(T, F)) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listBoolean) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listBoolean) print('OK') }
 [1] "OK"
 Warning message:
 In if (c(T, F)) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIf#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listInteger) print('OK') }
+#if (!any(R.version$engine == "FastR")) { if(c(T, F)) print('OK') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$listInteger) print('OK') }
 [1] "OK"
 Warning message:
 In if (c(T, F)) print("OK") :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { tc <- new.java.class('java.lang.Character'); t <- new.external(tc, as.external.char(97)); t }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { tc <- java.type('java.lang.Character'); t <- .fastr.interop.new(tc, .fastr.interop.asChar(97)); t }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 'abc' } else { tc <- new.java.class('java.lang.String'); t <- new.external(tc, 'abc'); t }
+#if (!any(R.version$engine == "FastR")) { 'abc' } else { tc <- java.type('java.lang.String'); t <- .fastr.interop.new(tc, 'abc'); t }
 [1] "abc"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 'truffle.object' } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNullClass'); t <- new.external(tc, NULL); class(t) }
-[1] "truffle.object"
+#if (!any(R.version$engine == "FastR")) { 'polyglot.value' } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNullClass'); t <- .fastr.interop.new(tc, NULL); class(t) }
+[1] "polyglot.value"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- new.java.class('java.lang.Byte'); t <- new.external(tc, as.external.byte(1)); t }
+#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- java.type('java.lang.Byte'); t <- .fastr.interop.new(tc, .fastr.interop.asByte(1)); t }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- new.java.class('java.lang.Integer'); t <- new.external(tc, 1L); t }
+#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- java.type('java.lang.Integer'); t <- .fastr.interop.new(tc, 1L); t }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- new.java.class('java.lang.Long'); t <- new.external(tc, as.external.long(1)); t }
+#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- java.type('java.lang.Long'); t <- .fastr.interop.new(tc, .fastr.interop.asLong(1)); t }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- new.java.class('java.lang.Short'); t <- new.external(tc, as.external.short(1)); t }
+#if (!any(R.version$engine == "FastR")) { 1 } else { tc <- java.type('java.lang.Short'); t <- .fastr.interop.new(tc, .fastr.interop.asShort(1)); t }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 1.1 } else { tc <- new.java.class('java.lang.Double'); t <- new.external(tc, 1.1); t }
+#if (!any(R.version$engine == "FastR")) { 1.1 } else { tc <- java.type('java.lang.Double'); t <- .fastr.interop.new(tc, 1.1); t }
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { 1.1 } else { tc <- new.java.class('java.lang.Float'); t <- new.external(tc, as.external.float(1.1)); t }
+#if (!any(R.version$engine == "FastR")) { 1.1 } else { tc <- java.type('java.lang.Float'); t <- .fastr.interop.new(tc, .fastr.interop.asFloat(1.1)); t }
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- new.java.class('java.lang.Boolean'); t <- new.external(tc, TRUE); t }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- java.type('java.lang.Boolean'); t <- .fastr.interop.new(tc, TRUE); t }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testInteroptNew#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- new.java.class('java/lang/Boolean'); t <- new(tc, TRUE); t }
-[1] TRUE
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.external.executable(to$fieldBoolean) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.external.executable(to) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsExternalExecutable#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.external.executable(to$methodBoolean) }
-[1] TRUE
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsExternalNull#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.external.null(to$methodReturnsNull) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsExternalNull#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.external.null(to) }
-[1] FALSE
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsExternalNull#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.external.null(to$methodReturnsNull()) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- java.type('java/lang/Boolean'); t <- new(tc, TRUE); t }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.array(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.array(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.atomic(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.atomic(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.call(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.call(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.character(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.character(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.complex(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.complex(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.data.frame(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.data.frame(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.double(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.double(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.environment(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.environment(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.expression(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.expression(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.factor(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.factor(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.function(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.function(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.integer(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.integer(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.language(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.language(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.logical(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.logical(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.matrix(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.matrix(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.mts(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.mts(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.na(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.na(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.name(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.name(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.null(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.null(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric.Date(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric.Date(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric.POSIXt(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric.POSIXt(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric.difftime(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric.difftime(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric_version(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.numeric_version(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.object(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.object(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.ordered(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.ordered(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.package_version(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.package_version(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.pairlist(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.pairlist(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.primitive(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.primitive(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.qr(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.qr(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.raster(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.raster(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.raw(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.raw(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.recursive(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.recursive(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.relistable(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.relistable(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.stepfun(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.stepfun(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.symbol(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.symbol(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.table(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.table(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.ts(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.ts(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.tskernel(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.tskernel(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.unsorted(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.unsorted(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.vector(to) }
+#if (!any(R.version$engine == "FastR")) { FALSE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.vector(to) }
 [1] FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { cat('Error in is.finite(to) :', '<<<NEWLINE>>>', ' default method not implemented for type \'external object\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.finite(to) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in is.finite(to) :', '<<<NEWLINE>>>', ' default method not implemented for type \'polyglot.value\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.finite(to) }
 Error in is.finite(to) :
-  default method not implemented for type 'external object'
+  default method not implemented for type 'polyglot.value'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { cat('Error in is.infinite(to) :', '<<<NEWLINE>>>', ' default method not implemented for type \'external object\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.infinite(to) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in is.infinite(to) :', '<<<NEWLINE>>>', ' default method not implemented for type \'polyglot.value\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.infinite(to) }
 Error in is.infinite(to) :
-  default method not implemented for type 'external object'
+  default method not implemented for type 'polyglot.value'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testIsXXXForForeignObject#
-#if (!any(R.version$engine == "FastR")) { cat('Error in is.nan(to) :', '<<<NEWLINE>>>', ' default method not implemented for type \'external object\'', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.nan(to) }
+#if (!any(R.version$engine == "FastR")) { cat('Error in is.nan(to) :', '<<<NEWLINE>>>', ' default method not implemented for type \'polyglot.value\'', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); is.nan(to) }
 Error in is.nan(to) :
-  default method not implemented for type 'external object'
+  default method not implemented for type 'polyglot.value'
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testLengthArray#
 #if (!any(R.version$engine == "FastR")) { 0 } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); length(ta$objectEmpty) }
@@ -147948,89 +148486,89 @@ Error in is.nan(to) :
 [1] 123
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { "a string" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodStringObject() }
+#if (!any(R.version$engine == "FastR")) { "a string" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodStringObject() }
 [1] "a string"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { "a" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodChar() }
+#if (!any(R.version$engine == "FastR")) { "a" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodChar() }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { "a" } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodCharObject() }
+#if (!any(R.version$engine == "FastR")) { "a" } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodCharObject() }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodFloat() }
+#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodFloat() }
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodFloatObject() }
+#if (!any(R.version$engine == "FastR")) { 1.1 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodFloatObject() }
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodDouble() }
+#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodDouble() }
 [1] 1.797693e+308
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodDoubleObject() }
+#if (!any(R.version$engine == "FastR")) { 1.7976931348623157E308 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodDoubleObject() }
 [1] 1.797693e+308
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 127 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodByte() }
+#if (!any(R.version$engine == "FastR")) { 127 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodByte() }
 [1] 127
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 127 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodByteObject() }
+#if (!any(R.version$engine == "FastR")) { 127 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodByteObject() }
 [1] 127
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodInteger() }
+#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodInteger() }
 [1] 2147483647
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodIntegerObject() }
+#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodIntegerObject() }
 [1] 2147483647
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodShort() }
+#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodShort() }
 [1] 32767
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodShortObject() }
+#if (!any(R.version$engine == "FastR")) { 32767 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodShortObject() }
 [1] 32767
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodLong() }
+#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodLong() }
 [1] 9.223372e+18
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodLongObject() }
+#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodLongObject() }
 [1] 9.223372e+18
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { NULL } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodReturnsNull() }
+#if (!any(R.version$engine == "FastR")) { NULL } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodReturnsNull() }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { NULL } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodVoid() }
+#if (!any(R.version$engine == "FastR")) { NULL } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodVoid() }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodBoolean() }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodBoolean() }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodBooleanObject() }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodBooleanObject() }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a" "b" "c"\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodStringArray() }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a" "b" "c"\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodStringArray() }
+[polyglot value]
 [1] "a" "b" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMethods#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2 3\n') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodIntArray() }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2 3\n') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodIntArray() }
+[polyglot value]
 [1] 1 2 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testMultiDimArrays#
@@ -150294,555 +150832,543 @@ NULL
 [1] 1 2 3 4 5 6 7
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNamesForForeignObject#
-#if (!any(R.version$engine == "FastR")) { NULL } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClass'); names(tc$staticField) }
+#if (!any(R.version$engine == "FastR")) { 'class' } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClassNoMembers'); t <- .fastr.interop.new(tc); names(t) }
+[1] "class"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNamesForForeignObject#
+#if (!any(R.version$engine == "FastR")) { 'class' } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClassNoPublicMembers'); t <- .fastr.interop.new(tc); names(t) }
+[1] "class"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNamesForForeignObject#
+#if (!any(R.version$engine == "FastR")) { NULL } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClass'); names(tc$staticField) }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNamesForForeignObject#
-#if (!any(R.version$engine == "FastR")) { NULL } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClass'); names(tc$staticMethod) }
+#if (!any(R.version$engine == "FastR")) { NULL } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClass'); names(tc$staticMethod) }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNamesForForeignObject#
-#if (!any(R.version$engine == "FastR")) { c(TRUE, TRUE) } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClass'); c('staticField', 'staticMethod') %in% names(tc) }
+#if (!any(R.version$engine == "FastR")) { c('class', 'field', 'method', 'staticField', 'staticMethod') } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClass'); t <- .fastr.interop.new(tc); sort(names(t)) }
+[1] "class"        "field"        "method"       "staticField"  "staticMethod"
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNamesForForeignObject#
+#if (!any(R.version$engine == "FastR")) { c(TRUE, TRUE) } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestNamesClass'); c('staticField', 'staticMethod') %in% names(tc) }
 [1] TRUE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[B' } else { a <- new.java.array('byte', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[B' } else { a <- new(java.type('byte[]'), 10L); a$getClass()$getName(); }
 [1] "[B"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[C' } else { a <- new.java.array('char', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[C' } else { a <- new(java.type('char[]'), 10L); a$getClass()$getName(); }
 [1] "[C"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[D' } else { a <- new.java.array('double', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[D' } else { a <- new(java.type('double[]'), 10L); a$getClass()$getName(); }
 [1] "[D"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[F' } else { a <- new.java.array('float', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[F' } else { a <- new(java.type('float[]'), 10L); a$getClass()$getName(); }
 [1] "[F"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[I' } else { a <- new.java.array('int', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[I' } else { a <- new(java.type('int[]'), 10L); a$getClass()$getName(); }
 [1] "[I"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[J' } else { a <- new.java.array('long', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[J' } else { a <- new(java.type('long[]'), 10L); a$getClass()$getName(); }
 [1] "[J"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass;' } else { a <- new.java.array('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass;' } else { a <- new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass[]'), 10L); a$getClass()$getName(); }
 [1] "[Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Boolean;' } else { a <- new.java.array('java.lang.Boolean', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Boolean;' } else { a <- new(java.type('java.lang.Boolean[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Boolean;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Byte;' } else { a <- new.java.array('java.lang.Byte', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Byte;' } else { a <- new(java.type('java.lang.Byte[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Byte;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Character;' } else { a <- new.java.array('java.lang.Character', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Character;' } else { a <- new(java.type('java.lang.Character[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Character;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Double;' } else { a <- new.java.array('java.lang.Double', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Double;' } else { a <- new(java.type('java.lang.Double[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Double;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Float;' } else { a <- new.java.array('java.lang.Float', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Float;' } else { a <- new(java.type('java.lang.Float[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Float;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Integer;' } else { a <- new.java.array('java.lang.Integer', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Integer;' } else { a <- new(java.type('java.lang.Integer[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Integer;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Long;' } else { a <- new.java.array('java.lang.Long', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Long;' } else { a <- new(java.type('java.lang.Long[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Long;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Short;' } else { a <- new.java.array('java.lang.Short', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.Short;' } else { a <- new(java.type('java.lang.Short[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.Short;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.String;' } else { a <- new.java.array('java.lang.String', 10.9); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.String;' } else { a <- new(java.type('java.lang.String[]'), 10L); a$getClass()$getName(); }
 [1] "[Ljava.lang.String;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.String;' } else { a <- new.java.array('java.lang.String', 10L); java.class(a); }
-[1] "[Ljava.lang.String;"
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[S' } else { a <- new.java.array('short', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[S' } else { a <- new(java.type('short[]'), 10L); a$getClass()$getName(); }
 [1] "[S"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[Z' } else { a <- new.java.array('boolean', 10L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Z' } else { a <- new(java.type('boolean[]'), 10L); a$getClass()$getName(); }
 [1] "[Z"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[B' } else { a <- new.java.array('byte', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[B' } else { a <- new(java.type('byte[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[B"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[C' } else { a <- new.java.array('char', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[C' } else { a <- new(java.type('char[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[C"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[D' } else { a <- new.java.array('double', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[D' } else { a <- new(java.type('double[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[D"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[F' } else { a <- new.java.array('float', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[F' } else { a <- new(java.type('float[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[F"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[I' } else { a <- new.java.array('int', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[I' } else { a <- new(java.type('int[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[I"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[J' } else { a <- new.java.array('long', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[J' } else { a <- new(java.type('long[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[J"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass;' } else { a <- new.java.array('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass;' } else { a <- new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Boolean;' } else { a <- new.java.array('java.lang.Boolean', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Boolean;' } else { a <- new(java.type('java.lang.Boolean[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Boolean;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Byte;' } else { a <- new.java.array('java.lang.Byte', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Byte;' } else { a <- new(java.type('java.lang.Byte[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Byte;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Character;' } else { a <- new.java.array('java.lang.Character', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Character;' } else { a <- new(java.type('java.lang.Character[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Character;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Double;' } else { a <- new.java.array('java.lang.Double', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Double;' } else { a <- new(java.type('java.lang.Double[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Double;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Float;' } else { a <- new.java.array('java.lang.Float', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Float;' } else { a <- new(java.type('java.lang.Float[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Float;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Integer;' } else { a <- new.java.array('java.lang.Integer', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Integer;' } else { a <- new(java.type('java.lang.Integer[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Integer;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Long;' } else { a <- new.java.array('java.lang.Long', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Long;' } else { a <- new(java.type('java.lang.Long[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Long;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Short;' } else { a <- new.java.array('java.lang.Short', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.Short;' } else { a <- new(java.type('java.lang.Short[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.Short;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.String;' } else { a <- new.java.array('java.lang.String', c(2.9, 3.9)); java.class(a); }
-[1] "[[Ljava.lang.String;"
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.String;' } else { a <- new.java.array('java.lang.String', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Ljava.lang.String;' } else { a <- new(java.type('java.lang.String[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Ljava.lang.String;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[S' } else { a <- new.java.array('short', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[S' } else { a <- new(java.type('short[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[S"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { '[[Z' } else { a <- new.java.array('boolean', c(2L, 3L)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[[Z' } else { a <- new(java.type('boolean[][]'), c(2L, 3L)); a$getClass()$getName(); }
 [1] "[[Z"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('boolean', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('boolean[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('byte', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('byte[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('char', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('char[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('double', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('double[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('float', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('float[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('int', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('int[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Boolean', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Boolean[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Byte', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Byte[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Character', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Character[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Double', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Double[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Float', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Float[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Integer', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Integer[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Long', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Long[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.Short', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.Short[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.String', 10.9); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('java.lang.String[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('java.lang.String', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('long[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('long', 10L); length(a); }
+#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new(java.type('short[]'), 10L); length(a) }
 [1] 10
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 10 } else { a <- new.java.array('short', 10L); length(a); }
-[1] 10
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('boolean', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('boolean[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('byte', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('byte[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('char', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('char[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('double', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('double[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('float', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('float[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('int', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('int[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Boolean', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Boolean[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Byte', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Byte[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Character', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Character[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Double', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Double[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Float', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Float[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Integer', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Integer[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Long', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Long[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.Short', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.Short[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.String', c(2.9, 3.9)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('java.lang.String[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('java.lang.String', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('long[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('long', c(2L, 3L)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new(java.type('short[][]'), c(2L, 3L)); length(a); }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 2L } else { a <- new.java.array('short', c(2L, 3L)); length(a); }
-[1] 2
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('boolean', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('boolean[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('byte', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('byte[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('char', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('char[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('double', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('double[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('float', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('float[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('int', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('int[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Boolean', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Boolean[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Byte', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Byte[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Character', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Character[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Double', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Double[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Float', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Float[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Integer', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Integer[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Long', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Long[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.Short', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.Short[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.String', c(2.9, 3.9)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('java.lang.String[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('java.lang.String', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('long[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('long', c(2L, 3L)); length(a[1]); }
+#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new(java.type('short[][]'), c(2L, 3L)); length(a[1]); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { 3L } else { a <- new.java.array('short', c(2L, 3L)); length(a[1]); }
-[1] 3
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('boolean', 10L); is.external.array(a); }
-[1] TRUE
-
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('boolean', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('boolean[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('byte', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('boolean[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('byte', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('byte[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('char', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('byte[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('char', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('char[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('char[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('double', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('double', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('double[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('float', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('double[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('float', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('float[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('int', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('float[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('int', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('int[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Boolean', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('int[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Boolean', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Boolean[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Byte', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Boolean[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Byte', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Byte[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Character', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Byte[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Character', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Character[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Double', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Character[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Double', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Double[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Float', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Double[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Float', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Float[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Integer', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Float[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Integer', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Integer[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Long', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Integer[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Long', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Long[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Short', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Long[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.Short', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Short[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.String', 10.9); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.Short[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.String', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.String[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.String', c(2.9, 3.9)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('java.lang.String[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('java.lang.String', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('long[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('long', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('long[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('long', c(2L, 3L)); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('short[]'), 10L); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('short', 10L); is.external.array(a); }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new(java.type('short[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { a <- new.java.array('short', c(2L, 3L)); is.external.array(a); }
-[1] TRUE
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewWithJavaClass#
+#if (!any(R.version$engine == "FastR")) { 2147483647 } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- new(tc); to$fieldInteger }
+[1] 2147483647
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewWithJavaClass#
-#if (!any(R.version$engine == "FastR")) { 2147483647 } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- new(tc); to$fieldInteger }
+#if (!any(R.version$engine == "FastR")) { 2147483647 } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to$fieldStaticInteger }
 [1] 2147483647
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewWithJavaClass#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- new.java.class('java.lang.Boolean'); to <- new(tc, TRUE); to }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- java.type('java.lang.Boolean'); to <- new(tc, TRUE); to }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewWithJavaClass#
@@ -150853,42 +151379,42 @@ NULL
 #if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new('java/lang/Boolean', TRUE); to }
 [1] TRUE
 
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewWithJavaClass#
+#if (!any(R.version$engine == "FastR")) { cat('Error in .fastr.interop.new(Class, ...) :', '<<<NEWLINE>>>', ' error during Java object instantiation', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); new(to) }
+Error in .fastr.interop.new(Class, ...) :
+  error during Java object instantiation
+
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewWithJavaClass#
 #if (!any(R.version$engine == "FastR")) { cat('Error in getClass(Class, where = topenv(parent.frame())) :', '<<<NEWLINE>>>', ' “__bogus_class_name__” is not a defined class', '<<<NEWLINE>>>') } else { to <- new('__bogus_class_name__'); }
 Error in getClass(Class, where = topenv(parent.frame())) :
   “__bogus_class_name__” is not a defined class
 
-##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNewWithJavaClass#
-#if (!any(R.version$engine == "FastR")) { cat('Error in new.external(Class, ...) :', '<<<NEWLINE>>>', ' error during Java object instantiation', '<<<NEWLINE>>>') } else { to <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); new(to) }
-Error in new.external(Class, ...) :
-  error during Java object instantiation
-
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNonPrimitiveParameter#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$equals(to) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$equals(to) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNullParameters#
-#if (!any(R.version$engine == "FastR")) {  } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodAcceptsOnlyNull(NULL) }
+#if (!any(R.version$engine == "FastR")) {  } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$methodAcceptsOnlyNull(NULL) }
 NULL
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNullParameters#Ignored.Unimplemented#
-#if (!any(R.version$engine == "FastR")) { java.lang.Long } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$isNull(1) }
+#if (!any(R.version$engine == "FastR")) { java.lang.Long } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$isNull(1) }
 Error: object 'java.lang.Long' not found
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testNullParameters#Ignored.Unimplemented#
-#if (!any(R.version$engine == "FastR")) { java.lang.String } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$isNull('string') }
+#if (!any(R.version$engine == "FastR")) { java.lang.String } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$isNull('string') }
 Error: object 'java.lang.String' not found
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testReadByVector#
-#if (!any(R.version$engine == "FastR")) { c('a string', 'a') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to[c('fieldStringObject', 'fieldChar')] }
+#if (!any(R.version$engine == "FastR")) { c('a string', 'a') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to[c('fieldStringObject', 'fieldChar')] }
 [1] "a string" "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testReadByVector#
-#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringArray[c(1, 3)] }
+#if (!any(R.version$engine == "FastR")) { c('a', 'c') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to$fieldStringArray[c(1, 3)] }
 [1] "a" "c"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testReadByVector#
-#if (!any(R.version$engine == "FastR")) { list('a string', 2147483647) } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to[c('fieldStringObject', 'fieldInteger')] }
+#if (!any(R.version$engine == "FastR")) { list('a string', 2147483647) } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass')); to[c('fieldStringObject', 'fieldInteger')] }
 [[1]]
 [1] "a string"
 
@@ -150896,475 +151422,483 @@ Error: object 'java.lang.String' not found
 [1] 2147483647
 
 
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testReturnsNull#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.null(to$fieldNullObject) }
+[1] TRUE
+
+##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testReturnsNull#
+#if (!any(R.version$engine == "FastR")) { TRUE } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));is.null(to$methodReturnsNull()) }
+[1] TRUE
+
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[B' } else { a <- as.java.array(as.raw(1)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[B' } else { a <- .fastr.interop.asJavaArray(as.raw(1)); a$getClass()$getName(); }
 [1] "[B"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[B' } else { a <- as.java.array(as.raw(c(1, 2, 3))); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[B' } else { a <- .fastr.interop.asJavaArray(as.raw(c(1, 2, 3))); a$getClass()$getName(); }
 [1] "[B"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[D' } else { a <- as.java.array(1.1); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[D' } else { a <- .fastr.interop.asJavaArray(1.1); a$getClass()$getName(); }
 [1] "[D"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[I' } else { a <- as.java.array(1L); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[I' } else { a <- .fastr.interop.asJavaArray(1L); a$getClass()$getName(); }
 [1] "[I"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[I' } else { a <- as.java.array(as.raw(c(1, 2, 3)), 'int'); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[I' } else { a <- .fastr.interop.asJavaArray(as.raw(c(1, 2, 3)), 'int'); a$getClass()$getName(); }
 [1] "[I"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.String;' } else { a <- as.java.array('a'); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Ljava.lang.String;' } else { a <- .fastr.interop.asJavaArray('a'); a$getClass()$getName(); }
 [1] "[Ljava.lang.String;"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[S' } else { a <- as.java.array(as.external.short(1)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[S' } else { a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1)); a$getClass()$getName(); }
 [1] "[S"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { '[Z' } else { a <- as.java.array(T); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { '[Z' } else { a <- .fastr.interop.asJavaArray(T); a$getClass()$getName(); }
 [1] "[Z"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { 1 } else { a <- as.java.array(as.raw(1)); length(a); }
+#if (!any(R.version$engine == "FastR")) { 1 } else { a <- .fastr.interop.asJavaArray(as.raw(1)); length(a); }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { 2 } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- new.external(tc); a <- as.java.array(c(to, to)); length(a) }
+#if (!any(R.version$engine == "FastR")) { 2 } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(c(to, to)); length(a) }
 [1] 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { 3 } else { a <- as.java.array(as.raw(c(1, 2, 3))); length(a); }
+#if (!any(R.version$engine == "FastR")) { 3 } else { a <- .fastr.interop.asJavaArray(as.raw(c(1, 2, 3))); length(a); }
 [1] 3
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- new.external(tc); a <- as.java.array(c(to, to)); is.external.array(a) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(c(to, to)); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- new.external(tc); a <- as.java.array(to); is.external.array(a) }
+#if (!any(R.version$engine == "FastR")) { TRUE } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(to); is.polyglot.value(a) && length(a) > 0 }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { [Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass; } else { tc <- new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- new.external(tc); a <- as.java.array(c(to, to)); java.class(a); }
+#if (!any(R.version$engine == "FastR")) { [Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass; } else { tc <- java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(c(to, to)); a$getClass()$getName(); }
 Error: unexpected '[' in "if (!any(R.version$engine == "FastR")) { ["
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1]  TRUE FALSE\n') } else { a <- as.java.array(c(T, F)); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1]  TRUE FALSE\n') } else { a <- .fastr.interop.asJavaArray(c(T, F)); a; }
+[polyglot value]
 [1]  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1]  TRUE FALSE\n') } else { a <- as.java.array(c(T, F),'boolean',T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1]  TRUE FALSE\n') } else { a <- .fastr.interop.asJavaArray(c(T, F),'boolean',T); a; }
+[polyglot value]
 [1]  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1]  TRUE FALSE\n') } else { a <- as.java.array(c(T, F),,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1]  TRUE FALSE\n') } else { a <- .fastr.interop.asJavaArray(c(T, F),,T); a; }
+[polyglot value]
 [1]  TRUE FALSE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a" "b"\n') } else { a <- as.java.array(c('a', 'b')); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a" "b"\n') } else { a <- .fastr.interop.asJavaArray(c('a', 'b')); a; }
+[polyglot value]
 [1] "a" "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a" "b"\n') } else { a <- as.java.array(c('a', 'b'),'java.lang.String',T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a" "b"\n') } else { a <- .fastr.interop.asJavaArray(c('a', 'b'),'java.lang.String',T); a; }
+[polyglot value]
 [1] "a" "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a" "b"\n') } else { a <- as.java.array(c('a', 'b'),,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a" "b"\n') } else { a <- .fastr.interop.asJavaArray(c('a', 'b'),,T); a; }
+[polyglot value]
 [1] "a" "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a"\n') } else { a <- as.java.array('a'); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a"\n') } else { a <- .fastr.interop.asJavaArray('a'); a; }
+[polyglot value]
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] "a"\n') } else { a <- as.java.array('a',,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] "a"\n') } else { a <- .fastr.interop.asJavaArray('a',,T); a; }
+[polyglot value]
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(1L, 2L)); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2))); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(1L, 2L),'double',T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)), 'int'); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(1L, 2L),,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)), 'java.lang.Short'); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(as.external.short(1), as.external.short(2))); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)), 'java.lang.Short', T); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(as.external.short(1), as.external.short(2)), 'int'); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)),'int',T); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(as.external.short(1), as.external.short(2)), 'java.lang.Short'); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)),,T); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(as.external.short(1), as.external.short(2)), 'java.lang.Short', T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(1L, 2L)); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(as.external.short(1), as.external.short(2)),'int',T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(1L, 2L),'double',T); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1 2\n') } else { a <- as.java.array(c(as.external.short(1), as.external.short(2)),,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1 2\n') } else { a <- .fastr.interop.asJavaArray(c(1L, 2L),,T); a; }
+[polyglot value]
 [1] 1 2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.1 1.2\n') } else { a <- as.java.array(c(1.1, 1.2)); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.1 1.2\n') } else { a <- .fastr.interop.asJavaArray(c(1.1, 1.2)); a; }
+[polyglot value]
 [1] 1.1 1.2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.1 1.2\n') } else { a <- as.java.array(c(1.1, 1.2),'double',T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.1 1.2\n') } else { a <- .fastr.interop.asJavaArray(c(1.1, 1.2),'double',T); a; }
+[polyglot value]
 [1] 1.1 1.2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.1 1.2\n') } else { a <- as.java.array(c(1.1, 1.2),,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.1 1.2\n') } else { a <- .fastr.interop.asJavaArray(c(1.1, 1.2),,T); a; }
+[polyglot value]
 [1] 1.1 1.2
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.123 2.123\n') } else { a <- as.java.array(c(1.123, 2.123), 'double'); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.123 2.123\n') } else { a <- .fastr.interop.asJavaArray(c(1.123, 2.123), 'double'); a; }
+[polyglot value]
 [1] 1.123 2.123
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.1\n') } else { a <- as.java.array(1.1); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.1\n') } else { a <- .fastr.interop.asJavaArray(1.1); a; }
+[polyglot value]
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1.1\n') } else { a <- as.java.array(1.1,,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1.1\n') } else { a <- .fastr.interop.asJavaArray(1.1,,T); a; }
+[polyglot value]
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(1L); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1)); .fastr.interop.asJavaArray(a); }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(1L); as.java.array(a); }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1)); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(1L); as.java.array(a,,T); }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1), 'double'); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(1L,,F); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1), 'java.lang.Short'); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(1L,,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1), 'java.lang.Short', T); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(as.external.short(1)); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1),,T); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(as.external.short(1)); as.java.array(a); }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(1L); .fastr.interop.asJavaArray(a); }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(as.external.short(1), 'double'); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(1L); .fastr.interop.asJavaArray(a,,T); }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(as.external.short(1), 'java.lang.Short'); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(1L); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(as.external.short(1), 'java.lang.Short', T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(1L,,F); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(as.external.short(1),,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(1L,,T); a; }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] 1\n') } else { a <- as.java.array(as.raw(1)); a }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] 1\n') } else { a <- .fastr.interop.asJavaArray(as.raw(1)); a }
+[polyglot value]
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] TRUE\n') } else { a <- as.java.array(T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] TRUE\n') } else { a <- .fastr.interop.asJavaArray(T); a; }
+[polyglot value]
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToArray#
-#if (!any(R.version$engine == "FastR")) { cat('[external object]\n[1] TRUE\n') } else { a <- as.java.array(T,,T); a; }
-[external object]
+#if (!any(R.version$engine == "FastR")) { cat('[polyglot value]\n[1] TRUE\n') } else { a <- .fastr.interop.asJavaArray(T,,T); a; }
+[polyglot value]
 [1] TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 'interopt.byte' } else { v <- as.external.byte(1.1); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.byte' } else { v <- .fastr.interop.asByte(1.1); class(v); }
 [1] "interopt.byte"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 'interopt.byte' } else { v <- as.external.byte(1.1); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.byte' } else { v <- .fastr.interop.asByte(1.1); typeof(v); }
 [1] "interopt.byte"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { -1 } else { v <- as.external.byte(1.7976931348623157E308); v; }
+#if (!any(R.version$engine == "FastR")) { -1 } else { v <- .fastr.interop.asByte(1.7976931348623157E308); v; }
 [1] -1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { -1 } else { v <- as.external.byte(2147483647); v; }
+#if (!any(R.version$engine == "FastR")) { -1 } else { v <- .fastr.interop.asByte(2147483647); v; }
 [1] -1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { -128 } else { v <- as.external.byte(-128); v; }
+#if (!any(R.version$engine == "FastR")) { -128 } else { v <- .fastr.interop.asByte(-128); v; }
 [1] -128
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 0 } else { v <- as.external.byte(-2147483648); v; }
+#if (!any(R.version$engine == "FastR")) { 0 } else { v <- .fastr.interop.asByte(-2147483648); v; }
 [1] 0
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 0 } else { v <- as.external.byte(4.9E-324); v; }
+#if (!any(R.version$engine == "FastR")) { 0 } else { v <- .fastr.interop.asByte(4.9E-324); v; }
 [1] 0
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.byte(1.1); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asByte(1.1); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.byte(1L); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asByte(1L); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.byte(as.raw(1)); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asByte(as.raw(1)); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToByte#
-#if (!any(R.version$engine == "FastR")) { 127 } else { v <- as.external.byte(127); v; }
+#if (!any(R.version$engine == "FastR")) { 127 } else { v <- .fastr.interop.asByte(127); v; }
 [1] 127
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { v <- as.external.char('a'); v; }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { v <- .fastr.interop.asChar('a'); v; }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { v <- as.external.char(97.1); v; }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { v <- .fastr.interop.asChar(97.1); v; }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'a' } else { v <- as.external.char(97L); v; }
+#if (!any(R.version$engine == "FastR")) { 'a' } else { v <- .fastr.interop.asChar(97L); v; }
 [1] "a"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'b' } else { v <- as.external.char('abc', 1); v; }
+#if (!any(R.version$engine == "FastR")) { 'b' } else { v <- .fastr.interop.asChar('abc', 1); v; }
 [1] "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'b' } else { v <- as.external.char('abc', 1.1); v; }
+#if (!any(R.version$engine == "FastR")) { 'b' } else { v <- .fastr.interop.asChar('abc', 1.1); v; }
 [1] "b"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- as.external.char(97.1); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- .fastr.interop.asChar(97.1); class(v); }
 [1] "interopt.char"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- as.external.char(97.1); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- .fastr.interop.asChar(97.1); typeof(v); }
 [1] "interopt.char"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- as.external.char(97L); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- .fastr.interop.asChar(97L); class(v); }
 [1] "interopt.char"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- as.external.char(97L); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.char' } else { v <- .fastr.interop.asChar(97L); typeof(v); }
 [1] "interopt.char"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.external.char(97.1, 1) :', '<<<NEWLINE>>>', ' pos argument not allowed with a numeric value', '<<<NEWLINE>>>') } else { v <- as.external.char(97.1, 1); v; }
-Error in as.external.char(97.1, 1) :
+#if (!any(R.version$engine == "FastR")) { cat('Error in .fastr.interop.asChar(97.1, 1) :', '<<<NEWLINE>>>', ' pos argument not allowed with a numeric value', '<<<NEWLINE>>>') } else { v <- .fastr.interop.asChar(97.1, 1); v; }
+Error in .fastr.interop.asChar(97.1, 1) :
   pos argument not allowed with a numeric value
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToChar#
-#if (!any(R.version$engine == "FastR")) { cat('Error in as.external.char(97L, 1) :', '<<<NEWLINE>>>', ' pos argument not allowed with a numeric value', '<<<NEWLINE>>>') } else { v <- as.external.char(97L, 1); v; }
-Error in as.external.char(97L, 1) :
+#if (!any(R.version$engine == "FastR")) { cat('Error in .fastr.interop.asChar(97L, 1) :', '<<<NEWLINE>>>', ' pos argument not allowed with a numeric value', '<<<NEWLINE>>>') } else { v <- .fastr.interop.asChar(97L, 1); v; }
+Error in .fastr.interop.asChar(97L, 1) :
   pos argument not allowed with a numeric value
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- as.external.float(1.1); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- .fastr.interop.asFloat(1.1); class(v); }
 [1] "interopt.float"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- as.external.float(1.1); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- .fastr.interop.asFloat(1.1); typeof(v); }
 [1] "interopt.float"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- as.external.float(1L); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- .fastr.interop.asFloat(1L); class(v); }
 [1] "interopt.float"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- as.external.float(1L); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.float' } else { v <- .fastr.interop.asFloat(1L); typeof(v); }
 [1] "interopt.float"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 0.0 } else { v <- as.external.float(4.9E-324); v; }
+#if (!any(R.version$engine == "FastR")) { 0.0 } else { v <- .fastr.interop.asFloat(4.9E-324); v; }
 [1] 0
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.float(1L); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asFloat(1L); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.float(as.raw(1)); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asFloat(as.raw(1)); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 1.1 } else { v <- as.external.float(1.1); v; }
+#if (!any(R.version$engine == "FastR")) { 1.1 } else { v <- .fastr.interop.asFloat(1.1); v; }
 [1] 1.1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 1.401298464324817E-45 } else { v <- as.external.float(1.4E-45); v; }
+#if (!any(R.version$engine == "FastR")) { 1.401298464324817E-45 } else { v <- .fastr.interop.asFloat(1.4E-45); v; }
 [1] 1.401298e-45
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { 3.4028235E38 } else { v <- as.external.float(3.4028235E38); v; }
+#if (!any(R.version$engine == "FastR")) { 3.4028235E38 } else { v <- .fastr.interop.asFloat(3.4028235E38); v; }
 [1] 3.402823e+38
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToFloat#
-#if (!any(R.version$engine == "FastR")) { Inf } else { v <- as.external.float(1.7976931348623157E308); v; }
+#if (!any(R.version$engine == "FastR")) { Inf } else { v <- .fastr.interop.asFloat(1.7976931348623157E308); v; }
 [1] Inf
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- as.external.long(1.1); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- .fastr.interop.asLong(1.1); class(v); }
 [1] "interopt.long"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- as.external.long(1.1); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- .fastr.interop.asLong(1.1); typeof(v); }
 [1] "interopt.long"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- as.external.long(1L); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- .fastr.interop.asLong(1L); class(v); }
 [1] "interopt.long"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- as.external.long(1L); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.long' } else { v <- .fastr.interop.asLong(1L); typeof(v); }
 [1] "interopt.long"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { -2147483648 } else { v <- as.external.long(-2147483648); v; }
+#if (!any(R.version$engine == "FastR")) { -2147483648 } else { v <- .fastr.interop.asLong(-2147483648); v; }
 [1] -2147483648
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 0 } else { v <- as.external.long(4.9E-324); v; }
+#if (!any(R.version$engine == "FastR")) { 0 } else { v <- .fastr.interop.asLong(4.9E-324); v; }
 [1] 0
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.long(1.1); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asLong(1.1); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.long(1L); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asLong(1L); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.long(as.raw(1)); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asLong(as.raw(1)); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 2147483647 } else { v <- as.external.long(2147483647); v; }
+#if (!any(R.version$engine == "FastR")) { 2147483647 } else { v <- .fastr.interop.asLong(2147483647); v; }
 [1] 2147483647
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToLong#
-#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { v <- as.external.long(1.7976931348623157E308); v; }
+#if (!any(R.version$engine == "FastR")) { 9223372036854775807 } else { v <- .fastr.interop.asLong(1.7976931348623157E308); v; }
 [1] 9.223372e+18
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- as.external.short(1.1); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- .fastr.interop.asShort(1.1); class(v); }
 [1] "interopt.short"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- as.external.short(1.1); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- .fastr.interop.asShort(1.1); typeof(v); }
 [1] "interopt.short"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- as.external.short(1L); class(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- .fastr.interop.asShort(1L); class(v); }
 [1] "interopt.short"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- as.external.short(1L); typeof(v); }
+#if (!any(R.version$engine == "FastR")) { 'interopt.short' } else { v <- .fastr.interop.asShort(1L); typeof(v); }
 [1] "interopt.short"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { -1 } else { v <- as.external.short(1.7976931348623157E308); v; }
+#if (!any(R.version$engine == "FastR")) { -1 } else { v <- .fastr.interop.asShort(1.7976931348623157E308); v; }
 [1] -1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { -1 } else { v <- as.external.short(2147483647); v; }
+#if (!any(R.version$engine == "FastR")) { -1 } else { v <- .fastr.interop.asShort(2147483647); v; }
 [1] -1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { -32768 } else { v <- as.external.short(-32768); v; }
+#if (!any(R.version$engine == "FastR")) { -32768 } else { v <- .fastr.interop.asShort(-32768); v; }
 [1] -32768
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 0 } else { v <- as.external.short(-2147483648); v; }
+#if (!any(R.version$engine == "FastR")) { 0 } else { v <- .fastr.interop.asShort(-2147483648); v; }
 [1] 0
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 0 } else { v <- as.external.short(4.9E-324); v; }
+#if (!any(R.version$engine == "FastR")) { 0 } else { v <- .fastr.interop.asShort(4.9E-324); v; }
 [1] 0
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.short(1.1); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asShort(1.1); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.short(1L); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asShort(1L); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 1 } else { v <- as.external.short(as.raw(1)); v; }
+#if (!any(R.version$engine == "FastR")) { 1 } else { v <- .fastr.interop.asShort(as.raw(1)); v; }
 [1] 1
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testToShort#
-#if (!any(R.version$engine == "FastR")) { 32767 } else { v <- as.external.short(32767); v; }
+#if (!any(R.version$engine == "FastR")) { 32767 } else { v <- .fastr.interop.asShort(32767); v; }
 [1] 32767
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
@@ -152879,7 +153413,7 @@ Error in as.external.char(97L, 1) :
 [25]  TRUE  TRUE  TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -152890,20 +153424,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -152914,20 +153448,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$byteArray2, ta$byteList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$byteArray2, ta$byteList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -152938,20 +153472,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$byteArray3, ta$byteList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$byteArray3, ta$byteList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -152962,20 +153496,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -152986,20 +153520,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153010,20 +153544,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$floatArray2, ta$floatList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$floatArray2, ta$floatList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153034,20 +153568,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$floatArray3, ta$floatList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$floatArray3, ta$floatList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153058,20 +153592,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$integerArray2, ta$integerList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$integerArray2, ta$integerList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153082,20 +153616,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$integerArray3, ta$integerList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$integerArray3, ta$integerList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153106,20 +153640,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$longArray2, ta$longList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$longArray2, ta$longList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153130,20 +153664,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$longArray3, ta$longList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$longArray3, ta$longList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153154,20 +153688,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$shortArray2, ta$shortList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$shortArray2, ta$shortList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153178,20 +153712,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$shortArray3, ta$shortList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$shortArray3, ta$shortList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153202,20 +153736,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$stringArray2, ta$stringList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$stringArray2, ta$stringList2), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153226,20 +153760,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$stringArray3, ta$stringList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] "a"','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] "aa"','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] "aaa"','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c('a', 'aa', 'aaa'), ta$stringArray3, ta$stringList3), recursive=FALSE) }
 [[1]]
 [1] "a"
 
@@ -153250,20 +153784,20 @@ Error in as.external.char(97L, 1) :
 [1] "aaa"
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153274,20 +153808,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153298,20 +153832,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$byteArray2, ta$byteList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$byteArray2, ta$byteList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153322,20 +153856,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$byteArray3, ta$byteList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$byteArray3, ta$byteList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153346,20 +153880,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153370,20 +153904,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153394,20 +153928,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$floatArray2, ta$floatList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$floatArray2, ta$floatList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153418,20 +153952,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$floatArray3, ta$floatList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$floatArray3, ta$floatList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153442,20 +153976,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$integerArray2, ta$integerList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$integerArray2, ta$integerList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153466,20 +154000,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$integerArray3, ta$integerList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$integerArray3, ta$integerList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153490,20 +154024,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$longArray2, ta$longList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$longArray2, ta$longList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153514,20 +154048,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$longArray3, ta$longList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$longArray3, ta$longList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153538,20 +154072,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$shortArray2, ta$shortList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$shortArray2, ta$shortList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153562,20 +154096,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$shortArray3, ta$shortList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$shortArray3, ta$shortList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153586,20 +154120,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$stringArray2, ta$stringList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$stringArray2, ta$stringList2), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153610,20 +154144,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$stringArray3, ta$stringList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1L, 2L, 3L), ta$stringArray3, ta$stringList3), recursive=FALSE) }
 [[1]]
 [1] 1
 
@@ -153634,20 +154168,20 @@ Error in as.external.char(97L, 1) :
 [1] 3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153658,20 +154192,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153682,20 +154216,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$integerArray2, ta$integerList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$integerArray2, ta$integerList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153706,20 +154240,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$integerArray3, ta$integerList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$integerArray3, ta$integerList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153730,20 +154264,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$longArray2, ta$longList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$longArray2, ta$longList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153754,20 +154288,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$longArray3, ta$longList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$longArray3, ta$longList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153778,20 +154312,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$shortArray2, ta$shortList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$shortArray2, ta$shortList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153802,20 +154336,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$shortArray3, ta$shortList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$shortArray3, ta$shortList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153826,20 +154360,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$stringArray2, ta$stringList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$stringArray2, ta$stringList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153850,20 +154384,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$stringArray3, ta$stringList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 1.2','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 1.3','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 1.2, 1.3), ta$stringArray3, ta$stringList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153874,20 +154408,20 @@ Error in as.external.char(97L, 1) :
 [1] 1.3
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$byteArray2, ta$byteList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$byteArray2, ta$byteList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153898,20 +154432,20 @@ Error in as.external.char(97L, 1) :
 [1] 3.1
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$byteArray3, ta$byteList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$byteArray3, ta$byteList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153922,20 +154456,20 @@ Error in as.external.char(97L, 1) :
 [1] 3.1
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153946,20 +154480,20 @@ Error in as.external.char(97L, 1) :
 [1] 3.1
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153970,20 +154504,20 @@ Error in as.external.char(97L, 1) :
 [1] 3.1
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$floatArray2, ta$floatList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$floatArray2, ta$floatList2), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -153994,20 +154528,20 @@ Error in as.external.char(97L, 1) :
 [1] 3.1
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$floatArray3, ta$floatList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] 1.1','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] 2.1','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] 3.1','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(1.1, 2.1, 3.1), ta$floatArray3, ta$floatList3), recursive=FALSE) }
 [[1]]
 [1] 1.1
 
@@ -154018,20 +154552,20 @@ Error in as.external.char(97L, 1) :
 [1] 3.1
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$booleanArray2, ta$booleanList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154042,20 +154576,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$booleanArray3, ta$booleanList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154066,20 +154600,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$byteArray2, ta$byteList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$byteArray2, ta$byteList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154090,20 +154624,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$byteArray3, ta$byteList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$byteArray3, ta$byteList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154114,20 +154648,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$doubleArray2, ta$doubleList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154138,20 +154672,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$doubleArray3, ta$doubleList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154162,20 +154696,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$floatArray2, ta$floatList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$floatArray2, ta$floatList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154186,20 +154720,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$floatArray3, ta$floatList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$floatArray3, ta$floatList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154210,20 +154744,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$integerArray2, ta$integerList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$integerArray2, ta$integerList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154234,20 +154768,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$integerArray3, ta$integerList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$integerArray3, ta$integerList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154258,20 +154792,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$longArray2, ta$longList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$longArray2, ta$longList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154282,20 +154816,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$longArray3, ta$longList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$longArray3, ta$longList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154306,20 +154840,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$shortArray2, ta$shortList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$shortArray2, ta$shortList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154330,20 +154864,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$shortArray3, ta$shortList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$shortArray3, ta$shortList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154354,20 +154888,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$stringArray2, ta$stringList2), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$stringArray2, ta$stringList2), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154378,20 +154912,20 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
-#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[external object]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$stringArray3, ta$stringList3), recursive=FALSE) }
+#if (!any(R.version$engine == "FastR")) { cat('[[1]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[2]]','<<<NEWLINE>>>','[1] FALSE','<<<NEWLINE>>><<<NEWLINE>>>','[[3]]','<<<NEWLINE>>>','[1] TRUE','<<<NEWLINE>>><<<NEWLINE>>>','[[4]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[5]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[6]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>','[[7]]','<<<NEWLINE>>>','[polyglot value]','<<<NEWLINE>>><<<NEWLINE>>>', sep='') } else { ta <- new('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestArraysClass'); unlist(list(c(TRUE, FALSE, TRUE), ta$stringArray3, ta$stringList3), recursive=FALSE) }
 [[1]]
 [1] TRUE
 
@@ -154402,16 +154936,16 @@ Error in as.external.char(97L, 1) :
 [1] TRUE
 
 [[4]]
-[external object]
+[polyglot value]
 
 [[5]]
-[external object]
+[polyglot value]
 
 [[6]]
-[external object]
+[polyglot value]
 
 [[7]]
-[external object]
+[polyglot value]
 
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testUnlist#
@@ -154571,68 +155105,68 @@ Error in as.external.char(97L, 1) :
 [2,] TRUE FALSE TRUE
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { cat('Error in if (T) print(\'OK\') :  argument is not interpretable as logical', '<<<NEWLINE>>>') } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to) print('OK') }
+#if (!any(R.version$engine == "FastR")) { cat('Error in if (T) print(\'OK\') :  argument is not interpretable as logical', '<<<NEWLINE>>>') } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to) print('OK') }
 Error in if (T) print('OK') :  argument is not interpretable as logical
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#
-#if (!any(R.version$engine == "FastR")) { while(1) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldInteger) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(1) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldInteger) {print('OK'); break;} }
 [1] "OK"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#
-#if (!any(R.version$engine == "FastR")) { while(T) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldBoolean) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(T) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldBoolean) {print('OK'); break;} }
 [1] "OK"
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { while(c("TRUE","TRUE","FALSE")) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listStringBoolean) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c("TRUE","TRUE","FALSE")) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listStringBoolean) {print('OK'); break;} }
 [1] "OK"
 Warning message:
 In while (c("TRUE", "TRUE", "FALSE")) { :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { while(c('A', 'B')) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listString) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c('A', 'B')) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listString) {print('OK'); break;} }
 Error in while (c("A", "B")) { : argument is not interpretable as logical
 In addition: Warning message:
 In while (c("A", "B")) { :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { while(c('TRUE', 'TRUE', 'FALSE')) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldStringBooleanArray) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c('TRUE', 'TRUE', 'FALSE')) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldStringBooleanArray) {print('OK'); break;} }
 [1] "OK"
 Warning message:
 In while (c("TRUE", "TRUE", "FALSE")) { :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreWarningContext#Output.IgnoreErrorContext#
-#if (!any(R.version$engine == "FastR")) { while(c('a', 'b')) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldStringArray) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c('a', 'b')) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));if(to$fieldStringArray) {print('OK'); break;} }
 Error in while (c("a", "b")) { : argument is not interpretable as logical
 In addition: Warning message:
 In while (c("a", "b")) { :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldBooleanArray) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldBooleanArray) {print('OK'); break;} }
 [1] "OK"
 Warning message:
 In while (c(T, F)) { :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldIntegerArray) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$fieldIntegerArray) {print('OK'); break;} }
 [1] "OK"
 Warning message:
 In while (c(T, F)) { :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listBoolean) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listBoolean) {print('OK'); break;} }
 [1] "OK"
 Warning message:
 In while (c(T, F)) { :
   the condition has length > 1 and only the first element will be used
 
 ##com.oracle.truffle.r.test.library.fastr.TestJavaInterop.testWhile#Output.IgnoreWarningContext#
-#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- new.external(new.java.class('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listInteger) {print('OK'); break;} }
+#if (!any(R.version$engine == "FastR")) { while(c(T, F)) {print('OK'); break;} } else { to <- .fastr.interop.new(java.type('com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'));while(to$listInteger) {print('OK'); break;} }
 [1] "OK"
 Warning message:
 In while (c(T, F)) { :
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
index 8f884c1764b258a17918ede70dd4be90edcbf03d..ac832b6c1c7fae07dd79b9803247b14582d821ce 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
@@ -52,7 +52,7 @@ public abstract class AbstractMRTest {
 
     @BeforeClass
     public static void before() {
-        context = Context.newBuilder("R", "llvm").build();
+        context = Context.newBuilder("R", "llvm").allowHostAccess(true).build();
         context.eval("R", "1"); // initialize context
         context.enter();
     }
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java
index d58670ae75aaca281dd6e7693dabc57817acf843..4aa85eb3cef421ee4f18f4893d9b4450c93596bf 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java
@@ -60,7 +60,7 @@ public class RFunctionMRTest extends AbstractMRTest {
         f = create("function(a) { is.logical(a) }");
         assertEquals(true, ForeignAccess.sendExecute(Message.createExecute(1).createNode(), f, true));
 
-        f = create("function(a) { as.external.short(a) }");
+        f = create("function(a) { .fastr.interop.asShort(a) }");
         assertTrue(ForeignAccess.sendExecute(Message.createExecute(1).createNode(), f, 123) instanceof Short);
     }
 
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java
index d6e9c827b8c1402b42d3cb2555870c936979928f..fd8c9504ae5b508081fb3334b3fabc8c150ff771 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java
@@ -134,7 +134,7 @@ public final class FastRSession implements RSession {
         ChildContextInfo ctx = ChildContextInfo.create(params, env, contextKind, contextKind == ContextKind.SHARE_NOTHING ? null : mainRContext, input, output, output);
         RContext.childInfo = ctx;
 
-        return Context.newBuilder("R", "llvm").engine(mainEngine).build();
+        return Context.newBuilder("R", "llvm").allowHostAccess(true).engine(mainEngine).build();
     }
 
     private FastRSession() {
@@ -154,7 +154,7 @@ public final class FastRSession implements RSession {
             ChildContextInfo info = ChildContextInfo.create(params, null, ContextKind.SHARE_NOTHING, null, input, output, output);
             RContext.childInfo = info;
             mainEngine = Engine.newBuilder().in(input).out(output).err(output).build();
-            mainContext = Context.newBuilder("R", "llvm").engine(mainEngine).build();
+            mainContext = Context.newBuilder("R", "llvm").allowHostAccess(true).engine(mainEngine).build();
             mainRContext = mainContext.eval(GET_CONTEXT).asHostObject();
         } finally {
             try {
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestInterop.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestInterop.java
index fd8c622badbbd456a3eba8a20dba2424bdd551d8..38bae1515df3ecd7e6bb08532a48c1ed441d67dd 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestInterop.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestInterop.java
@@ -52,11 +52,11 @@ public class TestInterop extends TestBase {
 
     @Test
     public void testInteropEval() {
-        assertEvalFastR("eval.external('application/x-r', '14 + 2')", "16");
-        assertEvalFastR("eval.external('application/x-r', '1')", "1");
-        assertEvalFastR("eval.external('application/x-r', '1L')", "1L");
-        assertEvalFastR("eval.external('application/x-r', 'TRUE')", "TRUE");
-        assertEvalFastR("eval.external('application/x-r', 'as.character(123)')", "as.character(123)");
+        assertEvalFastR("eval.polyglot('application/x-r', '14 + 2')", "16");
+        assertEvalFastR("eval.polyglot('application/x-r', '1')", "1");
+        assertEvalFastR("eval.polyglot('application/x-r', '1L')", "1L");
+        assertEvalFastR("eval.polyglot('application/x-r', 'TRUE')", "TRUE");
+        assertEvalFastR("eval.polyglot('application/x-r', 'as.character(123)')", "as.character(123)");
     }
 
     @Test
@@ -67,44 +67,28 @@ public class TestInterop extends TestBase {
         assertEvalFastR("export('foo', new.env())", "invisible()");
     }
 
-    @Test
-    public void testIsExternalExecutable() {
-        assertEvalFastR("is.external.executable(sum)", "TRUE");
-        assertEvalFastR("is.external.executable(NULL)", "FALSE");
-        assertEvalFastR("is.external.executable(c(1))", "FALSE");
-        assertEvalFastR("is.external.executable(list(1))", "FALSE");
-        assertEvalFastR("is.external.executable()", "FALSE");
-    }
-
-    @Test
-    public void testIsExternalNull() {
-        assertEvalFastR("is.external.null(NULL)", "TRUE");
-        assertEvalFastR("is.external.null(c(1))", "FALSE");
-        assertEvalFastR("is.external.null(list(1))", "FALSE");
-        assertEvalFastR("is.external.null()", "FALSE");
-    }
-
     @Test
     public void testInteropEvalFile() {
-        assertEvalFastR("fileConn<-file(\"" + TEST_EVAL_FILE + "\");writeLines(c(\"x<-c(1)\",\"cat(x)\"), fileConn);close(fileConn);eval.external(mimeType=\"application/x-r\", path=\"" +
+        assertEvalFastR("fileConn<-file(\"" + TEST_EVAL_FILE + "\");writeLines(c(\"x<-c(1)\",\"cat(x)\"), fileConn);close(fileConn);eval.polyglot(mimeType=\"application/x-r\", path=\"" +
                         TEST_EVAL_FILE + "\")",
                         "x<-c(1);cat(x)");
-        assertEvalFastR("fileConn<-file(\"" + TEST_EVAL_FILE + "\");writeLines(c(\"x<-c(1)\",\"cat(x)\"), fileConn);close(fileConn);eval.external(path=\"" + TEST_EVAL_FILE + "\")",
+        assertEvalFastR("fileConn<-file(\"" + TEST_EVAL_FILE + "\");writeLines(c(\"x<-c(1)\",\"cat(x)\"), fileConn);close(fileConn);eval.polyglot(path=\"" + TEST_EVAL_FILE + "\")",
                         "x<-c(1);cat(x)");
-        assertEvalFastR("tryCatch(eval.external(path=\"/a/b.R\"),  error = function(e) e$message)", "cat('[1] \"Error reading file: /a/b.R\"\\n')");
+        assertEvalFastR("tryCatch(eval.polyglot(path=\"/a/b.R\"),  error = function(e) e$message)", "cat('[1] \"Error reading file: /a/b.R\"\\n')");
 
-        assertEvalFastR("eval.external()", "cat('Error in eval.external() : invalid \\'source\\' or \\'path\\' argument\\n')");
-        assertEvalFastR("eval.external(,'abc',)", "cat('Error in eval.external(, \"abc\", ) : invalid mimeType argument\\n')");
+        assertEvalFastR("eval.polyglot()", "cat('Error in eval.polyglot() : invalid \\'source\\' or \\'path\\' argument\\n')");
+        assertEvalFastR("eval.polyglot(,'abc',)", "cat('Error in eval.polyglot(, \"abc\", ) : invalid mimeType argument\\n')");
     }
 
     @Test
     public void testInvoke() {
-        assertEvalFastR("cl <- new.java.class('java.math.BigInteger'); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength()", "print(72L)");
-        assertEvalFastR("cl <- new.java.class('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength(), silent=TRUE); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength()", "print(72L)");
-        assertEvalFastR("cl <- new.java.class('java.math.BigInteger'); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength",
-                        "cat('Error in fo@bitLength :\n  cannot get a slot (\"bitLength\") from an object of type \"external object\"\n')");
-        assertEvalFastR("cl <- new.java.class('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength, silent=TRUE); fo <- new.external(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength",
-                        "cat('Error in fo@bitLength :\n  cannot get a slot (\"bitLength\") from an object of type \"external object\"\n')");
+        assertEvalFastR("cl <- java.type('java.math.BigInteger'); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength()", "print(72L)");
+        assertEvalFastR("cl <- java.type('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength(), silent=TRUE); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength()",
+                        "print(72L)");
+        assertEvalFastR("cl <- java.type('java.math.BigInteger'); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength",
+                        "cat('Error in fo@bitLength :\n  cannot get a slot (\"bitLength\") from an object of type \"polyglot.value\"\n')");
+        assertEvalFastR("cl <- java.type('java.math.BigInteger'); fo <- 1:100; try(fo@bitLength, silent=TRUE); fo <- new(cl, 'FFFFFFFFFFFFFFFFFF', 16L); fo@bitLength",
+                        "cat('Error in fo@bitLength :\n  cannot get a slot (\"bitLength\") from an object of type \"polyglot.value\"\n')");
     }
 
     /**
@@ -144,7 +128,7 @@ public class TestInterop extends TestBase {
 
     @Test
     public void testPrinting() {
-        assertEvalFastR("v <- import('testPOJO'); print(v)", "cat('[external object]\\n" +
+        assertEvalFastR("v <- import('testPOJO'); print(v)", "cat('[polyglot value]\\n" +
                         "$stringValue\\n" +
                         "[1] \"foo\"\\n" +
                         "\\n" +
@@ -162,11 +146,10 @@ public class TestInterop extends TestBase {
                         "\\n" +
                         "$longValue\\n" +
                         "[1] 123412341234\\n\\n')");
-        assertEvalFastR("v <- import('testStringArray'); print(v)", "cat('[external object]\\n[1] \"a\"   \"\"    \"foo\"\\n')");
-        assertEvalFastR("v <- import('testIntArray'); print(v)", "cat('[external object]\\n[1]   1  -5 199\\n')");
-        assertEvalFastR("v <- import('testIntArray'); v", "cat('[external object]\\n[1]   1  -5 199\\n')");
-        // assertEvalFastR("v <- import('testPOJO'); names(v)", "c('stringValue', 'charValue',
-        // 'intValue', 'shortValue', 'booleanValue', 'longValue')");
+        assertEvalFastR("v <- import('testStringArray'); print(v)", "cat('[polyglot value]\\n[1] \"a\"   \"\"    \"foo\"\\n')");
+        assertEvalFastR("v <- import('testIntArray'); print(v)", "cat('[polyglot value]\\n[1]   1  -5 199\\n')");
+        assertEvalFastR("v <- import('testIntArray'); v", "cat('[polyglot value]\\n[1]   1  -5 199\\n')");
+        assertEvalFastR("v <- import('testPOJO'); names(v)", "c('stringValue', 'charValue', 'intValue', 'shortValue', 'booleanValue', 'longValue', 'class')");
     }
 
     @Test
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java
index 1f42af2d7f1bd66f94b32fc195a3d8b42e597291..7ba1df53d5c72061040ceb965c55f305eef87f00 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/fastr/TestJavaInterop.java
@@ -46,7 +46,7 @@ import org.junit.Ignore;
 public class TestJavaInterop extends TestBase {
 
     private static final String TEST_CLASS = TestClass.class.getName();
-    private static final String CREATE_TRUFFLE_OBJECT = "to <- new.external(new.java.class('" + TEST_CLASS + "'));";
+    private static final String CREATE_TRUFFLE_OBJECT = "to <- .fastr.interop.new(java.type('" + TEST_CLASS + "'));";
 
     @Before
     public void testInit() {
@@ -55,214 +55,207 @@ public class TestJavaInterop extends TestBase {
 
     @Test
     public void testToByte() {
-        assertEvalFastR("v <- as.external.byte(1L); v;", "1");
-        assertEvalFastR("v <- as.external.byte(1.1); v;", "1");
-        assertEvalFastR("v <- as.external.byte(as.raw(1)); v;", "1");
-        assertEvalFastR("v <- as.external.byte(1.1); class(v);", "'" + RType.RInteropByte.getName() + "'");
-        assertEvalFastR("v <- as.external.byte(1.1); typeof(v);", "'" + RType.RInteropByte.getName() + "'");
-        assertEvalFastR("v <- as.external.byte(" + Byte.MAX_VALUE + "); v;", "" + Byte.MAX_VALUE);
-        assertEvalFastR("v <- as.external.byte(" + Byte.MIN_VALUE + "); v;", "" + Byte.MIN_VALUE);
-        assertEvalFastR("v <- as.external.byte(" + Integer.MAX_VALUE + "); v;", "" + new Integer(Integer.MAX_VALUE).byteValue());
-        assertEvalFastR("v <- as.external.byte(" + Integer.MIN_VALUE + "); v;", "" + new Integer(Integer.MIN_VALUE).byteValue());
-        assertEvalFastR("v <- as.external.byte(" + Double.MAX_VALUE + "); v;", "" + new Double(Double.MAX_VALUE).byteValue());
-        assertEvalFastR("v <- as.external.byte(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).byteValue());
+        assertEvalFastR("v <- .fastr.interop.asByte(1L); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asByte(1.1); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asByte(as.raw(1)); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asByte(1.1); class(v);", "'" + RType.RInteropByte.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asByte(1.1); typeof(v);", "'" + RType.RInteropByte.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asByte(" + Byte.MAX_VALUE + "); v;", "" + Byte.MAX_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asByte(" + Byte.MIN_VALUE + "); v;", "" + Byte.MIN_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asByte(" + Integer.MAX_VALUE + "); v;", "" + new Integer(Integer.MAX_VALUE).byteValue());
+        assertEvalFastR("v <- .fastr.interop.asByte(" + Integer.MIN_VALUE + "); v;", "" + new Integer(Integer.MIN_VALUE).byteValue());
+        assertEvalFastR("v <- .fastr.interop.asByte(" + Double.MAX_VALUE + "); v;", "" + new Double(Double.MAX_VALUE).byteValue());
+        assertEvalFastR("v <- .fastr.interop.asByte(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).byteValue());
     }
 
     @Test
     public void testToFloat() {
-        assertEvalFastR("v <- as.external.float(1L); v;", "1");
-        assertEvalFastR("v <- as.external.float(1.1); v;", "1.1");
-        assertEvalFastR("v <- as.external.float(as.raw(1)); v;", "1");
-        assertEvalFastR("v <- as.external.float(1.1); class(v);", "'" + RType.RInteropFloat.getName() + "'");
-        assertEvalFastR("v <- as.external.float(1.1); typeof(v);", "'" + RType.RInteropFloat.getName() + "'");
-        assertEvalFastR("v <- as.external.float(1L); class(v);", "'" + RType.RInteropFloat.getName() + "'");
-        assertEvalFastR("v <- as.external.float(1L); typeof(v);", "'" + RType.RInteropFloat.getName() + "'");
-        assertEvalFastR("v <- as.external.float(" + Float.MAX_VALUE + "); v;", "" + Float.MAX_VALUE);
-        assertEvalFastR("v <- as.external.float(" + Float.MIN_VALUE + "); v;", "" + (double) Float.MIN_VALUE);
-        assertEvalFastR("v <- as.external.float(" + Double.MAX_VALUE + "); v;", "Inf");
-        assertEvalFastR("v <- as.external.float(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).floatValue());
+        assertEvalFastR("v <- .fastr.interop.asFloat(1L); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asFloat(1.1); v;", "1.1");
+        assertEvalFastR("v <- .fastr.interop.asFloat(as.raw(1)); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asFloat(1.1); class(v);", "'" + RType.RInteropFloat.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asFloat(1.1); typeof(v);", "'" + RType.RInteropFloat.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asFloat(1L); class(v);", "'" + RType.RInteropFloat.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asFloat(1L); typeof(v);", "'" + RType.RInteropFloat.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asFloat(" + Float.MAX_VALUE + "); v;", "" + Float.MAX_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asFloat(" + Float.MIN_VALUE + "); v;", "" + (double) Float.MIN_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asFloat(" + Double.MAX_VALUE + "); v;", "Inf");
+        assertEvalFastR("v <- .fastr.interop.asFloat(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).floatValue());
     }
 
     @Test
     public void testToLong() {
-        assertEvalFastR("v <- as.external.long(1L); v;", "1");
-        assertEvalFastR("v <- as.external.long(1.1); v;", "1");
-        assertEvalFastR("v <- as.external.long(as.raw(1)); v;", "1");
-        assertEvalFastR("v <- as.external.long(1.1); class(v);", "'" + RType.RInteropLong.getName() + "'");
-        assertEvalFastR("v <- as.external.long(1.1); typeof(v);", "'" + RType.RInteropLong.getName() + "'");
-        assertEvalFastR("v <- as.external.long(1L); class(v);", "'" + RType.RInteropLong.getName() + "'");
-        assertEvalFastR("v <- as.external.long(1L); typeof(v);", "'" + RType.RInteropLong.getName() + "'");
-        assertEvalFastR("v <- as.external.long(" + Integer.MAX_VALUE + "); v;", "" + Integer.MAX_VALUE);
-        assertEvalFastR("v <- as.external.long(" + Integer.MIN_VALUE + "); v;", "" + Integer.MIN_VALUE);
-        assertEvalFastR("v <- as.external.long(" + Double.MAX_VALUE + "); v;", "" + new Double(Double.MAX_VALUE).longValue());
-        assertEvalFastR("v <- as.external.long(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).longValue());
+        assertEvalFastR("v <- .fastr.interop.asLong(1L); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asLong(1.1); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asLong(as.raw(1)); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asLong(1.1); class(v);", "'" + RType.RInteropLong.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asLong(1.1); typeof(v);", "'" + RType.RInteropLong.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asLong(1L); class(v);", "'" + RType.RInteropLong.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asLong(1L); typeof(v);", "'" + RType.RInteropLong.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asLong(" + Integer.MAX_VALUE + "); v;", "" + Integer.MAX_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asLong(" + Integer.MIN_VALUE + "); v;", "" + Integer.MIN_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asLong(" + Double.MAX_VALUE + "); v;", "" + new Double(Double.MAX_VALUE).longValue());
+        assertEvalFastR("v <- .fastr.interop.asLong(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).longValue());
     }
 
     @Test
     public void testToShort() {
-        assertEvalFastR("v <- as.external.short(1L); v;", "1");
-        assertEvalFastR("v <- as.external.short(1.1); v;", "1");
-        assertEvalFastR("v <- as.external.short(as.raw(1)); v;", "1");
-        assertEvalFastR("v <- as.external.short(1.1); class(v);", "'" + RType.RInteropShort.getName() + "'");
-        assertEvalFastR("v <- as.external.short(1.1); typeof(v);", "'" + RType.RInteropShort.getName() + "'");
-        assertEvalFastR("v <- as.external.short(1L); class(v);", "'" + RType.RInteropShort.getName() + "'");
-        assertEvalFastR("v <- as.external.short(1L); typeof(v);", "'" + RType.RInteropShort.getName() + "'");
-        assertEvalFastR("v <- as.external.short(" + Short.MAX_VALUE + "); v;", "" + Short.MAX_VALUE);
-        assertEvalFastR("v <- as.external.short(" + Short.MIN_VALUE + "); v;", "" + Short.MIN_VALUE);
-        assertEvalFastR("v <- as.external.short(" + Integer.MAX_VALUE + "); v;", "" + new Integer(Integer.MAX_VALUE).shortValue());
-        assertEvalFastR("v <- as.external.short(" + Integer.MIN_VALUE + "); v;", "" + new Integer(Integer.MIN_VALUE).shortValue());
-        assertEvalFastR("v <- as.external.short(" + Double.MAX_VALUE + "); v;", "" + new Double(Double.MAX_VALUE).shortValue());
-        assertEvalFastR("v <- as.external.short(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).shortValue());
+        assertEvalFastR("v <- .fastr.interop.asShort(1L); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asShort(1.1); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asShort(as.raw(1)); v;", "1");
+        assertEvalFastR("v <- .fastr.interop.asShort(1.1); class(v);", "'" + RType.RInteropShort.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asShort(1.1); typeof(v);", "'" + RType.RInteropShort.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asShort(1L); class(v);", "'" + RType.RInteropShort.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asShort(1L); typeof(v);", "'" + RType.RInteropShort.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asShort(" + Short.MAX_VALUE + "); v;", "" + Short.MAX_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asShort(" + Short.MIN_VALUE + "); v;", "" + Short.MIN_VALUE);
+        assertEvalFastR("v <- .fastr.interop.asShort(" + Integer.MAX_VALUE + "); v;", "" + new Integer(Integer.MAX_VALUE).shortValue());
+        assertEvalFastR("v <- .fastr.interop.asShort(" + Integer.MIN_VALUE + "); v;", "" + new Integer(Integer.MIN_VALUE).shortValue());
+        assertEvalFastR("v <- .fastr.interop.asShort(" + Double.MAX_VALUE + "); v;", "" + new Double(Double.MAX_VALUE).shortValue());
+        assertEvalFastR("v <- .fastr.interop.asShort(" + Double.MIN_VALUE + "); v;", "" + new Double(Double.MIN_VALUE).shortValue());
     }
 
     @Test
     public void testToChar() {
-        assertEvalFastR("v <- as.external.char(97L); v;", "'a'");
-        assertEvalFastR("v <- as.external.char(97.1); v;", "'a'");
-        assertEvalFastR("v <- as.external.char(97.1, 1); v;", errorIn("as.external.char(97.1, 1)", "pos argument not allowed with a numeric value"));
-        assertEvalFastR("v <- as.external.char(97L, 1); v;", errorIn("as.external.char(97L, 1)", "pos argument not allowed with a numeric value"));
-        assertEvalFastR("v <- as.external.char('abc', 1); v;", "'b'");
-        assertEvalFastR("v <- as.external.char('abc', 1.1); v;", "'b'");
-        assertEvalFastR("v <- as.external.char(97.1); class(v);", "'" + RType.RInteropChar.getName() + "'");
-        assertEvalFastR("v <- as.external.char(97.1); typeof(v);", "'" + RType.RInteropChar.getName() + "'");
-        assertEvalFastR("v <- as.external.char(97L); class(v);", "'" + RType.RInteropChar.getName() + "'");
-        assertEvalFastR("v <- as.external.char(97L); typeof(v);", "'" + RType.RInteropChar.getName() + "'");
-        assertEvalFastR("v <- as.external.char('a'); v;", "'a'");
+        assertEvalFastR("v <- .fastr.interop.asChar(97L); v;", "'a'");
+        assertEvalFastR("v <- .fastr.interop.asChar(97.1); v;", "'a'");
+        assertEvalFastR("v <- .fastr.interop.asChar(97.1, 1); v;", errorIn(".fastr.interop.asChar(97.1, 1)", "pos argument not allowed with a numeric value"));
+        assertEvalFastR("v <- .fastr.interop.asChar(97L, 1); v;", errorIn(".fastr.interop.asChar(97L, 1)", "pos argument not allowed with a numeric value"));
+        assertEvalFastR("v <- .fastr.interop.asChar('abc', 1); v;", "'b'");
+        assertEvalFastR("v <- .fastr.interop.asChar('abc', 1.1); v;", "'b'");
+        assertEvalFastR("v <- .fastr.interop.asChar(97.1); class(v);", "'" + RType.RInteropChar.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asChar(97.1); typeof(v);", "'" + RType.RInteropChar.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asChar(97L); class(v);", "'" + RType.RInteropChar.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asChar(97L); typeof(v);", "'" + RType.RInteropChar.getName() + "'");
+        assertEvalFastR("v <- .fastr.interop.asChar('a'); v;", "'a'");
     }
 
     @Test
     public void testToArray() {
-        assertEvalFastR("a <- as.java.array(1L); a;", getRValue(new int[]{1}));
-        assertEvalFastR("a <- as.java.array(1L); java.class(a);", "'[I'");
-        assertEvalFastR("a <- as.java.array(c(1L, 2L)); a;", getRValue(new int[]{1, 2}));
-        assertEvalFastR("a <- as.java.array(1L,,T); a;", getRValue(new int[]{1}));
-        assertEvalFastR("a <- as.java.array(c(1L, 2L),,T); a;", getRValue(new int[]{1, 2}));
-        assertEvalFastR("a <- as.java.array(c(1L, 2L),'double',T); a;", getRValue(new double[]{1, 2}));
-
-        assertEvalFastR("a <- as.java.array(1.1); a;", getRValue(new double[]{1.1}));
-        assertEvalFastR("a <- as.java.array(1.1); java.class(a);", "'[D'");
-        assertEvalFastR("a <- as.java.array(c(1.1, 1.2)); a;", getRValue(new double[]{1.1, 1.2}));
-        assertEvalFastR("a <- as.java.array(1.1,,T); a;", getRValue(new double[]{1.1}));
-        assertEvalFastR("a <- as.java.array(c(1.1, 1.2),,T); a;", getRValue(new double[]{1.1, 1.2}));
-        assertEvalFastR("a <- as.java.array(c(1.1, 1.2),'double',T); a;", getRValue(new double[]{1.1, 1.2}));
-
-        assertEvalFastR("a <- as.java.array(T); a;", getRValue(new boolean[]{true}));
-        assertEvalFastR("a <- as.java.array(T); java.class(a);", "'[Z'");
-        assertEvalFastR("a <- as.java.array(c(T, F)); a;", getRValue(new boolean[]{true, false}));
-        assertEvalFastR("a <- as.java.array(T,,T); a;", getRValue(new boolean[]{true}));
-        assertEvalFastR("a <- as.java.array(c(T, F),,T); a;", getRValue(new boolean[]{true, false}));
-        assertEvalFastR("a <- as.java.array(c(T, F),'boolean',T); a;", getRValue(new boolean[]{true, false}));
-
-        assertEvalFastR("a <- as.java.array('a'); a;", getRValue(new String[]{"a"}));
-        assertEvalFastR("a <- as.java.array('a'); java.class(a);", "'[Ljava.lang.String;'");
-        assertEvalFastR("a <- as.java.array(c('a', 'b')); a;", getRValue(new String[]{"a", "b"}));
-        assertEvalFastR("a <- as.java.array('a',,T); a;", getRValue(new String[]{"a"}));
-        assertEvalFastR("a <- as.java.array(c('a', 'b'),,T); a;", getRValue(new String[]{"a", "b"}));
-        assertEvalFastR("a <- as.java.array(c('a', 'b'),'java.lang.String',T); a;", getRValue(new String[]{"a", "b"}));
-
-        assertEvalFastR("a <- as.java.array(as.raw(1)); a", getRValue(new byte[]{1}));
-        assertEvalFastR("a <- as.java.array(as.raw(1)); java.class(a);", "'[B'");
-        assertEvalFastR("a <- as.java.array(as.raw(1)); length(a);", "1");
-        assertEvalFastR("a <- as.java.array(as.raw(c(1, 2, 3))); length(a);", "3");
-        assertEvalFastR("a <- as.java.array(as.raw(c(1, 2, 3))); java.class(a);", "'[B'");
-        assertEvalFastR("a <- as.java.array(as.raw(c(1, 2, 3)), 'int'); java.class(a);", "'[I'");
-
-        assertEvalFastR("a <- as.java.array(as.external.short(1)); a;", getRValue(new short[]{1}));
-        assertEvalFastR("a <- as.java.array(as.external.short(1)); java.class(a);", "'[S'");
-        assertEvalFastR("a <- as.java.array(c(as.external.short(1), as.external.short(2))); a;", getRValue(new short[]{1, 2}));
-        assertEvalFastR("a <- as.java.array(as.external.short(1),,T); a;", getRValue(new short[]{1}));
-        assertEvalFastR("a <- as.java.array(c(as.external.short(1), as.external.short(2)),,T); a;", getRValue(new short[]{1, 2}));
-        assertEvalFastR("a <- as.java.array(c(as.external.short(1), as.external.short(2)),'int',T); a;", getRValue(new int[]{1, 2}));
-
-        assertEvalFastR("a <- as.java.array(as.external.short(1), 'java.lang.Short'); a;", getRValue(new short[]{1}));
-        assertEvalFastR("a <- as.java.array(c(as.external.short(1), as.external.short(2)), 'java.lang.Short'); a;", getRValue(new short[]{1, 2}));
-        assertEvalFastR("a <- as.java.array(as.external.short(1), 'java.lang.Short', T); a;", getRValue(new short[]{1}));
-        assertEvalFastR("a <- as.java.array(c(as.external.short(1), as.external.short(2)), 'java.lang.Short', T); a;", getRValue(new short[]{1, 2}));
-
-        assertEvalFastR("a <- as.java.array(c(as.external.short(1), as.external.short(2)), 'int'); a;", getRValue(new int[]{1, 2}));
-        assertEvalFastR("a <- as.java.array(c(1.123, 2.123), 'double'); a;", getRValue(new double[]{1.123, 2.123}));
-        assertEvalFastR("a <- as.java.array(as.external.short(1), 'double'); a;", getRValue(new double[]{1}));
-
-        assertEvalFastR("a <- as.java.array(1L); as.java.array(a);", getRValue(new int[]{1}));
-        assertEvalFastR("a <- as.java.array(1L); as.java.array(a,,T);", getRValue(new int[]{1}));
-
-        assertEvalFastR("a <- as.java.array(as.external.short(1)); as.java.array(a);", getRValue(new short[]{1}));
-
-        assertEvalFastR("tc <- new.java.class('" + TEST_CLASS + "'); to <- new.external(tc); a <- as.java.array(to); is.external.array(a)", "TRUE");
-        assertEvalFastR("tc <- new.java.class('" + TEST_CLASS + "'); to <- new.external(tc); a <- as.java.array(c(to, to)); is.external.array(a)", "TRUE");
-        assertEvalFastR("tc <- new.java.class('" + TEST_CLASS + "'); to <- new.external(tc); a <- as.java.array(c(to, to)); length(a)", "2");
-        assertEvalFastR("tc <- new.java.class('" + TEST_CLASS + "'); to <- new.external(tc); a <- as.java.array(c(to, to)); java.class(a);",
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1L); a;", getRValue(new int[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1L); a$getClass()$getName();", "'[I'");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1L, 2L)); a;", getRValue(new int[]{1, 2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1L,,T); a;", getRValue(new int[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1L, 2L),,T); a;", getRValue(new int[]{1, 2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1L, 2L),'double',T); a;", getRValue(new double[]{1, 2}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1.1); a;", getRValue(new double[]{1.1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1.1); a$getClass()$getName();", "'[D'");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1.1, 1.2)); a;", getRValue(new double[]{1.1, 1.2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1.1,,T); a;", getRValue(new double[]{1.1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1.1, 1.2),,T); a;", getRValue(new double[]{1.1, 1.2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1.1, 1.2),'double',T); a;", getRValue(new double[]{1.1, 1.2}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(T); a;", getRValue(new boolean[]{true}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(T); a$getClass()$getName();", "'[Z'");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(T, F)); a;", getRValue(new boolean[]{true, false}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(T,,T); a;", getRValue(new boolean[]{true}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(T, F),,T); a;", getRValue(new boolean[]{true, false}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(T, F),'boolean',T); a;", getRValue(new boolean[]{true, false}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray('a'); a;", getRValue(new String[]{"a"}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray('a'); a$getClass()$getName();", "'[Ljava.lang.String;'");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c('a', 'b')); a;", getRValue(new String[]{"a", "b"}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray('a',,T); a;", getRValue(new String[]{"a"}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c('a', 'b'),,T); a;", getRValue(new String[]{"a", "b"}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c('a', 'b'),'java.lang.String',T); a;", getRValue(new String[]{"a", "b"}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(as.raw(1)); a", getRValue(new byte[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(as.raw(1)); a$getClass()$getName();", "'[B'");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(as.raw(1)); length(a);", "1");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(as.raw(c(1, 2, 3))); length(a);", "3");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(as.raw(c(1, 2, 3))); a$getClass()$getName();", "'[B'");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(as.raw(c(1, 2, 3)), 'int'); a$getClass()$getName();", "'[I'");
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1)); a;", getRValue(new short[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1)); a$getClass()$getName();", "'[S'");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2))); a;", getRValue(new short[]{1, 2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1),,T); a;", getRValue(new short[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)),,T); a;", getRValue(new short[]{1, 2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)),'int',T); a;", getRValue(new int[]{1, 2}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1), 'java.lang.Short'); a;", getRValue(new short[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)), 'java.lang.Short'); a;", getRValue(new short[]{1, 2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1), 'java.lang.Short', T); a;", getRValue(new short[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)), 'java.lang.Short', T); a;", getRValue(new short[]{1, 2}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(.fastr.interop.asShort(1), .fastr.interop.asShort(2)), 'int'); a;", getRValue(new int[]{1, 2}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1.123, 2.123), 'double'); a;", getRValue(new double[]{1.123, 2.123}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1), 'double'); a;", getRValue(new double[]{1}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1L); .fastr.interop.asJavaArray(a);", getRValue(new int[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1L); .fastr.interop.asJavaArray(a,,T);", getRValue(new int[]{1}));
+
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(.fastr.interop.asShort(1)); .fastr.interop.asJavaArray(a);", getRValue(new short[]{1}));
+
+        assertEvalFastR("tc <- java.type('" + TEST_CLASS + "'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(to); is.polyglot.value(a) && length(a) > 0", "TRUE");
+        assertEvalFastR("tc <- java.type('" + TEST_CLASS + "'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(c(to, to)); is.polyglot.value(a) && length(a) > 0", "TRUE");
+        assertEvalFastR("tc <- java.type('" + TEST_CLASS + "'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(c(to, to)); length(a)", "2");
+        assertEvalFastR("tc <- java.type('" + TEST_CLASS + "'); to <- .fastr.interop.new(tc); a <- .fastr.interop.asJavaArray(c(to, to)); a$getClass()$getName();",
                         "[Lcom.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass;");
 
-        assertEvalFastR("a <- as.java.array(1L,,F); a;", getRValue(new int[]{1}));
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(1L,,F); a;", getRValue(new int[]{1}));
     }
 
     @Test
     public void testArrayAsParameter() {
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "ja <- as.java.array(c(1L, 2L, 3L), 'int'); to$isIntArray(ja)", "'" + (new int[1]).getClass().getName() + "'");
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "ja <- as.java.array(c(1L, 2L, 3L), 'java.lang.Integer'); to$isIntegerArray(ja)", "'" + (new Integer[1]).getClass().getName() + "'");
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "ja <- .fastr.interop.asJavaArray(c(1L, 2L, 3L), 'int'); to$isIntArray(ja)", "'" + (new int[1]).getClass().getName() + "'");
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "ja <- .fastr.interop.asJavaArray(c(1L, 2L, 3L), 'java.lang.Integer'); to$isIntegerArray(ja)", "'" + (new Integer[1]).getClass().getName() + "'");
     }
 
     @Test
     public void testNewArray() {
-        testNewArray("java.lang.Boolean", true);
-        testNewArray("java.lang.Byte", true);
-        testNewArray("java.lang.Character", true);
-        testNewArray("java.lang.Double", true);
-        testNewArray("java.lang.Float", true);
-        testNewArray("java.lang.Integer", true);
-        testNewArray("java.lang.Long", true);
-        testNewArray("java.lang.Short", true);
-        testNewArray("java.lang.String", true);
-
-        testNewArray("boolean", true);
-        testNewArray("byte", true);
-        testNewArray("char", true);
-        testNewArray("double", true);
-        testNewArray("float", true);
-        testNewArray("int", true);
-        testNewArray("long", true);
-        testNewArray("short", true);
-
-        testNewArray("com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass", true);
-
-        // test also with double length/dimensions
-        testNewArray("java.lang.String", false);
-    }
-
-    public void testNewArray(String className, boolean dimInt) {
-        String dim = dimInt ? "10L" : "10.9";
-        assertEvalFastR("a <- new.java.array('" + className + "', " + dim + "); is.external.array(a);", "TRUE");
-        assertEvalFastR("a <- new.java.array('" + className + "', " + dim + "); length(a);", "10");
-        assertEvalFastR("a <- new.java.array('" + className + "', " + dim + "); java.class(a);", toArrayClassName(className, 1));
-
-        dim = dimInt ? "c(2L, 3L)" : "c(2.9, 3.9)";
-        assertEvalFastR("a <- new.java.array('" + className + "', " + dim + "); is.external.array(a);", "TRUE");
-        assertEvalFastR("a <- new.java.array('" + className + "', " + dim + "); length(a);", "2L");
-        assertEvalFastR("a <- new.java.array('" + className + "', " + dim + "); length(a[1]);", "3L");
-        assertEvalFastR("a <- new.java.array('" + className + "', " + dim + "); java.class(a);", toArrayClassName(className, 2));
+        testNewArray("java.lang.Boolean");
+        testNewArray("java.lang.Byte");
+        testNewArray("java.lang.Character");
+        testNewArray("java.lang.Double");
+        testNewArray("java.lang.Float");
+        testNewArray("java.lang.Integer");
+        testNewArray("java.lang.Long");
+        testNewArray("java.lang.Short");
+        testNewArray("java.lang.String");
+
+        testNewArray("boolean");
+        testNewArray("byte");
+        testNewArray("char");
+        testNewArray("double");
+        testNewArray("float");
+        testNewArray("int");
+        testNewArray("long");
+        testNewArray("short");
+
+        testNewArray("com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass");
+    }
+
+    public void testNewArray(String className) {
+        assertEvalFastR("a <- new(java.type('" + className + "[]'), 10L); is.polyglot.value(a) && length(a) > 0", "TRUE");
+        assertEvalFastR("a <- new(java.type('" + className + "[]'), 10L); length(a)", "10");
+        assertEvalFastR("a <- new(java.type('" + className + "[]'), 10L); a$getClass()$getName();", toArrayClassName(className, 1));
+
+        assertEvalFastR("a <- new(java.type('" + className + "[][]'), c(2L, 3L)); is.polyglot.value(a) && length(a) > 0", "TRUE");
+        assertEvalFastR("a <- new(java.type('" + className + "[][]'), c(2L, 3L)); length(a);", "2L");
+        assertEvalFastR("a <- new(java.type('" + className + "[][]'), c(2L, 3L)); length(a[1]);", "3L");
+        assertEvalFastR("a <- new(java.type('" + className + "[][]'), c(2L, 3L)); a$getClass()$getName();", toArrayClassName(className, 2));
     }
 
     @Test
-    public void testGetClass() {
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "java.class(to)", "'com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'");
-
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "java.class(to$methodReturnsNull())", errorIn("java.class(to$methodReturnsNull())", "unsupported type com.oracle.truffle.r.runtime.data.RNull"));
-        assertEvalFastR("java.class(NULL)", errorIn("java.class(NULL)", "unsupported type com.oracle.truffle.r.runtime.data.RNull"));
-        assertEvalFastR("java.class(1)", errorIn("java.class(1)", "unsupported type java.lang.Double"));
+    public void testGetClassAndClassName() {
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "to$getClass()$getName()", "'com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'");
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "to$class$getName()", "'com.oracle.truffle.r.test.library.fastr.TestJavaInterop$TestClass'");
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "to$class$getClass()$getName()", "'java.lang.Class'");
     }
 
     @Test
     public void testAsVectorFromArray() {
-        // testAsVectorFromArray("fieldStaticBooleanArray", "logical");
-        // testAsVectorFromArray("fieldStaticByteArray", "integer");
-        // testAsVectorFromArray("fieldStaticCharArray", "character");
-        // testAsVectorFromArray("fieldStaticDoubleArray", "double");
-        // testAsVectorFromArray("fieldStaticFloatArray", "double");
-        // testAsVectorFromArray("fieldStaticIntegerArray", "integer");
-        // testAsVectorFromArray("fieldStaticLongArray", "double");
-        // testAsVectorFromArray("fieldStaticShortArray", "integer");
-        // testAsVectorFromArray("fieldStaticStringArray", "character");
+        testAsVectorFromArray("fieldStaticBooleanArray", "logical");
+        testAsVectorFromArray("fieldStaticByteArray", "integer");
+        testAsVectorFromArray("fieldStaticCharArray", "character");
+        testAsVectorFromArray("fieldStaticDoubleArray", "double");
+        testAsVectorFromArray("fieldStaticFloatArray", "double");
+        testAsVectorFromArray("fieldStaticIntegerArray", "integer");
+        testAsVectorFromArray("fieldStaticLongArray", "double");
+        testAsVectorFromArray("fieldStaticShortArray", "integer");
+        testAsVectorFromArray("fieldStaticStringArray", "character");
 
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " v <- as.vector(to$objectArray); is.list(v)", "TRUE");
         testAsVectorFromArray("objectIntArray", "integer");
@@ -277,15 +270,15 @@ public class TestJavaInterop extends TestBase {
 
     @Test
     public void testFromArray() {
-        // testAsVectorFromArray("fieldStaticBooleanArray", "logical");
-        // testAsVectorFromArray("fieldStaticByteArray", "integer");
-        // testAsVectorFromArray("fieldStaticCharArray", "character");
-        // testAsVectorFromArray("fieldStaticDoubleArray", "double");
-        // testAsVectorFromArray("fieldStaticFloatArray", "double");
-        // testAsVectorFromArray("fieldStaticIntegerArray", "integer");
-        // testAsVectorFromArray("fieldStaticLongArray", "double");
-        // testAsVectorFromArray("fieldStaticShortArray", "integer");
-        // testAsVectorFromArray("fieldStaticStringArray", "character");
+        testAsVectorFromArray("fieldStaticBooleanArray", "logical");
+        testAsVectorFromArray("fieldStaticByteArray", "integer");
+        testAsVectorFromArray("fieldStaticCharArray", "character");
+        testAsVectorFromArray("fieldStaticDoubleArray", "double");
+        testAsVectorFromArray("fieldStaticFloatArray", "double");
+        testAsVectorFromArray("fieldStaticIntegerArray", "integer");
+        testAsVectorFromArray("fieldStaticLongArray", "double");
+        testAsVectorFromArray("fieldStaticShortArray", "integer");
+        testAsVectorFromArray("fieldStaticStringArray", "character");
 
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " v <- .fastr.interop.fromArray(to$objectArray); is.list(v)", "TRUE");
         testAsVectorFromArray("objectIntArray", "integer");
@@ -297,7 +290,7 @@ public class TestJavaInterop extends TestBase {
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " v <- .fastr.interop.fromArray(to$hasNullIntArray); v[2]", "list(NULL)");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " v <- .fastr.interop.fromArray(to$hasNullIntArray); v[3]", "list(3)");
 
-        assertEvalFastR("ja <- new.java.array('java.lang.String', 0L); .fastr.interop.fromArray(ja)", "list()");
+        assertEvalFastR("ja <- new(java.type('java.lang.String[]'), 0L); .fastr.interop.fromArray(ja)", "list()");
     }
 
     public void testAsVectorFromArray(String field, String type) {
@@ -307,47 +300,47 @@ public class TestJavaInterop extends TestBase {
 
     @Test
     public void testInteroptNew() {
-        assertEvalFastR("tc <- new.java.class('" + Boolean.class.getName() + "'); t <- new.external(tc, TRUE); t", "TRUE");
-        assertEvalFastR("tc <- new.java.class('java/lang/Boolean'); t <- new(tc, TRUE); t", "TRUE");
-        assertEvalFastR("tc <- new.java.class('" + Byte.class.getName() + "'); t <- new.external(tc, as.external.byte(1)); t", "1");
-        assertEvalFastR("tc <- new.java.class('" + Character.class.getName() + "'); t <- new.external(tc, as.external.char(97)); t", "'a'");
-        assertEvalFastR("tc <- new.java.class('" + Double.class.getName() + "'); t <- new.external(tc, 1.1); t", "1.1");
-        assertEvalFastR("tc <- new.java.class('" + Float.class.getName() + "'); t <- new.external(tc, as.external.float(1.1)); t", "1.1");
-        assertEvalFastR("tc <- new.java.class('" + Integer.class.getName() + "'); t <- new.external(tc, 1L); t", "1");
-        assertEvalFastR("tc <- new.java.class('" + Long.class.getName() + "'); t <- new.external(tc, as.external.long(1)); t", "1");
-        assertEvalFastR("tc <- new.java.class('" + Short.class.getName() + "'); t <- new.external(tc, as.external.short(1)); t", "1");
-        assertEvalFastR("tc <- new.java.class('" + String.class.getName() + "'); t <- new.external(tc, 'abc'); t", "'abc'");
-        assertEvalFastR("tc <- new.java.class('" + TestNullClass.class.getName() + "'); t <- new.external(tc, NULL); class(t)", "'" + RType.TruffleObject.getName() + "'");
+        assertEvalFastR("tc <- java.type('" + Boolean.class.getName() + "'); t <- .fastr.interop.new(tc, TRUE); t", "TRUE");
+        assertEvalFastR("tc <- java.type('java/lang/Boolean'); t <- new(tc, TRUE); t", "TRUE");
+        assertEvalFastR("tc <- java.type('" + Byte.class.getName() + "'); t <- .fastr.interop.new(tc, .fastr.interop.asByte(1)); t", "1");
+        assertEvalFastR("tc <- java.type('" + Character.class.getName() + "'); t <- .fastr.interop.new(tc, .fastr.interop.asChar(97)); t", "'a'");
+        assertEvalFastR("tc <- java.type('" + Double.class.getName() + "'); t <- .fastr.interop.new(tc, 1.1); t", "1.1");
+        assertEvalFastR("tc <- java.type('" + Float.class.getName() + "'); t <- .fastr.interop.new(tc, .fastr.interop.asFloat(1.1)); t", "1.1");
+        assertEvalFastR("tc <- java.type('" + Integer.class.getName() + "'); t <- .fastr.interop.new(tc, 1L); t", "1");
+        assertEvalFastR("tc <- java.type('" + Long.class.getName() + "'); t <- .fastr.interop.new(tc, .fastr.interop.asLong(1)); t", "1");
+        assertEvalFastR("tc <- java.type('" + Short.class.getName() + "'); t <- .fastr.interop.new(tc, .fastr.interop.asShort(1)); t", "1");
+        assertEvalFastR("tc <- java.type('" + String.class.getName() + "'); t <- .fastr.interop.new(tc, 'abc'); t", "'abc'");
+        assertEvalFastR("tc <- java.type('" + TestNullClass.class.getName() + "'); t <- .fastr.interop.new(tc, NULL); class(t)", "'" + RType.TruffleObject.getName() + "'");
     }
 
     @Test
     public void testNewWithJavaClass() {
-        assertEvalFastR("tc <- new.java.class('" + Boolean.class.getName() + "'); to <- new(tc, TRUE); to", "TRUE");
-        assertEvalFastR("tc <- new.java.class('" + TEST_CLASS + "'); to <- new(tc); to$fieldInteger", getRValue(Integer.MAX_VALUE));
+        assertEvalFastR("tc <- java.type('" + Boolean.class.getName() + "'); to <- new(tc, TRUE); to", "TRUE");
+        assertEvalFastR("tc <- java.type('" + TEST_CLASS + "'); to <- new(tc); to$fieldInteger", getRValue(Integer.MAX_VALUE));
 
         assertEvalFastR("to <- new('" + Boolean.class.getName() + "', TRUE); to", "TRUE");
         assertEvalFastR("to <- new('java/lang/Boolean', TRUE); to", "TRUE");
-        // assertEvalFastR("to <- new('" + TEST_CLASS + "'); to$fieldStaticInteger",
-        // getRValue(Integer.MAX_VALUE));
+        assertEvalFastR("to <- new('" + TEST_CLASS + "'); to$fieldStaticInteger",
+                        getRValue(Integer.MAX_VALUE));
 
-        assertEvalFastR("to <- new('" + TEST_CLASS + "'); new(to)", errorIn("new.external(Class, ...)", "error during Java object instantiation"));
+        assertEvalFastR("to <- new('" + TEST_CLASS + "'); new(to)", errorIn(".fastr.interop.new(Class, ...)", "error during Java object instantiation"));
 
         assertEvalFastR("to <- new('__bogus_class_name__');", errorIn("getClass(Class, where = topenv(parent.frame()))", "“__bogus_class_name__” is not a defined class"));
     }
 
     @Test
     public void testCombineInteropTypes() {
-        assertEvalFastR("class(c(as.external.byte(123)))", "'interopt.byte'");
-        assertEvalFastR("class(c(as.external.byte(123), as.external.byte(234)))", "'list'");
-        assertEvalFastR("class(c(as.external.byte(123), 1))", "'list'");
-        assertEvalFastR("class(c(1, as.external.byte(123)))", "'list'");
+        assertEvalFastR("class(c(.fastr.interop.asByte(123)))", "'interopt.byte'");
+        assertEvalFastR("class(c(.fastr.interop.asByte(123), .fastr.interop.asByte(234)))", "'list'");
+        assertEvalFastR("class(c(.fastr.interop.asByte(123), 1))", "'list'");
+        assertEvalFastR("class(c(1, .fastr.interop.asByte(123)))", "'list'");
     }
 
     @Test
     public void testCombineForeignObjects() throws IllegalArgumentException {
 
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " class(c(to))", "'list'");
-        assertEvalFastR("tc <- new.java.class('" + TEST_CLASS + "'); t <- new.external(tc); t1 <- new.external(tc); class(c(t, t1))", "'list'");
+        assertEvalFastR("tc <- java.type('" + TEST_CLASS + "'); t <- .fastr.interop.new(tc); t1 <- .fastr.interop.new(tc); class(c(t, t1))", "'list'");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " class(c(1, t))", "'list'");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " class(c(t, 1))", "'list'");
 
@@ -393,7 +386,7 @@ public class TestJavaInterop extends TestBase {
             }
         }
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " to$mixedTypesArray",
-                        "cat('[external object]\n[[1]]\n[1] 1\n\n[[2]]\n[1] 2.1\n\n[[3]]\n[1] \"a\"\n\n[[4]]\n[1] TRUE\n\n[[5]]\nNULL\n\n', sep='')");
+                        "cat('[polyglot value]\n[[1]]\n[1] 1\n\n[[2]]\n[1] 2.1\n\n[[3]]\n[1] \"a\"\n\n[[4]]\n[1] TRUE\n\n[[5]]\nNULL\n\n', sep='')");
     }
 
     @Test
@@ -417,7 +410,7 @@ public class TestJavaInterop extends TestBase {
     @Test
     public void testAllTypes() {
         getValueForAllTypesMethod("allTypesMethod");
-        // getValueForAllTypesMethod("allTypesStaticMethod");
+        getValueForAllTypesMethod("allTypesStaticMethod");
     }
 
     @Test
@@ -428,7 +421,7 @@ public class TestJavaInterop extends TestBase {
     @Test
     public void testClassAsParameter() {
         // fails in testdownstream
-        assertEvalFastR(Ignored.ImplementationError, CREATE_TRUFFLE_OBJECT + " to$classAsArg(new.java.class(" + TEST_CLASS + "))", getRValue(TEST_CLASS));
+        assertEvalFastR(Ignored.ImplementationError, CREATE_TRUFFLE_OBJECT + " to$classAsArg(java.type(" + TEST_CLASS + "))", getRValue(TEST_CLASS));
     }
 
     private void getValueForAllTypesMethod(String method) {
@@ -445,20 +438,20 @@ public class TestJavaInterop extends TestBase {
         sb.append(method);
         sb.append("(");
         sb.append(getRValue(bo));
-        sb.append(", as.external.byte(");
+        sb.append(", .fastr.interop.asByte(");
         sb.append(getRValue(bt));
-        sb.append("), as.external.char(");
+        sb.append("), .fastr.interop.asChar(");
         sb.append(getRValue(c));
-        sb.append("), as.external.short(");
+        sb.append("), .fastr.interop.asShort(");
         sb.append(getRValue(sh));
         sb.append("), ");
         sb.append(getRValue(i));
         sb.append("L, ");
-        sb.append(" as.external.long(");
+        sb.append(" .fastr.interop.asLong(");
         sb.append(getRValue(l));
         sb.append("), ");
         sb.append(getRValue(d));
-        sb.append(", as.external.float(");
+        sb.append(", .fastr.interop.asFloat(");
         sb.append(getRValue(f));
         sb.append("), ");
         sb.append(getRValue(s));
@@ -478,33 +471,33 @@ public class TestJavaInterop extends TestBase {
     @Ignore("FIXME: overloads resolution is not working")
     public void testOverloaded() {
         String className = TestOverload.class.getName();
-        String createClass = "toc <- new.java.class('" + className + "'); ";
+        String createClass = "toc <- java.type('" + className + "'); ";
 
         assertEvalFastR(createClass + " toc$isOverloaded(TRUE)", "'boolean'");
-        assertEvalFastR(createClass + " toc$isOverloaded(as.external.byte(1))", "'byte'");
-        assertEvalFastR(createClass + " toc$isOverloaded(as.external.char('a'))", "'char'");
+        assertEvalFastR(createClass + " toc$isOverloaded(.fastr.interop.asByte(1))", "'byte'");
+        assertEvalFastR(createClass + " toc$isOverloaded(.fastr.interop.asChar('a'))", "'char'");
         assertEvalFastR(createClass + " toc$isOverloaded(1)", "'double'");
-        assertEvalFastR(createClass + " toc$isOverloaded(as.external.float(1))", "'float'");
+        assertEvalFastR(createClass + " toc$isOverloaded(.fastr.interop.asFloat(1))", "'float'");
         assertEvalFastR(createClass + " toc$isOverloaded(1L)", "'int'");
-        assertEvalFastR(createClass + " toc$isOverloaded(as.external.long(1))", "'long'");
-        assertEvalFastR(createClass + " toc$isOverloaded(as.external.short(1))", "'short'");
+        assertEvalFastR(createClass + " toc$isOverloaded(.fastr.interop.asLong(1))", "'long'");
+        assertEvalFastR(createClass + " toc$isOverloaded(.fastr.interop.asShort(1))", "'short'");
         assertEvalFastR(createClass + " toc$isOverloaded('string')", getRValue(String.class.getName()));
 
         assertEvalFastR("new('" + className + "', TRUE)$type", "'boolean'");
-        assertEvalFastR("new('" + className + "', as.external.byte(1))$type", "'byte'");
-        assertEvalFastR("new('" + className + "', as.external.char('a'))$type", "'char'");
+        assertEvalFastR("new('" + className + "', .fastr.interop.asByte(1))$type", "'byte'");
+        assertEvalFastR("new('" + className + "', .fastr.interop.asChar('a'))$type", "'char'");
         assertEvalFastR("new('" + className + "', 1)$type", "'double'");
-        assertEvalFastR("new('" + className + "', as.external.float(1))$type", "'float'");
+        assertEvalFastR("new('" + className + "', .fastr.interop.asFloat(1))$type", "'float'");
         assertEvalFastR("new('" + className + "', 1L)$type", "'int'");
-        assertEvalFastR("new('" + className + "', as.external.long(1))$type", "'long'");
-        assertEvalFastR("new('" + className + "', as.external.short(1))$type", "'short'");
+        assertEvalFastR("new('" + className + "', .fastr.interop.asLong(1))$type", "'long'");
+        assertEvalFastR("new('" + className + "', .fastr.interop.asShort(1))$type", "'short'");
         assertEvalFastR("new('" + className + "', 'string')$type", getRValue(String.class.getName()));
     }
 
     @Test
     public void testArrayReadWrite() {
-        assertEvalFastR("a <- as.java.array(c(1,2,3)); a[1]", "1");
-        assertEvalFastR("a <- as.java.array(c(1,2,3)); a[[1]]", "1");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1,2,3)); a[1]", "1");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1,2,3)); a[[1]]", "1");
 
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " to$fieldIntegerArray[1];", "1");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " to$fieldIntegerArray[[1]];", "1");
@@ -514,8 +507,8 @@ public class TestJavaInterop extends TestBase {
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " to$int2DimArray[1,2]", "2");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " to$int2DimArray[[1,2]]", "2");
 
-        assertEvalFastR("a <- as.java.array(c(1,2,3)); a[1] <- 123; a[1]", "123");
-        assertEvalFastR("a <- as.java.array(c(1,2,3)); a[[1]] <- 123; a[[1]]", "123");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1,2,3)); a[1] <- 123; a[1]", "123");
+        assertEvalFastR("a <- .fastr.interop.asJavaArray(c(1,2,3)); a[[1]] <- 123; a[[1]]", "123");
 
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " to$fieldIntegerArray[1] <- 123L; to$fieldIntegerArray[1]", "123");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " to$fieldIntegerArray[[1]] <- 1234L; to$fieldIntegerArray[[1]]", "1234");
@@ -556,30 +549,18 @@ public class TestJavaInterop extends TestBase {
 
     @Test
     public void testNamesForForeignObject() {
-        // assertEvalFastR("tc <- new.java.class('" + TestNamesClassNoMembers.class.getName() + "');
-        // t <- new.external(tc); names(t)", "NULL");
-        // assertEvalFastR("tc <- new.java.class('" + TestNamesClassNoPublicMembers.class.getName()
-        // + "'); t <- new.external(tc); names(t)", "NULL");
-        assertEvalFastR("tc <- new.java.class('" + TestNamesClass.class.getName() + "'); c('staticField', 'staticMethod') %in% names(tc)", "c(TRUE, TRUE)");
-        assertEvalFastR("tc <- new.java.class('" + TestNamesClass.class.getName() + "'); names(tc$staticField)", "NULL");
-        assertEvalFastR("tc <- new.java.class('" + TestNamesClass.class.getName() + "'); names(tc$staticMethod)", "NULL");
-        // assertEvalFastR("tc <- new.java.class('" + TestNamesClass.class.getName() + "'); t <-
-        // new.external(tc); sort(names(t))", "c('field', 'method', 'staticField',
-        // 'staticMethod')");
-    }
-
-    @Test
-    public void testIsExternalExecutable() {
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.external.executable(to)", "FALSE");
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.external.executable(to$methodBoolean)", "TRUE");
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.external.executable(to$fieldBoolean)", "FALSE");
+        assertEvalFastR("tc <- java.type('" + TestNamesClassNoMembers.class.getName() + "'); t <- .fastr.interop.new(tc); names(t)", "'class'");
+        assertEvalFastR("tc <- java.type('" + TestNamesClassNoPublicMembers.class.getName() + "'); t <- .fastr.interop.new(tc); names(t)", "'class'");
+        assertEvalFastR("tc <- java.type('" + TestNamesClass.class.getName() + "'); c('staticField', 'staticMethod') %in% names(tc)", "c(TRUE, TRUE)");
+        assertEvalFastR("tc <- java.type('" + TestNamesClass.class.getName() + "'); names(tc$staticField)", "NULL");
+        assertEvalFastR("tc <- java.type('" + TestNamesClass.class.getName() + "'); names(tc$staticMethod)", "NULL");
+        assertEvalFastR("tc <- java.type('" + TestNamesClass.class.getName() + "'); t <- .fastr.interop.new(tc); sort(names(t))", "c('class', 'field', 'method', 'staticField', 'staticMethod')");
     }
 
     @Test
-    public void testIsExternalNull() {
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.external.null(to)", "FALSE");
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.external.null(to$methodReturnsNull)", "FALSE");
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.external.null(to$methodReturnsNull())", "TRUE");
+    public void testReturnsNull() {
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.null(to$methodReturnsNull())", "TRUE");
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "is.null(to$fieldNullObject)", "TRUE");
     }
 
     @Test
@@ -629,9 +610,9 @@ public class TestJavaInterop extends TestBase {
         assertPassingForeighObjectToFunction("is.unsorted", "FALSE");
         assertPassingForeighObjectToFunction("is.vector", "FALSE");
 
-        assertPassingForeighObjectToFunction("is.nan", errorIn("is.nan(to)", "default method not implemented for type 'external object'"));
-        assertPassingForeighObjectToFunction("is.finite", errorIn("is.finite(to)", "default method not implemented for type 'external object'"));
-        assertPassingForeighObjectToFunction("is.infinite", errorIn("is.infinite(to)", "default method not implemented for type 'external object'"));
+        assertPassingForeighObjectToFunction("is.nan", errorIn("is.nan(to)", "default method not implemented for type 'polyglot.value'"));
+        assertPassingForeighObjectToFunction("is.finite", errorIn("is.finite(to)", "default method not implemented for type 'polyglot.value'"));
+        assertPassingForeighObjectToFunction("is.infinite", errorIn("is.infinite(to)", "default method not implemented for type 'polyglot.value'"));
 
     }
 
@@ -650,18 +631,18 @@ public class TestJavaInterop extends TestBase {
     @Test
     public void testAttributes() {
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " attributes(to)", "NULL");
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + " attr(to, 'a')<-'a'", errorIn("attr(to, \"a\") <- \"a\"", "external object cannot be attributed"));
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + " attr(to, which = 'a')", errorIn("attr(to, which = \"a\")", "external object cannot be attributed"));
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + " attr(to, 'a')<-'a'", errorIn("attr(to, \"a\") <- \"a\"", "polyglot value cannot be attributed"));
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + " attr(to, which = 'a')", errorIn("attr(to, which = \"a\")", "polyglot value cannot be attributed"));
     }
 
     @Test
     public void testIdentical() {
-        assertEvalFastR("b1 <- as.external.byte(1); identical(b1, b1)", "TRUE");
-        assertEvalFastR("b1 <- as.external.byte(1); b2 <- as.external.byte(1); identical(b1, b2)", "FALSE");
-        assertEvalFastR("b1 <- as.external.byte(1); s1 <- as.external.short(1); identical(b1, s1)", "FALSE");
+        assertEvalFastR("b1 <- .fastr.interop.asByte(1); identical(b1, b1)", "TRUE");
+        assertEvalFastR("b1 <- .fastr.interop.asByte(1); b2 <- .fastr.interop.asByte(1); identical(b1, b2)", "FALSE");
+        assertEvalFastR("b1 <- .fastr.interop.asByte(1); s1 <- .fastr.interop.asShort(1); identical(b1, s1)", "FALSE");
 
-        assertEvalFastR("al <- new.external(new.java.class('java.util.ArrayList')); identical(t, t)", "TRUE");
-        assertEvalFastR("ll <- new.external(new.java.class('java.util.LinkedList')); al <- new.external(new.java.class('java.util.ArrayList')); identical(al, ll)", "FALSE");
+        assertEvalFastR("al <- .fastr.interop.new(java.type('java.util.ArrayList')); identical(t, t)", "TRUE");
+        assertEvalFastR("ll <- .fastr.interop.new(java.type('java.util.LinkedList')); al <- .fastr.interop.new(java.type('java.util.ArrayList')); identical(al, ll)", "FALSE");
     }
 
     @Test
@@ -688,7 +669,7 @@ public class TestJavaInterop extends TestBase {
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " l<-as.list(to$arrayObject); length(l)", "4");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + " l<-as.list(to$arrayObject); l[[4]]$data", "NULL");
 
-        assertEvalFastR(Output.IgnoreErrorContext, CREATE_TRUFFLE_OBJECT + " l<-as.list(to);", errorIn("as.list(to)", "no method for coercing this external object to a list"));
+        assertEvalFastR(Output.IgnoreErrorContext, CREATE_TRUFFLE_OBJECT + " l<-as.list(to);", errorIn("as.list(to)", "no method for coercing this polyglot value to a list"));
     }
 
     private static final String CREATE_TEST_ARRAYS = "ta <- new('" + TestArraysClass.class.getName() + "');";
@@ -840,7 +821,7 @@ public class TestJavaInterop extends TestBase {
         assertEvalFastR(CREATE_TEST_ARRAYS + " class(unlist(list(" + mixWithVector + ", ta$" + field + "Array2, ta$" + field + "List2)))", "'" + clazz + "'");
         assertEvalFastR(CREATE_TEST_ARRAYS + " unlist(list(" + mixWithVector + ", ta$" + field + "Array2, ta$" + field + "List2), recursive=FALSE)",
                         "cat(" + resultInList +
-                                        "'[[4]]','\n','[external object]','\n\n','[[5]]','\n','[external object]','\n\n','[[6]]','\n','[external object]','\n\n','[[7]]','\n','[external object]','\n\n', sep='')");
+                                        "'[[4]]','\n','[polyglot value]','\n\n','[[5]]','\n','[polyglot value]','\n\n','[[6]]','\n','[polyglot value]','\n\n','[[7]]','\n','[polyglot value]','\n\n', sep='')");
 
         ra = testFieldArrayResult.split(",");
         sb = new StringBuilder();
@@ -857,7 +838,7 @@ public class TestJavaInterop extends TestBase {
         assertEvalFastR(CREATE_TEST_ARRAYS + " class(unlist(list(" + mixWithVector + ", ta$" + field + "Array3, ta$" + field + "List3)))", "'" + clazz + "'");
         assertEvalFastR(CREATE_TEST_ARRAYS + " unlist(list(" + mixWithVector + ", ta$" + field + "Array3, ta$" + field + "List3), recursive=FALSE)",
                         "cat(" + resultInList +
-                                        "'[[4]]','\n','[external object]','\n\n','[[5]]','\n','[external object]','\n\n','[[6]]','\n','[external object]','\n\n','[[7]]','\n','[external object]','\n\n', sep='')");
+                                        "'[[4]]','\n','[polyglot value]','\n\n','[[5]]','\n','[polyglot value]','\n\n','[[6]]','\n','[polyglot value]','\n\n','[[7]]','\n','[polyglot value]','\n\n', sep='')");
     }
 
     private static String getTestFieldValuesAsResult(String name) throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
@@ -983,34 +964,32 @@ public class TestJavaInterop extends TestBase {
     public void testAsXXX(String asXXX, String type) throws IllegalArgumentException, IllegalAccessException {
         TestClass t = new TestClass();
 
-        // Field[] fields = t.getClass().getDeclaredFields();
-        // for (Field f : fields) {
-        // String name = f.getName();
-        // String expr = CREATE_TRUFFLE_OBJECT + asXXX + "(to$" + name + ")";
-        // // test for each primitive wrapper object and string
-        // if (name.startsWith("fieldStatic") && name.endsWith("Object")) {
-        // if (asXXX.equals("as.character") && name.contains("Long")) {
-        // assertEvalFastR(Ignored.ImplementationError, expr, getAsXXX(f.get(t), asXXX));
-        // } else if (!(asXXX.equals("as.character") || asXXX.equals("as.expression") ||
-        // asXXX.equals("as.logical") || asXXX.equals("as.symbol") || asXXX.equals("as.vector")) &&
-        // (name.contains("String") || name.contains("Char"))) {
-        // assertEvalFastR(Output.IgnoreWarningMessage, expr, getAsXXX(f.get(t), asXXX));
-        // } else if (asXXX.equals("as.expression") && (name.contains("Long") ||
-        // name.contains("Double"))) {
-        // assertEvalFastR(Ignored.ImplementationError, expr, getAsXXX(f.get(t), asXXX));
-        // } else if (asXXX.equals("as.raw") && (name.contains("Short") || name.contains("Integer")
-        // || name.contains("Long") || name.contains("Double") || name.contains("NaN"))) {
-        // assertEvalFastR(Output.IgnoreWarningMessage, expr, getAsXXX(f.get(t), asXXX));
-        // } else if (asXXX.equals("as.symbol") && (name.contains("Long") || name.contains("Double")
-        // || name.contains("Float"))) {
-        // assertEvalFastR(Ignored.ImplementationError, expr, getAsXXX(f.get(t), asXXX));
-        // } else if (asXXX.equals("as.symbol") && (name.contains("Null"))) {
-        // assertEvalFastR(Output.IgnoreErrorContext, expr, getAsXXX(f.get(t), asXXX));
-        // } else {
-        // assertEvalFastR(expr, getAsXXX(f.get(t), asXXX));
-        // }
-        // }
-        // }
+        Field[] fields = t.getClass().getDeclaredFields();
+        for (Field f : fields) {
+            String name = f.getName();
+            String expr = CREATE_TRUFFLE_OBJECT + asXXX + "(to$" + name + ")";
+            // test for each primitive wrapper object and string
+            if (name.startsWith("fieldStatic") && name.endsWith("Object")) {
+                if (asXXX.equals("as.character") && name.contains("Long")) {
+                    assertEvalFastR(Ignored.ImplementationError, expr, getAsXXX(f.get(t), asXXX));
+                } else if (!(asXXX.equals("as.character") || asXXX.equals("as.expression") ||
+                                asXXX.equals("as.logical") || asXXX.equals("as.symbol") || asXXX.equals("as.vector")) &&
+                                (name.contains("String") || name.contains("Char"))) {
+                    assertEvalFastR(Output.IgnoreWarningMessage, expr, getAsXXX(f.get(t), asXXX));
+                } else if (asXXX.equals("as.expression") && (name.contains("Long") ||
+                                name.contains("Double"))) {
+                    assertEvalFastR(Ignored.ImplementationError, expr, getAsXXX(f.get(t), asXXX));
+                } else if (asXXX.equals("as.raw") && (name.contains("Short") || name.contains("Integer") || name.contains("Long") || name.contains("Double") || name.contains("NaN"))) {
+                    assertEvalFastR(Output.IgnoreWarningMessage, expr, getAsXXX(f.get(t), asXXX));
+                } else if (asXXX.equals("as.symbol") && (name.contains("Long") || name.contains("Double") || name.contains("Float"))) {
+                    assertEvalFastR(Ignored.ImplementationError, expr, getAsXXX(f.get(t), asXXX));
+                } else if (asXXX.equals("as.symbol") && (name.contains("Null"))) {
+                    assertEvalFastR(Output.IgnoreErrorContext, expr, getAsXXX(f.get(t), asXXX));
+                } else {
+                    assertEvalFastR(expr, getAsXXX(f.get(t), asXXX));
+                }
+            }
+        }
 
         // test arrays
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + asXXX + "(to$fieldBooleanArray);", toRVector(t.fieldBooleanArray, asXXX));
@@ -1073,11 +1052,11 @@ public class TestJavaInterop extends TestBase {
         }
 
         if (asXXX.equals("as.expression")) {
-            assertEvalFastR(Output.IgnoreErrorContext, CREATE_TRUFFLE_OBJECT + asXXX + "(to);", errorIn(asXXX + "(to)", "no method for coercing this external object to a vector"));
+            assertEvalFastR(Output.IgnoreErrorContext, CREATE_TRUFFLE_OBJECT + asXXX + "(to);", errorIn(asXXX + "(to)", "no method for coercing this polyglot value to a vector"));
         } else if (asXXX.equals("as.raw") || asXXX.equals("as.complex")) {
             assertEvalFastR(CREATE_TRUFFLE_OBJECT + asXXX + "(to);", errorIn(asXXX + "(to)", "cannot coerce type 'truffleobject' to vector of type '" + type + "'"));
         } else {
-            assertEvalFastR(CREATE_TRUFFLE_OBJECT + asXXX + "(to);", errorIn(asXXX + "(to)", "no method for coercing this external object to a vector"));
+            assertEvalFastR(CREATE_TRUFFLE_OBJECT + asXXX + "(to);", errorIn(asXXX + "(to)", "no method for coercing this polyglot value to a vector"));
         }
     }
 
@@ -1133,7 +1112,7 @@ public class TestJavaInterop extends TestBase {
 
     @Test
     public void testElseIf() throws IllegalArgumentException {
-        assertEvalFastR(CREATE_TEST_ARRAYS + " ifelse(ta)", errorIn("as.logical(test)", "no method for coercing this external object to a vector"));
+        assertEvalFastR(CREATE_TEST_ARRAYS + " ifelse(ta)", errorIn("as.logical(test)", "no method for coercing this polyglot value to a vector"));
         assertEvalFastR(CREATE_TEST_ARRAYS + " ifelse(ta$booleanArray, 1, 2)", "c(1,2,1)");
         assertEvalFastR(CREATE_TEST_ARRAYS + " ifelse(ta$integerArray, 1, 2)", "c(1,1,1)");
         assertEvalFastR(CREATE_TEST_ARRAYS + " ifelse(ta$stringArray, 1, 2)", "c(NA, NA, NA)");
@@ -1416,7 +1395,7 @@ public class TestJavaInterop extends TestBase {
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + "range(to$listStringInt)", "c('1', '3')");
         assertEvalFastR(CREATE_TRUFFLE_OBJECT + "range(to$listChar)", "c('a', 'c')");
 
-        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "range(to)", errorIn("range(to)", "invalid 'type' (external object) of argument"));
+        assertEvalFastR(CREATE_TRUFFLE_OBJECT + "range(to)", errorIn("range(to)", "invalid 'type' (polyglot.value) of argument"));
     }
 
     private static final String CREATE_EXCEPTIONS_TO = "to <- new('" + TestExceptionsClass.class.getName() + "');";
@@ -1424,27 +1403,21 @@ public class TestJavaInterop extends TestBase {
     @Test
     public void testException() {
         assertEvalFastR("to <- new('" + TestExceptionsClass.class.getName() + "', 'java.io.IOException');",
-                        errorIn("new.external(Class, ...)", "Foreign function failed: java.io.IOException"));
+                        errorIn(".fastr.interop.new(Class, ...)", "Foreign function failed: java.io.IOException"));
         assertEvalFastR("to <- new('" + TestExceptionsClass.class.getName() + "', 'java.io.IOException', 'msg');",
-                        errorIn("new.external(Class, ...)", "Foreign function failed: java.io.IOException: msg"));
+                        errorIn(".fastr.interop.new(Class, ...)", "Foreign function failed: java.io.IOException: msg"));
         assertEvalFastR("to <- new('" + TestExceptionsClass.class.getName() + "', 'java.lang.RuntimeException');",
-                        errorIn("new.external(Class, ...)", "Foreign function failed: java.lang.RuntimeException"));
+                        errorIn(".fastr.interop.new(Class, ...)", "Foreign function failed: java.lang.RuntimeException"));
         assertEvalFastR("to <- new('" + TestExceptionsClass.class.getName() + "', 'java.lang.RuntimeException', 'msg');",
-                        errorIn("new.external(Class, ...)", "Foreign function failed: java.lang.RuntimeException: msg"));
-
-        // assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.io.IOException')",
-        // errorIn("to$exception(\"java.io.IOException\")", "Foreign function failed:
-        // java.io.IOException"));
-        // assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.io.IOException', 'msg')",
-        // errorIn("to$exception(\"java.io.IOException\", \"msg\")", "Foreign function failed:
-        // java.io.IOException: msg"));
-        // assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.lang.RuntimeException')",
-        // errorIn("to$exception(\"java.lang.RuntimeException\")", "Foreign function failed:
-        // java.lang.RuntimeException"));
-        // assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.lang.RuntimeException',
-        // 'msg')",
-        // errorIn("to$exception(\"java.lang.RuntimeException\", \"msg\")", "Foreign function
-        // failed: java.lang.RuntimeException: msg"));
+                        errorIn(".fastr.interop.new(Class, ...)", "Foreign function failed: java.lang.RuntimeException: msg"));
+
+        assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.io.IOException')", errorIn("to$exception(\"java.io.IOException\")", "Foreign function failed: java.io.IOException"));
+        assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.io.IOException', 'msg')",
+                        errorIn("to$exception(\"java.io.IOException\", \"msg\")", "Foreign function failed: java.io.IOException: msg"));
+        assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.lang.RuntimeException')",
+                        errorIn("to$exception(\"java.lang.RuntimeException\")", "Foreign function failed: java.lang.RuntimeException"));
+        assertEvalFastR(CREATE_EXCEPTIONS_TO + "to$exception('java.lang.RuntimeException', 'msg')",
+                        errorIn("to$exception(\"java.lang.RuntimeException\", \"msg\")", "Foreign function failed: java.lang.RuntimeException: msg"));
     }
 
     private String getRValue(Object value) {
@@ -1470,7 +1443,7 @@ public class TestJavaInterop extends TestBase {
         }
         if (value.getClass().isArray()) {
             StringBuilder sb = new StringBuilder();
-            sb.append("cat('[external object]\\n[1] ");
+            sb.append("cat('[polyglot value]\\n[1] ");
             int length = Array.getLength(value);
             for (int i = 0; i < length; i++) {
                 if (length > 1) {
@@ -1487,7 +1460,7 @@ public class TestJavaInterop extends TestBase {
         }
         if (value instanceof TestPOJO) {
             StringBuilder sb = new StringBuilder();
-            sb.append("[external object]\n$data\n[1] \"").append(((TestPOJO) value).data).append("\"\n\n$toString\n[external object]\n\n$getData\n[external object]\n\n");
+            sb.append("[polyglot value]\n$data\n[1] \"").append(((TestPOJO) value).data).append("\"\n\n$toString\n[polyglot value]\n\n$getData\n[polyglot value]\n\n");
             return String.format("cat('%s')", sb.toString());
         }
         return value.toString();
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/utils/TestHelp.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/utils/TestHelp.java
index aa0e530f8d834d95c8ece1ba4a57587c7c98aff1..1c58782ea3502a5cf2c2b42793e0514f49c11e83 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/utils/TestHelp.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/utils/TestHelp.java
@@ -32,9 +32,11 @@ import com.oracle.truffle.r.test.TestBase;
 public class TestHelp extends TestBase {
     @Test
     public void testInteropHelp() {
-        assertHelpResult(fastREval("?as.external.byte", ContextKind.SHARE_PARENT_RW, false), "==== R Help on ‘as.external.byte’ ====", "converted to a byte", "byteClass$valueOf(javaByte)");
-        assertHelpResult(fastREval("help(as.external.byte)", ContextKind.SHARE_PARENT_RW, false), "==== R Help on ‘as.external.byte’ ====", "converted to a byte", "byteClass$valueOf(javaByte)");
-        assertHelpResult(fastREval("example(as.external.byte)", ContextKind.SHARE_PARENT_RW, false), null, "byteClass$valueOf(javaByte)", "[1] 123");
+        assertHelpResult(fastREval("?java.type", ContextKind.SHARE_PARENT_RW, false), "==== R Help on ‘java.type’ ====", "Access to a java type given by",
+                        "An polyglot value representing a java type");
+        assertHelpResult(fastREval("help(java.type)", ContextKind.SHARE_PARENT_RW, false), "==== R Help on ‘java.type’ ====", "Access to a java type given by",
+                        "An polyglot value representing a java type");
+        assertHelpResult(fastREval("example(java.type)", ContextKind.SHARE_PARENT_RW, false), null, "java.type('java.util.ArrayList')", "$class");
     }
 
     @Test
diff --git a/documentation/tutorials/debugging/InteropDebugging/R/main.r b/documentation/tutorials/debugging/InteropDebugging/R/main.r
index 364d8ae762e9b7a01257f32a7cdd844d914daadb..f075d2b15bedbf6faca50585b0354baf0781cd2a 100644
--- a/documentation/tutorials/debugging/InteropDebugging/R/main.r
+++ b/documentation/tutorials/debugging/InteropDebugging/R/main.r
@@ -24,16 +24,16 @@
 print("Hello, World! (from file)")
 print("Creating a Java object in FastR")
 
-clazz <- new.java.class("java.util.Date")
-obj <- new.external(clazz, as.external.long(as.integer(Sys.time())*1000))
+clazz <- java.type("java.util.Date")
+obj <- new(clazz, as.integer(Sys.time())*1000)
 print(obj$toString())
 
 # add classpath entry to be able to use our class
 java.addToClasspath("build/classes")
-clazz <- new.java.class("com.oracle.truffle.r.JavaMessage")
-obj <- new.external(clazz, "Hi there")
+clazz <- java.type("com.oracle.truffle.r.JavaMessage")
+obj <- new(clazz, "Hi there")
 print(obj$getMessage())
 
-eval.external('js', source='var s = "Hello from Javascript"; print(s)')
-eval.external('js', path="JS/main.js")
+eval.polyglot('js', source='var s = "Hello from Javascript"; print(s)')
+eval.polyglot('js', path="JS/main.js")
 
diff --git a/documentation/tutorials/interop/javaInteroperability.md b/documentation/tutorials/interop/javaInteroperability.md
index 4cbd543c431a3ddea9e796af49324c115dc66421..ac8786a753c9f5bb1a869f50f4617561d538921e 100644
--- a/documentation/tutorials/interop/javaInteroperability.md
+++ b/documentation/tutorials/interop/javaInteroperability.md
@@ -7,6 +7,10 @@ All following examples are meant to be executed in the R Console, no additional
 # Setup
 * download and unzip GraalVM/FastR. The bin directory contains the R and Rscript commands.
 * or build from the [FastR Github repository](https://github.com/graalvm/fastr)
+* in order to run FastR with Java interoperability features the R and Rscript commands have to be executed with the --jvm switch.
+```
+$bin/R --jvm
+```
 * to access third party java libraries, they have to be placed on FastR class path
 ```
 > java.addToClasspath("/foo/bar.jar")
@@ -14,29 +18,38 @@ All following examples are meant to be executed in the R Console, no additional
 ```
 
 # Working with Java Classes and Objects
-## Create a Java Class
-By providing the fully qualified class name to the `new.java.class` function. 
+## Get a Java Class
+Access to a java type is done by providing the fully qualified class name to the `java.type` function. 
 ```
-> calendarClass <- new.java.class('java.util.GregorianCalendar')
+> calendarClass <- java.type('java.util.GregorianCalendar')
 ```
+The returned value is a polyglot object representing a Java type.
 
-(Every requested class has to be on FastR`s classpath. Java JDK classes, like GregorianCalendar used above, work out of the box.)
+the respective java class is then available through the `class` property.
+```
+> calendarClass$class
+```
+
+the same works also for static class members
+```
+> calendarClass$getInstance()
+```
 
-The returned value is an external object representing a Java Class.
+(Every requested class has to be on FastR`s classpath. Java JDK classes, like GregorianCalendar used above, work out of the box.)
 
 ## Create a new Java Object
-By providing an external object representig a Java class to the `new.external` function.
+By providing a java type to the `new` function.
 ```
-> calendar <- new.external(calendarClass)
+> calendar <- new(calendarClass)
 ```
 
-In addition to the class it is also possible to pass over additional constructor arguments.
+It is also possible to pass over additional constructor arguments.
 
 ```
-> calendar <- new.external(calendarClass, year=2042L, moth=3L, day=1L)
+> calendar <- new(calendarClass, year=2042L, moth=3L, day=1L)
 ```
 
-And apart from the interop builtins, the `new` function can be used as well.
+Using just the class name works as well.
 
 ```
 calendar <- new("java.util.GregorianCalendar")
@@ -58,38 +71,20 @@ Access to static and instance fields and methods is provided by the `$` and `[`
 > calendar$setTime(currentTime)
 ```
 
-External objects returned from a field, method or created via `new` or `new.external` are either automatically converted into according R values or they live on as external objects in the FastR environment. If necessary, they can be passed over to java.
+Polyglot objects returned from a field, method or created via `new` are either automatically converted into according R values or they live on as polyglot objects in the FastR environment. If necessary, they can be passed over to java.
 
 ```
-> cet <- new.java.class("java.util.TimeZone")$getTimeZone("CET")
-> cetCalendar <- new.external(calendarClass, cet)
+> cet <- java.type("java.util.TimeZone")$getTimeZone("CET")
+> cetCalendar <- new(calendarClass, cet)
 ```
 
 ### Handling of Java primitives
 Returned java primitives, primitive wrappers and String instances are automatically converted into according R values. 
 
-### Passing Java specific primitives as arguments
-R does not have primitives as e.g. java float or byte. As a result there are cases when it is necessary to designate a value passed over to Java to be converted into such a primitive type. 
+R `integer` values map directly to Java `int`/`Integer`, R `numeric` to Java `double`/`Double`, R `logical` to Java `boolean`/`Boolean` and R `character` to Java `String`. If necessary R `integer` and `double` are converted to the expected Java type.
 
-```
-> byteClass <- new.java.class('java.lang.Byte')
-> new.external(byteClass, as.external.byte(1))
-```
-
-also 
-
-```
-> interopByte <- as.external.byte(1)
-> interopChar <- as.external.char("a")
-> interopFloat <- as.external.float(1.1)
-> interopLong <- as.external.long(1)
-> interopShort <- as.external.short(1)
-```
-
-R `integer` values map directly to Java `int`/`Integer`, R `numeric` to Java `double`/`Double`, R `logical` to Java `boolean`/`Boolean` and R `character` to Java `String`.
-
-### Inspecting external objects
-The `names` function can be used to obtain a list of instance and static members from an external Java Object or Java Class.
+### Inspecting polyglot objects
+The `names` function can be used to obtain a list of instance and static members from an polyglot Java Object or Java Class.
 ```
 > names(calendar)
 > names(calendarClass)
@@ -102,19 +97,23 @@ Code completion works as well
 ```
 
 ## Working with Java Arrays
-The need for Java Arrays apears at the latest when they have to be passed over to java as arguments. 
+The need for Java Arrays appears at the latest when they have to be passed over to java as arguments. 
 
 ### Create a Java Array 
-By providing the component type and the array length or dimensions to the `new.java.array` function.
+By creating an array class and instantiating an array from it.
 ```
-> intArray <- new.java.array('int', 3)
+> arrayClass <- java.type('int[]')
+> intArray <- new(arrayClass, 3)
 ```
 
 The component type names of primitive arrays are `boolean`, `byte`, `char`, `double`, `float`, `int`, `long` and `short`. (The same as in each particular primitive wrapper TYPE constant - see e.g. Integer.TYPE.getName().)
+Note that it is possible to pass a R vector into a Java method in case the expected java array is of a primitive component type or String. The conversion happens then automatically on the background.
+
 ```
-> integerArray <- new.java.array('java.lang.Integer', 3)
-> stringArray <- new.java.array('java.lang.String', 3)
-> string2DimArray <- new.java.array('java.lang.String', c(2, 3))
+> integerArray <- new(java.type('java.lang.Integer[]'), 3L)
+> integer2DimArray <- new('java.lang.Integer[][]', c(2L, 3L))
+> stringArray <- new(java.type('java.lang.String[]'), 3L)
+
 ```
 
 ### Accessing array elements
@@ -126,18 +125,6 @@ Access to array elements is provided by the `[` operator
 > element <- string2DimArray[1,1]
 ```
 
-### Converting R objects to Java Arrays
-Another way to create java arrays is to convert a vector or a list .
-```
-> intArray <- as.java.array(list(0L, 1L, 2L, 3L))
-> intArray <- as.java.array(c(0L, 1L, 2L, 3L))
-```
-
-The resulting array component type is either automatically given by the according R type. Otherwise it has to be explicitly specified.
-```
-> as.java.array(c(1L,2L,3L), 'double')
-```
-
 ### Converting Java Arrays to R objects 
 Unlike Java primitives or their wrappers, java arrays aren't on access automatically converted into a R vector. Nevertheless, when appropriate they can be handled by FastR builtin functions the same way as native R objects.
 ```
@@ -152,7 +139,7 @@ By providing a Java Array to the `as.vector` function.
 > intVec <- as.vector(intArray)
 ```
 
-Arrays where the component type is a Java primitive, a primitive wrapper or String are converted into a R vector, otherwise a list containing the array elements is created.
+Arrays having a Java primitive component type are converted into a R vector, otherwise a list containing the array elements is created.
 
 See also
 ```
@@ -164,7 +151,7 @@ See also
 ### The Java Iterable Interface
 When appropriate, Java objects implementing `java.lang.Iterable` are handled in the same way like Java Arrays when passed as arguments to functions.
 ```
-> javaList <- new.external(new.java.class('java.util.ArrayList'))
+> javaList <- new(java.type('java.util.ArrayList'))
 > javaList$add(0); 
 > javaList$add(1)
 > length(javaList)
@@ -172,42 +159,12 @@ When appropriate, Java objects implementing `java.lang.Iterable` are handled in
 > as.logical(javaList)
 ```
 
-## Other useful Java Interop functions
-To determine whether an object is an external object.
-```
-> is.external(calendar)
-```
-
-To determine whether an external object is executable.
-```
-> is.external.executable(calendar$getTime)
-```
-
-To determine whether an external object represents `null`.
-```
-> is.external.null(calendar)
-```
-
-To determine whether an external object represents an array-like structure.
-```
-> is.external.array(intArray)
-```
-
-To obtain the class name from an external Java Object.
-```
-> java.class(intArray)
-```
-
 ## Compatibility with rJava 
-FastR comes with a with a rJava compatibility layer based on FastR`s Java Interoperabily features. While currently only a subset of rJava functionality is supported, the ultimate future goal is to have a flawless execution of rJava based R code.
+FastR comes with a with a rJava compatibility layer based on FastR`s Java Interoperabily features. Most of the officially documented rJava functions are supported.
 For more information see also the [rJava CRAN Page](https://cran.r-project.org/web/packages/rJava/index.html)
 
 ### Setup
-* DO NOT try to install rJava via `install.packages`. The FastR\`s rJava package has to be installed instead: `bin/r CMD INSTALL com.oracle.truffle.r.pkgs/rjava`   
-* any additional Java Libraries have to be added to FastR class path
-```
-> java.addToClasspath("/foo/bar.jar")
-```
+* DO NOT try to install rJava via `install.packages`. The FastR\`s rJava package has to be installed instead: `bin/r CMD INSTALL com.oracle.truffle.r.pkgs/rjava`
 
 * as with any other R package, before executing any rJava functions, the package has to be loaded first.
 ```
@@ -217,42 +174,17 @@ For more information see also the [rJava CRAN Page](https://cran.r-project.org/w
 ### Supported rJava features
 The `$` and `[` operators work the same as described above.
 
-The following functions are supported in at least some aspects:
+# FastR Interop Builtins
+Bellow a list of available FastR Interoperability builtins. For more information see the FastR help pages or try the examples.
 ```
-J
-.jnew
-.jcall
-.jfield
-.jarray
-.jevalArray
-.jbyte
-.jchar
-.jshort
-.jlong
-.jfloat
+> help(java.type)
+> ?java.type
+> example(java.type)
 ```
 
-# FastR Interop Builtins
-Bellow a list of available FastR Interoperability builtins. For more information see the FastR help pages.
-```
-> help(as.external.byte)
-> ?as.external.byte
->```
-
-* as.external.byte
-* as.external.char
-* as.external.float
-* as.external.long
-* as.external.short
-* as.java.array
-* is.external
-* is.external.array
-* is.external.executable
-* is.external.null
-* java.class
-* new.external
-* new.java.array
-* new.java.class
-* external.eval
+* java.type
+* java.addToClasspath
+* is.polyglot.value
+* eval.polyglot
 * export
 * import
\ No newline at end of file
diff --git a/mx.fastr/suite.py b/mx.fastr/suite.py
index 3d7ca02b4b00d7c08a2ce76cafbfbc1b28b5dd72..97a6ac9d3497e942d753e272aac1f56708c32b41 100644
--- a/mx.fastr/suite.py
+++ b/mx.fastr/suite.py
@@ -7,7 +7,7 @@ suite = {
             {
                "name" : "truffle",
                "subdir" : True,
-               "version" : "3760adf8d12c471782649e2fc2430f7647a0eda1",
+               "version" : "0d89b3194d269f28dc6498d808fa38df7850f1fe",
                "urls" : [
                     {"url" : "https://github.com/graalvm/graal", "kind" : "git"},
                     {"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"},
@@ -83,7 +83,6 @@ suite = {
         "version" : "1.6",
       },
     },
-
   },
 
   "projects" : {