esfuzz
Version:
JS fuzzer for generative testing of parsers that implement the SpiderMonkey Reflect.parse API
59 lines (58 loc) • 1.44 kB
JavaScript
// Generated by CoffeeScript 2.0.0-beta7
void function () {
var BinaryExpression, construct, Expression, Node, OPERATORS, randomElement;
Node = require('../node');
Expression = require('../classes/Expression');
randomElement = require('../random').randomElement;
construct = require('../combinators').construct;
OPERATORS = [
'==',
'!=',
'===',
'!==',
'<',
'<=',
'>',
'>=',
'<<',
'>>',
'>>>',
'+',
'-',
'*',
'/',
'%',
'|',
'^',
'in',
'instanceof'
];
BinaryExpression = function (super$) {
extends$(BinaryExpression, super$);
BinaryExpression.prototype.type = BinaryExpression.name;
function BinaryExpression(depth, ancestors) {
--depth;
ancestors = [this].concat(ancestors);
this.operator = randomElement(OPERATORS);
this.left = Expression(depth, ancestors);
this.right = Expression(depth, ancestors);
}
return BinaryExpression;
}(Node);
module.exports = construct(BinaryExpression);
function isOwn$(o, p) {
return {}.hasOwnProperty.call(o, p);
}
function extends$(child, parent) {
for (var key in parent)
if (isOwn$(parent, key))
child[key] = parent[key];
function ctor() {
this.constructor = child;
}
ctor.prototype = parent.prototype;
child.prototype = new ctor;
child.__super__ = parent.prototype;
return child;
}
}.call(this);