diff options
-rw-r--r-- | src/node_util.cc | 1 | ||||
-rw-r--r-- | test/parallel/test-util.js | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/node_util.cc b/src/node_util.cc index a615aa88fd..5f3de643d4 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -25,6 +25,7 @@ using v8::Value; V(isExternal, IsExternal) \ V(isMap, IsMap) \ V(isMapIterator, IsMapIterator) \ + V(isNativeError, IsNativeError) \ V(isPromise, IsPromise) \ V(isRegExp, IsRegExp) \ V(isSet, IsSet) \ diff --git a/test/parallel/test-util.js b/test/parallel/test-util.js index fabf9dc22b..c1dc4eadcb 100644 --- a/test/parallel/test-util.js +++ b/test/parallel/test-util.js @@ -23,6 +23,7 @@ const common = require('../common'); const assert = require('assert'); const util = require('util'); +const binding = process.binding('util'); const context = require('vm').runInNewContext; // isArray @@ -153,3 +154,20 @@ util.print('test'); util.puts('test'); util.debug('test'); util.error('test'); + +{ + // binding.isNativeError() + assert.strictEqual(binding.isNativeError(new Error()), true); + assert.strictEqual(binding.isNativeError(new TypeError()), true); + assert.strictEqual(binding.isNativeError(new SyntaxError()), true); + assert.strictEqual(binding.isNativeError(new (context('Error'))()), true); + assert.strictEqual(binding.isNativeError(new (context('TypeError'))()), true); + assert.strictEqual(binding.isNativeError(new (context('SyntaxError'))()), + true); + assert.strictEqual(binding.isNativeError({}), false); + assert.strictEqual(binding.isNativeError({ name: 'Error', message: '' }), + false); + assert.strictEqual(binding.isNativeError([]), false); + assert.strictEqual(binding.isNativeError(Object.create(Error.prototype)), + false); +} |