Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameTest.java @ 9258:07f8d136a05e
Truffle API changes for the Frame API. Introduction of Assumptions class.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 23 Apr 2013 15:34:06 +0200 |
parents | f07cafa29db1 |
children | cd1a1d92b3e3 |
comparison
equal
deleted
inserted
replaced
9257:542712a4732a | 9258:07f8d136a05e |
---|---|
62 | 62 |
63 @Test | 63 @Test |
64 public void test() { | 64 public void test() { |
65 TruffleRuntime runtime = Truffle.getRuntime(); | 65 TruffleRuntime runtime = Truffle.getRuntime(); |
66 FrameDescriptor frameDescriptor = new FrameDescriptor(); | 66 FrameDescriptor frameDescriptor = new FrameDescriptor(); |
67 FrameSlot slot = frameDescriptor.addFrameSlot("localVar", Integer.class); | 67 FrameSlot slot = frameDescriptor.addFrameSlot("localVar", int.class); |
68 TestRootNode rootNode = new TestRootNode(new AssignLocal(slot), new ReadLocal(slot)); | 68 TestRootNode rootNode = new TestRootNode(new AssignLocal(slot), new ReadLocal(slot)); |
69 CallTarget target = runtime.createCallTarget(rootNode, frameDescriptor); | 69 CallTarget target = runtime.createCallTarget(rootNode, frameDescriptor); |
70 Object result = target.call(); | 70 Object result = target.call(); |
71 Assert.assertEquals(42, result); | 71 Assert.assertEquals(42, result); |
72 } | 72 } |
107 super(slot); | 107 super(slot); |
108 } | 108 } |
109 | 109 |
110 @Override | 110 @Override |
111 int execute(VirtualFrame frame) { | 111 int execute(VirtualFrame frame) { |
112 frame.setInt(slot, 42); | 112 try { |
113 frame.setInt(slot, 42); | |
114 } catch (FrameSlotTypeException e) { | |
115 throw new IllegalStateException(e); | |
116 } | |
113 return 0; | 117 return 0; |
114 } | 118 } |
115 } | 119 } |
116 | 120 |
117 class ReadLocal extends FrameSlotNode { | 121 class ReadLocal extends FrameSlotNode { |
120 super(slot); | 124 super(slot); |
121 } | 125 } |
122 | 126 |
123 @Override | 127 @Override |
124 int execute(VirtualFrame frame) { | 128 int execute(VirtualFrame frame) { |
125 return frame.getInt(slot); | 129 try { |
130 return frame.getInt(slot); | |
131 } catch (FrameSlotTypeException e) { | |
132 throw new IllegalStateException(e); | |
133 } | |
126 } | 134 } |
127 } | 135 } |
128 } | 136 } |