Initial commit
This commit is contained in:
45
node_modules/is-expression/index.js
generated
vendored
Normal file
45
node_modules/is-expression/index.js
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
'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;
|
||||
}
|
Reference in New Issue
Block a user