Skip to content

Commit

Permalink
n-api: throw when entry point is null
Browse files Browse the repository at this point in the history
PR-URL: #20779
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
  • Loading branch information
Gabriel Schulhof authored and targos committed May 25, 2018
1 parent 819bba6 commit ba30d14
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/node_api.cc
Original file line number Diff line number Diff line change
Expand Up @@ -868,6 +868,12 @@ void napi_module_register_by_symbol(v8::Local<v8::Object> exports,
v8::Local<v8::Value> module,
v8::Local<v8::Context> context,
napi_addon_register_func init) {
if (init == nullptr) {
node::Environment::GetCurrent(context)->ThrowError(
"Module has no declared entry point.");
return;
}

// Create a new napi_env for this module or reference one if a pre-existing
// one is found.
napi_env env = v8impl::GetEnv(context);
Expand Down
8 changes: 8 additions & 0 deletions test/addons-napi/test_null_init/binding.gyp
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
'targets': [
{
'target_name': 'test_null_init',
'sources': [ 'test_null_init.c' ]
}
]
}
7 changes: 7 additions & 0 deletions test/addons-napi/test_null_init/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';
const common = require('../../common');
const assert = require('assert');

assert.throws(
() => require(`./build/${common.buildType}/test_null_init`),
/Module has no declared entry point[.]/);
3 changes: 3 additions & 0 deletions test/addons-napi/test_null_init/test_null_init.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#include <node_api.h>

NAPI_MODULE(NODE_GYP_MODULE_NAME, NULL)

0 comments on commit ba30d14

Please sign in to comment.