/c_src/erlv8_result.cc

http://github.com/beamjs/erlv8 · C++ · 24 lines · 19 code · 5 blank · 0 comment · 2 complexity · 9533c868991fe79f8221316644c16bc8 MD5 · raw file

  1. #include "erlv8.hh"
  2. TickHandler(ResultTickHandler) {
  3. v8::HandleScope handle_scope;
  4. TickHandlerResolution result;
  5. if (((unsigned long) ref) &&
  6. (enif_is_identical(array[1],ref))) { // this is our result
  7. result.value = handle_scope.Close(term_to_js(vm->context, vm->isolate, vm->env,array[2]));
  8. result.type = RETURN;
  9. return result;
  10. } else {
  11. Tick newtick;
  12. newtick.env = enif_alloc_env();
  13. newtick.tick = enif_make_copy(newtick.env, tick);
  14. newtick.ref = enif_make_copy(newtick.env, tick_ref);
  15. vm->pop_ticks.push(newtick);
  16. result.type = DONE;
  17. return result;
  18. }
  19. }