Mercurial > hg > truffle
annotate truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/BoxedStringTest.java @ 22529:2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Wed, 06 Jan 2016 10:59:58 +0100 |
parents | truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/PrimitiveArrayInteropTest.java@0d36601f233e |
children |
rev | line source |
---|---|
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
1 /* |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
4 * |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. Oracle designates this |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
8 * particular file as subject to the "Classpath" exception as provided |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
9 * by Oracle in the LICENSE file that accompanied this code. |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
10 * |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
11 * This code is distributed in the hope that it will be useful, but WITHOUT |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
14 * version 2 for more details (a copy is included in the LICENSE file that |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
15 * accompanied this code). |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
16 * |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU General Public License version |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
18 * 2 along with this work; if not, write to the Free Software Foundation, |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
20 * |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
22 * or visit www.oracle.com if you need additional information or have any |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
23 * questions. |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
24 */ |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
25 package com.oracle.truffle.api.interop.java.test; |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
26 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
27 import com.oracle.truffle.api.CallTarget; |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
28 import com.oracle.truffle.api.Truffle; |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
29 import com.oracle.truffle.api.interop.ForeignAccess; |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
30 import com.oracle.truffle.api.interop.Message; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
31 import com.oracle.truffle.api.interop.TruffleObject; |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
32 import com.oracle.truffle.api.interop.java.JavaInterop; |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
33 import com.oracle.truffle.api.nodes.RootNode; |
22241
14e6dfb1ef05
Truffle/Testing: massive rework of tests to accommodate recent instrumentation change with respect to "applyInstrumentation"
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
22157
diff
changeset
|
34 |
22157
dc83cc1f94f2
Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22135
diff
changeset
|
35 import static org.junit.Assert.assertEquals; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
36 import org.junit.Before; |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
37 import org.junit.Test; |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
38 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
39 public class BoxedStringTest implements TruffleObject, ForeignAccess.Factory10 { |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
40 public interface ExactMatchInterop { |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
41 String stringValue(); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
42 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
43 char charValue(); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
44 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
45 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
46 private String value; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
47 private ExactMatchInterop interop; |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
48 |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
49 @Before |
22266
0d36601f233e
Merge revised Instrumentation framework into the Polyglot API
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
22241
diff
changeset
|
50 public void initObjects() { |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
51 interop = JavaInterop.asJavaObject(ExactMatchInterop.class, this); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
52 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
53 |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
54 @Test |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
55 public void convertToString() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
56 value = "Hello"; |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
57 assertEquals("Hello", interop.stringValue()); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
58 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
59 |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
60 @Test |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
61 public void convertToChar() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
62 value = "W"; |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
63 assertEquals('W', interop.charValue()); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
64 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
65 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
66 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
67 public ForeignAccess getForeignAccess() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
68 return ForeignAccess.create(BoxedStringTest.class, this); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
69 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
70 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
71 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
72 public CallTarget accessIsNull() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
73 return Truffle.getRuntime().createCallTarget(RootNode.createConstantNode(false)); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
74 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
75 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
76 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
77 public CallTarget accessIsExecutable() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
78 return Truffle.getRuntime().createCallTarget(RootNode.createConstantNode(false)); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
79 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
80 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
81 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
82 public CallTarget accessIsBoxed() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
83 return Truffle.getRuntime().createCallTarget(RootNode.createConstantNode(true)); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
84 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
85 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
86 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
87 public CallTarget accessHasSize() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
88 return null; |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
89 } |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
90 |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
91 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
92 public CallTarget accessGetSize() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
93 return null; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
94 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
95 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
96 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
97 public CallTarget accessUnbox() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
98 return Truffle.getRuntime().createCallTarget(RootNode.createConstantNode(value)); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
99 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
100 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
101 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
102 public CallTarget accessRead() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
103 return Truffle.getRuntime().createCallTarget(RootNode.createConstantNode(this)); |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
104 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
105 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
106 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
107 public CallTarget accessWrite() { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
108 return null; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
109 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
110 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
111 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
112 public CallTarget accessExecute(int argumentsLength) { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
113 return null; |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
114 } |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
115 |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
116 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
117 public CallTarget accessInvoke(int argumentsLength) { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
118 return null; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
119 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
120 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
121 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
122 public CallTarget accessNew(int argumentsLength) { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
123 return null; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
124 } |
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
125 |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
126 @Override |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
127 public CallTarget accessMessage(Message unknown) { |
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
128 return null; |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
129 } |
22529
2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22266
diff
changeset
|
130 |
22135
e70b20f4bb00
Implementing API for Java/Truffle interop. Based around JavaInterop.asJavaObject and JavaInterop.asTruffleObject methods. Connected to TruffleVM via Symbol.as(Class) wrapper. Verified by extended TCK.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff
changeset
|
131 } |