| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | 
							- 'use strict';
 
- var acorn = require('acorn');
 
- var objectAssign = require('object-assign');
 
- module.exports = isExpression;
 
- var DEFAULT_OPTIONS = {
 
-   throw: false,
 
-   strict: false,
 
-   lineComment: false
 
- };
 
- function isExpression(src, options) {
 
-   options = objectAssign({}, DEFAULT_OPTIONS, options);
 
-   try {
 
-     var parser = new acorn.Parser(options, src, 0);
 
-     if (options.strict) {
 
-       parser.strict = true;
 
-     }
 
-     if (!options.lineComment) {
 
-       parser.skipLineComment = function (startSkip) {
 
-         this.raise(this.pos, 'Line comments not allowed in an expression');
 
-       };
 
-     }
 
-     parser.nextToken();
 
-     parser.parseExpression();
 
-     if (parser.type !== acorn.tokTypes.eof) {
 
-       parser.unexpected();
 
-     }
 
-   } catch (ex) {
 
-     if (!options.throw) {
 
-       return false;
 
-     }
 
-     throw ex;
 
-   }
 
-   return true;
 
- }
 
 
  |