| OLD | NEW | 
|---|
| 1 var DeltaBlue; | 1 var DeltaBlue; | 
| 2 (function(DeltaBlue) { | 2 (function(exports) { | 
| 3   'use strict'; | 3   'use strict'; | 
| 4   // Function main: () → dynamic | 4   // Function main: () → dynamic | 
| 5   function main() { | 5   function main() { | 
| 6     new DeltaBlue().report(); | 6     new DeltaBlue().report(); | 
| 7   } | 7   } | 
| 8   class DeltaBlue extends BenchmarkBase.BenchmarkBase { | 8   class DeltaBlue extends BenchmarkBase.BenchmarkBase { | 
| 9     DeltaBlue() { | 9     DeltaBlue() { | 
| 10       super.BenchmarkBase("DeltaBlue"); | 10       super.BenchmarkBase("DeltaBlue"); | 
| 11     } | 11     } | 
| 12     run() { | 12     run() { | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 41   let STRONG_DEFAULT = new Strength(3, "strongDefault"); | 41   let STRONG_DEFAULT = new Strength(3, "strongDefault"); | 
| 42   let NORMAL = new Strength(4, "normal"); | 42   let NORMAL = new Strength(4, "normal"); | 
| 43   let WEAK_DEFAULT = new Strength(5, "weakDefault"); | 43   let WEAK_DEFAULT = new Strength(5, "weakDefault"); | 
| 44   let WEAKEST = new Strength(6, "weakest"); | 44   let WEAKEST = new Strength(6, "weakest"); | 
| 45   class Constraint extends dart.Object { | 45   class Constraint extends dart.Object { | 
| 46     Constraint(strength) { | 46     Constraint(strength) { | 
| 47       this.strength = strength; | 47       this.strength = strength; | 
| 48     } | 48     } | 
| 49     addConstraint() { | 49     addConstraint() { | 
| 50       this.addToGraph(); | 50       this.addToGraph(); | 
| 51       DeltaBlue.planner.incrementalAdd(this); | 51       exports.planner.incrementalAdd(this); | 
| 52     } | 52     } | 
| 53     satisfy(mark) { | 53     satisfy(mark) { | 
| 54       this.chooseMethod(dart.as(mark, core.int)); | 54       this.chooseMethod(dart.as(mark, core.int)); | 
| 55       if (!dart.notNull(this.isSatisfied())) { | 55       if (!dart.notNull(this.isSatisfied())) { | 
| 56         if (dart.equals(this.strength, REQUIRED)) { | 56         if (dart.equals(this.strength, REQUIRED)) { | 
| 57           core.print("Could not satisfy a required constraint!"); | 57           core.print("Could not satisfy a required constraint!"); | 
| 58         } | 58         } | 
| 59         return null; | 59         return null; | 
| 60       } | 60       } | 
| 61       this.markInputs(dart.as(mark, core.int)); | 61       this.markInputs(dart.as(mark, core.int)); | 
| 62       let out = this.output(); | 62       let out = this.output(); | 
| 63       let overridden = out.determinedBy; | 63       let overridden = out.determinedBy; | 
| 64       if (overridden !== null) | 64       if (overridden !== null) | 
| 65         overridden.markUnsatisfied(); | 65         overridden.markUnsatisfied(); | 
| 66       out.determinedBy = this; | 66       out.determinedBy = this; | 
| 67       if (!dart.notNull(DeltaBlue.planner.addPropagate(this, dart.as(mark, core.
     int)))) | 67       if (!dart.notNull(exports.planner.addPropagate(this, dart.as(mark, core.in
     t)))) | 
| 68         core.print("Cycle encountered"); | 68         core.print("Cycle encountered"); | 
| 69       out.mark = dart.as(mark, core.int); | 69       out.mark = dart.as(mark, core.int); | 
| 70       return overridden; | 70       return overridden; | 
| 71     } | 71     } | 
| 72     destroyConstraint() { | 72     destroyConstraint() { | 
| 73       if (this.isSatisfied()) | 73       if (this.isSatisfied()) | 
| 74         DeltaBlue.planner.incrementalRemove(this); | 74         exports.planner.incrementalRemove(this); | 
| 75       this.removeFromGraph(); | 75       this.removeFromGraph(); | 
| 76     } | 76     } | 
| 77     isInput() { | 77     isInput() { | 
| 78       return false; | 78       return false; | 
| 79     } | 79     } | 
| 80   } | 80   } | 
| 81   class UnaryConstraint extends Constraint { | 81   class UnaryConstraint extends Constraint { | 
| 82     UnaryConstraint(myOutput, strength) { | 82     UnaryConstraint(myOutput, strength) { | 
| 83       this.myOutput = myOutput; | 83       this.myOutput = myOutput; | 
| 84       this.satisfied = false; | 84       this.satisfied = false; | 
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 366       return this.list.length; | 366       return this.list.length; | 
| 367     } | 367     } | 
| 368     execute() { | 368     execute() { | 
| 369       for (let i = 0; i < this.list.length; i++) { | 369       for (let i = 0; i < this.list.length; i++) { | 
| 370         this.list.get(i).execute(); | 370         this.list.get(i).execute(); | 
| 371       } | 371       } | 
| 372     } | 372     } | 
| 373   } | 373   } | 
| 374   // Function chainTest: (int) → void | 374   // Function chainTest: (int) → void | 
| 375   function chainTest(n) { | 375   function chainTest(n) { | 
| 376     DeltaBlue.planner = new Planner(); | 376     exports.planner = new Planner(); | 
| 377     let prev = null, first = null, last = null; | 377     let prev = null, first = null, last = null; | 
| 378     for (let i = 0; i <= n; i++) { | 378     for (let i = 0; i <= n; i++) { | 
| 379       let v = new Variable("v", 0); | 379       let v = new Variable("v", 0); | 
| 380       if (prev !== null) | 380       if (prev !== null) | 
| 381         new EqualityConstraint(prev, v, REQUIRED); | 381         new EqualityConstraint(prev, v, REQUIRED); | 
| 382       if (i === 0) | 382       if (i === 0) | 
| 383         first = v; | 383         first = v; | 
| 384       if (i === n) | 384       if (i === n) | 
| 385         last = v; | 385         last = v; | 
| 386       prev = v; | 386       prev = v; | 
| 387     } | 387     } | 
| 388     new StayConstraint(last, STRONG_DEFAULT); | 388     new StayConstraint(last, STRONG_DEFAULT); | 
| 389     let edit = new EditConstraint(first, PREFERRED); | 389     let edit = new EditConstraint(first, PREFERRED); | 
| 390     let plan = DeltaBlue.planner.extractPlanFromConstraints(new List.from([edit]
     )); | 390     let plan = exports.planner.extractPlanFromConstraints(new List.from([edit]))
     ; | 
| 391     for (let i = 0; i < 100; i++) { | 391     for (let i = 0; i < 100; i++) { | 
| 392       first.value = i; | 392       first.value = i; | 
| 393       plan.execute(); | 393       plan.execute(); | 
| 394       if (last.value !== i) { | 394       if (last.value !== i) { | 
| 395         core.print("Chain test failed:"); | 395         core.print("Chain test failed:"); | 
| 396         core.print(`Expected last value to be ${i} but it was ${last.value}.`); | 396         core.print(`Expected last value to be ${i} but it was ${last.value}.`); | 
| 397       } | 397       } | 
| 398     } | 398     } | 
| 399   } | 399   } | 
| 400   // Function projectionTest: (int) → void | 400   // Function projectionTest: (int) → void | 
| 401   function projectionTest(n) { | 401   function projectionTest(n) { | 
| 402     DeltaBlue.planner = new Planner(); | 402     exports.planner = new Planner(); | 
| 403     let scale = new Variable("scale", 10); | 403     let scale = new Variable("scale", 10); | 
| 404     let offset = new Variable("offset", 1000); | 404     let offset = new Variable("offset", 1000); | 
| 405     let src = null, dst = null; | 405     let src = null, dst = null; | 
| 406     let dests = new List.from([]); | 406     let dests = new List.from([]); | 
| 407     for (let i = 0; i < n; i++) { | 407     for (let i = 0; i < n; i++) { | 
| 408       src = new Variable("src", i); | 408       src = new Variable("src", i); | 
| 409       dst = new Variable("dst", i); | 409       dst = new Variable("dst", i); | 
| 410       dests.add(dst); | 410       dests.add(dst); | 
| 411       new StayConstraint(src, NORMAL); | 411       new StayConstraint(src, NORMAL); | 
| 412       new ScaleConstraint(src, scale, offset, dst, REQUIRED); | 412       new ScaleConstraint(src, scale, offset, dst, REQUIRED); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 424     } | 424     } | 
| 425     change(offset, 2000); | 425     change(offset, 2000); | 
| 426     for (let i = 0; i < n - 1; i++) { | 426     for (let i = 0; i < n - 1; i++) { | 
| 427       if (dests.get(i).value !== i * 5 + 2000) | 427       if (dests.get(i).value !== i * 5 + 2000) | 
| 428         core.print("Projection 4 failed"); | 428         core.print("Projection 4 failed"); | 
| 429     } | 429     } | 
| 430   } | 430   } | 
| 431   // Function change: (Variable, int) → void | 431   // Function change: (Variable, int) → void | 
| 432   function change(v, newValue) { | 432   function change(v, newValue) { | 
| 433     let edit = new EditConstraint(v, PREFERRED); | 433     let edit = new EditConstraint(v, PREFERRED); | 
| 434     let plan = DeltaBlue.planner.extractPlanFromConstraints(new List.from([edit]
     )); | 434     let plan = exports.planner.extractPlanFromConstraints(new List.from([edit]))
     ; | 
| 435     for (let i = 0; i < 10; i++) { | 435     for (let i = 0; i < 10; i++) { | 
| 436       v.value = newValue; | 436       v.value = newValue; | 
| 437       plan.execute(); | 437       plan.execute(); | 
| 438     } | 438     } | 
| 439     edit.destroyConstraint(); | 439     edit.destroyConstraint(); | 
| 440   } | 440   } | 
| 441   DeltaBlue.planner = null; | 441   exports.planner = null; | 
| 442   // Exports: | 442   // Exports: | 
| 443   DeltaBlue.main = main; | 443   exports.main = main; | 
| 444   DeltaBlue.DeltaBlue = DeltaBlue; | 444   exports.DeltaBlue = DeltaBlue; | 
| 445   DeltaBlue.Strength = Strength; | 445   exports.Strength = Strength; | 
| 446   DeltaBlue.REQUIRED = REQUIRED; | 446   exports.REQUIRED = REQUIRED; | 
| 447   DeltaBlue.STRONG_PREFERRED = STRONG_PREFERRED; | 447   exports.STRONG_PREFERRED = STRONG_PREFERRED; | 
| 448   DeltaBlue.PREFERRED = PREFERRED; | 448   exports.PREFERRED = PREFERRED; | 
| 449   DeltaBlue.STRONG_DEFAULT = STRONG_DEFAULT; | 449   exports.STRONG_DEFAULT = STRONG_DEFAULT; | 
| 450   DeltaBlue.NORMAL = NORMAL; | 450   exports.NORMAL = NORMAL; | 
| 451   DeltaBlue.WEAK_DEFAULT = WEAK_DEFAULT; | 451   exports.WEAK_DEFAULT = WEAK_DEFAULT; | 
| 452   DeltaBlue.WEAKEST = WEAKEST; | 452   exports.WEAKEST = WEAKEST; | 
| 453   DeltaBlue.Constraint = Constraint; | 453   exports.Constraint = Constraint; | 
| 454   DeltaBlue.UnaryConstraint = UnaryConstraint; | 454   exports.UnaryConstraint = UnaryConstraint; | 
| 455   DeltaBlue.StayConstraint = StayConstraint; | 455   exports.StayConstraint = StayConstraint; | 
| 456   DeltaBlue.EditConstraint = EditConstraint; | 456   exports.EditConstraint = EditConstraint; | 
| 457   DeltaBlue.NONE = NONE; | 457   exports.NONE = NONE; | 
| 458   DeltaBlue.FORWARD = FORWARD; | 458   exports.FORWARD = FORWARD; | 
| 459   DeltaBlue.BACKWARD = BACKWARD; | 459   exports.BACKWARD = BACKWARD; | 
| 460   DeltaBlue.BinaryConstraint = BinaryConstraint; | 460   exports.BinaryConstraint = BinaryConstraint; | 
| 461   DeltaBlue.ScaleConstraint = ScaleConstraint; | 461   exports.ScaleConstraint = ScaleConstraint; | 
| 462   DeltaBlue.EqualityConstraint = EqualityConstraint; | 462   exports.EqualityConstraint = EqualityConstraint; | 
| 463   DeltaBlue.Variable = Variable; | 463   exports.Variable = Variable; | 
| 464   DeltaBlue.Planner = Planner; | 464   exports.Planner = Planner; | 
| 465   DeltaBlue.Plan = Plan; | 465   exports.Plan = Plan; | 
| 466   DeltaBlue.chainTest = chainTest; | 466   exports.chainTest = chainTest; | 
| 467   DeltaBlue.projectionTest = projectionTest; | 467   exports.projectionTest = projectionTest; | 
| 468   DeltaBlue.change = change; | 468   exports.change = change; | 
| 469 })(DeltaBlue || (DeltaBlue = {})); | 469 })(DeltaBlue || (DeltaBlue = {})); | 
| OLD | NEW | 
|---|