/** * Copyright (c) 2012-2016 André Bargull * Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms. * * <https://github.com/anba/es6draft> */ package com.github.anba.es6draft.test262; import static com.github.anba.es6draft.runtime.AbstractOperations.ToBoolean; import static org.junit.Assert.assertFalse; import com.github.anba.es6draft.runtime.ExecutionContext; import com.github.anba.es6draft.runtime.internal.Properties; import com.github.anba.es6draft.runtime.internal.ScriptException; import com.github.anba.es6draft.util.TestAssertions; /** * {@code $DONE} test helper function, replaces the definition from "doneprintHandle.js". */ public final class Test262Async { private boolean doneCalled = false; public boolean isDone() { return doneCalled; } @Properties.Function(name = "$DONE", arity = 0) public void done(ExecutionContext cx, Object argument) { assertFalse(doneCalled); doneCalled = true; if (ToBoolean(argument)) { // Directly throw an AssertionError to bypass the Promise machinery. throw TestAssertions.toAssertionError(cx, ScriptException.create(argument)); } } }