diff --git a/src/node_file.cc b/src/node_file.cc index 8f016ccf02695b..8c37b6a507ff63 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -652,9 +652,8 @@ void Close(const FunctionCallbackInfo& args) { // Used to speed up module loading. Returns the contents of the file as -// a string or undefined when the file cannot be opened. Returns an empty -// string when the file does not contain the substring '"main"' because that -// is the property we care about. +// a string or undefined when the file cannot be opened or "main" is not found +// in the file. static void InternalModuleReadJSON(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); uv_loop_t* loop = env->event_loop(); @@ -704,7 +703,7 @@ static void InternalModuleReadJSON(const FunctionCallbackInfo& args) { const size_t size = offset - start; if (size == 0 || size == SearchString(&chars[start], size, "\"main\"")) { - args.GetReturnValue().SetEmptyString(); + return; } else { Local chars_string = String::NewFromUtf8(env->isolate(), diff --git a/test/parallel/test-module-binding.js b/test/parallel/test-module-binding.js index bea0c91f0c5bca..a3ebaf9e7266d2 100644 --- a/test/parallel/test-module-binding.js +++ b/test/parallel/test-module-binding.js @@ -6,8 +6,9 @@ const { readFileSync } = require('fs'); const { strictEqual } = require('assert'); strictEqual(internalModuleReadJSON('nosuchfile'), undefined); -strictEqual(internalModuleReadJSON(fixtures.path('empty.txt')), ''); -strictEqual(internalModuleReadJSON(fixtures.path('empty-with-bom.txt')), ''); +strictEqual(internalModuleReadJSON(fixtures.path('empty.txt')), undefined); +strictEqual(internalModuleReadJSON(fixtures.path('empty-with-bom.txt')), + undefined); { const filename = fixtures.path('require-bin/package.json'); strictEqual(internalModuleReadJSON(filename), readFileSync(filename, 'utf8'));