com.eclipsesource.v8.V8.executeIntegerFunction()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(7.3k)|赞(0)|评价(0)|浏览(76)

本文整理了Java中com.eclipsesource.v8.V8.executeIntegerFunction()方法的一些代码示例,展示了V8.executeIntegerFunction()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。V8.executeIntegerFunction()方法的具体详情如下:
包路径:com.eclipsesource.v8.V8
类名称:V8
方法名:executeIntegerFunction

V8.executeIntegerFunction介绍

暂无

代码示例

代码示例来源:origin: eclipsesource/J2V8

/**
 * Invoke a JavaScript function and return the result as a integer. If the
 * result is not an integer, or does not exist, then V8ResultUndefined is thrown.
 *
 * @param name The name of the JS Function to call.
 *
 * @param parameters The parameters to pass to the function. Parameters must be released.
 *
 * @return An integer representing the result of the function call or V8ResultUndefined
 * if the result is not an integer.
 */
public int executeIntegerFunction(final String name, final V8Array parameters) {
  v8.checkThread();
  checkReleased();
  v8.checkRuntime(parameters);
  long parametersHandle = parameters == null ? 0 : parameters.getHandle();
  return v8.executeIntegerFunction(v8.getV8RuntimePtr(), getHandle(), name, parametersHandle);
}

代码示例来源:origin: eclipsesource/J2V8

