Skip to content

Commit 8fecbb7

Browse files
committed
src: Move GetDOMException() into Environment
GetDOMException() was a private function in node_messaging, but we would like to use it to throw AbortErrors when cancelling something via an AbortController. Move it into environment.cc along with GetPerContextExports(), and expose it internally in node_internals.h.
1 parent f63436d commit 8fecbb7

File tree

3 files changed

+16
-15
lines changed

3 files changed

+16
-15
lines changed

src/api/environment.cc

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,21 @@ MaybeLocal<Object> GetPerContextExports(Local<Context> context) {
525525
return handle_scope.Escape(exports);
526526
}
527527

528+
MaybeLocal<Function> GetDOMException(Local<Context> context) {
529+
Isolate* isolate = context->GetIsolate();
530+
Local<Object> per_context_bindings;
531+
Local<Value> domexception_ctor_val;
532+
if (!GetPerContextExports(context).ToLocal(&per_context_bindings) ||
533+
!per_context_bindings
534+
->Get(context, FIXED_ONE_BYTE_STRING(isolate, "DOMException"))
535+
.ToLocal(&domexception_ctor_val)) {
536+
return MaybeLocal<Function>();
537+
}
538+
CHECK(domexception_ctor_val->IsFunction());
539+
Local<Function> domexception_ctor = domexception_ctor_val.As<Function>();
540+
return domexception_ctor;
541+
}
542+
528543
// Any initialization logic should be performed in
529544
// InitializeContext, because embedders don't necessarily
530545
// call NewContext and so they will experience breakages.

src/node_internals.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ v8::Isolate* NewIsolate(v8::Isolate::CreateParams* params,
301301
v8::MaybeLocal<v8::Value> StartExecution(Environment* env,
302302
StartExecutionCallback cb = nullptr);
303303
v8::MaybeLocal<v8::Object> GetPerContextExports(v8::Local<v8::Context> context);
304+
v8::MaybeLocal<v8::Function> GetDOMException(v8::Local<v8::Context> context);
304305
v8::MaybeLocal<v8::Value> ExecuteBootstrapper(
305306
Environment* env,
306307
const char* id,

src/node_messaging.cc

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -224,21 +224,6 @@ MaybeLocal<Function> GetEmitMessageFunction(Local<Context> context) {
224224
return emit_message_val.As<Function>();
225225
}
226226

227-
MaybeLocal<Function> GetDOMException(Local<Context> context) {
228-
Isolate* isolate = context->GetIsolate();
229-
Local<Object> per_context_bindings;
230-
Local<Value> domexception_ctor_val;
231-
if (!GetPerContextExports(context).ToLocal(&per_context_bindings) ||
232-
!per_context_bindings->Get(context,
233-
FIXED_ONE_BYTE_STRING(isolate, "DOMException"))
234-
.ToLocal(&domexception_ctor_val)) {
235-
return MaybeLocal<Function>();
236-
}
237-
CHECK(domexception_ctor_val->IsFunction());
238-
Local<Function> domexception_ctor = domexception_ctor_val.As<Function>();
239-
return domexception_ctor;
240-
}
241-
242227
void ThrowDataCloneException(Local<Context> context, Local<String> message) {
243228
Isolate* isolate = context->GetIsolate();
244229
Local<Value> argv[] = {message,

0 commit comments

Comments
 (0)