diff --git a/bin/jade.js b/bin/jade.js
index <HASH>..<HASH> 100755
--- a/bin/jade.js
+++ b/bin/jade.js
@@ -62,11 +62,17 @@ program.parse(process.argv);
 // options given, parse them
 
 if (program.obj) {
-  if (fs.existsSync(program.obj)) {
-    options = JSON.parse(fs.readFileSync(program.obj));
-  } else {
+  var str;
+  try {
+    str = fs.readFileSync(program.obj);
+  } catch (e) {
     options = eval('(' + program.obj + ')');
   }
+  if (str !== undefined)  {
+    // We don't want to catch exceptions thrown in JSON.parse() so have to
+    // use this two-step approach.
+    options = JSON.parse(str);
+  }
 }
 
 // --path
CLI: avoid using existsSync

It is known to cause race conditions and is deprecated in io.js.