summaryrefslogtreecommitdiff
path: root/src/node_api.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_api.cc')
-rw-r--r--src/node_api.cc9
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);