Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: test/codegen/expect/DeltaBlue.js

Issue 1879373004: Implement modular compilation (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/codegen/expect/BenchmarkBase.txt ('k') | test/codegen/expect/DeltaBlue.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 dart_library.library('DeltaBlue', null, /* Imports */[ 1 dart_library.library('DeltaBlue', null, /* Imports */[
2 'dart/_runtime', 2 'dart_sdk'
3 'BenchmarkBase', 3 ], function(exports, dart_sdk) {
4 'dart/core'
5 ], /* Lazy imports */[
6 ], function(exports, dart, BenchmarkBase, core) {
7 'use strict'; 4 'use strict';
8 let dartx = dart.dartx; 5 const core = dart_sdk.core;
9 function main() { 6 const dart = dart_sdk.dart;
10 new DeltaBlue().report(); 7 const dartx = dart_sdk.dartx;
11 } 8 const DeltaBlue$ = Object.create(null);
12 dart.fn(main); 9 const BenchmarkBase$ = Object.create(null);
13 class DeltaBlue extends BenchmarkBase.BenchmarkBase { 10 DeltaBlue$.main = function() {
11 new DeltaBlue$.DeltaBlue().report();
12 };
13 dart.fn(DeltaBlue$.main);
14 BenchmarkBase$.BenchmarkBase = class BenchmarkBase extends core.Object {
15 BenchmarkBase(name) {
16 this.name = name;
17 }
18 run() {}
19 warmup() {
20 this.run();
21 }
22 exercise() {
23 for (let i = 0; i < 10; i++) {
24 this.run();
25 }
26 }
27 setup() {}
28 teardown() {}
29 static measureFor(f, timeMinimum) {
30 let time = 0;
31 let iter = 0;
32 let watch = new core.Stopwatch();
33 watch.start();
34 let elapsed = 0;
35 while (dart.notNull(elapsed) < dart.notNull(timeMinimum)) {
36 dart.dcall(f);
37 elapsed = watch.elapsedMilliseconds;
38 iter++;
39 }
40 return 1000.0 * dart.notNull(elapsed) / iter;
41 }
42 measure() {
43 this.setup();
44 BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => {
45 this.warmup();
46 }), 100);
47 let result = BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => {
48 this.exercise();
49 }), 2000);
50 this.teardown();
51 return result;
52 }
53 report() {
54 let score = this.measure();
55 core.print(`${this.name}(RunTime): ${score} us.`);
56 }
57 };
58 dart.setSignature(BenchmarkBase$.BenchmarkBase, {
59 constructors: () => ({BenchmarkBase: [BenchmarkBase$.BenchmarkBase, [core.St ring]]}),
60 methods: () => ({
61 run: [dart.void, []],
62 warmup: [dart.void, []],
63 exercise: [dart.void, []],
64 setup: [dart.void, []],
65 teardown: [dart.void, []],
66 measure: [core.double, []],
67 report: [dart.void, []]
68 }),
69 statics: () => ({measureFor: [core.double, [core.Function, core.int]]}),
70 names: ['measureFor']
71 });
72 DeltaBlue$.DeltaBlue = class DeltaBlue extends BenchmarkBase$.BenchmarkBase {
14 DeltaBlue() { 73 DeltaBlue() {
15 super.BenchmarkBase("DeltaBlue"); 74 super.BenchmarkBase("DeltaBlue");
16 } 75 }
17 run() { 76 run() {
18 chainTest(100); 77 DeltaBlue$.chainTest(100);
19 projectionTest(100); 78 DeltaBlue$.projectionTest(100);
20 } 79 }
21 } 80 };
22 dart.setSignature(DeltaBlue, { 81 dart.setSignature(DeltaBlue$.DeltaBlue, {
23 constructors: () => ({DeltaBlue: [DeltaBlue, []]}) 82 constructors: () => ({DeltaBlue: [DeltaBlue$.DeltaBlue, []]})
24 }); 83 });
25 class Strength extends core.Object { 84 DeltaBlue$.Strength = class Strength extends core.Object {
26 Strength(value, name) { 85 Strength(value, name) {
27 this.value = value; 86 this.value = value;
28 this.name = name; 87 this.name = name;
29 } 88 }
30 nextWeaker() { 89 nextWeaker() {
31 return dart.const(dart.list([STRONG_PREFERRED, PREFERRED, STRONG_DEFAULT, NORMAL, WEAK_DEFAULT, WEAKEST], Strength))[dartx.get](this.value); 90 return dart.const(dart.list([DeltaBlue$.STRONG_PREFERRED, DeltaBlue$.PREFE RRED, DeltaBlue$.STRONG_DEFAULT, DeltaBlue$.NORMAL, DeltaBlue$.WEAK_DEFAULT, Del taBlue$.WEAKEST], DeltaBlue$.Strength))[dartx.get](this.value);
32 } 91 }
33 static stronger(s1, s2) { 92 static stronger(s1, s2) {
34 return dart.notNull(s1.value) < dart.notNull(s2.value); 93 return dart.notNull(s1.value) < dart.notNull(s2.value);
35 } 94 }
36 static weaker(s1, s2) { 95 static weaker(s1, s2) {
37 return dart.notNull(s1.value) > dart.notNull(s2.value); 96 return dart.notNull(s1.value) > dart.notNull(s2.value);
38 } 97 }
39 static weakest(s1, s2) { 98 static weakest(s1, s2) {
40 return dart.notNull(Strength.weaker(s1, s2)) ? s1 : s2; 99 return dart.notNull(DeltaBlue$.Strength.weaker(s1, s2)) ? s1 : s2;
41 } 100 }
42 static strongest(s1, s2) { 101 static strongest(s1, s2) {
43 return dart.notNull(Strength.stronger(s1, s2)) ? s1 : s2; 102 return dart.notNull(DeltaBlue$.Strength.stronger(s1, s2)) ? s1 : s2;
44 } 103 }
45 } 104 };
46 dart.setSignature(Strength, { 105 dart.setSignature(DeltaBlue$.Strength, {
47 constructors: () => ({Strength: [Strength, [core.int, core.String]]}), 106 constructors: () => ({Strength: [DeltaBlue$.Strength, [core.int, core.String ]]}),
48 methods: () => ({nextWeaker: [Strength, []]}), 107 methods: () => ({nextWeaker: [DeltaBlue$.Strength, []]}),
49 statics: () => ({ 108 statics: () => ({
50 stronger: [core.bool, [Strength, Strength]], 109 stronger: [core.bool, [DeltaBlue$.Strength, DeltaBlue$.Strength]],
51 weaker: [core.bool, [Strength, Strength]], 110 weaker: [core.bool, [DeltaBlue$.Strength, DeltaBlue$.Strength]],
52 weakest: [Strength, [Strength, Strength]], 111 weakest: [DeltaBlue$.Strength, [DeltaBlue$.Strength, DeltaBlue$.Strength]] ,
53 strongest: [Strength, [Strength, Strength]] 112 strongest: [DeltaBlue$.Strength, [DeltaBlue$.Strength, DeltaBlue$.Strength ]]
54 }), 113 }),
55 names: ['stronger', 'weaker', 'weakest', 'strongest'] 114 names: ['stronger', 'weaker', 'weakest', 'strongest']
56 }); 115 });
57 const REQUIRED = dart.const(new Strength(0, "required")); 116 DeltaBlue$.REQUIRED = dart.const(new DeltaBlue$.Strength(0, "required"));
58 const STRONG_PREFERRED = dart.const(new Strength(1, "strongPreferred")); 117 DeltaBlue$.STRONG_PREFERRED = dart.const(new DeltaBlue$.Strength(1, "strongPre ferred"));
59 const PREFERRED = dart.const(new Strength(2, "preferred")); 118 DeltaBlue$.PREFERRED = dart.const(new DeltaBlue$.Strength(2, "preferred"));
60 const STRONG_DEFAULT = dart.const(new Strength(3, "strongDefault")); 119 DeltaBlue$.STRONG_DEFAULT = dart.const(new DeltaBlue$.Strength(3, "strongDefau lt"));
61 const NORMAL = dart.const(new Strength(4, "normal")); 120 DeltaBlue$.NORMAL = dart.const(new DeltaBlue$.Strength(4, "normal"));
62 const WEAK_DEFAULT = dart.const(new Strength(5, "weakDefault")); 121 DeltaBlue$.WEAK_DEFAULT = dart.const(new DeltaBlue$.Strength(5, "weakDefault") );
63 const WEAKEST = dart.const(new Strength(6, "weakest")); 122 DeltaBlue$.WEAKEST = dart.const(new DeltaBlue$.Strength(6, "weakest"));
64 class Constraint extends core.Object { 123 DeltaBlue$.Constraint = class Constraint extends core.Object {
65 Constraint(strength) { 124 Constraint(strength) {
66 this.strength = strength; 125 this.strength = strength;
67 } 126 }
68 addConstraint() { 127 addConstraint() {
69 this.addToGraph(); 128 this.addToGraph();
70 exports.planner.incrementalAdd(this); 129 DeltaBlue$.planner.incrementalAdd(this);
71 } 130 }
72 satisfy(mark) { 131 satisfy(mark) {
73 this.chooseMethod(dart.as(mark, core.int)); 132 this.chooseMethod(dart.as(mark, core.int));
74 if (!dart.notNull(this.isSatisfied())) { 133 if (!dart.notNull(this.isSatisfied())) {
75 if (dart.equals(this.strength, REQUIRED)) { 134 if (dart.equals(this.strength, DeltaBlue$.REQUIRED)) {
76 core.print("Could not satisfy a required constraint!"); 135 core.print("Could not satisfy a required constraint!");
77 } 136 }
78 return null; 137 return null;
79 } 138 }
80 this.markInputs(dart.as(mark, core.int)); 139 this.markInputs(dart.as(mark, core.int));
81 let out = this.output(); 140 let out = this.output();
82 let overridden = out.determinedBy; 141 let overridden = out.determinedBy;
83 if (overridden != null) overridden.markUnsatisfied(); 142 if (overridden != null) overridden.markUnsatisfied();
84 out.determinedBy = this; 143 out.determinedBy = this;
85 if (!dart.notNull(exports.planner.addPropagate(this, dart.as(mark, core.in t)))) core.print("Cycle encountered"); 144 if (!dart.notNull(DeltaBlue$.planner.addPropagate(this, dart.as(mark, core .int)))) core.print("Cycle encountered");
86 out.mark = dart.as(mark, core.int); 145 out.mark = dart.as(mark, core.int);
87 return overridden; 146 return overridden;
88 } 147 }
89 destroyConstraint() { 148 destroyConstraint() {
90 if (dart.notNull(this.isSatisfied())) exports.planner.incrementalRemove(th is); 149 if (dart.notNull(this.isSatisfied())) DeltaBlue$.planner.incrementalRemove (this);
91 this.removeFromGraph(); 150 this.removeFromGraph();
92 } 151 }
93 isInput() { 152 isInput() {
94 return false; 153 return false;
95 } 154 }
96 } 155 };
97 dart.setSignature(Constraint, { 156 dart.setSignature(DeltaBlue$.Constraint, {
98 constructors: () => ({Constraint: [Constraint, [Strength]]}), 157 constructors: () => ({Constraint: [DeltaBlue$.Constraint, [DeltaBlue$.Streng th]]}),
99 methods: () => ({ 158 methods: () => ({
100 addConstraint: [dart.void, []], 159 addConstraint: [dart.void, []],
101 satisfy: [Constraint, [dart.dynamic]], 160 satisfy: [DeltaBlue$.Constraint, [dart.dynamic]],
102 destroyConstraint: [dart.void, []], 161 destroyConstraint: [dart.void, []],
103 isInput: [core.bool, []] 162 isInput: [core.bool, []]
104 }) 163 })
105 }); 164 });
106 class UnaryConstraint extends Constraint { 165 DeltaBlue$.UnaryConstraint = class UnaryConstraint extends DeltaBlue$.Constrai nt {
107 UnaryConstraint(myOutput, strength) { 166 UnaryConstraint(myOutput, strength) {
108 this.myOutput = myOutput; 167 this.myOutput = myOutput;
109 this.satisfied = false; 168 this.satisfied = false;
110 super.Constraint(strength); 169 super.Constraint(strength);
111 this.addConstraint(); 170 this.addConstraint();
112 } 171 }
113 addToGraph() { 172 addToGraph() {
114 this.myOutput.addConstraint(this); 173 this.myOutput.addConstraint(this);
115 this.satisfied = false; 174 this.satisfied = false;
116 } 175 }
117 chooseMethod(mark) { 176 chooseMethod(mark) {
118 this.satisfied = this.myOutput.mark != mark && dart.notNull(Strength.stron ger(this.strength, this.myOutput.walkStrength)); 177 this.satisfied = this.myOutput.mark != mark && dart.notNull(DeltaBlue$.Str ength.stronger(this.strength, this.myOutput.walkStrength));
119 } 178 }
120 isSatisfied() { 179 isSatisfied() {
121 return this.satisfied; 180 return this.satisfied;
122 } 181 }
123 markInputs(mark) {} 182 markInputs(mark) {}
124 output() { 183 output() {
125 return this.myOutput; 184 return this.myOutput;
126 } 185 }
127 recalculate() { 186 recalculate() {
128 this.myOutput.walkStrength = this.strength; 187 this.myOutput.walkStrength = this.strength;
129 this.myOutput.stay = !dart.notNull(this.isInput()); 188 this.myOutput.stay = !dart.notNull(this.isInput());
130 if (dart.notNull(this.myOutput.stay)) this.execute(); 189 if (dart.notNull(this.myOutput.stay)) this.execute();
131 } 190 }
132 markUnsatisfied() { 191 markUnsatisfied() {
133 this.satisfied = false; 192 this.satisfied = false;
134 } 193 }
135 inputsKnown(mark) { 194 inputsKnown(mark) {
136 return true; 195 return true;
137 } 196 }
138 removeFromGraph() { 197 removeFromGraph() {
139 if (this.myOutput != null) this.myOutput.removeConstraint(this); 198 if (this.myOutput != null) this.myOutput.removeConstraint(this);
140 this.satisfied = false; 199 this.satisfied = false;
141 } 200 }
142 } 201 };
143 dart.setSignature(UnaryConstraint, { 202 dart.setSignature(DeltaBlue$.UnaryConstraint, {
144 constructors: () => ({UnaryConstraint: [UnaryConstraint, [Variable, Strength ]]}), 203 constructors: () => ({UnaryConstraint: [DeltaBlue$.UnaryConstraint, [DeltaBl ue$.Variable, DeltaBlue$.Strength]]}),
145 methods: () => ({ 204 methods: () => ({
146 addToGraph: [dart.void, []], 205 addToGraph: [dart.void, []],
147 chooseMethod: [dart.void, [core.int]], 206 chooseMethod: [dart.void, [core.int]],
148 isSatisfied: [core.bool, []], 207 isSatisfied: [core.bool, []],
149 markInputs: [dart.void, [core.int]], 208 markInputs: [dart.void, [core.int]],
150 output: [Variable, []], 209 output: [DeltaBlue$.Variable, []],
151 recalculate: [dart.void, []], 210 recalculate: [dart.void, []],
152 markUnsatisfied: [dart.void, []], 211 markUnsatisfied: [dart.void, []],
153 inputsKnown: [core.bool, [core.int]], 212 inputsKnown: [core.bool, [core.int]],
154 removeFromGraph: [dart.void, []] 213 removeFromGraph: [dart.void, []]
155 }) 214 })
156 }); 215 });
157 class StayConstraint extends UnaryConstraint { 216 DeltaBlue$.StayConstraint = class StayConstraint extends DeltaBlue$.UnaryConst raint {
158 StayConstraint(v, str) { 217 StayConstraint(v, str) {
159 super.UnaryConstraint(v, str); 218 super.UnaryConstraint(v, str);
160 } 219 }
161 execute() {} 220 execute() {}
162 } 221 };
163 dart.setSignature(StayConstraint, { 222 dart.setSignature(DeltaBlue$.StayConstraint, {
164 constructors: () => ({StayConstraint: [StayConstraint, [Variable, Strength]] }), 223 constructors: () => ({StayConstraint: [DeltaBlue$.StayConstraint, [DeltaBlue $.Variable, DeltaBlue$.Strength]]}),
165 methods: () => ({execute: [dart.void, []]}) 224 methods: () => ({execute: [dart.void, []]})
166 }); 225 });
167 class EditConstraint extends UnaryConstraint { 226 DeltaBlue$.EditConstraint = class EditConstraint extends DeltaBlue$.UnaryConst raint {
168 EditConstraint(v, str) { 227 EditConstraint(v, str) {
169 super.UnaryConstraint(v, str); 228 super.UnaryConstraint(v, str);
170 } 229 }
171 isInput() { 230 isInput() {
172 return true; 231 return true;
173 } 232 }
174 execute() {} 233 execute() {}
175 } 234 };
176 dart.setSignature(EditConstraint, { 235 dart.setSignature(DeltaBlue$.EditConstraint, {
177 constructors: () => ({EditConstraint: [EditConstraint, [Variable, Strength]] }), 236 constructors: () => ({EditConstraint: [DeltaBlue$.EditConstraint, [DeltaBlue $.Variable, DeltaBlue$.Strength]]}),
178 methods: () => ({execute: [dart.void, []]}) 237 methods: () => ({execute: [dart.void, []]})
179 }); 238 });
180 const NONE = 1; 239 DeltaBlue$.NONE = 1;
181 const FORWARD = 2; 240 DeltaBlue$.FORWARD = 2;
182 const BACKWARD = 0; 241 DeltaBlue$.BACKWARD = 0;
183 class BinaryConstraint extends Constraint { 242 DeltaBlue$.BinaryConstraint = class BinaryConstraint extends DeltaBlue$.Constr aint {
184 BinaryConstraint(v1, v2, strength) { 243 BinaryConstraint(v1, v2, strength) {
185 this.v1 = v1; 244 this.v1 = v1;
186 this.v2 = v2; 245 this.v2 = v2;
187 this.direction = NONE; 246 this.direction = DeltaBlue$.NONE;
188 super.Constraint(strength); 247 super.Constraint(strength);
189 this.addConstraint(); 248 this.addConstraint();
190 } 249 }
191 chooseMethod(mark) { 250 chooseMethod(mark) {
192 if (this.v1.mark == mark) { 251 if (this.v1.mark == mark) {
193 this.direction = this.v2.mark != mark && dart.notNull(Strength.stronger( this.strength, this.v2.walkStrength)) ? FORWARD : NONE; 252 this.direction = this.v2.mark != mark && dart.notNull(DeltaBlue$.Strengt h.stronger(this.strength, this.v2.walkStrength)) ? DeltaBlue$.FORWARD : DeltaBlu e$.NONE;
194 } 253 }
195 if (this.v2.mark == mark) { 254 if (this.v2.mark == mark) {
196 this.direction = this.v1.mark != mark && dart.notNull(Strength.stronger( this.strength, this.v1.walkStrength)) ? BACKWARD : NONE; 255 this.direction = this.v1.mark != mark && dart.notNull(DeltaBlue$.Strengt h.stronger(this.strength, this.v1.walkStrength)) ? DeltaBlue$.BACKWARD : DeltaBl ue$.NONE;
197 } 256 }
198 if (dart.notNull(Strength.weaker(this.v1.walkStrength, this.v2.walkStrengt h))) { 257 if (dart.notNull(DeltaBlue$.Strength.weaker(this.v1.walkStrength, this.v2. walkStrength))) {
199 this.direction = dart.notNull(Strength.stronger(this.strength, this.v1.w alkStrength)) ? BACKWARD : NONE; 258 this.direction = dart.notNull(DeltaBlue$.Strength.stronger(this.strength , this.v1.walkStrength)) ? DeltaBlue$.BACKWARD : DeltaBlue$.NONE;
200 } else { 259 } else {
201 this.direction = dart.notNull(Strength.stronger(this.strength, this.v2.w alkStrength)) ? FORWARD : BACKWARD; 260 this.direction = dart.notNull(DeltaBlue$.Strength.stronger(this.strength , this.v2.walkStrength)) ? DeltaBlue$.FORWARD : DeltaBlue$.BACKWARD;
202 } 261 }
203 } 262 }
204 addToGraph() { 263 addToGraph() {
205 this.v1.addConstraint(this); 264 this.v1.addConstraint(this);
206 this.v2.addConstraint(this); 265 this.v2.addConstraint(this);
207 this.direction = NONE; 266 this.direction = DeltaBlue$.NONE;
208 } 267 }
209 isSatisfied() { 268 isSatisfied() {
210 return this.direction != NONE; 269 return this.direction != DeltaBlue$.NONE;
211 } 270 }
212 markInputs(mark) { 271 markInputs(mark) {
213 this.input().mark = mark; 272 this.input().mark = mark;
214 } 273 }
215 input() { 274 input() {
216 return this.direction == FORWARD ? this.v1 : this.v2; 275 return this.direction == DeltaBlue$.FORWARD ? this.v1 : this.v2;
217 } 276 }
218 output() { 277 output() {
219 return this.direction == FORWARD ? this.v2 : this.v1; 278 return this.direction == DeltaBlue$.FORWARD ? this.v2 : this.v1;
220 } 279 }
221 recalculate() { 280 recalculate() {
222 let ihn = this.input(), out = this.output(); 281 let ihn = this.input(), out = this.output();
223 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength); 282 out.walkStrength = DeltaBlue$.Strength.weakest(this.strength, ihn.walkStre ngth);
224 out.stay = ihn.stay; 283 out.stay = ihn.stay;
225 if (dart.notNull(out.stay)) this.execute(); 284 if (dart.notNull(out.stay)) this.execute();
226 } 285 }
227 markUnsatisfied() { 286 markUnsatisfied() {
228 this.direction = NONE; 287 this.direction = DeltaBlue$.NONE;
229 } 288 }
230 inputsKnown(mark) { 289 inputsKnown(mark) {
231 let i = this.input(); 290 let i = this.input();
232 return i.mark == mark || dart.notNull(i.stay) || i.determinedBy == null; 291 return i.mark == mark || dart.notNull(i.stay) || i.determinedBy == null;
233 } 292 }
234 removeFromGraph() { 293 removeFromGraph() {
235 if (this.v1 != null) this.v1.removeConstraint(this); 294 if (this.v1 != null) this.v1.removeConstraint(this);
236 if (this.v2 != null) this.v2.removeConstraint(this); 295 if (this.v2 != null) this.v2.removeConstraint(this);
237 this.direction = NONE; 296 this.direction = DeltaBlue$.NONE;
238 } 297 }
239 } 298 };
240 dart.setSignature(BinaryConstraint, { 299 dart.setSignature(DeltaBlue$.BinaryConstraint, {
241 constructors: () => ({BinaryConstraint: [BinaryConstraint, [Variable, Variab le, Strength]]}), 300 constructors: () => ({BinaryConstraint: [DeltaBlue$.BinaryConstraint, [Delta Blue$.Variable, DeltaBlue$.Variable, DeltaBlue$.Strength]]}),
242 methods: () => ({ 301 methods: () => ({
243 chooseMethod: [dart.void, [core.int]], 302 chooseMethod: [dart.void, [core.int]],
244 addToGraph: [dart.void, []], 303 addToGraph: [dart.void, []],
245 isSatisfied: [core.bool, []], 304 isSatisfied: [core.bool, []],
246 markInputs: [dart.void, [core.int]], 305 markInputs: [dart.void, [core.int]],
247 input: [Variable, []], 306 input: [DeltaBlue$.Variable, []],
248 output: [Variable, []], 307 output: [DeltaBlue$.Variable, []],
249 recalculate: [dart.void, []], 308 recalculate: [dart.void, []],
250 markUnsatisfied: [dart.void, []], 309 markUnsatisfied: [dart.void, []],
251 inputsKnown: [core.bool, [core.int]], 310 inputsKnown: [core.bool, [core.int]],
252 removeFromGraph: [dart.void, []] 311 removeFromGraph: [dart.void, []]
253 }) 312 })
254 }); 313 });
255 class ScaleConstraint extends BinaryConstraint { 314 DeltaBlue$.ScaleConstraint = class ScaleConstraint extends DeltaBlue$.BinaryCo nstraint {
256 ScaleConstraint(src, scale, offset, dest, strength) { 315 ScaleConstraint(src, scale, offset, dest, strength) {
257 this.scale = scale; 316 this.scale = scale;
258 this.offset = offset; 317 this.offset = offset;
259 super.BinaryConstraint(src, dest, strength); 318 super.BinaryConstraint(src, dest, strength);
260 } 319 }
261 addToGraph() { 320 addToGraph() {
262 super.addToGraph(); 321 super.addToGraph();
263 this.scale.addConstraint(this); 322 this.scale.addConstraint(this);
264 this.offset.addConstraint(this); 323 this.offset.addConstraint(this);
265 } 324 }
266 removeFromGraph() { 325 removeFromGraph() {
267 super.removeFromGraph(); 326 super.removeFromGraph();
268 if (this.scale != null) this.scale.removeConstraint(this); 327 if (this.scale != null) this.scale.removeConstraint(this);
269 if (this.offset != null) this.offset.removeConstraint(this); 328 if (this.offset != null) this.offset.removeConstraint(this);
270 } 329 }
271 markInputs(mark) { 330 markInputs(mark) {
272 super.markInputs(mark); 331 super.markInputs(mark);
273 this.scale.mark = this.offset.mark = mark; 332 this.scale.mark = this.offset.mark = mark;
274 } 333 }
275 execute() { 334 execute() {
276 if (this.direction == FORWARD) { 335 if (this.direction == DeltaBlue$.FORWARD) {
277 this.v2.value = dart.notNull(this.v1.value) * dart.notNull(this.scale.va lue) + dart.notNull(this.offset.value); 336 this.v2.value = dart.notNull(this.v1.value) * dart.notNull(this.scale.va lue) + dart.notNull(this.offset.value);
278 } else { 337 } else {
279 this.v1.value = ((dart.notNull(this.v2.value) - dart.notNull(this.offset .value)) / dart.notNull(this.scale.value))[dartx.truncate](); 338 this.v1.value = ((dart.notNull(this.v2.value) - dart.notNull(this.offset .value)) / dart.notNull(this.scale.value))[dartx.truncate]();
280 } 339 }
281 } 340 }
282 recalculate() { 341 recalculate() {
283 let ihn = this.input(), out = this.output(); 342 let ihn = this.input(), out = this.output();
284 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength); 343 out.walkStrength = DeltaBlue$.Strength.weakest(this.strength, ihn.walkStre ngth);
285 out.stay = dart.notNull(ihn.stay) && dart.notNull(this.scale.stay) && dart .notNull(this.offset.stay); 344 out.stay = dart.notNull(ihn.stay) && dart.notNull(this.scale.stay) && dart .notNull(this.offset.stay);
286 if (dart.notNull(out.stay)) this.execute(); 345 if (dart.notNull(out.stay)) this.execute();
287 } 346 }
288 } 347 };
289 dart.setSignature(ScaleConstraint, { 348 dart.setSignature(DeltaBlue$.ScaleConstraint, {
290 constructors: () => ({ScaleConstraint: [ScaleConstraint, [Variable, Variable , Variable, Variable, Strength]]}), 349 constructors: () => ({ScaleConstraint: [DeltaBlue$.ScaleConstraint, [DeltaBl ue$.Variable, DeltaBlue$.Variable, DeltaBlue$.Variable, DeltaBlue$.Variable, Del taBlue$.Strength]]}),
291 methods: () => ({execute: [dart.void, []]}) 350 methods: () => ({execute: [dart.void, []]})
292 }); 351 });
293 class EqualityConstraint extends BinaryConstraint { 352 DeltaBlue$.EqualityConstraint = class EqualityConstraint extends DeltaBlue$.Bi naryConstraint {
294 EqualityConstraint(v1, v2, strength) { 353 EqualityConstraint(v1, v2, strength) {
295 super.BinaryConstraint(v1, v2, strength); 354 super.BinaryConstraint(v1, v2, strength);
296 } 355 }
297 execute() { 356 execute() {
298 this.output().value = this.input().value; 357 this.output().value = this.input().value;
299 } 358 }
300 } 359 };
301 dart.setSignature(EqualityConstraint, { 360 dart.setSignature(DeltaBlue$.EqualityConstraint, {
302 constructors: () => ({EqualityConstraint: [EqualityConstraint, [Variable, Va riable, Strength]]}), 361 constructors: () => ({EqualityConstraint: [DeltaBlue$.EqualityConstraint, [D eltaBlue$.Variable, DeltaBlue$.Variable, DeltaBlue$.Strength]]}),
303 methods: () => ({execute: [dart.void, []]}) 362 methods: () => ({execute: [dart.void, []]})
304 }); 363 });
305 class Variable extends core.Object { 364 DeltaBlue$.Variable = class Variable extends core.Object {
306 Variable(name, value) { 365 Variable(name, value) {
307 this.constraints = dart.list([], Constraint); 366 this.constraints = dart.list([], DeltaBlue$.Constraint);
308 this.name = name; 367 this.name = name;
309 this.value = value; 368 this.value = value;
310 this.determinedBy = null; 369 this.determinedBy = null;
311 this.mark = 0; 370 this.mark = 0;
312 this.walkStrength = WEAKEST; 371 this.walkStrength = DeltaBlue$.WEAKEST;
313 this.stay = true; 372 this.stay = true;
314 } 373 }
315 addConstraint(c) { 374 addConstraint(c) {
316 this.constraints[dartx.add](c); 375 this.constraints[dartx.add](c);
317 } 376 }
318 removeConstraint(c) { 377 removeConstraint(c) {
319 this.constraints[dartx.remove](c); 378 this.constraints[dartx.remove](c);
320 if (dart.equals(this.determinedBy, c)) this.determinedBy = null; 379 if (dart.equals(this.determinedBy, c)) this.determinedBy = null;
321 } 380 }
322 } 381 };
323 dart.setSignature(Variable, { 382 dart.setSignature(DeltaBlue$.Variable, {
324 constructors: () => ({Variable: [Variable, [core.String, core.int]]}), 383 constructors: () => ({Variable: [DeltaBlue$.Variable, [core.String, core.int ]]}),
325 methods: () => ({ 384 methods: () => ({
326 addConstraint: [dart.void, [Constraint]], 385 addConstraint: [dart.void, [DeltaBlue$.Constraint]],
327 removeConstraint: [dart.void, [Constraint]] 386 removeConstraint: [dart.void, [DeltaBlue$.Constraint]]
328 }) 387 })
329 }); 388 });
330 class Planner extends core.Object { 389 DeltaBlue$.Planner = class Planner extends core.Object {
331 Planner() { 390 Planner() {
332 this.currentMark = 0; 391 this.currentMark = 0;
333 } 392 }
334 incrementalAdd(c) { 393 incrementalAdd(c) {
335 let mark = this.newMark(); 394 let mark = this.newMark();
336 for (let overridden = c.satisfy(mark); overridden != null; overridden = ov erridden.satisfy(mark)) 395 for (let overridden = c.satisfy(mark); overridden != null; overridden = ov erridden.satisfy(mark))
337 ; 396 ;
338 } 397 }
339 incrementalRemove(c) { 398 incrementalRemove(c) {
340 let out = c.output(); 399 let out = c.output();
341 c.markUnsatisfied(); 400 c.markUnsatisfied();
342 c.removeFromGraph(); 401 c.removeFromGraph();
343 let unsatisfied = this.removePropagateFrom(out); 402 let unsatisfied = this.removePropagateFrom(out);
344 let strength = REQUIRED; 403 let strength = DeltaBlue$.REQUIRED;
345 do { 404 do {
346 for (let i = 0; i < dart.notNull(unsatisfied[dartx.length]); i++) { 405 for (let i = 0; i < dart.notNull(unsatisfied[dartx.length]); i++) {
347 let u = unsatisfied[dartx.get](i); 406 let u = unsatisfied[dartx.get](i);
348 if (dart.equals(u.strength, strength)) this.incrementalAdd(u); 407 if (dart.equals(u.strength, strength)) this.incrementalAdd(u);
349 } 408 }
350 strength = strength.nextWeaker(); 409 strength = strength.nextWeaker();
351 } while (!dart.equals(strength, WEAKEST)); 410 } while (!dart.equals(strength, DeltaBlue$.WEAKEST));
352 } 411 }
353 newMark() { 412 newMark() {
354 return this.currentMark = dart.notNull(this.currentMark) + 1; 413 return this.currentMark = dart.notNull(this.currentMark) + 1;
355 } 414 }
356 makePlan(sources) { 415 makePlan(sources) {
357 let mark = this.newMark(); 416 let mark = this.newMark();
358 let plan = new Plan(); 417 let plan = new DeltaBlue$.Plan();
359 let todo = sources; 418 let todo = sources;
360 while (dart.notNull(todo[dartx.length]) > 0) { 419 while (dart.notNull(todo[dartx.length]) > 0) {
361 let c = todo[dartx.removeLast](); 420 let c = todo[dartx.removeLast]();
362 if (c.output().mark != mark && dart.notNull(c.inputsKnown(mark))) { 421 if (c.output().mark != mark && dart.notNull(c.inputsKnown(mark))) {
363 plan.addConstraint(c); 422 plan.addConstraint(c);
364 c.output().mark = mark; 423 c.output().mark = mark;
365 this.addConstraintsConsumingTo(c.output(), todo); 424 this.addConstraintsConsumingTo(c.output(), todo);
366 } 425 }
367 } 426 }
368 return plan; 427 return plan;
369 } 428 }
370 extractPlanFromConstraints(constraints) { 429 extractPlanFromConstraints(constraints) {
371 let sources = dart.list([], Constraint); 430 let sources = dart.list([], DeltaBlue$.Constraint);
372 for (let i = 0; i < dart.notNull(constraints[dartx.length]); i++) { 431 for (let i = 0; i < dart.notNull(constraints[dartx.length]); i++) {
373 let c = constraints[dartx.get](i); 432 let c = constraints[dartx.get](i);
374 if (dart.notNull(c.isInput()) && dart.notNull(c.isSatisfied())) sources[ dartx.add](c); 433 if (dart.notNull(c.isInput()) && dart.notNull(c.isSatisfied())) sources[ dartx.add](c);
375 } 434 }
376 return this.makePlan(sources); 435 return this.makePlan(sources);
377 } 436 }
378 addPropagate(c, mark) { 437 addPropagate(c, mark) {
379 let todo = dart.list([c], Constraint); 438 let todo = dart.list([c], DeltaBlue$.Constraint);
380 while (dart.notNull(todo[dartx.length]) > 0) { 439 while (dart.notNull(todo[dartx.length]) > 0) {
381 let d = todo[dartx.removeLast](); 440 let d = todo[dartx.removeLast]();
382 if (d.output().mark == mark) { 441 if (d.output().mark == mark) {
383 this.incrementalRemove(c); 442 this.incrementalRemove(c);
384 return false; 443 return false;
385 } 444 }
386 d.recalculate(); 445 d.recalculate();
387 this.addConstraintsConsumingTo(d.output(), todo); 446 this.addConstraintsConsumingTo(d.output(), todo);
388 } 447 }
389 return true; 448 return true;
390 } 449 }
391 removePropagateFrom(out) { 450 removePropagateFrom(out) {
392 out.determinedBy = null; 451 out.determinedBy = null;
393 out.walkStrength = WEAKEST; 452 out.walkStrength = DeltaBlue$.WEAKEST;
394 out.stay = true; 453 out.stay = true;
395 let unsatisfied = dart.list([], Constraint); 454 let unsatisfied = dart.list([], DeltaBlue$.Constraint);
396 let todo = dart.list([out], Variable); 455 let todo = dart.list([out], DeltaBlue$.Variable);
397 while (dart.notNull(todo[dartx.length]) > 0) { 456 while (dart.notNull(todo[dartx.length]) > 0) {
398 let v = todo[dartx.removeLast](); 457 let v = todo[dartx.removeLast]();
399 for (let i = 0; i < dart.notNull(v.constraints[dartx.length]); i++) { 458 for (let i = 0; i < dart.notNull(v.constraints[dartx.length]); i++) {
400 let c = v.constraints[dartx.get](i); 459 let c = v.constraints[dartx.get](i);
401 if (!dart.notNull(c.isSatisfied())) unsatisfied[dartx.add](c); 460 if (!dart.notNull(c.isSatisfied())) unsatisfied[dartx.add](c);
402 } 461 }
403 let determining = v.determinedBy; 462 let determining = v.determinedBy;
404 for (let i = 0; i < dart.notNull(v.constraints[dartx.length]); i++) { 463 for (let i = 0; i < dart.notNull(v.constraints[dartx.length]); i++) {
405 let next = v.constraints[dartx.get](i); 464 let next = v.constraints[dartx.get](i);
406 if (!dart.equals(next, determining) && dart.notNull(next.isSatisfied() )) { 465 if (!dart.equals(next, determining) && dart.notNull(next.isSatisfied() )) {
407 next.recalculate(); 466 next.recalculate();
408 todo[dartx.add](next.output()); 467 todo[dartx.add](next.output());
409 } 468 }
410 } 469 }
411 } 470 }
412 return unsatisfied; 471 return unsatisfied;
413 } 472 }
414 addConstraintsConsumingTo(v, coll) { 473 addConstraintsConsumingTo(v, coll) {
415 let determining = v.determinedBy; 474 let determining = v.determinedBy;
416 for (let i = 0; i < dart.notNull(v.constraints[dartx.length]); i++) { 475 for (let i = 0; i < dart.notNull(v.constraints[dartx.length]); i++) {
417 let c = v.constraints[dartx.get](i); 476 let c = v.constraints[dartx.get](i);
418 if (!dart.equals(c, determining) && dart.notNull(c.isSatisfied())) coll[ dartx.add](c); 477 if (!dart.equals(c, determining) && dart.notNull(c.isSatisfied())) coll[ dartx.add](c);
419 } 478 }
420 } 479 }
421 } 480 };
422 dart.setSignature(Planner, { 481 dart.setSignature(DeltaBlue$.Planner, {
423 methods: () => ({ 482 methods: () => ({
424 incrementalAdd: [dart.void, [Constraint]], 483 incrementalAdd: [dart.void, [DeltaBlue$.Constraint]],
425 incrementalRemove: [dart.void, [Constraint]], 484 incrementalRemove: [dart.void, [DeltaBlue$.Constraint]],
426 newMark: [core.int, []], 485 newMark: [core.int, []],
427 makePlan: [Plan, [core.List$(Constraint)]], 486 makePlan: [DeltaBlue$.Plan, [core.List$(DeltaBlue$.Constraint)]],
428 extractPlanFromConstraints: [Plan, [core.List$(Constraint)]], 487 extractPlanFromConstraints: [DeltaBlue$.Plan, [core.List$(DeltaBlue$.Const raint)]],
429 addPropagate: [core.bool, [Constraint, core.int]], 488 addPropagate: [core.bool, [DeltaBlue$.Constraint, core.int]],
430 removePropagateFrom: [core.List$(Constraint), [Variable]], 489 removePropagateFrom: [core.List$(DeltaBlue$.Constraint), [DeltaBlue$.Varia ble]],
431 addConstraintsConsumingTo: [dart.void, [Variable, core.List$(Constraint)]] 490 addConstraintsConsumingTo: [dart.void, [DeltaBlue$.Variable, core.List$(De ltaBlue$.Constraint)]]
432 }) 491 })
433 }); 492 });
434 class Plan extends core.Object { 493 DeltaBlue$.Plan = class Plan extends core.Object {
435 Plan() { 494 Plan() {
436 this.list = dart.list([], Constraint); 495 this.list = dart.list([], DeltaBlue$.Constraint);
437 } 496 }
438 addConstraint(c) { 497 addConstraint(c) {
439 this.list[dartx.add](c); 498 this.list[dartx.add](c);
440 } 499 }
441 size() { 500 size() {
442 return this.list[dartx.length]; 501 return this.list[dartx.length];
443 } 502 }
444 execute() { 503 execute() {
445 for (let i = 0; i < dart.notNull(this.list[dartx.length]); i++) { 504 for (let i = 0; i < dart.notNull(this.list[dartx.length]); i++) {
446 this.list[dartx.get](i).execute(); 505 this.list[dartx.get](i).execute();
447 } 506 }
448 } 507 }
449 } 508 };
450 dart.setSignature(Plan, { 509 dart.setSignature(DeltaBlue$.Plan, {
451 methods: () => ({ 510 methods: () => ({
452 addConstraint: [dart.void, [Constraint]], 511 addConstraint: [dart.void, [DeltaBlue$.Constraint]],
453 size: [core.int, []], 512 size: [core.int, []],
454 execute: [dart.void, []] 513 execute: [dart.void, []]
455 }) 514 })
456 }); 515 });
457 function chainTest(n) { 516 DeltaBlue$.chainTest = function(n) {
458 exports.planner = new Planner(); 517 DeltaBlue$.planner = new DeltaBlue$.Planner();
459 let prev = null, first = null, last = null; 518 let prev = null, first = null, last = null;
460 for (let i = 0; i <= dart.notNull(n); i++) { 519 for (let i = 0; i <= dart.notNull(n); i++) {
461 let v = new Variable("v", 0); 520 let v = new DeltaBlue$.Variable("v", 0);
462 if (prev != null) new EqualityConstraint(prev, v, REQUIRED); 521 if (prev != null) new DeltaBlue$.EqualityConstraint(prev, v, DeltaBlue$.RE QUIRED);
463 if (i == 0) first = v; 522 if (i == 0) first = v;
464 if (i == n) last = v; 523 if (i == n) last = v;
465 prev = v; 524 prev = v;
466 } 525 }
467 new StayConstraint(last, STRONG_DEFAULT); 526 new DeltaBlue$.StayConstraint(last, DeltaBlue$.STRONG_DEFAULT);
468 let edit = new EditConstraint(first, PREFERRED); 527 let edit = new DeltaBlue$.EditConstraint(first, DeltaBlue$.PREFERRED);
469 let plan = exports.planner.extractPlanFromConstraints(dart.list([edit], Cons traint)); 528 let plan = DeltaBlue$.planner.extractPlanFromConstraints(dart.list([edit], D eltaBlue$.Constraint));
470 for (let i = 0; i < 100; i++) { 529 for (let i = 0; i < 100; i++) {
471 first.value = i; 530 first.value = i;
472 plan.execute(); 531 plan.execute();
473 if (last.value != i) { 532 if (last.value != i) {
474 core.print("Chain test failed:"); 533 core.print("Chain test failed:");
475 core.print(`Expected last value to be ${i} but it was ${last.value}.`); 534 core.print(`Expected last value to be ${i} but it was ${last.value}.`);
476 } 535 }
477 } 536 }
478 } 537 };
479 dart.fn(chainTest, dart.void, [core.int]); 538 dart.fn(DeltaBlue$.chainTest, dart.void, [core.int]);
480 function projectionTest(n) { 539 DeltaBlue$.projectionTest = function(n) {
481 exports.planner = new Planner(); 540 DeltaBlue$.planner = new DeltaBlue$.Planner();
482 let scale = new Variable("scale", 10); 541 let scale = new DeltaBlue$.Variable("scale", 10);
483 let offset = new Variable("offset", 1000); 542 let offset = new DeltaBlue$.Variable("offset", 1000);
484 let src = null, dst = null; 543 let src = null, dst = null;
485 let dests = dart.list([], Variable); 544 let dests = dart.list([], DeltaBlue$.Variable);
486 for (let i = 0; i < dart.notNull(n); i++) { 545 for (let i = 0; i < dart.notNull(n); i++) {
487 src = new Variable("src", i); 546 src = new DeltaBlue$.Variable("src", i);
488 dst = new Variable("dst", i); 547 dst = new DeltaBlue$.Variable("dst", i);
489 dests[dartx.add](dst); 548 dests[dartx.add](dst);
490 new StayConstraint(src, NORMAL); 549 new DeltaBlue$.StayConstraint(src, DeltaBlue$.NORMAL);
491 new ScaleConstraint(src, scale, offset, dst, REQUIRED); 550 new DeltaBlue$.ScaleConstraint(src, scale, offset, dst, DeltaBlue$.REQUIRE D);
492 } 551 }
493 change(src, 17); 552 DeltaBlue$.change(src, 17);
494 if (dst.value != 1170) core.print("Projection 1 failed"); 553 if (dst.value != 1170) core.print("Projection 1 failed");
495 change(dst, 1050); 554 DeltaBlue$.change(dst, 1050);
496 if (src.value != 5) core.print("Projection 2 failed"); 555 if (src.value != 5) core.print("Projection 2 failed");
497 change(scale, 5); 556 DeltaBlue$.change(scale, 5);
498 for (let i = 0; i < dart.notNull(n) - 1; i++) { 557 for (let i = 0; i < dart.notNull(n) - 1; i++) {
499 if (dests[dartx.get](i).value != i * 5 + 1000) core.print("Projection 3 fa iled"); 558 if (dests[dartx.get](i).value != i * 5 + 1000) core.print("Projection 3 fa iled");
500 } 559 }
501 change(offset, 2000); 560 DeltaBlue$.change(offset, 2000);
502 for (let i = 0; i < dart.notNull(n) - 1; i++) { 561 for (let i = 0; i < dart.notNull(n) - 1; i++) {
503 if (dests[dartx.get](i).value != i * 5 + 2000) core.print("Projection 4 fa iled"); 562 if (dests[dartx.get](i).value != i * 5 + 2000) core.print("Projection 4 fa iled");
504 } 563 }
505 } 564 };
506 dart.fn(projectionTest, dart.void, [core.int]); 565 dart.fn(DeltaBlue$.projectionTest, dart.void, [core.int]);
507 function change(v, newValue) { 566 DeltaBlue$.change = function(v, newValue) {
508 let edit = new EditConstraint(v, PREFERRED); 567 let edit = new DeltaBlue$.EditConstraint(v, DeltaBlue$.PREFERRED);
509 let plan = exports.planner.extractPlanFromConstraints(dart.list([edit], Edit Constraint)); 568 let plan = DeltaBlue$.planner.extractPlanFromConstraints(dart.list([edit], D eltaBlue$.EditConstraint));
510 for (let i = 0; i < 10; i++) { 569 for (let i = 0; i < 10; i++) {
511 v.value = newValue; 570 v.value = newValue;
512 plan.execute(); 571 plan.execute();
513 } 572 }
514 edit.destroyConstraint(); 573 edit.destroyConstraint();
515 } 574 };
516 dart.fn(change, dart.void, [Variable, core.int]); 575 dart.fn(DeltaBlue$.change, dart.void, [DeltaBlue$.Variable, core.int]);
517 exports.planner = null; 576 DeltaBlue$.planner = null;
577 BenchmarkBase$.Expect = class Expect extends core.Object {
578 static equals(expected, actual) {
579 if (!dart.equals(expected, actual)) {
580 dart.throw(`Values not equal: ${expected} vs ${actual}`);
581 }
582 }
583 static listEquals(expected, actual) {
584 if (expected[dartx.length] != actual[dartx.length]) {
585 dart.throw(`Lists have different lengths: ${expected[dartx.length]} vs $ {actual[dartx.length]}`);
586 }
587 for (let i = 0; i < dart.notNull(actual[dartx.length]); i++) {
588 BenchmarkBase$.Expect.equals(expected[dartx.get](i), actual[dartx.get](i ));
589 }
590 }
591 fail(message) {
592 dart.throw(message);
593 }
594 };
595 dart.setSignature(BenchmarkBase$.Expect, {
596 methods: () => ({fail: [dart.dynamic, [dart.dynamic]]}),
597 statics: () => ({
598 equals: [dart.void, [dart.dynamic, dart.dynamic]],
599 listEquals: [dart.void, [core.List, core.List]]
600 }),
601 names: ['equals', 'listEquals']
602 });
518 // Exports: 603 // Exports:
519 exports.main = main; 604 exports.DeltaBlue = DeltaBlue$;
520 exports.DeltaBlue = DeltaBlue; 605 exports.BenchmarkBase = BenchmarkBase$;
521 exports.Strength = Strength;
522 exports.REQUIRED = REQUIRED;
523 exports.STRONG_PREFERRED = STRONG_PREFERRED;
524 exports.PREFERRED = PREFERRED;
525 exports.STRONG_DEFAULT = STRONG_DEFAULT;
526 exports.NORMAL = NORMAL;
527 exports.WEAK_DEFAULT = WEAK_DEFAULT;
528 exports.WEAKEST = WEAKEST;
529 exports.Constraint = Constraint;
530 exports.UnaryConstraint = UnaryConstraint;
531 exports.StayConstraint = StayConstraint;
532 exports.EditConstraint = EditConstraint;
533 exports.NONE = NONE;
534 exports.FORWARD = FORWARD;
535 exports.BACKWARD = BACKWARD;
536 exports.BinaryConstraint = BinaryConstraint;
537 exports.ScaleConstraint = ScaleConstraint;
538 exports.EqualityConstraint = EqualityConstraint;
539 exports.Variable = Variable;
540 exports.Planner = Planner;
541 exports.Plan = Plan;
542 exports.chainTest = chainTest;
543 exports.projectionTest = projectionTest;
544 exports.change = change;
545 }); 606 });
OLDNEW
« no previous file with comments | « test/codegen/expect/BenchmarkBase.txt ('k') | test/codegen/expect/DeltaBlue.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698