Sha256: ac76bf341ecf4640e09ad21e99ac65434c043d7013ac7e5eaaf6984f3ee10cc2
Contents?: true
Size: 1.39 KB
Versions: 22
Compression:
Stored size: 1.39 KB
Contents
require("./core"); var types = require("../lib/types"); var def = types.Type.def; var or = types.Type.or; var shared = require("../lib/shared"); var geq = shared.geq; var defaults = shared.defaults; def("Function") // SpiderMonkey allows expression closures: function(x) x+1 .field("body", or(def("BlockStatement"), def("Expression"))); def("ForInStatement") .build("left", "right", "body", "each") .field("each", Boolean, defaults["false"]); def("ForOfStatement") .bases("Statement") .build("left", "right", "body") .field("left", or( def("VariableDeclaration"), def("Expression"))) .field("right", def("Expression")) .field("body", def("Statement")); def("LetStatement") .bases("Statement") .build("head", "body") // TODO Deviating from the spec by reusing VariableDeclarator here. .field("head", [def("VariableDeclarator")]) .field("body", def("Statement")); def("LetExpression") .bases("Expression") .build("head", "body") // TODO Deviating from the spec by reusing VariableDeclarator here. .field("head", [def("VariableDeclarator")]) .field("body", def("Expression")); def("GraphExpression") .bases("Expression") .build("index", "expression") .field("index", geq(0)) .field("expression", def("Literal")); def("GraphIndexExpression") .bases("Expression") .build("index") .field("index", geq(0));
Version data entries
22 entries across 17 versions & 5 rubygems