| OLD | NEW |
| 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: () → dynamic | |
| 7 function main() { | 6 function main() { |
| 8 new DeltaBlue().report(); | 7 new DeltaBlue().report(); |
| 9 } | 8 } |
| 9 dart.fn(main); |
| 10 class DeltaBlue extends BenchmarkBase.BenchmarkBase { | 10 class DeltaBlue extends BenchmarkBase.BenchmarkBase { |
| 11 DeltaBlue() { | 11 DeltaBlue() { |
| 12 super.BenchmarkBase("DeltaBlue"); | 12 super.BenchmarkBase("DeltaBlue"); |
| 13 } | 13 } |
| 14 run() { | 14 run() { |
| 15 chainTest(100); | 15 chainTest(100); |
| 16 projectionTest(100); | 16 projectionTest(100); |
| 17 } | 17 } |
| 18 } | 18 } |
| 19 dart.setSignature(DeltaBlue, { |
| 20 methods: () => ({run: dart.functionType(dart.void, [])}) |
| 21 }); |
| 19 class Strength extends core.Object { | 22 class Strength extends core.Object { |
| 20 Strength(value, name) { | 23 Strength(value, name) { |
| 21 this.value = value; | 24 this.value = value; |
| 22 this.name = name; | 25 this.name = name; |
| 23 } | 26 } |
| 24 nextWeaker() { | 27 nextWeaker() { |
| 25 return dart.const(dart.setType([STRONG_PREFERRED, PREFERRED, STRONG_DEFAUL
T, NORMAL, WEAK_DEFAULT, WEAKEST], core.List$(Strength)))[core.$get](this.value)
; | 28 return dart.const(dart.setType([STRONG_PREFERRED, PREFERRED, STRONG_DEFAUL
T, NORMAL, WEAK_DEFAULT, WEAKEST], core.List$(Strength)))[core.$get](this.value)
; |
| 26 } | 29 } |
| 27 static stronger(s1, s2) { | 30 static stronger(s1, s2) { |
| 28 return dart.notNull(s1.value) < dart.notNull(s2.value); | 31 return dart.notNull(s1.value) < dart.notNull(s2.value); |
| 29 } | 32 } |
| 30 static weaker(s1, s2) { | 33 static weaker(s1, s2) { |
| 31 return dart.notNull(s1.value) > dart.notNull(s2.value); | 34 return dart.notNull(s1.value) > dart.notNull(s2.value); |
| 32 } | 35 } |
| 33 static weakest(s1, s2) { | 36 static weakest(s1, s2) { |
| 34 return Strength.weaker(s1, s2) ? s1 : s2; | 37 return Strength.weaker(s1, s2) ? s1 : s2; |
| 35 } | 38 } |
| 36 static strongest(s1, s2) { | 39 static strongest(s1, s2) { |
| 37 return Strength.stronger(s1, s2) ? s1 : s2; | 40 return Strength.stronger(s1, s2) ? s1 : s2; |
| 38 } | 41 } |
| 39 } | 42 } |
| 43 dart.setSignature(Strength, { |
| 44 methods: () => ({nextWeaker: dart.functionType(Strength, [])}), |
| 45 statics: () => ({ |
| 46 stronger: dart.functionType(core.bool, [Strength, Strength]), |
| 47 weaker: dart.functionType(core.bool, [Strength, Strength]), |
| 48 weakest: dart.functionType(Strength, [Strength, Strength]), |
| 49 strongest: dart.functionType(Strength, [Strength, Strength]) |
| 50 }), |
| 51 names: ['stronger', 'weaker', 'weakest', 'strongest'] |
| 52 }); |
| 40 let REQUIRED = dart.const(new Strength(0, "required")); | 53 let REQUIRED = dart.const(new Strength(0, "required")); |
| 41 let STRONG_PREFERRED = dart.const(new Strength(1, "strongPreferred")); | 54 let STRONG_PREFERRED = dart.const(new Strength(1, "strongPreferred")); |
| 42 let PREFERRED = dart.const(new Strength(2, "preferred")); | 55 let PREFERRED = dart.const(new Strength(2, "preferred")); |
| 43 let STRONG_DEFAULT = dart.const(new Strength(3, "strongDefault")); | 56 let STRONG_DEFAULT = dart.const(new Strength(3, "strongDefault")); |
| 44 let NORMAL = dart.const(new Strength(4, "normal")); | 57 let NORMAL = dart.const(new Strength(4, "normal")); |
| 45 let WEAK_DEFAULT = dart.const(new Strength(5, "weakDefault")); | 58 let WEAK_DEFAULT = dart.const(new Strength(5, "weakDefault")); |
| 46 let WEAKEST = dart.const(new Strength(6, "weakest")); | 59 let WEAKEST = dart.const(new Strength(6, "weakest")); |
| 47 class Constraint extends core.Object { | 60 class Constraint extends core.Object { |
| 48 Constraint(strength) { | 61 Constraint(strength) { |
| 49 this.strength = strength; | 62 this.strength = strength; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 73 } | 86 } |
| 74 destroyConstraint() { | 87 destroyConstraint() { |
| 75 if (this.isSatisfied()) | 88 if (this.isSatisfied()) |
| 76 exports.planner.incrementalRemove(this); | 89 exports.planner.incrementalRemove(this); |
| 77 this.removeFromGraph(); | 90 this.removeFromGraph(); |
| 78 } | 91 } |
| 79 isInput() { | 92 isInput() { |
| 80 return false; | 93 return false; |
| 81 } | 94 } |
| 82 } | 95 } |
| 96 dart.setSignature(Constraint, { |
| 97 methods: () => ({ |
| 98 addConstraint: dart.functionType(dart.void, []), |
| 99 satisfy: dart.functionType(Constraint, [dart.dynamic]), |
| 100 destroyConstraint: dart.functionType(dart.void, []), |
| 101 isInput: dart.functionType(core.bool, []) |
| 102 }) |
| 103 }); |
| 83 class UnaryConstraint extends Constraint { | 104 class UnaryConstraint extends Constraint { |
| 84 UnaryConstraint(myOutput, strength) { | 105 UnaryConstraint(myOutput, strength) { |
| 85 this.myOutput = myOutput; | 106 this.myOutput = myOutput; |
| 86 this.satisfied = false; | 107 this.satisfied = false; |
| 87 super.Constraint(strength); | 108 super.Constraint(strength); |
| 88 this.addConstraint(); | 109 this.addConstraint(); |
| 89 } | 110 } |
| 90 addToGraph() { | 111 addToGraph() { |
| 91 this.myOutput.addConstraint(this); | 112 this.myOutput.addConstraint(this); |
| 92 this.satisfied = false; | 113 this.satisfied = false; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 112 } | 133 } |
| 113 inputsKnown(mark) { | 134 inputsKnown(mark) { |
| 114 return true; | 135 return true; |
| 115 } | 136 } |
| 116 removeFromGraph() { | 137 removeFromGraph() { |
| 117 if (this.myOutput != null) | 138 if (this.myOutput != null) |
| 118 this.myOutput.removeConstraint(this); | 139 this.myOutput.removeConstraint(this); |
| 119 this.satisfied = false; | 140 this.satisfied = false; |
| 120 } | 141 } |
| 121 } | 142 } |
| 143 dart.setSignature(UnaryConstraint, { |
| 144 methods: () => ({ |
| 145 addToGraph: dart.functionType(dart.void, []), |
| 146 chooseMethod: dart.functionType(dart.void, [core.int]), |
| 147 isSatisfied: dart.functionType(core.bool, []), |
| 148 markInputs: dart.functionType(dart.void, [core.int]), |
| 149 output: dart.functionType(Variable, []), |
| 150 recalculate: dart.functionType(dart.void, []), |
| 151 markUnsatisfied: dart.functionType(dart.void, []), |
| 152 inputsKnown: dart.functionType(core.bool, [core.int]), |
| 153 removeFromGraph: dart.functionType(dart.void, []) |
| 154 }) |
| 155 }); |
| 122 class StayConstraint extends UnaryConstraint { | 156 class StayConstraint extends UnaryConstraint { |
| 123 StayConstraint(v, str) { | 157 StayConstraint(v, str) { |
| 124 super.UnaryConstraint(v, str); | 158 super.UnaryConstraint(v, str); |
| 125 } | 159 } |
| 126 execute() {} | 160 execute() {} |
| 127 } | 161 } |
| 162 dart.setSignature(StayConstraint, { |
| 163 methods: () => ({execute: dart.functionType(dart.void, [])}) |
| 164 }); |
| 128 class EditConstraint extends UnaryConstraint { | 165 class EditConstraint extends UnaryConstraint { |
| 129 EditConstraint(v, str) { | 166 EditConstraint(v, str) { |
| 130 super.UnaryConstraint(v, str); | 167 super.UnaryConstraint(v, str); |
| 131 } | 168 } |
| 132 isInput() { | 169 isInput() { |
| 133 return true; | 170 return true; |
| 134 } | 171 } |
| 135 execute() {} | 172 execute() {} |
| 136 } | 173 } |
| 174 dart.setSignature(EditConstraint, { |
| 175 methods: () => ({ |
| 176 isInput: dart.functionType(core.bool, []), |
| 177 execute: dart.functionType(dart.void, []) |
| 178 }) |
| 179 }); |
| 137 let NONE = 1; | 180 let NONE = 1; |
| 138 let FORWARD = 2; | 181 let FORWARD = 2; |
| 139 let BACKWARD = 0; | 182 let BACKWARD = 0; |
| 140 class BinaryConstraint extends Constraint { | 183 class BinaryConstraint extends Constraint { |
| 141 BinaryConstraint(v1, v2, strength) { | 184 BinaryConstraint(v1, v2, strength) { |
| 142 this.v1 = v1; | 185 this.v1 = v1; |
| 143 this.v2 = v2; | 186 this.v2 = v2; |
| 144 this.direction = NONE; | 187 this.direction = NONE; |
| 145 super.Constraint(strength); | 188 super.Constraint(strength); |
| 146 this.addConstraint(); | 189 this.addConstraint(); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 return i.mark == mark || dart.notNull(i.stay) || dart.notNull(i.determined
By == null); | 233 return i.mark == mark || dart.notNull(i.stay) || dart.notNull(i.determined
By == null); |
| 191 } | 234 } |
| 192 removeFromGraph() { | 235 removeFromGraph() { |
| 193 if (this.v1 != null) | 236 if (this.v1 != null) |
| 194 this.v1.removeConstraint(this); | 237 this.v1.removeConstraint(this); |
| 195 if (this.v2 != null) | 238 if (this.v2 != null) |
| 196 this.v2.removeConstraint(this); | 239 this.v2.removeConstraint(this); |
| 197 this.direction = NONE; | 240 this.direction = NONE; |
| 198 } | 241 } |
| 199 } | 242 } |
| 243 dart.setSignature(BinaryConstraint, { |
| 244 methods: () => ({ |
| 245 chooseMethod: dart.functionType(dart.void, [core.int]), |
| 246 addToGraph: dart.functionType(dart.void, []), |
| 247 isSatisfied: dart.functionType(core.bool, []), |
| 248 markInputs: dart.functionType(dart.void, [core.int]), |
| 249 input: dart.functionType(Variable, []), |
| 250 output: dart.functionType(Variable, []), |
| 251 recalculate: dart.functionType(dart.void, []), |
| 252 markUnsatisfied: dart.functionType(dart.void, []), |
| 253 inputsKnown: dart.functionType(core.bool, [core.int]), |
| 254 removeFromGraph: dart.functionType(dart.void, []) |
| 255 }) |
| 256 }); |
| 200 class ScaleConstraint extends BinaryConstraint { | 257 class ScaleConstraint extends BinaryConstraint { |
| 201 ScaleConstraint(src, scale, offset, dest, strength) { | 258 ScaleConstraint(src, scale, offset, dest, strength) { |
| 202 this.scale = scale; | 259 this.scale = scale; |
| 203 this.offset = offset; | 260 this.offset = offset; |
| 204 super.BinaryConstraint(src, dest, strength); | 261 super.BinaryConstraint(src, dest, strength); |
| 205 } | 262 } |
| 206 addToGraph() { | 263 addToGraph() { |
| 207 super.addToGraph(); | 264 super.addToGraph(); |
| 208 this.scale.addConstraint(this); | 265 this.scale.addConstraint(this); |
| 209 this.offset.addConstraint(this); | 266 this.offset.addConstraint(this); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 227 } | 284 } |
| 228 } | 285 } |
| 229 recalculate() { | 286 recalculate() { |
| 230 let ihn = this.input(), out = this.output(); | 287 let ihn = this.input(), out = this.output(); |
| 231 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength); | 288 out.walkStrength = Strength.weakest(this.strength, ihn.walkStrength); |
| 232 out.stay = dart.notNull(ihn.stay) && dart.notNull(this.scale.stay) && dart
.notNull(this.offset.stay); | 289 out.stay = dart.notNull(ihn.stay) && dart.notNull(this.scale.stay) && dart
.notNull(this.offset.stay); |
| 233 if (out.stay) | 290 if (out.stay) |
| 234 this.execute(); | 291 this.execute(); |
| 235 } | 292 } |
| 236 } | 293 } |
| 294 dart.setSignature(ScaleConstraint, { |
| 295 methods: () => ({ |
| 296 addToGraph: dart.functionType(dart.void, []), |
| 297 removeFromGraph: dart.functionType(dart.void, []), |
| 298 markInputs: dart.functionType(dart.void, [core.int]), |
| 299 execute: dart.functionType(dart.void, []), |
| 300 recalculate: dart.functionType(dart.void, []) |
| 301 }) |
| 302 }); |
| 237 class EqualityConstraint extends BinaryConstraint { | 303 class EqualityConstraint extends BinaryConstraint { |
| 238 EqualityConstraint(v1, v2, strength) { | 304 EqualityConstraint(v1, v2, strength) { |
| 239 super.BinaryConstraint(v1, v2, strength); | 305 super.BinaryConstraint(v1, v2, strength); |
| 240 } | 306 } |
| 241 execute() { | 307 execute() { |
| 242 this.output().value = this.input().value; | 308 this.output().value = this.input().value; |
| 243 } | 309 } |
| 244 } | 310 } |
| 311 dart.setSignature(EqualityConstraint, { |
| 312 methods: () => ({execute: dart.functionType(dart.void, [])}) |
| 313 }); |
| 245 class Variable extends core.Object { | 314 class Variable extends core.Object { |
| 246 Variable(name, value) { | 315 Variable(name, value) { |
| 247 this.constraints = dart.setType([], core.List$(Constraint)); | 316 this.constraints = dart.setType([], core.List$(Constraint)); |
| 248 this.name = name; | 317 this.name = name; |
| 249 this.value = value; | 318 this.value = value; |
| 250 this.determinedBy = null; | 319 this.determinedBy = null; |
| 251 this.mark = 0; | 320 this.mark = 0; |
| 252 this.walkStrength = WEAKEST; | 321 this.walkStrength = WEAKEST; |
| 253 this.stay = true; | 322 this.stay = true; |
| 254 } | 323 } |
| 255 addConstraint(c) { | 324 addConstraint(c) { |
| 256 this.constraints[core.$add](c); | 325 this.constraints[core.$add](c); |
| 257 } | 326 } |
| 258 removeConstraint(c) { | 327 removeConstraint(c) { |
| 259 this.constraints[core.$remove](c); | 328 this.constraints[core.$remove](c); |
| 260 if (dart.equals(this.determinedBy, c)) | 329 if (dart.equals(this.determinedBy, c)) |
| 261 this.determinedBy = null; | 330 this.determinedBy = null; |
| 262 } | 331 } |
| 263 } | 332 } |
| 333 dart.setSignature(Variable, { |
| 334 methods: () => ({ |
| 335 addConstraint: dart.functionType(dart.void, [Constraint]), |
| 336 removeConstraint: dart.functionType(dart.void, [Constraint]) |
| 337 }) |
| 338 }); |
| 264 class Planner extends core.Object { | 339 class Planner extends core.Object { |
| 265 Planner() { | 340 Planner() { |
| 266 this.currentMark = 0; | 341 this.currentMark = 0; |
| 267 } | 342 } |
| 268 incrementalAdd(c) { | 343 incrementalAdd(c) { |
| 269 let mark = this.newMark(); | 344 let mark = this.newMark(); |
| 270 for (let overridden = c.satisfy(mark); overridden != null; overridden = ov
erridden.satisfy(mark)) | 345 for (let overridden = c.satisfy(mark); overridden != null; overridden = ov
erridden.satisfy(mark)) |
| 271 ; | 346 ; |
| 272 } | 347 } |
| 273 incrementalRemove(c) { | 348 incrementalRemove(c) { |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 } | 425 } |
| 351 addConstraintsConsumingTo(v, coll) { | 426 addConstraintsConsumingTo(v, coll) { |
| 352 let determining = v.determinedBy; | 427 let determining = v.determinedBy; |
| 353 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints[core.$length]
); i = dart.notNull(i) + 1) { | 428 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints[core.$length]
); i = dart.notNull(i) + 1) { |
| 354 let c = v.constraints[core.$get](i); | 429 let c = v.constraints[core.$get](i); |
| 355 if (dart.notNull(!dart.equals(c, determining)) && dart.notNull(c.isSatis
fied())) | 430 if (dart.notNull(!dart.equals(c, determining)) && dart.notNull(c.isSatis
fied())) |
| 356 coll[core.$add](c); | 431 coll[core.$add](c); |
| 357 } | 432 } |
| 358 } | 433 } |
| 359 } | 434 } |
| 435 dart.setSignature(Planner, { |
| 436 methods: () => ({ |
| 437 incrementalAdd: dart.functionType(dart.void, [Constraint]), |
| 438 incrementalRemove: dart.functionType(dart.void, [Constraint]), |
| 439 newMark: dart.functionType(core.int, []), |
| 440 makePlan: dart.functionType(Plan, [core.List$(Constraint)]), |
| 441 extractPlanFromConstraints: dart.functionType(Plan, [core.List$(Constraint
)]), |
| 442 addPropagate: dart.functionType(core.bool, [Constraint, core.int]), |
| 443 removePropagateFrom: dart.functionType(core.List$(Constraint), [Variable])
, |
| 444 addConstraintsConsumingTo: dart.functionType(dart.void, [Variable, core.Li
st$(Constraint)]) |
| 445 }) |
| 446 }); |
| 360 class Plan extends core.Object { | 447 class Plan extends core.Object { |
| 361 Plan() { | 448 Plan() { |
| 362 this.list = dart.setType([], core.List$(Constraint)); | 449 this.list = dart.setType([], core.List$(Constraint)); |
| 363 } | 450 } |
| 364 addConstraint(c) { | 451 addConstraint(c) { |
| 365 this.list[core.$add](c); | 452 this.list[core.$add](c); |
| 366 } | 453 } |
| 367 size() { | 454 size() { |
| 368 return this.list[core.$length]; | 455 return this.list[core.$length]; |
| 369 } | 456 } |
| 370 execute() { | 457 execute() { |
| 371 for (let i = 0; dart.notNull(i) < dart.notNull(this.list[core.$length]); i
= dart.notNull(i) + 1) { | 458 for (let i = 0; dart.notNull(i) < dart.notNull(this.list[core.$length]); i
= dart.notNull(i) + 1) { |
| 372 this.list[core.$get](i).execute(); | 459 this.list[core.$get](i).execute(); |
| 373 } | 460 } |
| 374 } | 461 } |
| 375 } | 462 } |
| 376 // Function chainTest: (int) → void | 463 dart.setSignature(Plan, { |
| 464 methods: () => ({ |
| 465 addConstraint: dart.functionType(dart.void, [Constraint]), |
| 466 size: dart.functionType(core.int, []), |
| 467 execute: dart.functionType(dart.void, []) |
| 468 }) |
| 469 }); |
| 377 function chainTest(n) { | 470 function chainTest(n) { |
| 378 exports.planner = new Planner(); | 471 exports.planner = new Planner(); |
| 379 let prev = null, first = null, last = null; | 472 let prev = null, first = null, last = null; |
| 380 for (let i = 0; dart.notNull(i) <= dart.notNull(n); i = dart.notNull(i) + 1)
{ | 473 for (let i = 0; dart.notNull(i) <= dart.notNull(n); i = dart.notNull(i) + 1)
{ |
| 381 let v = new Variable("v", 0); | 474 let v = new Variable("v", 0); |
| 382 if (prev != null) | 475 if (prev != null) |
| 383 new EqualityConstraint(prev, v, REQUIRED); | 476 new EqualityConstraint(prev, v, REQUIRED); |
| 384 if (i == 0) | 477 if (i == 0) |
| 385 first = v; | 478 first = v; |
| 386 if (i == n) | 479 if (i == n) |
| 387 last = v; | 480 last = v; |
| 388 prev = v; | 481 prev = v; |
| 389 } | 482 } |
| 390 new StayConstraint(last, STRONG_DEFAULT); | 483 new StayConstraint(last, STRONG_DEFAULT); |
| 391 let edit = new EditConstraint(first, PREFERRED); | 484 let edit = new EditConstraint(first, PREFERRED); |
| 392 let plan = exports.planner.extractPlanFromConstraints(dart.setType([edit], c
ore.List$(Constraint))); | 485 let plan = exports.planner.extractPlanFromConstraints(dart.setType([edit], c
ore.List$(Constraint))); |
| 393 for (let i = 0; dart.notNull(i) < 100; i = dart.notNull(i) + 1) { | 486 for (let i = 0; dart.notNull(i) < 100; i = dart.notNull(i) + 1) { |
| 394 first.value = i; | 487 first.value = i; |
| 395 plan.execute(); | 488 plan.execute(); |
| 396 if (last.value != i) { | 489 if (last.value != i) { |
| 397 core.print("Chain test failed:"); | 490 core.print("Chain test failed:"); |
| 398 core.print(`Expected last value to be ${i} but it was ${last.value}.`); | 491 core.print(`Expected last value to be ${i} but it was ${last.value}.`); |
| 399 } | 492 } |
| 400 } | 493 } |
| 401 } | 494 } |
| 402 // Function projectionTest: (int) → void | 495 dart.fn(chainTest, dart.void, [core.int]); |
| 403 function projectionTest(n) { | 496 function projectionTest(n) { |
| 404 exports.planner = new Planner(); | 497 exports.planner = new Planner(); |
| 405 let scale = new Variable("scale", 10); | 498 let scale = new Variable("scale", 10); |
| 406 let offset = new Variable("offset", 1000); | 499 let offset = new Variable("offset", 1000); |
| 407 let src = null, dst = null; | 500 let src = null, dst = null; |
| 408 let dests = dart.setType([], core.List$(Variable)); | 501 let dests = dart.setType([], core.List$(Variable)); |
| 409 for (let i = 0; dart.notNull(i) < dart.notNull(n); i = dart.notNull(i) + 1)
{ | 502 for (let i = 0; dart.notNull(i) < dart.notNull(n); i = dart.notNull(i) + 1)
{ |
| 410 src = new Variable("src", i); | 503 src = new Variable("src", i); |
| 411 dst = new Variable("dst", i); | 504 dst = new Variable("dst", i); |
| 412 dests[core.$add](dst); | 505 dests[core.$add](dst); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 423 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { | 516 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { |
| 424 if (dests[core.$get](i).value != dart.notNull(i) * 5 + 1000) | 517 if (dests[core.$get](i).value != dart.notNull(i) * 5 + 1000) |
| 425 core.print("Projection 3 failed"); | 518 core.print("Projection 3 failed"); |
| 426 } | 519 } |
| 427 change(offset, 2000); | 520 change(offset, 2000); |
| 428 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { | 521 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { |
| 429 if (dests[core.$get](i).value != dart.notNull(i) * 5 + 2000) | 522 if (dests[core.$get](i).value != dart.notNull(i) * 5 + 2000) |
| 430 core.print("Projection 4 failed"); | 523 core.print("Projection 4 failed"); |
| 431 } | 524 } |
| 432 } | 525 } |
| 433 // Function change: (Variable, int) → void | 526 dart.fn(projectionTest, dart.void, [core.int]); |
| 434 function change(v, newValue) { | 527 function change(v, newValue) { |
| 435 let edit = new EditConstraint(v, PREFERRED); | 528 let edit = new EditConstraint(v, PREFERRED); |
| 436 let plan = exports.planner.extractPlanFromConstraints(dart.setType([edit], c
ore.List$(EditConstraint))); | 529 let plan = exports.planner.extractPlanFromConstraints(dart.setType([edit], c
ore.List$(EditConstraint))); |
| 437 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) { | 530 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) { |
| 438 v.value = newValue; | 531 v.value = newValue; |
| 439 plan.execute(); | 532 plan.execute(); |
| 440 } | 533 } |
| 441 edit.destroyConstraint(); | 534 edit.destroyConstraint(); |
| 442 } | 535 } |
| 536 dart.fn(change, dart.void, [Variable, core.int]); |
| 443 exports.planner = null; | 537 exports.planner = null; |
| 444 // Exports: | 538 // Exports: |
| 445 exports.main = main; | 539 exports.main = main; |
| 446 exports.DeltaBlue = DeltaBlue; | 540 exports.DeltaBlue = DeltaBlue; |
| 447 exports.Strength = Strength; | 541 exports.Strength = Strength; |
| 448 exports.REQUIRED = REQUIRED; | 542 exports.REQUIRED = REQUIRED; |
| 449 exports.STRONG_PREFERRED = STRONG_PREFERRED; | 543 exports.STRONG_PREFERRED = STRONG_PREFERRED; |
| 450 exports.PREFERRED = PREFERRED; | 544 exports.PREFERRED = PREFERRED; |
| 451 exports.STRONG_DEFAULT = STRONG_DEFAULT; | 545 exports.STRONG_DEFAULT = STRONG_DEFAULT; |
| 452 exports.NORMAL = NORMAL; | 546 exports.NORMAL = NORMAL; |
| 453 exports.WEAK_DEFAULT = WEAK_DEFAULT; | 547 exports.WEAK_DEFAULT = WEAK_DEFAULT; |
| 454 exports.WEAKEST = WEAKEST; | 548 exports.WEAKEST = WEAKEST; |
| 455 exports.Constraint = Constraint; | 549 exports.Constraint = Constraint; |
| 456 exports.UnaryConstraint = UnaryConstraint; | 550 exports.UnaryConstraint = UnaryConstraint; |
| 457 exports.StayConstraint = StayConstraint; | 551 exports.StayConstraint = StayConstraint; |
| 458 exports.EditConstraint = EditConstraint; | 552 exports.EditConstraint = EditConstraint; |
| 459 exports.NONE = NONE; | 553 exports.NONE = NONE; |
| 460 exports.FORWARD = FORWARD; | 554 exports.FORWARD = FORWARD; |
| 461 exports.BACKWARD = BACKWARD; | 555 exports.BACKWARD = BACKWARD; |
| 462 exports.BinaryConstraint = BinaryConstraint; | 556 exports.BinaryConstraint = BinaryConstraint; |
| 463 exports.ScaleConstraint = ScaleConstraint; | 557 exports.ScaleConstraint = ScaleConstraint; |
| 464 exports.EqualityConstraint = EqualityConstraint; | 558 exports.EqualityConstraint = EqualityConstraint; |
| 465 exports.Variable = Variable; | 559 exports.Variable = Variable; |
| 466 exports.Planner = Planner; | 560 exports.Planner = Planner; |
| 467 exports.Plan = Plan; | 561 exports.Plan = Plan; |
| 468 exports.chainTest = chainTest; | 562 exports.chainTest = chainTest; |
| 469 exports.projectionTest = projectionTest; | 563 exports.projectionTest = projectionTest; |
| 470 exports.change = change; | 564 exports.change = change; |
| 471 })(DeltaBlue, BenchmarkBase, core); | 565 })(DeltaBlue, BenchmarkBase, core); |
| OLD | NEW |