spider-src 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/Gemfile +7 -0
  4. data/LICENSE.txt +74 -0
  5. data/README.md +37 -0
  6. data/Rakefile +25 -0
  7. data/lib/spider-src/support/spider/.eslintrc +17 -0
  8. data/lib/spider-src/support/spider/.npmignore +9 -0
  9. data/lib/spider-src/support/spider/.travis.yml +7 -0
  10. data/lib/spider-src/support/spider/.yo-rc.json +3 -0
  11. data/lib/spider-src/support/spider/CHANGELOG.md +64 -0
  12. data/lib/spider-src/support/spider/Gruntfile.js +97 -0
  13. data/lib/spider-src/support/spider/Gruntfile.spider +93 -0
  14. data/lib/spider-src/support/spider/LICENSE +201 -0
  15. data/lib/spider-src/support/spider/README.md +50 -0
  16. data/lib/spider-src/support/spider/cli.js +119 -0
  17. data/lib/spider-src/support/spider/lib/ast/CaseClause.js +179 -0
  18. data/lib/spider-src/support/spider/lib/ast/CatchClause.js +26 -0
  19. data/lib/spider-src/support/spider/lib/ast/ExportBatchSpecifier.js +19 -0
  20. data/lib/spider-src/support/spider/lib/ast/ExportSpecifier.js +33 -0
  21. data/lib/spider-src/support/spider/lib/ast/ImportDefaultSpecifier.js +23 -0
  22. data/lib/spider-src/support/spider/lib/ast/ImportNamespaceSpecifier.js +23 -0
  23. data/lib/spider-src/support/spider/lib/ast/ImportSpecifier.js +40 -0
  24. data/lib/spider-src/support/spider/lib/ast/Node.js +93 -0
  25. data/lib/spider-src/support/spider/lib/ast/Parameter.js +229 -0
  26. data/lib/spider-src/support/spider/lib/ast/Program.js +58 -0
  27. data/lib/spider-src/support/spider/lib/ast/Property.js +32 -0
  28. data/lib/spider-src/support/spider/lib/ast/Range.js +257 -0
  29. data/lib/spider-src/support/spider/lib/ast/VariableDeclarator.js +29 -0
  30. data/lib/spider-src/support/spider/lib/ast/expressions/ArrayExpression.js +41 -0
  31. data/lib/spider-src/support/spider/lib/ast/expressions/ArrayPattern.js +45 -0
  32. data/lib/spider-src/support/spider/lib/ast/expressions/AssignmentExpression.js +29 -0
  33. data/lib/spider-src/support/spider/lib/ast/expressions/BinaryExpression.js +104 -0
  34. data/lib/spider-src/support/spider/lib/ast/expressions/CallExpression.js +139 -0
  35. data/lib/spider-src/support/spider/lib/ast/expressions/ConditionalExpression.js +31 -0
  36. data/lib/spider-src/support/spider/lib/ast/expressions/CurryCallExpression.js +102 -0
  37. data/lib/spider-src/support/spider/lib/ast/expressions/ExistentialExpression.js +83 -0
  38. data/lib/spider-src/support/spider/lib/ast/expressions/ForInExpression.js +116 -0
  39. data/lib/spider-src/support/spider/lib/ast/expressions/FunctionExpression.js +157 -0
  40. data/lib/spider-src/support/spider/lib/ast/expressions/InExpression.js +99 -0
  41. data/lib/spider-src/support/spider/lib/ast/expressions/LogicalExpression.js +50 -0
  42. data/lib/spider-src/support/spider/lib/ast/expressions/MemberExpression.js +43 -0
  43. data/lib/spider-src/support/spider/lib/ast/expressions/NewExpression.js +46 -0
  44. data/lib/spider-src/support/spider/lib/ast/expressions/NullCheckCallExpression.js +132 -0
  45. data/lib/spider-src/support/spider/lib/ast/expressions/NullCoalescingExpression.js +114 -0
  46. data/lib/spider-src/support/spider/lib/ast/expressions/NullPropagatingExpression.js +161 -0
  47. data/lib/spider-src/support/spider/lib/ast/expressions/ObjectExpression.js +39 -0
  48. data/lib/spider-src/support/spider/lib/ast/expressions/ObjectPattern.js +49 -0
  49. data/lib/spider-src/support/spider/lib/ast/expressions/RangeMemberExpression.js +157 -0
  50. data/lib/spider-src/support/spider/lib/ast/expressions/SplatExpression.js +48 -0
  51. data/lib/spider-src/support/spider/lib/ast/expressions/SuperExpression.js +170 -0
  52. data/lib/spider-src/support/spider/lib/ast/expressions/ThisExpression.js +22 -0
  53. data/lib/spider-src/support/spider/lib/ast/expressions/UnaryExpression.js +147 -0
  54. data/lib/spider-src/support/spider/lib/ast/expressions/UpdateExpression.js +26 -0
  55. data/lib/spider-src/support/spider/lib/ast/literals/BooleanLiteral.js +24 -0
  56. data/lib/spider-src/support/spider/lib/ast/literals/Identifier.js +60 -0
  57. data/lib/spider-src/support/spider/lib/ast/literals/NullLiteral.js +24 -0
  58. data/lib/spider-src/support/spider/lib/ast/literals/NumberLiteral.js +24 -0
  59. data/lib/spider-src/support/spider/lib/ast/literals/RegularExpressionLiteral.js +25 -0
  60. data/lib/spider-src/support/spider/lib/ast/literals/StringLiteral.js +90 -0
  61. data/lib/spider-src/support/spider/lib/ast/literals/UndefinedLiteral.js +30 -0
  62. data/lib/spider-src/support/spider/lib/ast/statements/BlockStatement.js +47 -0
  63. data/lib/spider-src/support/spider/lib/ast/statements/BreakStatement.js +19 -0
  64. data/lib/spider-src/support/spider/lib/ast/statements/ContinueStatement.js +19 -0
  65. data/lib/spider-src/support/spider/lib/ast/statements/DebuggerStatement.js +19 -0
  66. data/lib/spider-src/support/spider/lib/ast/statements/DoWhileStatement.js +25 -0
  67. data/lib/spider-src/support/spider/lib/ast/statements/ExportDeclarationStatement.js +51 -0
  68. data/lib/spider-src/support/spider/lib/ast/statements/ExpressionStatement.js +22 -0
  69. data/lib/spider-src/support/spider/lib/ast/statements/FallthroughStatement.js +74 -0
  70. data/lib/spider-src/support/spider/lib/ast/statements/ForInStatement.js +79 -0
  71. data/lib/spider-src/support/spider/lib/ast/statements/ForOfStatement.js +98 -0
  72. data/lib/spider-src/support/spider/lib/ast/statements/ForStatement.js +43 -0
  73. data/lib/spider-src/support/spider/lib/ast/statements/FunctionDeclarationStatement.js +104 -0
  74. data/lib/spider-src/support/spider/lib/ast/statements/GoStatement.js +41 -0
  75. data/lib/spider-src/support/spider/lib/ast/statements/IfStatement.js +32 -0
  76. data/lib/spider-src/support/spider/lib/ast/statements/ImportDeclarationStatement.js +40 -0
  77. data/lib/spider-src/support/spider/lib/ast/statements/PushStatement.js +37 -0
  78. data/lib/spider-src/support/spider/lib/ast/statements/ReturnStatement.js +26 -0
  79. data/lib/spider-src/support/spider/lib/ast/statements/SwitchStatement.js +159 -0
  80. data/lib/spider-src/support/spider/lib/ast/statements/ThrowStatement.js +22 -0
  81. data/lib/spider-src/support/spider/lib/ast/statements/TryStatement.js +36 -0
  82. data/lib/spider-src/support/spider/lib/ast/statements/UntilStatement.js +31 -0
  83. data/lib/spider-src/support/spider/lib/ast/statements/UseStatement.js +49 -0
  84. data/lib/spider-src/support/spider/lib/ast/statements/VariableDeclarationStatement.js +36 -0
  85. data/lib/spider-src/support/spider/lib/ast/statements/WhileStatement.js +25 -0
  86. data/lib/spider-src/support/spider/lib/ast.js +16 -0
  87. data/lib/spider-src/support/spider/lib/parser.js +14878 -0
  88. data/lib/spider-src/support/spider/lib/spider.js +217 -0
  89. data/lib/spider-src/support/spider/package.json +61 -0
  90. data/lib/spider-src/support/spider/spider-script.js +6 -0
  91. data/lib/spider-src/support/spider/src/ast/CaseClause.spider +179 -0
  92. data/lib/spider-src/support/spider/src/ast/CatchClause.spider +30 -0
  93. data/lib/spider-src/support/spider/src/ast/ExportBatchSpecifier.spider +19 -0
  94. data/lib/spider-src/support/spider/src/ast/ExportSpecifier.spider +37 -0
  95. data/lib/spider-src/support/spider/src/ast/ImportDefaultSpecifier.spider +25 -0
  96. data/lib/spider-src/support/spider/src/ast/ImportNamespaceSpecifier.spider +25 -0
  97. data/lib/spider-src/support/spider/src/ast/ImportSpecifier.spider +44 -0
  98. data/lib/spider-src/support/spider/src/ast/Node.spider +104 -0
  99. data/lib/spider-src/support/spider/src/ast/Parameter.spider +233 -0
  100. data/lib/spider-src/support/spider/src/ast/Program.spider +109 -0
  101. data/lib/spider-src/support/spider/src/ast/Property.spider +36 -0
  102. data/lib/spider-src/support/spider/src/ast/Range.spider +291 -0
  103. data/lib/spider-src/support/spider/src/ast/VariableDeclarator.spider +33 -0
  104. data/lib/spider-src/support/spider/src/ast/expressions/ArrayExpression.spider +32 -0
  105. data/lib/spider-src/support/spider/src/ast/expressions/ArrayPattern.spider +37 -0
  106. data/lib/spider-src/support/spider/src/ast/expressions/AssignmentExpression.spider +34 -0
  107. data/lib/spider-src/support/spider/src/ast/expressions/BinaryExpression.spider +125 -0
  108. data/lib/spider-src/support/spider/src/ast/expressions/CallExpression.spider +149 -0
  109. data/lib/spider-src/support/spider/src/ast/expressions/ConditionalExpression.spider +34 -0
  110. data/lib/spider-src/support/spider/src/ast/expressions/CurryCallExpression.spider +109 -0
  111. data/lib/spider-src/support/spider/src/ast/expressions/ExistentialExpression.spider +102 -0
  112. data/lib/spider-src/support/spider/src/ast/expressions/ForInExpression.spider +140 -0
  113. data/lib/spider-src/support/spider/src/ast/expressions/FunctionExpression.spider +183 -0
  114. data/lib/spider-src/support/spider/src/ast/expressions/InExpression.spider +114 -0
  115. data/lib/spider-src/support/spider/src/ast/expressions/LogicalExpression.spider +62 -0
  116. data/lib/spider-src/support/spider/src/ast/expressions/MemberExpression.spider +57 -0
  117. data/lib/spider-src/support/spider/src/ast/expressions/NewExpression.spider +40 -0
  118. data/lib/spider-src/support/spider/src/ast/expressions/NullCheckCallExpression.spider +151 -0
  119. data/lib/spider-src/support/spider/src/ast/expressions/NullCoalescingExpression.spider +151 -0
  120. data/lib/spider-src/support/spider/src/ast/expressions/NullPropagatingExpression.spider +190 -0
  121. data/lib/spider-src/support/spider/src/ast/expressions/ObjectExpression.spider +30 -0
  122. data/lib/spider-src/support/spider/src/ast/expressions/ObjectPattern.spider +42 -0
  123. data/lib/spider-src/support/spider/src/ast/expressions/RangeMemberExpression.spider +179 -0
  124. data/lib/spider-src/support/spider/src/ast/expressions/SplatExpression.spider +49 -0
  125. data/lib/spider-src/support/spider/src/ast/expressions/SuperExpression.spider +235 -0
  126. data/lib/spider-src/support/spider/src/ast/expressions/ThisExpression.spider +21 -0
  127. data/lib/spider-src/support/spider/src/ast/expressions/UnaryExpression.spider +158 -0
  128. data/lib/spider-src/support/spider/src/ast/expressions/UpdateExpression.spider +28 -0
  129. data/lib/spider-src/support/spider/src/ast/literals/BooleanLiteral.spider +23 -0
  130. data/lib/spider-src/support/spider/src/ast/literals/Identifier.spider +68 -0
  131. data/lib/spider-src/support/spider/src/ast/literals/NullLiteral.spider +23 -0
  132. data/lib/spider-src/support/spider/src/ast/literals/NumberLiteral.spider +23 -0
  133. data/lib/spider-src/support/spider/src/ast/literals/RegularExpressionLiteral.spider +24 -0
  134. data/lib/spider-src/support/spider/src/ast/literals/StringLiteral.spider +91 -0
  135. data/lib/spider-src/support/spider/src/ast/literals/UndefinedLiteral.spider +30 -0
  136. data/lib/spider-src/support/spider/src/ast/statements/BlockStatement.spider +45 -0
  137. data/lib/spider-src/support/spider/src/ast/statements/BreakStatement.spider +19 -0
  138. data/lib/spider-src/support/spider/src/ast/statements/ContinueStatement.spider +19 -0
  139. data/lib/spider-src/support/spider/src/ast/statements/DebuggerStatement.spider +19 -0
  140. data/lib/spider-src/support/spider/src/ast/statements/DoWhileStatement.spider +28 -0
  141. data/lib/spider-src/support/spider/src/ast/statements/ExportDeclarationStatement.spider +46 -0
  142. data/lib/spider-src/support/spider/src/ast/statements/ExpressionStatement.spider +22 -0
  143. data/lib/spider-src/support/spider/src/ast/statements/FallthroughStatement.spider +85 -0
  144. data/lib/spider-src/support/spider/src/ast/statements/ForInStatement.spider +92 -0
  145. data/lib/spider-src/support/spider/src/ast/statements/ForOfStatement.spider +117 -0
  146. data/lib/spider-src/support/spider/src/ast/statements/ForStatement.spider +51 -0
  147. data/lib/spider-src/support/spider/src/ast/statements/FunctionDeclarationStatement.spider +115 -0
  148. data/lib/spider-src/support/spider/src/ast/statements/GoStatement.spider +44 -0
  149. data/lib/spider-src/support/spider/src/ast/statements/IfStatement.spider +38 -0
  150. data/lib/spider-src/support/spider/src/ast/statements/ImportDeclarationStatement.spider +33 -0
  151. data/lib/spider-src/support/spider/src/ast/statements/PushStatement.spider +40 -0
  152. data/lib/spider-src/support/spider/src/ast/statements/ReturnStatement.spider +28 -0
  153. data/lib/spider-src/support/spider/src/ast/statements/SwitchStatement.spider +161 -0
  154. data/lib/spider-src/support/spider/src/ast/statements/ThrowStatement.spider +23 -0
  155. data/lib/spider-src/support/spider/src/ast/statements/TryStatement.spider +42 -0
  156. data/lib/spider-src/support/spider/src/ast/statements/UntilStatement.spider +36 -0
  157. data/lib/spider-src/support/spider/src/ast/statements/UseStatement.spider +62 -0
  158. data/lib/spider-src/support/spider/src/ast/statements/VariableDeclarationStatement.spider +34 -0
  159. data/lib/spider-src/support/spider/src/ast/statements/WhileStatement.spider +28 -0
  160. data/lib/spider-src/support/spider/src/ast.spider +80 -0
  161. data/lib/spider-src/support/spider/src/spider.pegjs +1434 -0
  162. data/lib/spider-src/support/spider/src/spider.spider +276 -0
  163. data/lib/spider-src/support/spider/test/spider_test.js +1787 -0
  164. data/lib/spider-src/version.rb +5 -0
  165. data/lib/spider-src.rb +37 -0
  166. data/spider-src.gemspec +24 -0
  167. data/test/test_spider_src.rb +33 -0
  168. metadata +225 -0
