$traceurRuntime.ModuleStore.getAnonymousModule(function() {
"use strict"; var Node = module.require("../Node").Node; function RangeMemberExpression(object, range) { Node.call(this); this.type = "RangeMemberExpression"; this.object = object; this.object.parent = this; this.range = range; this.range.parent = this; } RangeMemberExpression.prototype = Object.create(Node); RangeMemberExpression.prototype.codegen = function() { if (!Node.prototype.codegen.call(this)) { return; } var isNumber = function(n) { return !isNaN(parseFloat(n)) && !!isFinite(n); }; if (!!(this.parent.type === "AssignmentExpression") && !!(this.parent.left === this)) { this.parent.type = "CallExpression"; this.parent.callee = { "type": "MemberExpression", "computed": false, "object": { "type": "MemberExpression", "computed": false, "object": { "type": "ArrayExpression", "elements": [] }, "property": { "type": "Identifier", "name": "splice" } }, "property": { "type": "Identifier", "name": "apply" } }; var to; var start = this.range.start ? this.range.start.codegen() : { "type": "Literal", "value": 0 }; if (typeof this.range.to !== "undefined" && this.range.to !== null) { if (!!isNumber(start.value) && !!isNumber(this.range.to.value)) { to = { "type": "Literal", "value": this.range.to.value - start.value + (this.range.operator === ".." ? 1 : 0) }; } else { to = this.range.to.codegen(); if (start.value !== 0) { to = { "type": "BinaryExpression", "operator": "-", "left": to, "right": start }; } if (this.range.operator === "..") { to = { "type": "BinaryExpression", "operator": "+", "left": to, "right": { "type": "Literal", "value": 1 } }; } } } else { to = { "type": "Literal", "value": 9000000000, "raw": "9e9" }; } Object.defineProperty(this.parent, "arguments", { value: [this.object.codegen(), { "type": "CallExpression", "callee": { "type": "MemberExpression", "computed": false, "object": { "type": "ArrayExpression", "elements": [start, to] }, "property": { "type": "Identifier", "name": "concat" } }, "arguments": [this.parent.right] }], enumerable: true }); } else { this.type = "CallExpression"; this.callee = { "type": "MemberExpression", "computed": false, "object": this.object.codegen(), "property": { "type": "Identifier", "name": "slice" } }; var args = []; if (!(typeof this.range.start !== "undefined" && this.range.start !== null)) { args.push({ "type": "Literal", "value": 0 }); } else { args.push(this.range.start.codegen()); } if (typeof this.range.to !== "undefined" && this.range.to !== null) { if (this.range.operator === "...") { args.push(this.range.to.codegen()); } else { if (!!this.range.to.value && !!isNumber(this.range.to.value)) { args.push({ "type": "Literal", "value": this.range.to.value + 1 }); } else { args.push({ "type": "BinaryExpression", "operator": "+", "left": this.range.to.codegen(), "right": { "type": "Literal", "value": 1 } }); } } } Object.defineProperty(this, "arguments", { value: args, enumerable: true }); } return this; }; RangeMemberExpression.prototype.hasCallExpression = function() { return true; }; exports.RangeMemberExpression = RangeMemberExpression; return {};
});
//# sourceMappingURL=RangeMemberExpression.map