Function xsHostZone
Used to set up and clean up a stack frame, so that you can use all the macros of XS in C in between, provided in lieu of xsBeginHost
and xsEndHost
.
ReturnType!Func xsHostZone(alias Func)
(
scope xsMachine* the
)
if (isCallableAsHostZone!Func);
Uncaught exceptions that occur within Func
do not propagate beyond the execution of xsHostZone
.
Returns
The result of Func
, or void
if Func
has no return type.
Throws
JSException
when the JS VM is aborted with the xsUnhandledExceptionExit
status while executing Func
.
See Also
From the XS in C Moddable SDK Documentation:
Examples
long xsWndProc(HWND hwnd, uint m, uint w, long l)
{
long result = 0;
xsMachine* aMachine = GetWindowLongPtr(hwnd, GWL_USERDATA);
auto zone = (xsMachine* the) => {
result = the .xsToInteger(the .xsCall(
the .xsGlobal, xsID_dispatch,
the .xsInteger(m), the .xsInteger(w), the .xsInteger(l)
));
}();
aMachine .xsHostZone!zone;
return result;
}