@@ -0,0 +1,161 @@
1
+ $traceurRuntime.ModuleStore.getAnonymousModule(function() {
2
+ "use strict";
3
+ var Node = module.require("../Node").Node;
4
+ function NullPropagatingExpression(left, right) {
5
+ Node.call(this);
6
+ this.type = "NullPropagatingExpression";
7
+ this.computed = false;
8
+ this.object = left;
9
+ this.object.parent = this;
10
+ this.property = right;
11
+ this.property.parent = this;
12
+ }
13
+ NullPropagatingExpression.prototype = Object.create(Node);
14
+ NullPropagatingExpression.prototype.codegen = function() {
15
+ if (!Node.prototype.codegen.call(this)) {
16
+ return;
17
+ }
18
+ var context = this.getContext();
19
+ var childType = this.object.type;
20
+ this.object = this.object.codegen();
21
+ this.property = this.property.codegen(false);
22
+ if (typeof this.object.hasCallExpression === "function" ? this.object.hasCallExpression() : void 0) {
23
+ var id = {
24
+ "type": "Identifier",
25
+ "name": NullPropagatingExpression.getNextObjectName(),
26
+ "__member_expression": {
27
+ "type": "MemberExpression",
28
+ "object": this.object,
29
+ "property": this.property,
30
+ "computed": false
31
+ }
32
+ };
33
+ context.node.body.splice(context.position + (NullPropagatingExpression.nullPropagatingIndex - 1), 0, {
34
+ "type": "VariableDeclaration",
35
+ "declarations": [{
36
+ "type": "VariableDeclarator",
37
+ "id": id,
38
+ "init": this.object
39
+ }],
40
+ "kind": "let",
41
+ "codeGenerated": true
42
+ });
43
+ this.object = id;
44
+ }
45
+ var condition;
46
+ if (childType !== "NullPropagatingExpression") {
47
+ condition = {
48
+ "type": "BinaryExpression",
49
+ "operator": "!==",
50
+ "left": this.object,
51
+ "right": {
52
+ "type": "Literal",
53
+ "value": null,
54
+ "raw": "null"
55
+ },
56
+ "__member_expression": {
57
+ "type": "MemberExpression",
58
+ "object": this.object,
59
+ "property": this.property,
60
+ "computed": false
61
+ },
62
+ "__first_object": this.object
63
+ };
64
+ } else {
65
+ condition = {
66
+ "type": "LogicalExpression",
67
+ "operator": "&&",
68
+ "left": this.object,
69
+ "right": {
70
+ "type": "BinaryExpression",
71
+ "operator": "!==",
72
+ "left": {
73
+ "type": "MemberExpression",
74
+ "object": this.object.__member_expression.object,
75
+ "property": this.object.__member_expression.property,
76
+ "computed": false
77
+ },
78
+ "right": {
79
+ "type": "Literal",
80
+ "value": null,
81
+ "raw": "null"
82
+ }
83
+ },
84
+ "__member_expression": {
85
+ "type": "MemberExpression",
86
+ "object": this.object.__member_expression,
87
+ "property": this.property,
88
+ "computed": false
89
+ },
90
+ "__first_object": this.object.__first_object
91
+ };
92
+ }
93
+ if ((typeof this.parent !== "undefined" && this.parent !== null ? this.parent.type : void 0) === "NullPropagatingExpression") {
94
+ return condition;
95
+ }
96
+ condition = {
97
+ "type": "LogicalExpression",
98
+ "operator": "&&",
99
+ "left": {
100
+ "type": "BinaryExpression",
101
+ "operator": "!==",
102
+ "left": {
103
+ "type": "UnaryExpression",
104
+ "operator": "typeof",
105
+ "argument": this.object.__first_object == null ? this.object : this.object.__first_object
106
+ },
107
+ "right": {
108
+ "type": "Literal",
109
+ "value": "undefined",
110
+ "raw": "\"undefined\""
111
+ }
112
+ },
113
+ "right": condition
114
+ };
115
+ condition = {
116
+ "type": "ConditionalExpression",
117
+ "test": condition,
118
+ "consequent": {
119
+ "type": "MemberExpression",
120
+ "object": !!(this.object.type === "Identifier") || !this.object.__member_expression ? this.object : this.object.__member_expression,
121
+ "property": this.property,
122
+ "computed": false
123
+ },
124
+ "alternate": {
125
+ "type": "UnaryExpression",
126
+ "operator": "void",
127
+ "argument": {
128
+ "type": "Literal",
129
+ "value": 0,
130
+ "raw": "0"
131
+ },
132
+ "prefix": true
133
+ },
134
+ "__null_propagating": true
135
+ };
136
+ return condition;
137
+ };
138
+ NullPropagatingExpression.prototype.hasCallExpression = function() {
139
+ return true;
140
+ };
141
+ NullPropagatingExpression.getNextObjectName = function() {
142
+ if (!(typeof this.nullPropagatingIndex !== "undefined" && this.nullPropagatingIndex !== null)) {
143
+ this.nullPropagatingIndex = 0;
144
+ this.definedObjectNames = [];
145
+ }
146
+ var name = "nullPropagating" + this.nullPropagatingIndex++;
147
+ this.definedObjectNames.push(name);
148
+ return name;
149
+ };
150
+ NullPropagatingExpression.isObjectNameDefined = function(name) {
151
+ return this.definedObjectNames.indexOf(name) !== -1;
152
+ };
153
+ NullPropagatingExpression.resetVariableNames = function() {
154
+ this.nullPropagatingIndex = 0;
155
+ this.definedObjectNames = [];
156
+ };
157
+ exports.NullPropagatingExpression = NullPropagatingExpression;
158
+ return {};
159
+ });
160
+
161
+ //# sourceMappingURL=NullPropagatingExpression.map
@@ -0,0 +1,39 @@
1
+ $traceurRuntime.ModuleStore.getAnonymousModule(function() {
2
+ "use strict";
3
+ var Node = module.require("../Node").Node;
4
+ function ObjectExpression(properties) {
5
+ Node.call(this);
6
+ this.type = "ObjectExpression";
7
+ this.properties = properties;
8
+ for (var $__0 = this.properties[$traceurRuntime.toProperty(Symbol.iterator)](),
9
+ $__1; !($__1 = $__0.next()).done; ) {
10
+ var property = $__1.value;
11
+ {
12
+ property.parent = this;
13
+ }
14
+ }
15
+ }
16
+ ObjectExpression.prototype = Object.create(Node);
17
+ ObjectExpression.prototype.codegen = function() {
18
+ if (!Node.prototype.codegen.call(this)) {
19
+ return;
20
+ }
21
+ var i = 0;
22
+ for (var $__0 = this.properties[$traceurRuntime.toProperty(Symbol.iterator)](),
23
+ $__1; !($__1 = $__0.next()).done; ) {
24
+ var property = $__1.value;
25
+ {
26
+ this.properties[i] = property.codegen();
27
+ i++;
28
+ }
29
+ }
30
+ return this;
31
+ };
32
+ ObjectExpression.prototype.hasCallExpression = function() {
33
+ return true;
34
+ };
35
+ exports.ObjectExpression = ObjectExpression;
36
+ return {};
37
+ });
38
+
39
+ //# sourceMappingURL=ObjectExpression.map
@@ -0,0 +1,49 @@
1
+ $traceurRuntime.ModuleStore.getAnonymousModule(function() {
2
+ "use strict";
3
+ var Node = module.require("../Node").Node;
4
+ function ObjectPattern(properties) {
5
+ Node.call(this);
6
+ this.type = "ObjectPattern";
7
+ this.properties = properties;
8
+ for (var $__0 = this.properties[$traceurRuntime.toProperty(Symbol.iterator)](),
9
+ $__1; !($__1 = $__0.next()).done; ) {
10
+ var property = $__1.value;
11
+ {
12
+ property.parent = this;
13
+ }
14
+ }
15
+ }
16
+ ObjectPattern.prototype = Object.create(Node);
17
+ ObjectPattern.prototype.codegen = function() {
18
+ if (!Node.prototype.codegen.call(this)) {
19
+ return;
20
+ }
21
+ var context = this.getContext().node;
22
+ var i = 0;
23
+ for (var $__0 = this.properties[$traceurRuntime.toProperty(Symbol.iterator)](),
24
+ $__1; !($__1 = $__0.next()).done; ) {
25
+ var property = $__1.value;
26
+ {
27
+ this.properties[i] = property.codegen();
28
+ if (typeof property.value !== "undefined" && property.value !== null) {
29
+ if (property.value.type === "Identifier") {
30
+ context.defineIdentifier(property.value);
31
+ }
32
+ } else {
33
+ if (property.key.type === "Identifier") {
34
+ context.defineIdentifier(property.key);
35
+ }
36
+ }
37
+ i++;
38
+ }
39
+ }
40
+ return this;
41
+ };
42
+ ObjectPattern.prototype.hasCallExpression = function() {
43
+ return true;
44
+ };
45
+ exports.ObjectPattern = ObjectPattern;
46
+ return {};
47
+ });
48
+
49
+ //# sourceMappingURL=ObjectPattern.map
@@ -0,0 +1,157 @@
1
+ $traceurRuntime.ModuleStore.getAnonymousModule(function() {
2
+ "use strict";
3
+ var Node = module.require("../Node").Node;
4
+ function RangeMemberExpression(object, range) {
5
+ Node.call(this);
6
+ this.type = "RangeMemberExpression";
7
+ this.object = object;
8
+ this.object.parent = this;
9
+ this.range = range;
10
+ this.range.parent = this;
11
+ }
12
+ RangeMemberExpression.prototype = Object.create(Node);
13
+ RangeMemberExpression.prototype.codegen = function() {
14
+ if (!Node.prototype.codegen.call(this)) {
15
+ return;
16
+ }
17
+ var isNumber = function(n) {
18
+ return !isNaN(parseFloat(n)) && !!isFinite(n);
19
+ };
20
+ if (!!(this.parent.type === "AssignmentExpression") && !!(this.parent.left === this)) {
21
+ this.parent.type = "CallExpression";
22
+ this.parent.callee = {
23
+ "type": "MemberExpression",
24
+ "computed": false,
25
+ "object": {
26
+ "type": "MemberExpression",
27
+ "computed": false,
28
+ "object": {
29
+ "type": "ArrayExpression",
30
+ "elements": []
31
+ },
32
+ "property": {
33
+ "type": "Identifier",
34
+ "name": "splice"
35
+ }
36
+ },
37
+ "property": {
38
+ "type": "Identifier",
39
+ "name": "apply"
40
+ }
41
+ };
42
+ var to;
43
+ var start = this.range.start ? this.range.start.codegen() : {
44
+ "type": "Literal",
45
+ "value": 0
46
+ };
47
+ if (typeof this.range.to !== "undefined" && this.range.to !== null) {
48
+ if (!!isNumber(start.value) && !!isNumber(this.range.to.value)) {
49
+ to = {
50
+ "type": "Literal",
51
+ "value": this.range.to.value - start.value + (this.range.operator === ".." ? 1 : 0)
52
+ };
53
+ } else {
54
+ to = this.range.to.codegen();
55
+ if (start.value !== 0) {
56
+ to = {
57
+ "type": "BinaryExpression",
58
+ "operator": "-",
59
+ "left": to,
60
+ "right": start
61
+ };
62
+ }
63
+ if (this.range.operator === "..") {
64
+ to = {
65
+ "type": "BinaryExpression",
66
+ "operator": "+",
67
+ "left": to,
68
+ "right": {
69
+ "type": "Literal",
70
+ "value": 1
71
+ }
72
+ };
73
+ }
74
+ }
75
+ } else {
76
+ to = {
77
+ "type": "Literal",
78
+ "value": 9000000000,
79
+ "raw": "9e9"
80
+ };
81
+ }
82
+ Object.defineProperty(this.parent, "arguments", {
83
+ value: [this.object.codegen(), {
84
+ "type": "CallExpression",
85
+ "callee": {
86
+ "type": "MemberExpression",
87
+ "computed": false,
88
+ "object": {
89
+ "type": "ArrayExpression",
90
+ "elements": [start, to]
91
+ },
92
+ "property": {
93
+ "type": "Identifier",
94
+ "name": "concat"
95
+ }
96
+ },
97
+ "arguments": [this.parent.right]
98
+ }],
99
+ enumerable: true
100
+ });
101
+ } else {
102
+ this.type = "CallExpression";
103
+ this.callee = {
104
+ "type": "MemberExpression",
105
+ "computed": false,
106
+ "object": this.object.codegen(),
107
+ "property": {
108
+ "type": "Identifier",
109
+ "name": "slice"
110
+ }
111
+ };
112
+ var args = [];
113
+ if (!(typeof this.range.start !== "undefined" && this.range.start !== null)) {
114
+ args.push({
115
+ "type": "Literal",
116
+ "value": 0
117
+ });
118
+ } else {
119
+ args.push(this.range.start.codegen());
120
+ }
121
+ if (typeof this.range.to !== "undefined" && this.range.to !== null) {
122
+ if (this.range.operator === "...") {
123
+ args.push(this.range.to.codegen());
124
+ } else {
125
+ if (!!this.range.to.value && !!isNumber(this.range.to.value)) {
126
+ args.push({
127
+ "type": "Literal",
128
+ "value": this.range.to.value + 1
129
+ });
130
+ } else {
131
+ args.push({
132
+ "type": "BinaryExpression",
133
+ "operator": "+",
134
+ "left": this.range.to.codegen(),
135
+ "right": {
136
+ "type": "Literal",
137
+ "value": 1
138
+ }
139
+ });
140
+ }
141
+ }
142
+ }
143
+ Object.defineProperty(this, "arguments", {
144
+ value: args,
145
+ enumerable: true
146
+ });
147
+ }
148
+ return this;
149
+ };
150
+ RangeMemberExpression.prototype.hasCallExpression = function() {
151
+ return true;
152
+ };
153
+ exports.RangeMemberExpression = RangeMemberExpression;
154
+ return {};
155
+ });
156
+
157
+ //# sourceMappingURL=RangeMemberExpression.map
@@ -0,0 +1,48 @@
1
+ $traceurRuntime.ModuleStore.getAnonymousModule(function() {
2
+ "use strict";
3
+ var Node = module.require("../Node").Node;
4
+ function SplatExpression(expression) {
5
+ Node.call(this);
6
+ this.type = "SplatExpression";
7
+ this.expression = expression;
8
+ this.expression.parent = this;
9
+ }
10
+ SplatExpression.prototype = Object.create(Node);
11
+ SplatExpression.prototype.codegen = function() {
12
+ if (!Node.prototype.codegen.call(this)) {
13
+ return;
14
+ }
15
+ this.expression = this.expression.codegen();
16
+ return {
17
+ "type": "CallExpression",
18
+ "callee": {
19
+ "type": "MemberExpression",
20
+ "computed": false,
21
+ "object": {
22
+ "type": "MemberExpression",
23
+ "computed": false,
24
+ "object": {
25
+ "type": "ArrayExpression",
26
+ "elements": []
27
+ },
28
+ "property": {
29
+ "type": "Identifier",
30
+ "name": "slice"
31
+ }
32
+ },
33
+ "property": {
34
+ "type": "Identifier",
35
+ "name": "call"
36
+ }
37
+ },
38
+ "arguments": [this.expression]
39
+ };
40
+ };
41
+ SplatExpression.prototype.hasCallExpression = function() {
42
+ return true;
43
+ };
44
+ exports.SplatExpression = SplatExpression;
45
+ return {};
46
+ });
47
+
48
+ //# sourceMappingURL=SplatExpression.map
@@ -0,0 +1,170 @@
1
+ $traceurRuntime.ModuleStore.getAnonymousModule(function() {
2
+ "use strict";
3
+ var Node = module.require("../Node").Node;
4
+ var extend = require("util")._extend;
5
+ function SuperExpression() {
6
+ Node.call(this);
7
+ this.type = "SuperExpression";
8
+ }
9
+ SuperExpression.prototype = Object.create(Node);
10
+ SuperExpression.prototype.codegen = function() {
11
+ if (!Node.prototype.codegen.call(this)) {
12
+ return;
13
+ }
14
+ if (this.parent.type === "NullPropagatingExpression") {
15
+ Node.getErrorManager().error({
16
+ type: "InvalidSuperReference",
17
+ message: "cannot refer to super before the ?. operator",
18
+ loc: this.loc
19
+ });
20
+ return {type: "ThisExpression"};
21
+ }
22
+ if (this.parent.type !== "MemberExpression") {
23
+ Node.getErrorManager().error({
24
+ type: "InvalidUsageForSuper",
25
+ message: "invalid usage of super keyword",
26
+ loc: this.loc
27
+ });
28
+ return {type: "ThisExpression"};
29
+ }
30
+ var parentNode = this;
31
+ var node = this;
32
+ while (!!(!!node && !node.inheritsFrom) && !!(!!(node.type !== "AssignmentExpression") || !!(!!(!node.left.property || !!(node.left.property.name !== "prototype")) && !!(!node.left.object.property || !!(node.left.object.property.name !== "prototype"))))) {
33
+ parentNode = node;
34
+ node = node.parent;
35
+ }
36
+ if (!node) {
37
+ Node.getErrorManager().error({
38
+ type: "InvalidContextForSuper",
39
+ message: "invalid context for super keyword",
40
+ loc: this.loc
41
+ });
42
+ return {type: "ThisExpression"};
43
+ }
44
+ var addSelf = function(context) {
45
+ var selfId = {
46
+ "type": "Identifier",
47
+ "name": "_self",
48
+ "codeGenerated": "true"
49
+ };
50
+ if (!context.node.__isSelfDefined) {
51
+ context.node.body.splice(0, 0, {
52
+ "type": "VariableDeclaration",
53
+ "declarations": [{
54
+ "type": "VariableDeclarator",
55
+ "id": selfId,
56
+ "init": {type: "ThisExpression"}
57
+ }],
58
+ "kind": "let"
59
+ });
60
+ context.node.__isSelfDefined = true;
61
+ }
62
+ return selfId;
63
+ };
64
+ var mutateCallExpression = function(id, parent, selfNode) {
65
+ selfNode.codeGenerated = true;
66
+ parent.object = id;
67
+ parent.property = Object.create({
68
+ "codeGenerated": "true",
69
+ "type": "Identifier",
70
+ "name": "call"
71
+ });
72
+ parent.parent.arguments.splice(0, 0, selfNode);
73
+ };
74
+ if (node.type === "AssignmentExpression") {
75
+ var identifier = node.left.object;
76
+ var context;
77
+ if (node.left.property.name !== "prototype") {
78
+ identifier = identifier.object;
79
+ context = {node: node.right.body};
80
+ } else {
81
+ if (node.right.type !== "ObjectExpression") {
82
+ Node.getErrorManager().error({
83
+ type: "InvalidUsageForSuper",
84
+ message: "invalid usage of super keyword",
85
+ loc: this.loc
86
+ });
87
+ return {type: "ThisExpression"};
88
+ }
89
+ var contextNode = this;
90
+ while (!!(typeof contextNode.parent !== "undefined" && contextNode.parent !== null) && !!(contextNode.parent !== node.right)) {
91
+ contextNode = contextNode.parent;
92
+ }
93
+ if (!!((typeof contextNode !== "undefined" && contextNode !== null ? contextNode.type : void 0) !== "Property") || !!((typeof contextNode !== "undefined" && (contextNode !== null && contextNode.value !== null) ? contextNode.value.type : void 0) !== "FunctionExpression")) {
94
+ Node.getErrorManager().error({
95
+ type: "InvalidUsageForSuper",
96
+ message: "invalid usage of super keyword",
97
+ loc: this.loc
98
+ });
99
+ return {type: "ThisExpression"};
100
+ }
101
+ context = {node: contextNode.value.body};
102
+ }
103
+ var selfNode;
104
+ if (context.node === this.getContext().node) {
105
+ selfNode = {type: "ThisExpression"};
106
+ } else {
107
+ selfNode = addSelf(context);
108
+ }
109
+ if (this.parent.parent.type === "CallExpression") {
110
+ var memberExpression = {
111
+ type: "MemberExpression",
112
+ computed: false,
113
+ object: {
114
+ type: "MemberExpression",
115
+ computed: false,
116
+ object: this.parent.getDefinedIdentifier(identifier.name).parent.inheritsFrom.callee,
117
+ property: {
118
+ type: "Identifier",
119
+ name: "prototype"
120
+ }
121
+ },
122
+ property: this.parent.parent.callee.property
123
+ };
124
+ mutateCallExpression(memberExpression, this.parent, selfNode);
125
+ return memberExpression;
126
+ }
127
+ return selfNode;
128
+ }
129
+ var superContext = parentNode.getContext();
130
+ var lastObject = this.parent;
131
+ while (lastObject.object.type === "MemberExpression") {
132
+ lastObject = lastObject.object;
133
+ }
134
+ lastObject.object = {type: "ThisExpression"};
135
+ var id = {
136
+ "type": "Identifier",
137
+ "name": "_" + this.parent.property.name
138
+ };
139
+ if (!this.parent.isIdentifierDefined(id.name)) {
140
+ superContext.node.body.splice(superContext.position, 0, {
141
+ "codeGenerated": "true",
142
+ "type": "VariableDeclaration",
143
+ "declarations": [{
144
+ "type": "VariableDeclarator",
145
+ "id": id,
146
+ "init": extend({}, lastObject)
147
+ }],
148
+ "kind": "let"
149
+ });
150
+ superContext.node.defineIdentifier(id);
151
+ }
152
+ if (this.parent.parent.type === "CallExpression") {
153
+ mutateCallExpression(id, this.parent, addSelf(superContext));
154
+ } else {
155
+ this.parent.type = "Identifier";
156
+ Object.defineProperty(this.parent, "name", {
157
+ value: id.name,
158
+ enumerable: true
159
+ });
160
+ }
161
+ return id;
162
+ };
163
+ SuperExpression.prototype.hasCallExpression = function() {
164
+ return false;
165
+ };
166
+ exports.SuperExpression = SuperExpression;
167
+ return {};
168
+ });
169
+
170
+ //# sourceMappingURL=SuperExpression.map
@@ -0,0 +1,22 @@
1
+ $traceurRuntime.ModuleStore.getAnonymousModule(function() {
2
+ "use strict";
3
+ var Node = module.require("../Node").Node;
4
+ function ThisExpression() {
5
+ Node.call(this);
6
+ this.type = "ThisExpression";
7
+ }
8
+ ThisExpression.prototype = Object.create(Node);
9
+ ThisExpression.prototype.codegen = function() {
10
+ if (!Node.prototype.codegen.call(this)) {
11
+ return;
12
+ }
13
+ return this;
14
+ };
15
+ ThisExpression.prototype.hasCallExpression = function() {
16
+ return false;
17
+ };
18
+ exports.ThisExpression = ThisExpression;
19
+ return {};
20
+ });
21
+
22
+ //# sourceMappingURL=ThisExpression.map