diff --git a/ci.hocon b/ci.hocon
index 780cb5503c0e269c79454d60646b3a993edb2045..e83063bb4e3f0a7aa7f282d8869580bea25f11b9 100644
--- a/ci.hocon
+++ b/ci.hocon
@@ -39,7 +39,7 @@ logfiles : [
     "com.oracle.truffle.r.native/gnur/tests/log/all.diff"
     "com.oracle.truffle.r.test.native/embedded/*.output"
     "com.oracle.truffle.r.test.native/embedded/src/*.output"
-    "*-tests/*.Rout"
+    "*-tests/**/*.Rout"
   ]
 
 # This is needed by all (Linux) builds but is specific to the module system employed
@@ -88,7 +88,7 @@ common : ${java8Downloads} ${packagesLinux}  {
 # the "mx" tool. This defines a common prefix for all gate commands. The "-t"
 # arg indicates the exact set of gate "tasks" that will be run.
 
-gateCmd : ["mx", "--strict-compliance", "rgate", "--strict-mode", "-t"]
+gateCmd : ["mx", "--strict-compliance", "rgate", "-B=--force-deprecation-as-warning", "--strict-mode", "-t"]
 
 # currently disabled gate commands: FindBugs,Checkheaders,Distribution Overlap Check
 
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 8bfbe34c6cad6cb7fdc336d9096ea8256a675d21..86a08332003f12f1cfdd3aebc4f9ca78e44050b8 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
@@ -38,6 +38,7 @@ import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
 import com.oracle.truffle.api.RootCallTarget;
 import com.oracle.truffle.api.Truffle;
+import com.oracle.truffle.api.TruffleLanguage;
 import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
 import com.oracle.truffle.api.frame.Frame;
 import com.oracle.truffle.api.frame.MaterializedFrame;
@@ -45,6 +46,7 @@ import com.oracle.truffle.api.frame.VirtualFrame;
 import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.api.interop.java.JavaInterop;
 import com.oracle.truffle.api.nodes.ExecutableNode;
+import com.oracle.truffle.api.nodes.ExplodeLoop;
 import com.oracle.truffle.api.nodes.Node;
 import com.oracle.truffle.api.nodes.RootNode;
 import com.oracle.truffle.api.profiles.ValueProfile;
@@ -108,6 +110,7 @@ import com.oracle.truffle.r.runtime.nodes.RSyntaxNode;
  * The engine for the FastR implementation. Handles parsing and evaluation. There is one instance of
  * this class per {@link RContext}.
  */
+@SuppressWarnings("deprecation")
 final class REngine implements Engine, Engine.Timings {
 
     /**
@@ -285,7 +288,7 @@ final class REngine implements Engine, Engine.Timings {
         }
     }
 
-    List<RSyntaxNode> parseSource(Source source) throws ParseException {
+    private List<RSyntaxNode> parseSource(Source source) throws ParseException {
         RParserFactory.Parser<RSyntaxNode> parser = RParserFactory.getParser();
         return parser.script(source, new RASTBuilder(), context.getLanguage());
     }
@@ -327,24 +330,33 @@ final class REngine implements Engine, Engine.Timings {
     @Override
     public ExecutableNode parseToExecutableNode(Source source) throws ParseException {
         List<RSyntaxNode> list = parseSource(source);
-        RNode[] statements = new RNode[list.size()];
-        for (int i = 0; i < statements.length; i++) {
-            statements[i] = list.get(i).asRNode();
+        return new ExecutableNodeImpl(context.getLanguage(), list);
+    }
+
+    private final class ExecutableNodeImpl extends ExecutableNode {
+
+        @Child R2Foreign toForeignNode = R2Foreign.create();
+        @Children final RNode[] statements;
+
+        private ExecutableNodeImpl(TruffleLanguage<?> language, List<RSyntaxNode> list) {
+            super(language);
+            statements = new RNode[list.size()];
+            for (int i = 0; i < statements.length; i++) {
+                statements[i] = list.get(i).asRNode();
+            }
         }
-        return new ExecutableNode(context.getLanguage()) {
-            @Child private R2Foreign toForeignNode = R2Foreign.create();
 
-            @Override
-            public Object execute(VirtualFrame frame) {
-                if (statements.length == 0) {
-                    return RNull.instance;
-                }
-                for (int i = 0; i < statements.length - 1; i++) {
-                    statements[i].execute(frame);
-                }
-                return toForeignNode.execute(statements[statements.length - 1].execute(frame));
+        @Override
+        @ExplodeLoop
+        public Object execute(VirtualFrame frame) {
+            if (statements.length == 0) {
+                return RNull.instance;
             }
-        };
+            for (int i = 0; i < statements.length - 1; i++) {
+                statements[i].execute(frame);
+            }
+            return toForeignNode.execute(statements[statements.length - 1].execute(frame));
+        }
     }
 
     private static SourceSection createSourceSection(Source source, List<RSyntaxNode> statements) {
@@ -674,7 +686,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.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java
index 81632089f04e3f910b51f984c761a6d3d5de4a5a..e636be2c8f19c410cca7469ebcb164242d5e6ff1 100644
--- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java
+++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java
@@ -220,7 +220,7 @@ public class REnvironmentMR {
         protected abstract Object execute(VirtualFrame frame, TruffleObject receiver, Object identifier);
 
         @Specialization
-        protected Object access(VirtualFrame frame, REnvironment receiver, String identifier,
+        protected Object access(REnvironment receiver, String identifier,
                         @Cached("createKeyInfoNode()") REnvironmentKeyInfoImplNode keyInfo) {
             int info = keyInfo.execute(receiver, identifier);
             if (unknownIdentifier.profile(!KeyInfo.isExisting(info))) {
@@ -230,7 +230,7 @@ public class REnvironmentMR {
         }
 
         @TruffleBoundary
-        private boolean remove(REnvironment receiver, String identifier) {
+        private static boolean remove(REnvironment receiver, String identifier) {
             try {
                 return Rm.removeFromEnv(receiver, identifier, true);
             } catch (REnvironment.PutException ex) {
diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java
index 1ef67f1de646cdc804ccaf2c2c5f2e2c2d7672ca..87a9afdd9a692d680b413f3bd3da28f14c2c3a89 100644
--- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java
+++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java
@@ -81,7 +81,7 @@ public class REmbedded {
         boolean useEmbedded = consoleHandler == embeddedConsoleHandler;
         OutputStream stdOut = useEmbedded ? embeddedConsoleHandler.createStdOutputStream(System.out) : System.out;
         OutputStream stdErr = useEmbedded ? embeddedConsoleHandler.createErrOutputStream(System.err) : System.err;
-        context = Context.newBuilder().allowHostAccess(true).arguments("R", options.getArguments()).in(input).out(stdOut).err(stdErr).build();
+        context = Context.newBuilder().allowAllAccess(true).arguments("R", options.getArguments()).in(input).out(stdOut).err(stdErr).build();
         consoleHandler.setContext(context);
         context.eval(INIT);
 
diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java
index 0de1c6e8664360adc3a83459c9126bfc19b32298..e1a338d78369ea2773c8e9298bfa153899135e81 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/TruffleLLVM_Call.java
@@ -54,6 +54,7 @@ import com.oracle.truffle.r.runtime.ffi.RFFIFactory;
 import com.oracle.truffle.r.runtime.ffi.RFFILog;
 import com.oracle.truffle.r.runtime.ffi.RFFIVariables;
 
+@SuppressWarnings("deprecation")
 final class TruffleLLVM_Call implements CallRFFI {
 
     TruffleLLVM_Call() {
diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/upcalls/BytesToNativeCharArrayCallMR.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/upcalls/BytesToNativeCharArrayCallMR.java
index 96e7f6e18b8d8a2fc17ed4597feaf5211878d49b..0b761e2ee5296f0979446604dafb81a2622f7b45 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/upcalls/BytesToNativeCharArrayCallMR.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/llvm/upcalls/BytesToNativeCharArrayCallMR.java
@@ -28,6 +28,7 @@ import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.api.interop.java.JavaInterop;
 import com.oracle.truffle.api.nodes.Node;
 
+@SuppressWarnings("deprecation")
 @MessageResolution(receiverType = BytesToNativeCharArrayCall.class)
 public class BytesToNativeCharArrayCallMR {
 
diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_DownCallNodeFactory.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_DownCallNodeFactory.java
index 912485e008a7cb6098409dc3c4dee2f5dd3c1ae8..5ed0ec69a44d33eefd7b292155b35143f562f8d8 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_DownCallNodeFactory.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_DownCallNodeFactory.java
@@ -32,6 +32,7 @@ import com.oracle.truffle.r.runtime.ffi.NativeFunction;
 import com.oracle.truffle.r.runtime.ffi.interop.NativeArray;
 import com.oracle.truffle.r.runtime.ffi.interop.NativeUInt8Array;
 
+@SuppressWarnings("deprecation")
 public final class TruffleNFI_DownCallNodeFactory extends DownCallNodeFactory {
     public static final TruffleNFI_DownCallNodeFactory INSTANCE = new TruffleNFI_DownCallNodeFactory();
 
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/FastRGridExternalLookup.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/FastRGridExternalLookup.java
index 6d6a78006af8e0ccf810b925574b67d3e5e687b1..754b02266a3afd2f142ae3f2027716b56af6a249 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/FastRGridExternalLookup.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/FastRGridExternalLookup.java
@@ -37,6 +37,7 @@ import com.oracle.truffle.r.library.fastrGrid.grDevices.DevSize;
 import com.oracle.truffle.r.library.fastrGrid.grDevices.InitWindowedDevice;
 import com.oracle.truffle.r.library.fastrGrid.grDevices.PDF;
 import com.oracle.truffle.r.library.fastrGrid.grDevices.SavePlot;
+import com.oracle.truffle.r.library.fastrGrid.grDevices.SvgString;
 import com.oracle.truffle.r.library.fastrGrid.graphics.CPar;
 import com.oracle.truffle.r.nodes.builtin.RExternalBuiltinNode;
 import com.oracle.truffle.r.nodes.builtin.RInternalCodeBuiltinNode;
@@ -64,6 +65,8 @@ public final class FastRGridExternalLookup {
                 return new DevCurr();
             case "devoff":
                 return DevOff.create();
+            case "svgstring":
+                return new SvgString();
             case "PDF":
                 return new PDF();
             case "devCairo":
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java
index 413d1c638de09fd1196147c76afa752231cb8a39..4867d5a0b0381347055bc38a480b165094440bf7 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/device/SVGDevice.java
@@ -59,10 +59,16 @@ public class SVGDevice implements GridDevice, FileGridDevice {
     }
 
     public String closeAndGetContents() {
-        closeSVGDocument();
+        closeSVGDocument(data);
         return data.toString();
     }
 
+    public String getContents() {
+        StringBuilder result = new StringBuilder(data);
+        closeSVGDocument(result);
+        return result.toString();
+    }
+
     @Override
     public void openNewPage() {
         // We stay compatible with GnuR: opening new page wipes out what has been drawn without
@@ -207,7 +213,7 @@ public class SVGDevice implements GridDevice, FileGridDevice {
     }
 
     private void saveFile() throws DeviceCloseException {
-        closeSVGDocument();
+        closeSVGDocument(data);
         try {
             Files.write(Paths.get(filename), Collections.singleton(data.toString()), StandardCharsets.UTF_8);
         } catch (IOException e) {
@@ -215,15 +221,15 @@ public class SVGDevice implements GridDevice, FileGridDevice {
         }
     }
 
-    private void closeSVGDocument() {
-        if (data.length() == 0) {
+    private void closeSVGDocument(StringBuilder sb) {
+        if (sb.length() == 0) {
             return;
         }
         if (cachedCtx != null) {
             // see #appendStyle
-            data.append("</g>");
+            sb.append("</g>");
         }
-        data.append("</svg>");
+        sb.append("</svg>");
     }
 
     // closes opened <g> tag if necessary
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/InitWindowedDevice.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/InitWindowedDevice.java
index de15f10dccd2b944a99a7bf02480d989c5ac3b61..8f0ae0caeaddf33137837adbf163a5bcf8e8fe17 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/InitWindowedDevice.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/InitWindowedDevice.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -48,6 +48,7 @@ import com.oracle.truffle.r.runtime.data.RTypedValue;
  * {@code X11}, {@code jpeg}, {@code bmp}, {@code png} functions and from FastR specific {@code awt}
  * . The arguments determine which device should be opened.
  */
+@SuppressWarnings("deprecation")
 public final class InitWindowedDevice extends RExternalBuiltinNode {
 
     static {
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R
index f32979e54aedc0fd2a7082a71ffda161e7bea1e9..ef9033a6676b28bbf9ca3be615466d6363d83c31 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R
@@ -20,21 +20,40 @@
 # questions.
 
 eval(expression({
+
+    assignInNs <- function(x, val) {
+        ns <- asNamespace("grDevices")
+        unlockBinding(x, ns)
+        assign(x, val, envir = ns, inherits = T)
+        lockBinding(x, ns)
+    }
+
     # This should be preffered way of starting the FastR java device.
     # For compatibility reasons, both X11 and awt end up calling C_X11.
     # In the future, this function may support extra parameters like a
     # reference to java 2D graphics object, which will be used for the drawing.
-    awt <- function(width = NULL, height = NULL, graphicsObj = NULL) {
-        .External2(grDevices:::C_X11, ".FASTR.AWT", width, height, graphicsObj)
-    }
+    assignInNs('awt', function(width = NULL, height = NULL, graphicsObj = NULL) {
+        invisible(.External2(grDevices:::C_X11, ".FASTR.AWT", width, height, graphicsObj))
+    })
+
     # Allows to get the SVG code from SVG device, it also closes the device,
     # but the contents are not saved to the given file.
-    svg.off <- function(which = dev.cur()) {
+    assignInNs('svg.off', function(which = dev.cur()) {
         if (which == 1) {
             stop("cannot shut down device 1 (the null device)")
         }
         .External(C_devoff, as.integer(-which))
-    }
+    })
+
+    # Allows to get the SVG code from SVG device without closing it
+    svgStringSymbol <- list(name='svgstring')
+    assignInNs('svg.string', function() {
+        .External(svgStringSymbol)
+    })
+
+    # Adds help files for the new public functions
+    .fastr.addHelpPath('/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd')
+
     # GnuR version only works with "X11cairo" device. Our version of savePlot
     # works with "awt" device and "X11cairo", which is for us only alias for
     # "awt". Moreover, we only support formats that awt supports.
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/awt.Rd b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/awt.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..3b1d1f58bdfc0a9750af6a9ebe0060c6bab9568d
--- /dev/null
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/awt.Rd
@@ -0,0 +1,26 @@
+\name{awt}
+\alias{awt}
+\title{Opens the AWT device, which is an interactive window.}
+\usage{
+awt(width = NULL, height = NULL, graphicsObj = NULL)
+}
+\arguments{
+\item{width}{window width in AWT units (~pixel).}
+\item{height}{window height in AWT units (~pixel).}
+\item{java.awt.graphicsObj}{Java object of type \code{java.awt.Graphics2D}.}
+}
+\value{
+Invisible NULL.
+}
+\description{
+The AWT device draws into given Java \code{java.awt.Graphics2D} object.
+If \code{NULL} is given as \code{graphicsObj}, then the function creates a
+window whose \code{Graphics2D} is used, i.e. plots will be drawn into the window.
+In FastR \code{X11} is aliased to \code{awt}.
+}
+\examples{
+awt()
+}
+\seealso{
+\code{X11}
+}
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/svg.off.Rd b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/svg.off.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..8083d822d1103781e266e50b63b571b03f022776
--- /dev/null
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/svg.off.Rd
@@ -0,0 +1,28 @@
+\name{svg.off}
+\alias{svg.off}
+\title{Closes the SVG device and returns the SVG code as a character vector.}
+\usage{
+svg.off(which = dev.cur())
+}
+\arguments{
+\item{which}{device number.}
+}
+\value{
+Character vector with a single element.
+}
+\description{
+The semantics is the same as for \code{dev.off} function from the graphics package,
+except that \code{svg.off} does not write into any file and returns the SVG code as
+a character vector. \code{svg.off} can be invoked only when SVG device has been opened
+with \code{svg}.
+}
+\examples{
+library(grid)
+svg()
+grid.rect()
+print(svg.off())
+}
+\seealso{
+\code{dev.off}
+}
+
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/svg.string.Rd b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/svg.string.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..3a511fa64e430dba97c0856807df50dd8b233526
--- /dev/null
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd/svg.string.Rd
@@ -0,0 +1,24 @@
+\name{svg.string}
+\alias{svg.string}
+\title{Returns SVG code of the current plot.}
+\usage{
+svg.string()
+}
+\value{
+Character vector with a single element.
+}
+\description{
+Returns SVG code of the current plot.
+\code{svg.string} can be invoked only when SVG device has been opened using \code{svg}.
+Unlike \code{svg.off} this function does not close the SVG device.
+}
+\examples{
+library(grid)
+svg()
+grid.rect()
+print(svg.string())
+}
+\seealso{
+\code{svg.off}
+}
+
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/SvgString.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/SvgString.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba9f84f251218a645570694ca376db79fd013a8d
--- /dev/null
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/SvgString.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package com.oracle.truffle.r.library.fastrGrid.grDevices;
+
+import com.oracle.truffle.r.library.fastrGrid.GridContext;
+import com.oracle.truffle.r.library.fastrGrid.device.GridDevice;
+import com.oracle.truffle.r.library.fastrGrid.device.SVGDevice;
+import com.oracle.truffle.r.nodes.builtin.RExternalBuiltinNode;
+import com.oracle.truffle.r.runtime.RError.Message;
+
+/**
+ * FastR specific external used to implement {@code svg.string}, which returns the SVG code of
+ * current drawing.
+ */
+public class SvgString extends RExternalBuiltinNode.Arg0 {
+    @Override
+    public Object execute() {
+        GridContext ctx = GridContext.getContext();
+        if (ctx.getCurrentDeviceIndex() <= 0) {
+            throw error(Message.GENERIC, "No device opened.");
+        }
+        GridDevice dev = ctx.getCurrentDevice();
+        if (!(dev instanceof SVGDevice)) {
+            throw error(Message.GENERIC, "No SVG device opened, use svg() to open one.");
+        }
+        return ((SVGDevice) dev).getContents();
+    }
+}
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/R/utils.R b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/R/utils.R
index d911e336fa53aeb9266beda68f48204283c8fbc6..55d9ba102b97fa310eeb555015948d2efd1c2531 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/R/utils.R
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/utils/R/utils.R
@@ -21,7 +21,10 @@
 
 eval(expression({
 	excludedPkgs <- c("rJava")
-	excludedPkgsMsgs <- c("CRAN rJava is not supported on FastR, but you can download and install rJava compatible replacement package from https://github.com/oracle/fastr/master/com.oracle.truffle.r.pkgs/rJava")
+	excludedPkgsMsgs <- c(paste0(
+		"CRAN rJava is not supported on FastR, but you can download and install rJava compatible replacement package ",
+		"from https://github.com/oracle/fastr/master/com.oracle.truffle.r.pkgs/rJava.\n",
+		"  Install it using 'R --jvm CMD INSTALL {fastr}/com.oracle.truffle.r.pkgs/rJava' and make sure that 'which R' points to FastR. "))
 
 	fastRPkgFilter <- function (av) {
 		# The following statement will assign the url of the FastR clone of rJava, when ready (possibly on GitHub).
diff --git a/com.oracle.truffle.r.native/run/Makefile b/com.oracle.truffle.r.native/run/Makefile
index 13f2a596fb83f3d1578ddc3a0e4f1c01810ca520..2fd145b8277cf69f1a5118780d19c44263089cfc 100644
--- a/com.oracle.truffle.r.native/run/Makefile
+++ b/com.oracle.truffle.r.native/run/Makefile
@@ -69,6 +69,8 @@ rcmds: $(FASTR_BIN_DIR)/R
 
 $(FASTR_BIN_DIR)/R: Makefile R.sh Rscript.sh Rscript_exec.sh Rclasspath.sh
 	cp -r $(BIN_FILES) $(FASTR_BIN_DIR)
+	# cp  $(FASTR_R_HOME)/com.oracle.truffle.r.native/gnur/patch/bin-patch/* $(FASTR_BIN_DIR)
+	
     # overide bin/R
 	cp R.sh $(FASTR_BIN_DIR)/exec/R
 	# override bin/Rscript
@@ -77,8 +79,10 @@ $(FASTR_BIN_DIR)/R: Makefile R.sh Rscript.sh Rscript_exec.sh Rclasspath.sh
 	# for embedded support
 	cp Rclasspath.sh $(FASTR_BIN_DIR)/execRextras/Rclasspath
 	chmod +x $(FASTR_BIN_DIR)/exec/R $(FASTR_BIN_DIR)/execRextras/Rscript $(FASTR_BIN_DIR)/Rscript $(FASTR_BIN_DIR)/execRextras/Rclasspath
-	# update R_HOME_DIR to FastR
-	(sed -e 's!^\(R_HOME_DIR=\)\(.*\)!\1"$(FASTR_R_HOME)"!' | sed -e 's/    -h.--help./    --r-help\)/') < $(R_SCRIPT) > $(FASTR_BIN_DIR)/R
+	# update R_HOME_DIR to FastR, --help to -r-help because --help is handled by FastR, and pass args to Rcmd (esp. --jvm)
+	(sed -e 's!^\(R_HOME_DIR=\)\(.*\)!\1"$(FASTR_R_HOME)"!' | \
+	 sed -e 's/    -h.--help./    --r-help\)/' | \
+	 sed -e 's!      exec sh "$${R_HOME}/bin/Rcmd" "$${@}" ;;!      FASTR_INTERNAL_ARGS="$${FASTR_INTERNAL_ARGS} $${args}" exec sh "$${R_HOME}/bin/Rcmd" "$${@}" ;;!') < $(R_SCRIPT) > $(FASTR_BIN_DIR)/R
 	chmod +x $(FASTR_BIN_DIR)/R 
 	touch $(FASTR_ETC_DIR)/ldpaths
 	sed -e "s|\(R_LIBS_USER=.*-'\)\(.*\)'}|\1$(FASTR_R_HOME)/library'}|" < $(GNUR_HOME_BINARY)/etc/Renviron > $(FASTR_ETC_DIR)/Renviron
@@ -86,6 +90,7 @@ $(FASTR_BIN_DIR)/R: Makefile R.sh Rscript.sh Rscript_exec.sh Rclasspath.sh
 	cp $(GNUR_HOME_BINARY)/etc/javaconf $(FASTR_ETC_DIR)/javaconf
 	cp $(GNUR_HOME_BINARY)/etc/repositories $(FASTR_ETC_DIR)/repositories
 	cp $(GNUR_HOME_BINARY)/etc/ldpaths $(FASTR_ETC_DIR)/ldpaths
+	# the ed script adds -DFASTR to compiler options and removes JAVA related variables
 	ed Makeconf.etc < edMakeconf.etc
 	
 	echo $(DEFAULT_CRAN_MIRROR) > $(FASTR_ETC_DIR)/DEFAULT_CRAN_MIRROR
diff --git a/com.oracle.truffle.r.native/run/R.sh b/com.oracle.truffle.r.native/run/R.sh
index 5f7471ef4171badae3b36ac7a056721203c29ea4..2c6e2bae385e601de623b58f4419367b51ac7600 100644
--- a/com.oracle.truffle.r.native/run/R.sh
+++ b/com.oracle.truffle.r.native/run/R.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 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
@@ -46,4 +46,4 @@ else
     mx=`which mx`
 fi
 
-exec $mx --primary-suite-path $PRIMARY_PATH $MX_R_GLOBAL_ARGS R $MX_R_CMD_ARGS "$@"
+exec $mx --primary-suite-path $PRIMARY_PATH $MX_R_GLOBAL_ARGS R $FASTR_INTERNAL_ARGS $MX_R_CMD_ARGS "$@"
diff --git a/com.oracle.truffle.r.native/run/Rscript.sh b/com.oracle.truffle.r.native/run/Rscript.sh
index 863b98abf20ca80373e3c3526df94c508ce74a34..cd45f7f25b6ec22bab2a7cd7e5ff0b0dc6c77899 100755
--- a/com.oracle.truffle.r.native/run/Rscript.sh
+++ b/com.oracle.truffle.r.native/run/Rscript.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 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
diff --git a/com.oracle.truffle.r.native/run/Rscript_exec.sh b/com.oracle.truffle.r.native/run/Rscript_exec.sh
index 950435e34dc03d991b00facbfa3450db7d2f56af..3a61daba206d7cad0a7d38221dd6008fc02543b2 100644
--- a/com.oracle.truffle.r.native/run/Rscript_exec.sh
+++ b/com.oracle.truffle.r.native/run/Rscript_exec.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 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
@@ -42,4 +42,4 @@ else
     mx=`which mx`
 fi
 
-exec $mx --primary-suite-path $PRIMARY_PATH $MX_R_GLOBAL_ARGS Rscript $MX_R_CMD_ARGS "$@"
+exec $mx --primary-suite-path $PRIMARY_PATH $MX_R_GLOBAL_ARGS Rscript $FASTR_INTERNAL_ARGS $MX_R_CMD_ARGS "$@"
diff --git a/com.oracle.truffle.r.native/run/edMakeconf.etc b/com.oracle.truffle.r.native/run/edMakeconf.etc
index cd5f1cecb155119a9fd4154107ffa4bac889b523..56acb23b418b5497dc0e148d6599ff24bc54540e 100644
--- a/com.oracle.truffle.r.native/run/edMakeconf.etc
+++ b/com.oracle.truffle.r.native/run/edMakeconf.etc
@@ -1,6 +1,7 @@
 /^CFLAGS/s/$/ -DFASTR/
 /^CXXFLAGS/s/$/ -DFASTR/
 /^CPPFLAGS/s/$/ -DFASTR/
+g/JAVA_HOME =/d
 /LIBINTL=/
 d
 /LIBR =/
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 406d3eb5d20d3ec54199db9517ef1478bc52cf6d..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
@@ -99,6 +99,7 @@ import com.oracle.truffle.r.nodes.builtin.fastr.FastRContext;
 import com.oracle.truffle.r.nodes.builtin.fastr.FastRContextFactory;
 import com.oracle.truffle.r.nodes.builtin.fastr.FastRDebug;
 import com.oracle.truffle.r.nodes.builtin.fastr.FastRDebugNodeGen;
+import com.oracle.truffle.r.nodes.builtin.fastr.FastRHelp.FastRAddHelpPath;
 import com.oracle.truffle.r.nodes.builtin.fastr.FastRHelp.FastRHelpPath;
 import com.oracle.truffle.r.nodes.builtin.fastr.FastRHelp.FastRHelpRd;
 import com.oracle.truffle.r.nodes.builtin.fastr.FastRHelpFactory.FastRHelpPathNodeGen;
@@ -445,6 +446,7 @@ public class BasePackage extends RBuiltinPackage {
         add(FastrDqrls.class, FastrDqrlsNodeGen::create);
         add(FastRDebug.class, FastRDebugNodeGen::create);
         add(FastRSetBreakpoint.class, FastRSetBreakpointNodeGen::create);
+        add(FastRAddHelpPath.class, FastRAddHelpPath::create);
         add(FastRHelpPath.class, FastRHelpPathNodeGen::create);
         add(FastRHelpRd.class, FastRHelpRdNodeGen::create);
         add(FastRIdentity.class, FastRIdentityNodeGen::create);
@@ -459,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/ConnectionFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java
index 74c1128cc92dac05607e393db1f8ffcd5ede5c3c..08490aafebe3c3cbd53a41978321ec3b1901fa68 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java
@@ -123,6 +123,7 @@ import com.oracle.truffle.r.runtime.nodes.RBaseNode;
  * {@code com.oracle.truffle.r.runime.conn}.
  *
  */
+@SuppressWarnings("deprecation")
 public abstract class ConnectionFunctions {
     @RBuiltin(name = "stdin", kind = INTERNAL, parameterNames = {}, behavior = READS_STATE)
     public abstract static class Stdin extends RBuiltinNode.Arg0 {
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..f922d526af2f1e33d3a68ae4225748dae9a01f4a 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,18 +46,21 @@ 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;
 import com.oracle.truffle.r.runtime.data.model.RAbstractContainer;
 import com.oracle.truffle.r.runtime.env.REnvironment;
 
+@SuppressWarnings("deprecation")
 @ImportStatic({RRuntime.class, com.oracle.truffle.api.interop.Message.class})
 @RBuiltin(name = "names", kind = PRIMITIVE, parameterNames = {"x"}, dispatch = INTERNAL_GENERIC, behavior = PURE)
 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 +97,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 +120,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/R/base_overrides.R b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/R/base_overrides.R
index 9b10332922a25ad440fb1fae00a2f2f92fb17920..58a96ab5a81f40fc50e4c01e064ccbcae2cd04cd 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/R/base_overrides.R
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/R/base_overrides.R
@@ -10,6 +10,7 @@
 #
 
 eval(expression({
+.fastr.addHelpPath('/com/oracle/truffle/r/nodes/builtin/base/Rd')
 .libPaths <- local({
     .lib.loc <- character()            # Profiles need to set this.
     function(new) {
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/Unlist.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java
index 4ec423b9483099075021813f059797da88376c90..5c49e55781e62357da6aa2b64aa2b8c977538d24 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java
@@ -61,6 +61,7 @@ import com.oracle.truffle.r.runtime.data.model.RAbstractVector;
 import com.oracle.truffle.r.runtime.interop.Foreign2R;
 import com.oracle.truffle.r.runtime.interop.ForeignArray2R;
 
+@SuppressWarnings("deprecation")
 @ImportStatic({Message.class, RRuntime.class})
 @RBuiltin(name = "unlist", kind = INTERNAL, dispatch = RDispatch.INTERNAL_GENERIC, parameterNames = {"x", "recursive", "use.names"}, behavior = PURE)
 public abstract class Unlist extends RBuiltinNode.Arg3 {
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java
index e5aa670388dc2c8a23d3a5fbfbdca6a93f0adddc..70b8e12f2da7386feb7e2c73a198da14a3980c3b 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java
@@ -798,8 +798,9 @@ public class CallAndExternalFunctions {
         }
 
         @SuppressWarnings("unused")
-        @Specialization(limit = "1", guards = {"cached.symbol == symbol"})
+        @Specialization(limit = "1", guards = {"cached.symbol == symbol", "builtin == null"})
         protected Object callNamedFunction(VirtualFrame frame, RList symbol, RArgsValuesAndNames args, Object packageName,
+                        @Cached("lookupBuiltin(symbol)") RExternalBuiltinNode builtin,
                         @Cached("new(symbol)") CallNamedFunctionNode cached,
                         @Cached("createBinaryProfile()") ConditionProfile registeredProfile) {
             if (registeredProfile.profile(isRegisteredRFunction(cached.nativeCallInfo))) {
@@ -913,8 +914,9 @@ public class CallAndExternalFunctions {
         }
 
         @SuppressWarnings("unused")
-        @Specialization(limit = "1", guards = {"cached.symbol == symbol"})
+        @Specialization(limit = "1", guards = {"cached.symbol == symbol", "builtin == null"})
         protected Object callNamedFunction(RList symbol, RArgsValuesAndNames args, Object packageName,
+                        @Cached("lookupBuiltin(symbol)") RExternalBuiltinNode builtin,
                         @Cached("new(symbol)") CallNamedFunctionNode cached) {
             Object list = encodeArgumentPairList(args, cached.nativeCallInfo.name);
             return dispatch(cached.nativeCallInfo, new Object[]{CALL, getOp(), list, RHO});
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/ReadTableHead.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/ReadTableHead.java
index 700ccf32f90886dc4f1ced03ab5681c83b63e18a..c0600ef0b25b63e7a63bdd7011205f0e6315f096 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/ReadTableHead.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/ReadTableHead.java
@@ -119,8 +119,6 @@ public abstract class ReadTableHead extends RExternalBuiltinNode.Arg7 {
 
         final int commentChar;
 
-        private final String quotes;
-
         private final boolean skipNull;
 
         final List<String> resultLines;
@@ -137,13 +135,12 @@ public abstract class ReadTableHead extends RExternalBuiltinNode.Arg7 {
 
         private int nullCnt;
 
-        ReadState(RConnection openConn, int nlines, int commentChar, String quotes, boolean skipNull) {
+        ReadState(RConnection openConn, int nlines, int commentChar, @SuppressWarnings("unused") String quotes, boolean skipNull) {
             this.openConn = openConn;
             this.nlines = nlines;
             this.commentChar = commentChar;
-            this.quotes = quotes;
             this.skipNull = skipNull;
-            this.resultLines = new ArrayList<String>(nlines);
+            this.resultLines = new ArrayList<>(nlines);
         }
 
         int nextChar() throws IOException {
@@ -162,76 +159,78 @@ public abstract class ReadTableHead extends RExternalBuiltinNode.Arg7 {
                     c = readChar();
                 } while (c != -1 && c != '\n');
             }
+
+            // TODO if (false produces ecj "dead code" warnigs so commented the whole if branch
             // The allowEscapes flag is currently not propagated into table head reading which
             // causes e.g. a header line duplication - see tests
-            if (false && c == '\\') { // Assuming escapes never allowed
-                c = readChar();
-                if ('0' <= c && c <= '8') {
-                    int octal = c - '0';
-                    if ('0' <= (c = readChar()) && c <= '8') {
-                        octal = 8 * octal + c - '0';
-                        if ('0' <= (c = readChar()) && c <= '8') {
-                            octal = 8 * octal + c - '0';
-                        } else {
-                            pushBack(c);
-                        }
-                    } else {
-                        pushBack(c);
-                    }
-                    c = octal;
-                } else if (c == -1) {
-                    c = '\\';
-                } else {
-                    switch ((char) c) {
-                        case 'a':
-                            c = '\u0007';
-                            break;
-                        case 'b':
-                            c = '\b';
-                            break;
-                        case 'f':
-                            c = '\f';
-                            break;
-                        case 'n':
-                            c = '\n';
-                            break;
-                        case 'r':
-                            c = '\r';
-                            break;
-                        case 't':
-                            c = '\t';
-                            break;
-                        case 'v':
-                            c = '\u000B';
-                            break;
-                        case 'x':
-                            int hex = 0;
-                            int ext;
-                            for (int i = 0; i < 2; i++) {
-                                c = readChar();
-                                if (c >= '0' && c <= '9') {
-                                    ext = c - '0';
-                                } else if (c >= 'A' && c <= 'F') {
-                                    ext = c - 'A' + 10;
-                                } else if (c >= 'a' && c <= 'f') {
-                                    ext = c - 'a' + 10;
-                                } else {
-                                    pushBack(c);
-                                    break;
-                                }
-                                hex = 16 * hex + ext;
-                            }
-                            c = hex;
-                            break;
-                        default:
-                            if (inQuote && quotes.indexOf(c) != -1) {
-                                pushBack(c);
-                                c = '\\';
-                            }
-                            break;
-                    }
-                }
-            }
+            // if (false && c == '\\') { // Assuming escapes never allowed
+            // c = readChar();
+            // if ('0' <= c && c <= '8') {
+            // int octal = c - '0';
+            // if ('0' <= (c = readChar()) && c <= '8') {
+            // octal = 8 * octal + c - '0';
+            // if ('0' <= (c = readChar()) && c <= '8') {
+            // octal = 8 * octal + c - '0';
+            // } else {
+            // pushBack(c);
+            // }
+            // } else {
+            // pushBack(c);
+            // }
+            // c = octal;
+            // } else if (c == -1) {
+            // c = '\\';
+            // } else {
+            // switch ((char) c) {
+            // case 'a':
+            // c = '\u0007';
+            // break;
+            // case 'b':
+            // c = '\b';
+            // break;
+            // case 'f':
+            // c = '\f';
+            // break;
+            // case 'n':
+            // c = '\n';
+            // break;
+            // case 'r':
+            // c = '\r';
+            // break;
+            // case 't':
+            // c = '\t';
+            // break;
+            // case 'v':
+            // c = '\u000B';
+            // break;
+            // case 'x':
+            // int hex = 0;
+            // int ext;
+            // for (int i = 0; i < 2; i++) {
+            // c = readChar();
+            // if (c >= '0' && c <= '9') {
+            // ext = c - '0';
+            // } else if (c >= 'A' && c <= 'F') {
+            // ext = c - 'A' + 10;
+            // } else if (c >= 'a' && c <= 'f') {
+            // ext = c - 'a' + 10;
+            // } else {
+            // pushBack(c);
+            // break;
+            // }
+            // hex = 16 * hex + ext;
+            // }
+            // c = hex;
+            // break;
+            // default:
+            // if (inQuote && quotes.indexOf(c) != -1) {
+            // pushBack(c);
+            // c = '\\';
+            // }
+            // break;
+            // }
+            // }
+            // }
             return c;
         }
 
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/FastRContext.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRContext.java
index a3303adb897288d010de203b728424b84c550eb7..1975747f680a11d706ef5cde21a6a3b16c1cf0ab 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRContext.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRContext.java
@@ -65,6 +65,7 @@ import com.oracle.truffle.r.runtime.env.REnvironment;
 /**
  * The FastR builtins that allow multiple "virtual" R sessions potentially executing in parallel.
  */
+@SuppressWarnings("deprecation")
 public class FastRContext {
 
     private static final class CastsHelper {
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRHelp.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRHelp.java
index 4f0b1b556ea0b1cf38d57e052541a02c2e824dbc..de2ff486977fe6fd0a5ae2b252f8689760f7cbfc 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRHelp.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRHelp.java
@@ -30,20 +30,62 @@ import com.oracle.truffle.api.dsl.Specialization;
 import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.singleElement;
 import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.stringValue;
 import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
+import com.oracle.truffle.r.nodes.builtin.fastr.FastRHelpFactory.FastRAddHelpPathNodeGen;
 import com.oracle.truffle.r.runtime.RError;
 import static com.oracle.truffle.r.runtime.RVisibility.ON;
 
 import com.oracle.truffle.r.runtime.ResourceHandlerFactory;
 import com.oracle.truffle.r.runtime.builtins.RBuiltin;
 import com.oracle.truffle.r.runtime.data.RNull;
+import com.oracle.truffle.r.runtime.nodes.RNode;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.util.ArrayList;
 
 public class FastRHelp {
 
-    @RBuiltin(name = ".fastr.interop.helpPath", visibility = ON, kind = PRIMITIVE, parameterNames = {"builtinName"}, behavior = COMPLEX)
+    private static ArrayList<String> paths;
+
+    private static synchronized void initPaths() {
+        if (paths == null) {
+            paths = new ArrayList<>(3);
+        }
+    }
+
+    private static synchronized void addPath(String path) {
+        initPaths();
+        paths.add(path);
+    }
+
+    private static synchronized String[] getPaths() {
+        initPaths();
+        return paths.toArray(new String[paths.size()]);
+    }
+
+    @RBuiltin(name = ".fastr.addHelpPath", visibility = ON, kind = PRIMITIVE, parameterNames = {"path"}, behavior = COMPLEX)
+    public abstract static class FastRAddHelpPath extends RBuiltinNode.Arg1 {
+
+        static {
+            Casts casts = new Casts(FastRAddHelpPath.class);
+            casts.arg("path").mustBe(stringValue()).asStringVector().mustBe(singleElement()).findFirst();
+        }
+
+        @Specialization()
+        @TruffleBoundary
+        public Object helpPath(String path) {
+            addPath(path);
+            return RNull.instance;
+        }
+
+        public static FastRAddHelpPath create() {
+            return FastRAddHelpPathNodeGen.create();
+        }
+    }
+
+    @RBuiltin(name = ".fastr.helpPath", visibility = ON, kind = PRIMITIVE, parameterNames = {"builtinName"}, behavior = COMPLEX)
     public abstract static class FastRHelpPath extends RBuiltinNode.Arg1 {
 
         static {
@@ -54,18 +96,20 @@ public class FastRHelp {
         @Specialization()
         @TruffleBoundary
         public Object helpPath(String builtinName) {
-            String path = "/com/oracle/truffle/r/nodes/builtin/base/Rd/" + builtinName + ".Rd";
-            try (InputStream in = ResourceHandlerFactory.getHandler().getResourceAsStream(getClass(), path)) {
-                if (in != null) {
-                    return path;
+            for (String path : getPaths()) {
+                String filename = path + '/' + builtinName + ".Rd";
+                try (InputStream in = ResourceHandlerFactory.getHandler().getResourceAsStream(getClass(), filename)) {
+                    if (in != null) {
+                        return filename;
+                    }
+                } catch (IOException ex) {
                 }
-            } catch (IOException ex) {
             }
             return RNull.instance;
         }
     }
 
-    @RBuiltin(name = ".fastr.interop.helpRd", visibility = ON, kind = PRIMITIVE, parameterNames = {"path"}, behavior = COMPLEX)
+    @RBuiltin(name = ".fastr.helpRd", visibility = ON, kind = PRIMITIVE, parameterNames = {"path"}, behavior = COMPLEX)
     public abstract static class FastRHelpRd extends RBuiltinNode.Arg1 {
 
         static {
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..1fa64d23cdc443ce7626d8e2bf09cd68d712c5cd 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;
@@ -109,6 +107,7 @@ import com.oracle.truffle.r.runtime.interop.ForeignArray2R;
 import com.oracle.truffle.r.runtime.interop.R2Foreign;
 import com.oracle.truffle.r.runtime.interop.R2ForeignNodeGen;
 
+@SuppressWarnings("deprecation")
 public class FastRInterop {
 
     private static boolean isTesting = false;
@@ -117,7 +116,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 +283,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 +306,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 +349,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 +372,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 +395,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 +422,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)
@@ -583,111 +490,23 @@ 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 {
+            Env env = RContext.getInstance().getEnv();
 
-        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());
-        }
+            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 +525,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 +589,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 +613,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 +664,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 +681,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 +695,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 +841,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 +906,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 +968,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 +988,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 +1029,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 +1047,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 +1121,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/fastr/FastROptionBuiltin.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastROptionBuiltin.java
index 5327a8a1ade517ffa7577e33bc555425e002afe8..e4f5044921f381977a3b9dac8b0cc8de59b7f913 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastROptionBuiltin.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastROptionBuiltin.java
@@ -32,6 +32,7 @@ import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
 import com.oracle.truffle.r.runtime.FastROptions;
 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.RNull;
 
 /**
@@ -48,6 +49,9 @@ public abstract class FastROptionBuiltin extends RBuiltinNode.Arg1 {
     @Specialization
     @TruffleBoundary
     protected Object getOption(String name) {
+        if ("hostLookup".equals(name)) {
+            return RRuntime.asLogical(RContext.getInstance().getEnv().isHostLookupAllowed());
+        }
         FastROptions opt = null;
         try {
             opt = Enum.valueOf(FastROptions.class, name);
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRRegisterFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRRegisterFunctions.java
index 307006798e969fd81a747bcf225d3de41047c809..186e20383b3e0cfc1e1ac2cc4f7ea508b2151d1b 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRRegisterFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRRegisterFunctions.java
@@ -104,7 +104,7 @@ public abstract class FastRRegisterFunctions extends RBuiltinNode.Arg4 {
     }
 
     @TruffleBoundary
-    private void assign(DotSymbol[] symbols, DLLInfo dllInfo, SymbolHandle[] symbolHandles, NativeSymbolType nst, REnvironment env) throws PutException {
+    private static void assign(DotSymbol[] symbols, DLLInfo dllInfo, SymbolHandle[] symbolHandles, NativeSymbolType nst, REnvironment env) throws PutException {
         for (int i = 0; i < symbols.length; i++) {
             SymbolInfo si = new SymbolInfo(dllInfo, symbols[i].name, symbolHandles[i]);
             RList symbolObject = si.createRSymbolObject(new RegisteredNativeSymbol(nst, symbols[i], dllInfo), true);
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..f317d4cfba5ea6aa0075a9f7c70c2069c112bd6c 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 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
@@ -25,14 +25,14 @@ eval(expression({
 `slot<-` <- .fastr.methods.slotassign
 
 new <- function (Class, ...) {
-    if(is.character(Class)) {
-        javaClass <- new.java.class(Class, silent=TRUE)
+    if (.fastr.option("hostLookup") && is.character(Class) && !isClass(Class)) {
+        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.builtin/src/com/oracle/truffle/r/nodes/builtin/utils/R/utils_overrides.R b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/utils/R/utils_overrides.R
index bc72ccbeb2246d24966724fa09ddf250cb358d88..db7cf13a49ddf8648f97e9f6785f9c4f944f8ec5 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/utils/R/utils_overrides.R
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/utils/R/utils_overrides.R
@@ -39,7 +39,7 @@ index.search <- function (topic, paths, firstOnly = FALSE)
     res <- index.search.orig(topic, paths, firstOnly)
     
     if(length(res) == 0) {
-        fastrHelpRd <- .fastr.interop.helpPath(topic)
+        fastrHelpRd <- .fastr.helpPath(topic)
         if(!is.null(fastrHelpRd)) {
             res <- fastrHelpRd
         }
@@ -52,7 +52,7 @@ eval(expression({
 .getHelpFile.orig <- utils:::.getHelpFile
 .getHelpFile <- function (file) 
 {
-    fastrHelpRd <- .fastr.interop.helpRd(file)
+    fastrHelpRd <- .fastr.helpRd(file)
     if(!is.null(fastrHelpRd)) {
         return(tools::parse_Rd(textConnection(fastrHelpRd)))
     }
diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java
index 7e692d619e33dbfa01d92677c0977f849a1528df..bf75c0c1d0abfd30a37c26081f8797189ad9e1ff 100644
--- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java
+++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java
@@ -118,6 +118,7 @@ import java.util.List;
  * Tests the cast pipelines and also that the samples generation process matches the intended
  * semantics.
  */
+@SuppressWarnings("deprecation")
 public class CastBuilderTest {
 
     /**
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..ddc7664129d11092d33070dd375264a05c086f6b 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;
@@ -69,6 +70,7 @@ import com.oracle.truffle.r.runtime.interop.ForeignArray2R;
 import com.oracle.truffle.r.runtime.interop.ForeignArray2R.ForeignArrayData;
 import com.oracle.truffle.r.runtime.nodes.RBaseNode;
 
+@SuppressWarnings("deprecation")
 @ImportStatic({RRuntime.class, com.oracle.truffle.api.interop.Message.class})
 public abstract class ExtractVectorNode extends RBaseNode {
 
@@ -367,6 +369,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 +385,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..1c71ec225db0cdc519d36e9c14d0c8b270ad4538 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;
@@ -66,6 +67,8 @@ import com.oracle.truffle.r.runtime.nodes.RBaseNode;
 /**
  * Syntax node for element writes.
  */
+
+@SuppressWarnings("deprecation")
 @ImportStatic({RRuntime.class, com.oracle.truffle.api.interop.Message.class})
 public abstract class ReplaceVectorNode extends RBaseNode {
 
@@ -293,6 +296,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 +315,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/builtin/casts/CastForeignNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/casts/CastForeignNode.java
index 687c4fce806f0fd1f3ea91763bb59686e0962052..189ba3ef009ee3f37f0fd437f841347a1f48ee84 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/casts/CastForeignNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/casts/CastForeignNode.java
@@ -45,7 +45,7 @@ public final class CastForeignNode extends CastNode {
         }
     }
 
-    protected boolean isInteropScalar(Object obj) {
+    protected static boolean isInteropScalar(Object obj) {
         return obj instanceof RInteropScalar;
     }
 }
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.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java
index 9faa3dfcb97356690eb56d3be8b27d901c009257..3885d91247288f53cb8317acf94d1d0d5cf25aeb 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/PrecedenceNode.java
@@ -66,6 +66,7 @@ import com.oracle.truffle.r.runtime.interop.Foreign2R;
 import com.oracle.truffle.r.runtime.interop.ForeignArray2R;
 import com.oracle.truffle.r.runtime.nodes.RBaseNode;
 
+@SuppressWarnings("deprecation")
 @ImportStatic({Message.class, RRuntime.class, ForeignArray2R.class, Foreign2R.class})
 public abstract class PrecedenceNode extends RBaseNode {
 
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.pkgs/rJava/src/Makevars b/com.oracle.truffle.r.pkgs/rJava/src/Makevars
index 238e93d69d420cb6688da8529b34dc0ec0f53409..17ea02876e66bf1add17ce411f2d42d8d66371cb 100644
--- a/com.oracle.truffle.r.pkgs/rJava/src/Makevars
+++ b/com.oracle.truffle.r.pkgs/rJava/src/Makevars
@@ -1,6 +1,6 @@
 JAVA_SRC=$(wildcard java/*.java)
 JFLAGS=-source 1.6 -target 1.6
-JAVAC=javac
+JAVAC=${JAVA_HOME}/bin/javac
 
 all: $(SHLIB)
 $(SHLIB): java
@@ -8,7 +8,7 @@ $(SHLIB): java
 .PHONY: all java
 
 java: $(JAVA_SRC)
-	$(JAVAC) $(JFLAGS) $(JAVA_SRC)
+	$(JAVAC) $(JFLAGS) $(JAVA_SRC) || (echo "ERROR: compilation failed, do you have properly configured JAVA_HOME environment variable?"; exit 1)
 	rm -rfv ../inst/java
 	mkdir -p ../inst/java
 	mv java/*.class ../inst/java
diff --git a/com.oracle.truffle.r.pkgs/rJava/src/java/Makefile b/com.oracle.truffle.r.pkgs/rJava/src/java/Makefile
deleted file mode 100644
index a476c847334dd6a103e70c02d9938cdc50546615..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.pkgs/rJava/src/java/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-##
- # This material is distributed under the GNU General Public License
- # Version 2. You may review the terms of this license at
- # http://www.gnu.org/licenses/gpl-2.0.html
- #
- # Copyright (c) 2006, Simon Urbanek
- # Copyright (c) 2018, Oracle and/or its affiliates
- #
- # All rights reserved.
-##
-
-JAVA_SRC=$(wildcard *.java)
-JFLAGS=-source 1.6 -target 1.6
-JAVAC=javac
-JAVA=java
-JAVADOC=javadoc
-JAVADOCFLAGS=-author -version -breakiterator -link http://java.sun.com/j2se/1.4.2/docs/api
-
-all: compile test
-
-compile: $(JAVA_SRC)
-	$(JAVAC) $(JFLAGS) $(JAVA_SRC)
-
-test_RJavaTools: compile
-	$(JAVA) RJavaTools_Test
-
-test_RJavaArrayTools: compile
-	$(JAVA) RJavaArrayTools_Test
-
-test_ArrayWrapper:
-	$(JAVA) ArrayWrapper_Test
-
-test_RectangularArrayBuilder:
-	$(JAVA) RectangularArrayBuilder_Test
-
-test: compile test_RJavaTools test_RJavaArrayTools test_ArrayWrapper test_RectangularArrayBuilder
-
-javadoc:
-	$(JAVADOC) $(JAVADOCFLAGS) -d javadoc $(JAVA_SRC)
-
-clean:
-	rm -rfv *.class *~
-
-.PHONY: all clean
-
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java
index 918258922b11787e2373b7d3f5e84f9095909863..d8d95185e10750ec16cffc9802e00e905ba022b2 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java
@@ -73,6 +73,19 @@ public final class REnvVars implements RContext.ContextState {
         // Always read the system file
         FileSystem fileSystem = FileSystems.getDefault();
         safeReadEnvironFile(fileSystem.getPath(rHome, "etc", "Renviron").toString());
+
+        String internalArgs = System.getenv("FASTR_INTERNAL_ARGS");
+        if (context.getEnv().isHostLookupAllowed()) {
+            if (internalArgs == null) {
+                internalArgs = "--jvm";
+            } else if (!internalArgs.contains("--jvm")) {
+                internalArgs += " --jvm";
+            }
+        }
+        if (internalArgs != null) {
+            envVars.put("FASTR_INTERNAL_ARGS", internalArgs);
+        }
+
         envVars.put("R_DOC_DIR", fileSystem.getPath(rHome, "doc").toString());
         envVars.put("R_INCLUDE_DIR", fileSystem.getPath(rHome, "include").toString());
         envVars.put("R_SHARE_DIR", fileSystem.getPath(rHome, "share").toString());
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..31a1eecc5561abbbbc63c59750fd7c8749c9beb4 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;
@@ -124,6 +121,7 @@ import com.oracle.truffle.r.runtime.rng.RRNG;
  *
  * Contexts can be destroyed
  */
+@SuppressWarnings("deprecation")
 public final class RContext {
 
     public static ChildContextInfo childInfo;
@@ -281,9 +279,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 +822,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 e = getEnv();
+        if (e != null && e.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) e.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/instrument/memprof/MemAllocProfilerPaths.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/instrument/memprof/MemAllocProfilerPaths.java
index a9c9ad8d76cbd464094addeb94fe030679562c81..90370f29aad838de4442a1d152128e34c8b977f3 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/instrument/memprof/MemAllocProfilerPaths.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/instrument/memprof/MemAllocProfilerPaths.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -41,6 +41,7 @@ import com.oracle.truffle.api.interop.java.JavaInterop;
 import com.oracle.truffle.api.source.Source;
 import com.oracle.truffle.api.source.SourceSection;
 
+@SuppressWarnings("deprecation")
 public final class MemAllocProfilerPaths {
     private final AtomicLong version = new AtomicLong();
     private final AtomicInteger idGen = new AtomicInteger();
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..e5690bfeb6588cf39b5b5202bda5d96335afd110 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;
@@ -62,6 +61,7 @@ import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractVector;
 import com.oracle.truffle.r.runtime.nodes.RBaseNode;
 
+@SuppressWarnings("deprecation")
 @ImportStatic({Message.class, RRuntime.class})
 public abstract class ForeignArray2R extends RBaseNode {
 
@@ -158,7 +158,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 +322,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.tck/src/com/oracle/truffle/r/test/tck/RTCKLanguageProvider.java b/com.oracle.truffle.r.test.tck/src/com/oracle/truffle/r/test/tck/RTCKLanguageProvider.java
index 9e79652192acdda8ac5de6311e4e067a54fffc45..755b718076fc864b6eff360b56f3e0b16adc61a9 100644
--- a/com.oracle.truffle.r.test.tck/src/com/oracle/truffle/r/test/tck/RTCKLanguageProvider.java
+++ b/com.oracle.truffle.r.test.tck/src/com/oracle/truffle/r/test/tck/RTCKLanguageProvider.java
@@ -126,9 +126,12 @@ public final class RTCKLanguageProvider implements LanguageProvider {
         TypeDescriptor numOrBoolOrArrNumBool = TypeDescriptor.union(numOrBool, arrNumBool);
         TypeDescriptor numOrBoolOrNullOrArrNumBool = TypeDescriptor.union(numOrBoolOrNull, arrNumBool);
         TypeDescriptor boolOrArrBool = TypeDescriptor.union(TypeDescriptor.BOOLEAN, TypeDescriptor.array(TypeDescriptor.BOOLEAN));
-        TypeDescriptor strOrNumOrBool = TypeDescriptor.union(TypeDescriptor.STRING, numOrBool);
-        TypeDescriptor arrStrNumBool = TypeDescriptor.array(strOrNumOrBool);
-        TypeDescriptor strOrNumOrBoolOrArrStrNumBool = TypeDescriptor.union(strOrNumOrBool, arrStrNumBool);
+
+        // TODO cause occasional and more then occasional fails on gate builds
+        // TypeDescriptor strOrNumOrBool = TypeDescriptor.union(TypeDescriptor.STRING, numOrBool);
+        // TypeDescriptor arrStrNumBool = TypeDescriptor.array(strOrNumOrBool);
+        // TypeDescriptor strOrNumOrBoolOrArrStrNumBool = TypeDescriptor.union(strOrNumOrBool,
+        // arrStrNumBool);
 
         // +
         ops.add(createBinaryOperator(context, "+", numOrBoolOrArrNumBool, numOrBoolOrNullOrArrNumBool, numOrBoolOrNullOrArrNumBool,
@@ -143,7 +146,7 @@ public final class RTCKLanguageProvider implements LanguageProvider {
         ops.add(createBinaryOperator(context, "/", numOrBoolOrArrNumBool, numOrBoolOrNullOrArrNumBool, numOrBoolOrNullOrArrNumBool,
                         RResultVerifier.newBuilder(numOrBoolOrNullOrArrNumBool, numOrBoolOrNullOrArrNumBool).emptyArrayCheck().build()));
 
-        // TODO cause occasional and more then accasional fails on gate builds
+        // TODO cause occasional and more then occasional fails on gate builds
         // <
         // ops.add(createBinaryOperator(context, "<", boolOrArrBool, strOrNumOrBoolOrArrStrNumBool,
         // strOrNumOrBoolOrArrStrNumBool,
@@ -360,7 +363,7 @@ public final class RTCKLanguageProvider implements LanguageProvider {
         return opb.build();
     }
 
-    private InlineSnippet createInlineSnippet(Context context, String sourceName, int l1, int l2, String snippetName) {
+    private static InlineSnippet createInlineSnippet(Context context, String sourceName, int l1, int l2, String snippetName) {
         Snippet script = loadScript(context, sourceName, TypeDescriptor.ANY, null);
         String simpleName = sourceName.substring(sourceName.lastIndexOf('/') + 1);
         try {
@@ -447,7 +450,7 @@ public final class RTCKLanguageProvider implements LanguageProvider {
             private Builder(TypeDescriptor[] expectedParameterTypes) {
                 this.expectedParameterTypes = expectedParameterTypes;
                 chain = (valid, snippetRun) -> {
-                    ResultVerifier.getDefaultResultVerfier().accept(snippetRun);
+                    ResultVerifier.getDefaultResultVerifier().accept(snippetRun);
                     return null;
                 };
             }
@@ -482,42 +485,44 @@ public final class RTCKLanguageProvider implements LanguageProvider {
                 return this;
             }
 
+            // TODO cause occasional and more then occasional fails on gate builds
             // Todo: Is it R bug or should verifier handle this?
             // [1,"TEST"] < [1,2] works
             // [1,"TEST"] < [1,"TEST"] fails
-            Builder mixedArraysCheck() {
-                chain = new BiFunction<Boolean, SnippetRun, Void>() {
-                    private final BiFunction<Boolean, SnippetRun, Void> next = chain;
-
-                    @Override
-                    public Void apply(Boolean valid, SnippetRun sr) {
-                        if (valid && sr.getException() != null && areMixedArrays(sr.getParameters())) {
-                            return null;
-                        }
-                        return next.apply(valid, sr);
-                    }
-
-                    private boolean areMixedArrays(List<? extends Value> args) {
-                        for (Value arg : args) {
-                            if (!arg.hasArrayElements()) {
-                                return false;
-                            }
-                            boolean str = false;
-                            boolean num = false;
-                            for (int i = 0; i < arg.getArraySize(); i++) {
-                                TypeDescriptor td = TypeDescriptor.forValue(arg.getArrayElement(i));
-                                str |= TypeDescriptor.STRING.isAssignable(td);
-                                num |= TypeDescriptor.NUMBER.isAssignable(td) || TypeDescriptor.BOOLEAN.isAssignable(td);
-                            }
-                            if ((!str & !num) || (str ^ num)) {
-                                return false;
-                            }
-                        }
-                        return !args.isEmpty();
-                    }
-                };
-                return this;
-            }
+            // Builder mixedArraysCheck() {
+            // chain = new BiFunction<Boolean, SnippetRun, Void>() {
+            // private final BiFunction<Boolean, SnippetRun, Void> next = chain;
+            //
+            // @Override
+            // public Void apply(Boolean valid, SnippetRun sr) {
+            // if (valid && sr.getException() != null && areMixedArrays(sr.getParameters())) {
+            // return null;
+            // }
+            // return next.apply(valid, sr);
+            // }
+            //
+            // private boolean areMixedArrays(List<? extends Value> args) {
+            // for (Value arg : args) {
+            // if (!arg.hasArrayElements()) {
+            // return false;
+            // }
+            // boolean str = false;
+            // boolean num = false;
+            // for (int i = 0; i < arg.getArraySize(); i++) {
+            // TypeDescriptor td = TypeDescriptor.forValue(arg.getArrayElement(i));
+            // str |= TypeDescriptor.STRING.isAssignable(td);
+            // num |= TypeDescriptor.NUMBER.isAssignable(td) ||
+            // TypeDescriptor.BOOLEAN.isAssignable(td);
+            // }
+            // if ((!str & !num) || (str ^ num)) {
+            // return false;
+            // }
+            // }
+            // return !args.isEmpty();
+            // }
+            // };
+            // return this;
+            // }
 
             RResultVerifier build() {
                 return new RResultVerifier(expectedParameterTypes, chain);
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 1109e690af21d63fa98a86560ab9f1f98f5f1b82..9361a87061f49288e28b4b05f00d921138e3f3e9 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
@@ -143218,42 +143218,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') }
@@ -143268,62 +143268,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"
 
@@ -143344,108 +143313,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#
@@ -143557,1237 +143530,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#
@@ -144815,105 +145291,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
 
@@ -144931,2730 +145427,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:
@@ -147662,14 +148224,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:
@@ -147677,279 +148239,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) }
@@ -147988,89 +148526,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#
@@ -150334,555 +150872,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#
@@ -150893,42 +151419,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"
 
@@ -150936,475 +151462,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#
@@ -152919,7 +153453,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"
 
@@ -152930,20 +153464,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"
 
@@ -152954,20 +153488,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"
 
@@ -152978,20 +153512,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"
 
@@ -153002,20 +153536,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"
 
@@ -153026,20 +153560,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"
 
@@ -153050,20 +153584,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"
 
@@ -153074,20 +153608,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"
 
@@ -153098,20 +153632,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"
 
@@ -153122,20 +153656,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"
 
@@ -153146,20 +153680,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"
 
@@ -153170,20 +153704,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"
 
@@ -153194,20 +153728,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"
 
@@ -153218,20 +153752,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"
 
@@ -153242,20 +153776,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"
 
@@ -153266,20 +153800,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"
 
@@ -153290,20 +153824,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
 
@@ -153314,20 +153848,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
 
@@ -153338,20 +153872,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
 
@@ -153362,20 +153896,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
 
@@ -153386,20 +153920,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
 
@@ -153410,20 +153944,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
 
@@ -153434,20 +153968,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
 
@@ -153458,20 +153992,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
 
@@ -153482,20 +154016,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
 
@@ -153506,20 +154040,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
 
@@ -153530,20 +154064,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
 
@@ -153554,20 +154088,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
 
@@ -153578,20 +154112,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
 
@@ -153602,20 +154136,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
 
@@ -153626,20 +154160,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
 
@@ -153650,20 +154184,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
 
@@ -153674,20 +154208,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
 
@@ -153698,20 +154232,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
 
@@ -153722,20 +154256,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
 
@@ -153746,20 +154280,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
 
@@ -153770,20 +154304,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
 
@@ -153794,20 +154328,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
 
@@ -153818,20 +154352,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
 
@@ -153842,20 +154376,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
 
@@ -153866,20 +154400,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
 
@@ -153890,20 +154424,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
 
@@ -153914,20 +154448,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
 
@@ -153938,20 +154472,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
 
@@ -153962,20 +154496,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
 
@@ -153986,20 +154520,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
 
@@ -154010,20 +154544,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
 
@@ -154034,20 +154568,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
 
@@ -154058,20 +154592,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
 
@@ -154082,20 +154616,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
 
@@ -154106,20 +154640,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
 
@@ -154130,20 +154664,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
 
@@ -154154,20 +154688,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
 
@@ -154178,20 +154712,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
 
@@ -154202,20 +154736,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
 
@@ -154226,20 +154760,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
 
@@ -154250,20 +154784,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
 
@@ -154274,20 +154808,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
 
@@ -154298,20 +154832,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
 
@@ -154322,20 +154856,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
 
@@ -154346,20 +154880,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
 
@@ -154370,20 +154904,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
 
@@ -154394,20 +154928,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
 
@@ -154418,20 +154952,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
 
@@ -154442,16 +154976,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#
@@ -154611,68 +155145,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..8f7b396e2d8941bb0b11753b031745abb9e1f23f 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").allowAllAccess(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..9e521c524e63104c0c21a01208cabe7b43dace06 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").allowAllAccess(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").allowAllAccess(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 0ab685c7b64d96f98f25aba67af687383d92efff..29f1efb24bc2db60993d07b689961cd233e59d3a 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
@@ -36,6 +36,7 @@ import java.io.File;
 import org.junit.After;
 import static org.junit.Assert.assertTrue;
 
+@SuppressWarnings("deprecation")
 public class TestInterop extends TestBase {
 
     private static final SeekableMemoryByteChannel CHANNEL = new SeekableMemoryByteChannel();
@@ -52,11 +53,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,60 +68,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')");
-    }
-
-    @Test
-    public void testHelp() {
-        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");
-    }
-
-    private static void assertHelpResult(String result, String startsWith, String... contains) {
-        if (startsWith != null) {
-            assertTrue(result.startsWith(startsWith));
-        }
-        for (String s : contains) {
-            assertTrue(result.contains(s));
-        }
+        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')");
     }
 
     /**
@@ -149,7 +118,6 @@ public class TestInterop extends TestBase {
                     new TestJavaObject("testStringArray", new String[]{"a", "", "foo"})};
 
     // TODO: export/importSymbol
-    @SuppressWarnings("deprecation")
     @Override
     public void addPolyglotSymbols(org.graalvm.polyglot.Context context) {
         for (TestJavaObject t : TestInterop.testJavaObjects) {
@@ -160,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" +
@@ -178,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
new file mode 100644
index 0000000000000000000000000000000000000000..1c58782ea3502a5cf2c2b42793e0514f49c11e83
--- /dev/null
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/utils/TestHelp.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package com.oracle.truffle.r.test.library.utils;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+import com.oracle.truffle.r.runtime.context.RContext.ContextKind;
+import com.oracle.truffle.r.test.TestBase;
+
+public class TestHelp extends TestBase {
+    @Test
+    public void testInteropHelp() {
+        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
+    public void testGrDevicesHelp() {
+        assertHelpResult(fastREval("?svg.off", ContextKind.SHARE_PARENT_RW, false), "==== R Help on ‘svg.off’ ====", "SVG");
+        assertHelpResult(fastREval("help(svg.off)", ContextKind.SHARE_PARENT_RW, false), "==== R Help on ‘svg.off’ ====", "SVG");
+    }
+
+    private static void assertHelpResult(String result, String startsWith, String... contains) {
+        if (startsWith != null) {
+            assertTrue(result.startsWith(startsWith));
+        }
+        for (String s : contains) {
+            assertTrue(result.contains(s));
+        }
+    }
+}
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/copyrights/overrides b/mx.fastr/copyrights/overrides
index 7b0d3d3e6faed594cd935beb1abb230ed702db62..33d09ed2aaff7d8e73a323158792b8f460dc9289 100644
--- a/mx.fastr/copyrights/overrides
+++ b/mx.fastr/copyrights/overrides
@@ -957,7 +957,6 @@ com.oracle.truffle.r.pkgs/rJava/src/java/ArrayDimensionException.java,rjava.copy
 com.oracle.truffle.r.pkgs/rJava/src/java/ArrayWrapper.java,rjava.copyright
 com.oracle.truffle.r.pkgs/rJava/src/java/DummyPoint.java,rjava.copyright
 com.oracle.truffle.r.pkgs/rJava/src/java/FlatException.java,rjava.copyright
-com.oracle.truffle.r.pkgs/rJava/src/java/Makefile,rjava.copyright
 com.oracle.truffle.r.pkgs/rJava/src/java/NotAnArrayException.java,rjava.copyright
 com.oracle.truffle.r.pkgs/rJava/src/java/NotComparableException.java,rjava.copyright
 com.oracle.truffle.r.pkgs/rJava/src/java/ObjectArrayException.java,rjava.copyright
diff --git a/mx.fastr/suite.py b/mx.fastr/suite.py
index 3d7ca02b4b00d7c08a2ce76cafbfbc1b28b5dd72..d3d1571cabf4e45d91cec7f91d3332c4109c7e85 100644
--- a/mx.fastr/suite.py
+++ b/mx.fastr/suite.py
@@ -7,7 +7,7 @@ suite = {
             {
                "name" : "truffle",
                "subdir" : True,
-               "version" : "3760adf8d12c471782649e2fc2430f7647a0eda1",
+               "version" : "9f0ae389ca39964e2328336ecde49982804b53f8",
                "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" : {