use of org.mozilla.javascript.ContextAction in project hackpad by dropbox.
the class TypeOfTest method testCustomizeTypeOf.
private void testCustomizeTypeOf(final String expected, final Scriptable obj) {
final ContextAction action = new ContextAction() {
public Object run(final Context context) {
final Scriptable scope = context.initStandardObjects();
scope.put("myObj", scope, obj);
return context.evaluateString(scope, "typeof myObj", "test script", 1, null);
}
};
doTest(expected, action);
}
use of org.mozilla.javascript.ContextAction in project hackpad by dropbox.
the class TypeOfTest method doTest.
private void doTest(String expected, final String script) {
final ContextAction action = new ContextAction() {
public Object run(final Context context) {
final Scriptable scope = context.initStandardObjects();
return context.evaluateString(scope, script, "test script", 1, null);
}
};
doTest(expected, action);
}
use of org.mozilla.javascript.ContextAction in project hackpad by dropbox.
the class TypeOfTest method doTest.
private void doTest(final int optimizationLevel, final String expected, final ContextAction action) {
Object o = new ContextFactory().call(new ContextAction() {
public Object run(final Context context) {
context.setOptimizationLevel(optimizationLevel);
return Context.toString(action.run(context));
}
});
assertEquals(expected, o);
}
use of org.mozilla.javascript.ContextAction in project hackpad by dropbox.
the class Utils method executeScript.
/**
* Execute the provided script in a fresh context as "myScript.js".
* @param script the script code
*/
static void executeScript(final String script, final int optimizationLevel) {
final ContextAction action = new ContextAction() {
public Object run(Context cx) {
final Scriptable scope = cx.initStandardObjects();
return cx.evaluateString(scope, script, "myScript.js", 1, null);
}
};
Utils.runWithOptimizationLevel(action, optimizationLevel);
}
use of org.mozilla.javascript.ContextAction in project hackpad by dropbox.
the class WriteReadOnlyPropertyTest method testWriteReadOnly.
void testWriteReadOnly(final boolean acceptWriteReadOnly) throws Exception {
final Method readMethod = Foo.class.getMethod("getMyProp", (Class[]) null);
final Foo foo = new Foo("hello");
foo.defineProperty("myProp", null, readMethod, null, ScriptableObject.EMPTY);
final String script = "foo.myProp = 123; foo.myProp";
final ContextAction action = new ContextAction() {
public Object run(final Context cx) {
final ScriptableObject top = cx.initStandardObjects();
ScriptableObject.putProperty(top, "foo", foo);
cx.evaluateString(top, script, "script", 0, null);
return null;
}
};
final ContextFactory contextFactory = new ContextFactory() {
@Override
protected boolean hasFeature(final Context cx, final int featureIndex) {
if (Context.FEATURE_STRICT_MODE == featureIndex) {
return !acceptWriteReadOnly;
}
return super.hasFeature(cx, featureIndex);
}
};
contextFactory.call(action);
}
Aggregations