sourceLocation.getInteger(POSITION), sourceLocation.getInteger(LINE), sourceLocation.getInteger(COLUMN), sourceLocation.getString(SOURCE_TEXT)); } finally {
private void sendCompileEvent(final V8Object eventData) throws IOException { if (!isConnected()) { return; } //send event to debugger int type = eventData.getInteger("type_"); V8Object script = eventData.getObject("script_"); V8Object event = null; V8Array params = new V8Array(runtime); try { params.push(script); params.push(type); event = debugObject.executeObjectFunction(MAKE_COMPILE_EVENT, params); String json = event.executeStringFunction("toJSONProtocol", null); if (traceCommunication) { System.out.println("Sending event (CompileEvent):\n" + json.substring(0, Math.min(json.length(), 1000))); } if (json.length() > 0) { sendJson(json); } } finally { params.close(); script.close(); if (event != null) { event.close(); } } }
int breakId = execState.getInteger("break_id"); V8Array breakpointsHit = eventData.getArray("break_points_hit_"); V8Object event = null;
@Test(expected = UnsupportedOperationException.class) public void testGetIntegerUndefined() { V8Object undefined = v8.getObject("object"); undefined.getInteger("foo"); }
@Test(expected = IllegalArgumentException.class) public void testGetNullKey_Integer() { V8Object v8Object = new V8Object(v8); try { v8Object.getInteger(null); } finally { v8Object.close(); } }
@Test(expected = V8ResultUndefined.class) public void testGetIntegerNotFound() { V8Object v8Object = new V8Object(v8); v8Object.add("hello", 7); try { v8Object.getInteger("goodbye"); } finally { v8Object.close(); } }
@Test(expected = V8ResultUndefined.class) public void testGetIntegerNotInteger() { V8Object v8Object = new V8Object(v8); v8Object.add("hello", "string"); try { v8Object.getInteger("hello"); } finally { v8Object.close(); } }
@Override public Object answer(final InvocationOnMock invocation) { Object[] args = invocation.getArguments(); assertEquals(1, args.length); assertEquals("john", ((V8Object) args[0]).getString("first")); assertEquals("smith", ((V8Object) args[0]).getString("last")); assertEquals(7, ((V8Object) args[0]).getInteger("age")); return null; } }).when(callback).voidMethodWithObjectParameter(any(V8Object.class));
@Test public void testAddInt() { V8Object v8Object = new V8Object(v8); v8Object.add("hello", 7); assertEquals(7, v8Object.getInteger("hello")); v8Object.close(); }
/*** Execute Object Function ***/ @Test public void testObjectScript() { v8.executeVoidScript("function foo() { return { x : 7 }} "); V8Object result = v8.executeObjectFunction("foo", null); assertEquals(7, result.getInteger("x")); result.close(); }
/*** Get Primitives ***/ @Test public void testGetIntegerV8Object() { v8.executeVoidScript("foo = {bar: 7}"); V8Object foo = v8.getObject("foo"); assertEquals(7, foo.getInteger("bar")); foo.close(); }
@Test public void testNestedInteger() { v8.executeVoidScript("foo = {bar: {key:6}}"); V8Object foo = v8.getObject("foo"); V8Object bar = foo.getObject("bar"); assertEquals(6, bar.getInteger("key")); foo.close(); bar.close(); }
@Test public void testObjectFunctionCallNoParameters() { v8.executeVoidScript("function foo() {return {bar:8};}"); V8Array parameters = new V8Array(v8); V8Object result = v8.executeObjectFunction("foo", parameters); assertEquals(8, result.getInteger("bar")); parameters.close(); result.close(); }
@Test public void testVoidFunctionCallOnObject() { v8.executeVoidScript("pointer = {'x':0,'y':0};"); v8.executeVoidScript("function setPoint(x, y) {pointer.x = x;pointer.y=y;}"); v8.executeVoidScript("pointer.pointSetter = setPoint;"); V8Object object = v8.getObject("pointer"); V8Array parameters = new V8Array(v8); parameters.push(8); parameters.push(9); object.executeVoidFunction("pointSetter", parameters); parameters.close(); assertEquals(8, object.getInteger("x")); assertEquals(9, object.getInteger("y")); object.close(); }
/**** Get Object ****/ @Test public void testArrayGetObject() { V8Array array = v8.executeArrayScript("[{name : 'joe', age : 38 }];"); V8Object object = array.getObject(0); assertEquals("joe", object.getString("name")); assertEquals(38, object.getInteger("age")); array.close(); object.close(); }
@Test public void testObjectFunctionCallOnObject() { v8.executeVoidScript("function getPoint(x, y) {return {'x':x, 'y':y};}"); v8.executeVoidScript("pointer = {};"); v8.executeVoidScript("pointer.pointGetter = getPoint;"); V8Object object = v8.getObject("pointer"); V8Array parameters = new V8Array(v8); parameters.push(8); parameters.push(9); V8Object result = object.executeObjectFunction("pointGetter", parameters); parameters.close(); assertEquals(8, result.getInteger("x")); assertEquals(9, result.getInteger("y")); result.close(); object.close(); }
@Test public void testExports() throws IOException { assumeFalse(skipMessage, skipTest()); // conditional skip nodeJS.release(); File testScript = createTemporaryScriptFile("exports.foo=7", "testScript"); nodeJS = NodeJS.createNodeJS(); V8Object exports = nodeJS.require(testScript); runMessageLoop(); assertEquals(7, exports.getInteger("foo")); exports.close(); }
@Test public void testObjectFunctionCall() { v8.executeVoidScript("function getPerson(first, last, age) {return {'first':first, 'last':last, 'age':age};}"); V8Array parameters = new V8Array(v8); parameters.push("John"); parameters.push("Smith"); parameters.push(7); V8Object result = v8.executeObjectFunction("getPerson", parameters); assertEquals("John", result.getString("first")); assertEquals("Smith", result.getString("last")); assertEquals(7, result.getInteger("age")); parameters.close(); result.close(); }
@Test public void testVoidFunctionCall() { v8.executeVoidScript("function setPerson(first, last, age) {person = {'first':first, 'last':last, 'age':age};}"); V8Array parameters = new V8Array(v8); parameters.push("John"); parameters.push("Smith"); parameters.push(7); v8.executeVoidFunction("setPerson", parameters); V8Object result = v8.getObject("person"); assertEquals("John", result.getString("first")); assertEquals("Smith", result.getString("last")); assertEquals(7, result.getInteger("age")); parameters.close(); result.close(); }
@Test public void testFunctionCallWithObjectReturn() { v8.executeVoidScript("function getPerson(first, last, age) {return {'first':first, 'last':last, 'age':age};}"); V8Array parameters = new V8Array(v8); parameters.push("John"); parameters.push("Smith"); parameters.push(7); Object result = v8.executeFunction("getPerson", parameters); assertTrue(result instanceof V8Object); V8Object v8Object = (V8Object) result; assertEquals("John", v8Object.getString("first")); assertEquals("Smith", v8Object.getString("last")); assertEquals(7, v8Object.getInteger("age")); parameters.close(); v8Object.close(); }