@Test(expected = V8ScriptExecutionException.class)
public void testV8ScriptExceptionIntCall() {
  v8.executeVoidScript(errorFunction);
  v8.executeIntegerFunction("myFunction", null);
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testObjectMethodReturnsInteger() {
  ICallback callback = mock(ICallback.class);
  doReturn(7).when(callback).objectMethodNoParameter();
  v8.registerJavaMethod(callback, "objectMethodNoParameter", "foo", new Class<?>[] {});
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(7, result);
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testInvokeCallbackWithReturnValue() {
  JavaCallback callback = mock(JavaCallback.class);
  v8.registerJavaMethod(callback, "foo");
  doAnswer(constructAnswer(null, null, 77)).when(callback).invoke(any(V8Object.class), any(V8Array.class));
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(77, result);
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testMultipleScriptCallsPermitted() {
  v8.executeVoidScript("function foo() {return 1+1}");
  v8.executeVoidScript("function bar() {return foo() + 1}");
  int foo = v8.executeIntegerFunction("foo", null);
  int bar = v8.executeIntegerFunction("bar", null);
  assertEquals(2, foo);
  assertEquals(3, bar);
}

代码示例来源:origin: eclipsesource/J2V8

@Test(expected = V8ResultUndefined.class)
public void testResultUndefinedForWrongReturnTypeOfIntFunction() {
  v8.executeIntegerScript("function foo() {return 'test';}; 42");
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(3, result);
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testVoidScriptWithName() {
  v8.executeVoidScript("function foo() {return 1+1}", "name", 1);
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(2, result);
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testSimpleIntFunctionWithDouble() {
  v8.executeVoidScript("function foo() {return 1.2+2.9;};");
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(4, result);
}

代码示例来源:origin: eclipsesource/J2V8

/*** Int Function ***/
@Test
public void testSimpleIntFunction() {
  v8.executeIntegerScript("function foo() {return 1+2;}; 42");
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(3, result);
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testIntFunctionCallNullParameters() {
  v8.executeVoidScript("function foo() {return 7;}");
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(7, result);
}

代码示例来源:origin: eclipsesource/J2V8

/*** Void Script ***/
@Test
public void testSimpleVoidScript() {
  v8.executeVoidScript("function foo() {return 1+1}");
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(2, result);
}

代码示例来源:origin: eclipsesource/J2V8

@Test(expected = V8ResultUndefined.class)
public void testResultUndefinedForNoReturnInIntFunction() {
  v8.executeIntegerScript("function foo() {}; 42");
  int result = v8.executeIntegerFunction("foo", null);
  assertEquals(3, result);
}

代码示例来源:origin: eclipsesource/J2V8

/**
 * Invoke a JavaScript function and return the result as a integer. If the
 * result is not an integer, or does not exist, then V8ResultUndefined is thrown.
 *
 * @param name The name of the JS Function to call.
 *
 * @param parameters The parameters to pass to the function. Parameters must be released.
 *
 * @return An integer representing the result of the function call or V8ResultUndefined
 * if the result is not an integer.
 */
public int executeIntegerFunction(final String name, final V8Array parameters) {
  v8.checkThread();
  checkReleased();
  v8.checkRuntime(parameters);
  long parametersHandle = parameters == null ? 0 : parameters.getHandle();
  return v8.executeIntegerFunction(v8.getV8RuntimePtr(), getHandle(), name, parametersHandle);
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testIntFunctionCallNoParameters() {
  v8.executeVoidScript("function foo() {return 7;}");
  V8Array parameters = new V8Array(v8);
  int result = v8.executeIntegerFunction("foo", parameters);
  assertEquals(7, result);
  parameters.close();
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testStringParameter() {
  v8.executeVoidScript("function countLength(str) {return str.length;}");
  V8Array parameters = new V8Array(v8);
  parameters.push("abcdefghijklmnopqrstuvwxyz");
  assertEquals(26, v8.executeIntegerFunction("countLength", parameters));
  parameters.close();
}

代码示例来源:origin: eclipsesource/J2V8

@Test(expected = V8ResultUndefined.class)
public void testIntegerFunctionNotInteger() {
  v8.executeVoidScript("function add(x, y) {return 'bar';}");
  V8Array parameters = new V8Array(v8);
  parameters.push(7);
  parameters.push(8);
  try {
    v8.executeIntegerFunction("add", parameters);
  } finally {
    parameters.close();
  }
}

代码示例来源:origin: eclipsesource/J2V8

@Test(expected = V8ResultUndefined.class)
public void testIntegerFunctionNoReturn() {
  v8.executeVoidScript("function add(x, y) {;}");
  V8Array parameters = new V8Array(v8);
  parameters.push(7);
  parameters.push(8);
  try {
    v8.executeIntegerFunction("add", parameters);
  } finally {
    parameters.close();
  }
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testIntFunction() {
  v8.executeVoidScript("function add(x, y) {return x+y;}");
  V8Array parameters = new V8Array(v8);
  parameters.push(7);
  parameters.push(8);
  int result = v8.executeIntegerFunction("add", parameters);
  assertEquals(15, result);
  parameters.close();
}

代码示例来源:origin: eclipsesource/J2V8

@Test(expected = Error.class)
public void testSharingObjectsAsFunctionCallParameters_IntegerFunction() {
  V8 engine = null;
  V8 engine2 = null;
  try {
    engine = V8.createV8Runtime();
    engine2 = V8.createV8Runtime();
    engine.executeScript("b = function(param){return param;}");
    engine2.executeScript("a = [7];");
    V8Array a = (V8Array) engine2.get("a");
    engine.executeIntegerFunction("b", a);
  } finally {
    engine.release(false);
    engine2.release(false);
  }
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testObjectParameter() {
  V8Object obj1 = new V8Object(v8);
  V8Object obj2 = new V8Object(v8);
  obj1.add("first", "John");
  obj1.add("last", "Smith");
  obj1.add("age", 7);
  obj2.add("first", "Tim");
  obj2.add("last", "Jones");
  obj2.add("age", 8);
  V8Array parameters = new V8Array(v8);
  parameters.push(obj1);
  parameters.push(obj2);
  v8.executeVoidScript("function add(p1, p2) {return p1.age + p2['age'];}");
  int result = v8.executeIntegerFunction("add", parameters);
  assertEquals(15, result);
  obj1.close();
  obj2.close();
  parameters.close();
}

相关文章

微信公众号

最新文章

更多

V8类方法