diff options
Diffstat (limited to 'src/node_api.cc')
| -rw-r--r-- | src/node_api.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/node_api.cc b/src/node_api.cc index 2ee241badf..2b0dc113fe 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -2615,8 +2615,13 @@ napi_status napi_escape_handle(napi_env env, v8impl::EscapableHandleScopeWrapper* s = v8impl::V8EscapableHandleScopeFromJsEscapableHandleScope(scope); if (!s->escape_called()) { - *result = v8impl::JsValueFromV8LocalValue( - s->Escape(v8impl::V8LocalValueFromJsValue(escapee))); + v8::Local<v8::Value> escapee_object = + v8impl::V8LocalValueFromJsValue(escapee); + if (escapee_object->IsUndefined()) { + *result = escapee; + } else { + *result = v8impl::JsValueFromV8LocalValue(s->Escape(escapee_object)); + } return napi_clear_last_error(env); } return napi_set_last_error(env, napi_escape_called_twice); |
