assert: improve support for new execution contexts
authorlukebayes <lbayes@patternpark.com>
Sun, 20 Feb 2011 23:09:23 +0000 (15:09 -0800)
committerisaacs <i@izs.me>
Sat, 29 Dec 2012 19:19:14 +0000 (11:19 -0800)
More detailed information in GH-693

lib/assert.js
test/simple/test-script-context.js

index f81c203..a2afdcf 100644 (file)
@@ -277,7 +277,7 @@ function expectedException(actual, expected) {
     return false;
   }
 
-  if (expected instanceof RegExp) {
+  if (Object.prototype.toString.call(expected) == '[object RegExp]') {
     return expected.test(actual);
   } else if (actual instanceof expected) {
     return true;
index f29af23..8095a71 100644 (file)
@@ -42,7 +42,6 @@ result = script.runInContext(context);
 assert.equal(3, context.foo);
 assert.equal('lala', context.thing);
 
-
 // Issue GH-227:
 Script.runInNewContext('', null, 'some.js');
 
@@ -69,3 +68,10 @@ function isTypeError(o) {
   assert.throws(function() { script.runInContext(e); }, isTypeError);
   assert.throws(function() { vm.runInContext('', e); }, isTypeError);
 }));
+
+// Issue GH-693:
+common.debug('test RegExp as argument to assert.throws');
+script = vm.createScript('var assert = require(\'assert\'); assert.throws(' +
+                         'function() { throw "hello world"; }, /hello/);',
+                         'some.js');
+script.runInNewContext({ require : require });