2016-11-01 08:40:16 -07:00
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
#include "wren.h"
|
|
|
|
|
|
|
|
|
|
void resetStackAfterCallAbortRunTests(WrenVM* vm)
|
|
|
|
|
{
|
|
|
|
|
wrenEnsureSlots(vm, 1);
|
2018-07-15 20:09:41 -07:00
|
|
|
wrenGetVariable(vm, "./test/api/reset_stack_after_call_abort", "Test", 0);
|
2016-11-01 08:40:16 -07:00
|
|
|
WrenHandle* testClass = wrenGetSlotHandle(vm, 0);
|
|
|
|
|
|
|
|
|
|
WrenHandle* abortFiber = wrenMakeCallHandle(vm, "abortFiber()");
|
|
|
|
|
WrenHandle* afterConstruct = wrenMakeCallHandle(vm, "afterAbort(_,_)");
|
|
|
|
|
|
|
|
|
|
wrenEnsureSlots(vm, 1);
|
|
|
|
|
wrenSetSlotHandle(vm, 0, testClass);
|
|
|
|
|
wrenCall(vm, abortFiber);
|
|
|
|
|
|
|
|
|
|
wrenEnsureSlots(vm, 3);
|
|
|
|
|
wrenSetSlotHandle(vm, 0, testClass);
|
|
|
|
|
wrenSetSlotDouble(vm, 1, 1.0);
|
|
|
|
|
wrenSetSlotDouble(vm, 2, 2.0);
|
|
|
|
|
wrenCall(vm, afterConstruct);
|
|
|
|
|
|
|
|
|
|
wrenReleaseHandle(vm, testClass);
|
|
|
|
|
wrenReleaseHandle(vm, abortFiber);
|
|
|
|
|
wrenReleaseHandle(vm, afterConstruct);
|
2018-03-24 11:10:36 -07:00
|
|
|
}
|