diff --git a/src/node_options.cc b/src/node_options.cc index a59efc66d82fac..08b5fda6991ea6 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -1011,6 +1011,12 @@ void GetOptions(const FunctionCallbackInfo& args) { Local aliases; if (!ToV8Value(context, _ppop_instance.aliases_).ToLocal(&aliases)) return; + if (aliases.As() + ->SetPrototype(context, env->primordials_safe_map_prototype_object()) + .IsNothing()) { + return; + } + Local ret = Object::New(isolate); if (ret->Set(context, env->options_string(), options).IsNothing() || ret->Set(context, env->aliases_string(), aliases).IsNothing()) { diff --git a/test/parallel/test-options-binding.js b/test/parallel/test-options-binding.js index de9aafd7f43bb8..74a197b251a387 100644 --- a/test/parallel/test-options-binding.js +++ b/test/parallel/test-options-binding.js @@ -2,15 +2,20 @@ 'use strict'; require('../common'); -const { internalBinding, primordials } = require('internal/test/binding'); +const { primordials } = require('internal/test/binding'); const { SafeMap, } = primordials; -const options = internalBinding('options'); +const { options, aliases } = require('internal/options'); const assert = require('assert'); assert( - options.getOptions() instanceof SafeMap, - "internalBinding('options').getOptions() returns SafeMap", + options instanceof SafeMap, + "require('internal/options').options is a SafeMap", +); + +assert( + aliases instanceof SafeMap, + "require('internal/options').aliases is a SafeMap", );