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

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

Issue 1145833004: fixes #173, ability to use native JS indexers (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: merged Created 5 years, 6 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
OLDNEW
1 var DeltaBlue = dart.defineLibrary(DeltaBlue, {}); 1 var DeltaBlue = dart.defineLibrary(DeltaBlue, {});
2 var BenchmarkBase = dart.import(BenchmarkBase); 2 var BenchmarkBase = dart.import(BenchmarkBase);
3 var core = dart.import(core); 3 var core = dart.import(core);
4 (function(exports, BenchmarkBase, core) { 4 (function(exports, BenchmarkBase, core) {
5 'use strict'; 5 'use strict';
6 function main() { 6 function main() {
7 new DeltaBlue().report(); 7 new DeltaBlue().report();
8 } 8 }
9 dart.fn(main); 9 dart.fn(main);
10 class DeltaBlue extends BenchmarkBase.BenchmarkBase { 10 class DeltaBlue extends BenchmarkBase.BenchmarkBase {
(...skipping 16 matching lines...) Expand all
27 nextWeaker() { 27 nextWeaker() {
28 return dart.const(dart.list([STRONG_PREFERRED, PREFERRED, STRONG_DEFAULT, NORMAL, WEAK_DEFAULT, WEAKEST], Strength))[dartx.get](this.value); 28 return dart.const(dart.list([STRONG_PREFERRED, PREFERRED, STRONG_DEFAULT, NORMAL, WEAK_DEFAULT, WEAKEST], Strength))[dartx.get](this.value);
29 } 29 }
30 static stronger(s1, s2) { 30 static stronger(s1, s2) {
31 return dart.notNull(s1.value) < dart.notNull(s2.value); 31 return dart.notNull(s1.value) < dart.notNull(s2.value);
32 } 32 }
33 static weaker(s1, s2) { 33 static weaker(s1, s2) {
34 return dart.notNull(s1.value) > dart.notNull(s2.value); 34 return dart.notNull(s1.value) > dart.notNull(s2.value);
35 } 35 }
36 static weakest(s1, s2) { 36 static weakest(s1, s2) {
37 return Strength.weaker(s1, s2) ? s1 : s2; 37 return dart.notNull(Strength.weaker(s1, s2)) ? s1 : s2;
38 } 38 }
39 static strongest(s1, s2) { 39 static strongest(s1, s2) {
40 return Strength.stronger(s1, s2) ? s1 : s2; 40 return dart.notNull(Strength.stronger(s1, s2)) ? s1 : s2;
41 } 41 }
42 } 42 }
43 dart.setSignature(Strength, { 43 dart.setSignature(Strength, {
44 constructors: () => ({Strength: [Strength, [core.int, core.String]]}), 44 constructors: () => ({Strength: [Strength, [core.int, core.String]]}),
45 methods: () => ({nextWeaker: [Strength, []]}), 45 methods: () => ({nextWeaker: [Strength, []]}),
46 statics: () => ({ 46 statics: () => ({
47 stronger: [core.bool, [Strength, Strength]], 47 stronger: [core.bool, [Strength, Strength]],
48 weaker: [core.bool, [Strength, Strength]], 48 weaker: [core.bool, [Strength, Strength]],
49 weakest: [Strength, [Strength, Strength]], 49 weakest: [Strength, [Strength, Strength]],
50 strongest: [Strength, [Strength, Strength]] 50 strongest: [Strength, [Strength, Strength]]
(...skipping 28 matching lines...) Expand all
79 let overridden = out.determinedBy; 79 let overridden = out.determinedBy;
80 if (overridden != null) 80 if (overridden != null)
81 overridden.markUnsatisfied(); 81 overridden.markUnsatisfied();
82 out.determinedBy = this; 82 out.determinedBy = this;
83 if (!dart.notNull(exports.planner.addPropagate(this, dart.as(mark, core.in t)))) 83 if (!dart.notNull(exports.planner.addPropagate(this, dart.as(mark, core.in t))))
84 core.print("Cycle encountered"); 84 core.print("Cycle encountered");
85 out.mark = dart.as(mark, core.int); 85 out.mark = dart.as(mark, core.int);
86 return overridden; 86 return overridden;
87 } 87 }
88 destroyConstraint() { 88 destroyConstraint() {
89 if (this.isSatisfied()) 89 if (dart.notNull(this.isSatisfied()))
90 exports.planner.incrementalRemove(this); 90 exports.planner.incrementalRemove(this);
91 this.removeFromGraph(); 91 this.removeFromGraph();
92 } 92 }
93 isInput() { 93 isInput() {
94 return false; 94 return false;
95 } 95 }
96 } 96 }
97 dart.setSignature(Constraint, { 97 dart.setSignature(Constraint, {
98 constructors: () => ({Constraint: [Constraint, [Strength]]}), 98 constructors: () => ({Constraint: [Constraint, [Strength]]}),
99 methods: () => ({ 99 methods: () => ({
(...skipping 20 matching lines...) Expand all
120 isSatisfied() { 120 isSatisfied() {
121 return this.satisfied; 121 return this.satisfied;
122 } 122 }
123 markInputs(mark) {} 123 markInputs(mark) {}
124 output() { 124 output() {
125 return this.myOutput; 125 return this.myOutput;
126 } 126 }
127 recalculate() { 127 recalculate() {
128 this.myOutput.walkStrength = this.strength; 128 this.myOutput.walkStrength = this.strength;
129 this.myOutput.stay = !dart.notNull(this.isInput()); 129 this.myOutput.stay = !dart.notNull(this.isInput());
130 if (this.myOutput.stay) 130 if (dart.notNull(this.myOutput.stay))
131 this.execute(); 131 this.execute();
132 } 132 }
133 markUnsatisfied() { 133 markUnsatisfied() {
134 this.satisfied = false; 134 this.satisfied = false;
135 } 135 }
136 inputsKnown(mark) { 136 inputsKnown(mark) {
137 return true; 137 return true;
138 } 138 }
139 removeFromGraph() { 139 removeFromGraph() {
140 if (this.myOutput != null) 140 if (this.myOutput != null)
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 super.Constraint(strength); 190 super.Constraint(strength);
191 this.addConstraint(); 191 this.addConstraint();
192 } 192 }
193 chooseMethod(mark) { 193 chooseMethod(mark) {
194 if (this.v1.mark == mark) { 194 if (this.v1.mark == mark) {
195 this.direction = this.v2.mark != mark && dart.notNull(Strength.stronger( this.strength, this.v2.walkStrength)) ? FORWARD : NONE; 195 this.direction = this.v2.mark != mark && dart.notNull(Strength.stronger( this.strength, this.v2.walkStrength)) ? FORWARD : NONE;
196 } 196 }
197 if (this.v2.mark == mark) { 197 if (this.v2.mark == mark) {
198 this.direction = this.v1.mark != mark && dart.notNull(Strength.stronger( this.strength, this.v1.walkStrength)) ? BACKWARD : NONE; 198 this.direction = this.v1.mark != mark && dart.notNull(Strength.stronger( this.strength, this.v1.walkStrength)) ? BACKWARD : NONE;
199 } 199 }
200 if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) { 200 if (dart.notNull(Strength.weaker(this.v1.walkStrength, this.v2.walkStrengt h))) {
201 this.direction = Strength.stronger(this.strength, this.v1.walkStrength) ? BACKWARD : NONE; 201 this.direction = dart.notNull(Strength.stronger(this.strength, this.v1.w alkStrength)) ? BACKWARD : NONE;
202 } else { 202 } else {
203 this.direction = Strength.stronger(this.strength, this.v2.walkStrength) ? FORWARD : BACKWARD; 203 this.direction = dart.notNull(Strength.stronger(this.strength, this.v2.w alkStrength)) ? FORWARD : BACKWARD;
204 } 204 }
205 } 205 }
206 addToGraph() { 206 addToGraph() {
207 this.v1.addConstraint(this); 207 this.v1.addConstraint(this);
208 this.v2.addConstraint(this); 208 this.v2.addConstraint(this);
209 this.direction = NONE; 209 this.direction = NONE;
210 } 210 }
211 isSatisfied() { 211 isSatisfied() {
212 return this.direction != NONE; 212 return this.direction != NONE;
213 } 213 }
214 markInputs(mark) { 214 markInputs(mark) {
215 this.input().mark = mark; 215 this.input().mark = mark;
216 } 216 }
217 input() { 217 input() {
218 return this.direction == FORWARD ? this.v1 : this.v2; 218 return this.direction == FORWARD ? this.v1 : this.v2;
219 } 219 }
220 output() { 220 output() {
221 return this.direction == FORWARD ? this.v2 : this.v1; 221 return this.direction == FORWARD ? this.v2 : this.v1;
222 } 222 }
223 recalculate() { 223 recalculate() {
224 let ihn = this.input(), out = this.output(); 224 let ihn = this.input(), out = this.output();
225 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength); 225 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength);
226 out.stay = ihn.stay; 226 out.stay = ihn.stay;
227 if (out.stay) 227 if (dart.notNull(out.stay))
228 this.execute(); 228 this.execute();
229 } 229 }
230 markUnsatisfied() { 230 markUnsatisfied() {
231 this.direction = NONE; 231 this.direction = NONE;
232 } 232 }
233 inputsKnown(mark) { 233 inputsKnown(mark) {
234 let i = this.input(); 234 let i = this.input();
235 return i.mark == mark || dart.notNull(i.stay) || dart.notNull(i.determined By == null); 235 return i.mark == mark || dart.notNull(i.stay) || i.determinedBy == null;
236 } 236 }
237 removeFromGraph() { 237 removeFromGraph() {
238 if (this.v1 != null) 238 if (this.v1 != null)
239 this.v1.removeConstraint(this); 239 this.v1.removeConstraint(this);
240 if (this.v2 != null) 240 if (this.v2 != null)
241 this.v2.removeConstraint(this); 241 this.v2.removeConstraint(this);
242 this.direction = NONE; 242 this.direction = NONE;
243 } 243 }
244 } 244 }
245 dart.setSignature(BinaryConstraint, { 245 dart.setSignature(BinaryConstraint, {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 if (this.direction == FORWARD) { 283 if (this.direction == FORWARD) {
284 this.v2.value = dart.notNull(this.v1.value) * dart.notNull(this.scale.va lue) + dart.notNull(this.offset.value); 284 this.v2.value = dart.notNull(this.v1.value) * dart.notNull(this.scale.va lue) + dart.notNull(this.offset.value);
285 } else { 285 } else {
286 this.v1.value = ((dart.notNull(this.v2.value) - dart.notNull(this.offset .value)) / dart.notNull(this.scale.value)).truncate(); 286 this.v1.value = ((dart.notNull(this.v2.value) - dart.notNull(this.offset .value)) / dart.notNull(this.scale.value)).truncate();
287 } 287 }
288 } 288 }
289 recalculate() { 289 recalculate() {
290 let ihn = this.input(), out = this.output(); 290 let ihn = this.input(), out = this.output();
291 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength); 291 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength);
292 out.stay = dart.notNull(ihn.stay) && dart.notNull(this.scale.stay) && dart .notNull(this.offset.stay); 292 out.stay = dart.notNull(ihn.stay) && dart.notNull(this.scale.stay) && dart .notNull(this.offset.stay);
293 if (out.stay) 293 if (dart.notNull(out.stay))
294 this.execute(); 294 this.execute();
295 } 295 }
296 } 296 }
297 dart.setSignature(ScaleConstraint, { 297 dart.setSignature(ScaleConstraint, {
298 constructors: () => ({ScaleConstraint: [ScaleConstraint, [Variable, Variable , Variable, Variable, Strength]]}), 298 constructors: () => ({ScaleConstraint: [ScaleConstraint, [Variable, Variable , Variable, Variable, Strength]]}),
299 methods: () => ({execute: [dart.void, []]}) 299 methods: () => ({execute: [dart.void, []]})
300 }); 300 });
301 class EqualityConstraint extends BinaryConstraint { 301 class EqualityConstraint extends BinaryConstraint {
302 EqualityConstraint(v1, v2, strength) { 302 EqualityConstraint(v1, v2, strength) {
303 super.BinaryConstraint(v1, v2, strength); 303 super.BinaryConstraint(v1, v2, strength);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 while (dart.notNull(todo.length) > 0) { 408 while (dart.notNull(todo.length) > 0) {
409 let v = todo[dartx.removeLast](); 409 let v = todo[dartx.removeLast]();
410 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i = dart.notNull(i) + 1) { 410 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i = dart.notNull(i) + 1) {
411 let c = v.constraints[dartx.get](i); 411 let c = v.constraints[dartx.get](i);
412 if (!dart.notNull(c.isSatisfied())) 412 if (!dart.notNull(c.isSatisfied()))
413 unsatisfied[dartx.add](c); 413 unsatisfied[dartx.add](c);
414 } 414 }
415 let determining = v.determinedBy; 415 let determining = v.determinedBy;
416 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i = dart.notNull(i) + 1) { 416 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i = dart.notNull(i) + 1) {
417 let next = v.constraints[dartx.get](i); 417 let next = v.constraints[dartx.get](i);
418 if (dart.notNull(!dart.equals(next, determining)) && dart.notNull(next .isSatisfied())) { 418 if (!dart.equals(next, determining) && dart.notNull(next.isSatisfied() )) {
419 next.recalculate(); 419 next.recalculate();
420 todo[dartx.add](next.output()); 420 todo[dartx.add](next.output());
421 } 421 }
422 } 422 }
423 } 423 }
424 return unsatisfied; 424 return unsatisfied;
425 } 425 }
426 addConstraintsConsumingTo(v, coll) { 426 addConstraintsConsumingTo(v, coll) {
427 let determining = v.determinedBy; 427 let determining = v.determinedBy;
428 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i = dart.notNull(i) + 1) { 428 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i = dart.notNull(i) + 1) {
429 let c = v.constraints[dartx.get](i); 429 let c = v.constraints[dartx.get](i);
430 if (dart.notNull(!dart.equals(c, determining)) && dart.notNull(c.isSatis fied())) 430 if (!dart.equals(c, determining) && dart.notNull(c.isSatisfied()))
431 coll[dartx.add](c); 431 coll[dartx.add](c);
432 } 432 }
433 } 433 }
434 } 434 }
435 dart.setSignature(Planner, { 435 dart.setSignature(Planner, {
436 methods: () => ({ 436 methods: () => ({
437 incrementalAdd: [dart.void, [Constraint]], 437 incrementalAdd: [dart.void, [Constraint]],
438 incrementalRemove: [dart.void, [Constraint]], 438 incrementalRemove: [dart.void, [Constraint]],
439 newMark: [core.int, []], 439 newMark: [core.int, []],
440 makePlan: [Plan, [core.List$(Constraint)]], 440 makePlan: [Plan, [core.List$(Constraint)]],
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 exports.BinaryConstraint = BinaryConstraint; 556 exports.BinaryConstraint = BinaryConstraint;
557 exports.ScaleConstraint = ScaleConstraint; 557 exports.ScaleConstraint = ScaleConstraint;
558 exports.EqualityConstraint = EqualityConstraint; 558 exports.EqualityConstraint = EqualityConstraint;
559 exports.Variable = Variable; 559 exports.Variable = Variable;
560 exports.Planner = Planner; 560 exports.Planner = Planner;
561 exports.Plan = Plan; 561 exports.Plan = Plan;
562 exports.chainTest = chainTest; 562 exports.chainTest = chainTest;
563 exports.projectionTest = projectionTest; 563 exports.projectionTest = projectionTest;
564 exports.change = change; 564 exports.change = change;
565 })(DeltaBlue, BenchmarkBase, core); 565 })(DeltaBlue, BenchmarkBase, core);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698