diff options
-rw-r--r-- | libdeno/binding.cc | 10 | ||||
-rw-r--r-- | libdeno/internal.h | 8 |
2 files changed, 10 insertions, 8 deletions
diff --git a/libdeno/binding.cc b/libdeno/binding.cc index eb83d2363..9e93bfca8 100644 --- a/libdeno/binding.cc +++ b/libdeno/binding.cc @@ -66,12 +66,6 @@ const char* ToCString(const v8::String::Utf8Value& value) { return *value ? *value : "<string conversion failed>"; } -static inline v8::Local<v8::String> v8_str(const char* x) { - return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), x, - v8::NewStringType::kNormal) - .ToLocalChecked(); -} - std::string EncodeExceptionAsJSON(v8::Local<v8::Context> context, v8::Local<v8::Value> exception) { auto* isolate = context->GetIsolate(); @@ -360,7 +354,7 @@ bool ExecuteV8StringSource(v8::Local<v8::Context> context, v8::TryCatch try_catch(isolate); - auto name = v8_str(js_filename); + auto name = v8_str(js_filename, true); v8::ScriptOrigin origin(name); @@ -388,7 +382,7 @@ bool Execute(v8::Local<v8::Context> context, const char* js_filename, auto* isolate = context->GetIsolate(); v8::Isolate::Scope isolate_scope(isolate); v8::HandleScope handle_scope(isolate); - auto source = v8_str(js_source); + auto source = v8_str(js_source, true); return ExecuteV8StringSource(context, js_filename, source); } diff --git a/libdeno/internal.h b/libdeno/internal.h index a8b97ec8d..91e06bead 100644 --- a/libdeno/internal.h +++ b/libdeno/internal.h @@ -83,6 +83,14 @@ struct InternalFieldData { uint32_t data; }; +static inline v8::Local<v8::String> v8_str(const char* x, + bool internalize = false) { + return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), x, + internalize ? v8::NewStringType::kInternalized + : v8::NewStringType::kNormal) + .ToLocalChecked(); +} + void Print(const v8::FunctionCallbackInfo<v8::Value>& args); void Recv(const v8::FunctionCallbackInfo<v8::Value>& args); void Send(const v8::FunctionCallbackInfo<v8::Value>& args); |