• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ContinuationPending类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Action类代码示例发布时间:2022-05-23
下一篇:
Java LocalAttribute类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap