本文整理汇总了Java中org.mozilla.javascript.ContinuationPending类的典型用法代码示例。如果您正苦于以下问题:Java ContinuationPending类的具体用法?Java ContinuationPending怎么用?Java ContinuationPending使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ContinuationPending类属于org.mozilla.javascript包,在下文中一共展示了ContinuationPending类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: testScriptWithContinuations
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public void testScriptWithContinuations() {
Context cx = Context.enter();
try {
cx.setOptimizationLevel(-1); // must use interpreter mode
Script script = cx.compileString("myObject.f(3) + 1;",
"test source", 1, null);
cx.executeScriptWithContinuations(script, globalScope);
fail("Should throw ContinuationPending");
} catch (ContinuationPending pending) {
Object applicationState = pending.getApplicationState();
assertEquals(new Integer(3), applicationState);
int saved = (Integer) applicationState;
Object result = cx.resumeContinuation(pending.getContinuation(), globalScope, saved + 1);
assertEquals(5, ((Number)result).intValue());
} finally {
Context.exit();
}
}
开发者ID:middle2tw,项目名称:whackpad,代码行数:21,代码来源:ContinuationsApiTest.java
示例2: testScriptWithNestedContinuations
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public void testScriptWithNestedContinuations() {
Context cx = Context.enter();
try {
cx.setOptimizationLevel(-1); // must use interpreter mode
Script script = cx.compileString("myObject.g( myObject.f(1) ) + 2;",
"test source", 1, null);
cx.executeScriptWithContinuations(script, globalScope);
fail("Should throw ContinuationPending");
} catch (ContinuationPending pending) {
try {
Object applicationState = pending.getApplicationState();
assertEquals(new Integer(1), applicationState);
int saved = (Integer) applicationState;
cx.resumeContinuation(pending.getContinuation(), globalScope, saved + 1);
fail("Should throw another ContinuationPending");
} catch (ContinuationPending pending2) {
Object applicationState2 = pending2.getApplicationState();
assertEquals(new Integer(4), applicationState2);
int saved2 = (Integer) applicationState2;
Object result2 = cx.resumeContinuation(pending2.getContinuation(), globalScope, saved2 + 2);
assertEquals(8, ((Number)result2).intValue());
}
} finally {
Context.exit();
}
}
开发者ID:middle2tw,项目名称:whackpad,代码行数:27,代码来源:ContinuationsApiTest.java
示例3: testFunctionWithContinuations
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public void testFunctionWithContinuations() {
Context cx = Context.enter();
try {
cx.setOptimizationLevel(-1); // must use interpreter mode
cx.evaluateString(globalScope,
"function f(a) { return myObject.f(a); }",
"function test source", 1, null);
Function f = (Function) globalScope.get("f", globalScope);
Object[] args = { 7 };
cx.callFunctionWithContinuations(f, globalScope, args);
fail("Should throw ContinuationPending");
} catch (ContinuationPending pending) {
Object applicationState = pending.getApplicationState();
assertEquals(7, ((Number)applicationState).intValue());
int saved = (Integer) applicationState;
Object result = cx.resumeContinuation(pending.getContinuation(), globalScope, saved + 1);
assertEquals(8, ((Number)result).intValue());
} finally {
Context.exit();
}
}
开发者ID:middle2tw,项目名称:whackpad,代码行数:22,代码来源:ContinuationsApiTest.java
示例4: test
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
@Test
public void test() {
String source = "var state = '';";
source += "function A(){state += 'A'}";
source += "function B(){state += 'B'}";
source += "function C(){state += 'C'}";
source += "try { A(); continuation(); B() } finally { C() }";
source += "state";
String[] functions = new String[] { "continuation" };
scope.defineFunctionProperties(functions, Bug685403Test.class,
ScriptableObject.DONTENUM);
Object state = null;
Script script = cx.compileString(source, "", 1, null);
try {
cx.executeScriptWithContinuations(script, scope);
fail("expected ContinuationPending exception");
} catch (ContinuationPending pending) {
state = cx.resumeContinuation(pending.getContinuation(), scope, "");
}
assertEquals("ABC", state);
}
开发者ID:F43nd1r,项目名称:rhino-android,代码行数:24,代码来源:Bug685403Test.java
示例5: continueExecuting
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
private void continueExecuting(Sleeping script) {
try {
curScript = new Executing(script.script, true);
context.resumeContinuation(script.continuation, script.script.getScope(), null);
curScript = new Executing(script.script, false);
BasicScript bsc = script.script;
if (bsc.hasOnExit())
bsc.getOnExit().call(context, bsc.getScope(), bsc.getScope(), new Object[0]);
}
catch(ContinuationPending p) { }
catch(Exception e) {
scriptCrash(script.script, e);
}
finally {
curScript = null;
}
}
开发者ID:DavidGoldman,项目名称:MinecraftScripting,代码行数:18,代码来源:ScriptCore.java
示例6: startExecuting
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
private void startExecuting(BasicScript script) {
try {
curScript = new Executing(script, true);
context.callFunctionWithContinuations(script.getMain(), script.getScope(), new Object[0]);
curScript = new Executing(script, false);
if (script.hasOnExit())
script.getOnExit().call(context, script.getScope(), script.getScope(), new Object[0]);
}
catch(ContinuationPending p) { }
catch(Exception e) {
scriptCrash(script, e);
}
finally {
curScript = null;
}
}
开发者ID:DavidGoldman,项目名称:MinecraftScripting,代码行数:17,代码来源:ScriptCore.java
示例7: f
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public int f(int a) {
Context cx = Context.enter();
try {
ContinuationPending pending = cx.captureContinuation();
pending.setApplicationState(a);
throw pending;
} finally {
Context.exit();
}
}
开发者ID:middle2tw,项目名称:whackpad,代码行数:11,代码来源:ContinuationsApiTest.java
示例8: g
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public int g(int a) {
Context cx = Context.enter();
try {
ContinuationPending pending = cx.captureContinuation();
pending.setApplicationState(2*a);
throw pending;
} finally {
Context.exit();
}
}
开发者ID:middle2tw,项目名称:whackpad,代码行数:11,代码来源:ContinuationsApiTest.java
示例9: testScriptWithMultipleContinuations
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public void testScriptWithMultipleContinuations() {
Context cx = Context.enter();
try {
cx.setOptimizationLevel(-1); // must use interpreter mode
Script script = cx.compileString(
"myObject.f(3) + myObject.g(3) + 2;",
"test source", 1, null);
cx.executeScriptWithContinuations(script, globalScope);
fail("Should throw ContinuationPending");
} catch (ContinuationPending pending) {
try {
Object applicationState = pending.getApplicationState();
assertEquals(new Integer(3), applicationState);
int saved = (Integer) applicationState;
cx.resumeContinuation(pending.getContinuation(), globalScope, saved + 1);
fail("Should throw another ContinuationPending");
} catch (ContinuationPending pending2) {
Object applicationState2 = pending2.getApplicationState();
assertEquals(new Integer(6), applicationState2);
int saved2 = (Integer) applicationState2;
Object result2 = cx.resumeContinuation(pending2.getContinuation(), globalScope, saved2 + 1);
assertEquals(13, ((Number)result2).intValue());
}
} finally {
Context.exit();
}
}
开发者ID:middle2tw,项目名称:whackpad,代码行数:28,代码来源:ContinuationsApiTest.java
示例10: h
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public String h() {
Context cx = Context.enter();
try {
ContinuationPending pending = cx.captureContinuation();
pending.setApplicationState("2*3");
throw pending;
} finally {
Context.exit();
}
}
开发者ID:F43nd1r,项目名称:rhino-android,代码行数:11,代码来源:ContinuationsApiTest.java
示例11: testScriptWithMultipleContinuations
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public void testScriptWithMultipleContinuations() {
Context cx = Context.enter();
try {
cx.setOptimizationLevel(-1); // must use interpreter mode
Script script = cx.compileString(
"myObject.f(3) + myObject.g(3) + 2;",
"test source", 1, null);
cx.executeScriptWithContinuations(script, globalScope);
fail("Should throw ContinuationPending");
} catch (ContinuationPending pending) {
try {
Object applicationState = pending.getApplicationState();
assertEquals(new Integer(3), applicationState);
int saved = (Integer) applicationState;
cx.resumeContinuation(pending.getContinuation(), globalScope, saved + 1);
fail("Should throw another ContinuationPending");
} catch (ContinuationPending pending2) {
Object applicationState2 = pending2.getApplicationState();
assertEquals(new Integer(6), applicationState2);
int saved2 = (Integer) applicationState2;
Object result2 = cx.resumeContinuation(pending2.getContinuation(), globalScope, saved2 + 1);
assertEquals(13, ((Number)result2).intValue());
}
} finally {
Context.exit();
}
}
开发者ID:F43nd1r,项目名称:rhino-android,代码行数:28,代码来源:ContinuationsApiTest.java
示例12: testSerializationWithContinuations
import org.mozilla.javascript.ContinuationPending; //导入依赖的package包/类
public void testSerializationWithContinuations()
throws IOException, ClassNotFoundException
{
Context cx = Context.enter();
try {
cx.setOptimizationLevel(-1); // must use interpreter mode
cx.evaluateString(globalScope,
"function f(a) { var k = myObject.f(a); var t = []; return k; }",
"function test source", 1, null);
Function f = (Function) globalScope.get("f", globalScope);
Object[] args = { 7 };
cx.callFunctionWithContinuations(f, globalScope, args);
fail("Should throw ContinuationPending");
} catch (ContinuationPending pending) {
// serialize
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ScriptableOutputStream sos = new ScriptableOutputStream(baos, globalScope);
sos.writeObject(globalScope);
sos.writeObject(pending.getContinuation());
sos.close();
baos.close();
byte[] serializedData = baos.toByteArray();
// deserialize
ByteArrayInputStream bais = new ByteArrayInputStream(serializedData);
ScriptableInputStream sis = new ScriptableInputStream(bais, globalScope);
globalScope = (Scriptable) sis.readObject();
Object continuation = sis.readObject();
sis.close();
bais.close();
Object result = cx.resumeContinuation(continuation, globalScope, 8);
assertEquals(8, ((Number)result).intValue());
} finally {
Context.exit();
}
}
开发者ID:F43nd1r,项目名称:rhino-android,代码行数:38,代码来源:ContinuationsApiTest.java
注:本文中的org.mozilla.javascript.ContinuationPending类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论