resin 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. data/README.markdown +2 -0
  2. data/amber/bin/nodecompile.js +3 -3
  3. data/amber/css/amber.css +47 -23
  4. data/amber/images/off.amber.png +0 -0
  5. data/amber/images/offHover.amber.png +0 -0
  6. data/amber/images/sprite.amber.png +0 -0
  7. data/amber/images/tinylogo.amber.png +0 -0
  8. data/amber/js/Benchfib.deploy.js +34 -34
  9. data/amber/js/Benchfib.js +49 -49
  10. data/amber/js/Canvas.deploy.js +937 -937
  11. data/amber/js/Canvas.js +1622 -1622
  12. data/amber/js/Compiler-Tests.deploy.js +97 -0
  13. data/amber/js/Compiler-Tests.js +137 -0
  14. data/amber/js/Compiler.deploy.js +1030 -924
  15. data/amber/js/Compiler.js +1613 -1467
  16. data/amber/js/Documentation.deploy.js +417 -417
  17. data/amber/js/Documentation.js +728 -728
  18. data/amber/js/Examples.deploy.js +24 -13
  19. data/amber/js/Examples.js +36 -19
  20. data/amber/js/IDE.deploy.js +1583 -1527
  21. data/amber/js/IDE.js +2586 -2510
  22. data/amber/js/Kernel-Announcements.deploy.js +19 -19
  23. data/amber/js/Kernel-Announcements.js +28 -28
  24. data/amber/js/Kernel-Classes.deploy.js +332 -229
  25. data/amber/js/Kernel-Classes.js +532 -384
  26. data/amber/js/Kernel-Collections.deploy.js +1516 -1712
  27. data/amber/js/Kernel-Collections.js +2436 -2712
  28. data/amber/js/Kernel-Exceptions.deploy.js +85 -62
  29. data/amber/js/Kernel-Exceptions.js +131 -98
  30. data/amber/js/Kernel-Methods.deploy.js +326 -378
  31. data/amber/js/Kernel-Methods.js +473 -525
  32. data/amber/js/Kernel-Objects.deploy.js +1777 -2428
  33. data/amber/js/Kernel-Objects.js +2599 -3426
  34. data/amber/js/Kernel-Tests.deploy.js +871 -772
  35. data/amber/js/Kernel-Tests.js +1207 -1083
  36. data/amber/js/Kernel-Transcript.deploy.js +57 -57
  37. data/amber/js/Kernel-Transcript.js +94 -94
  38. data/amber/js/SUnit.deploy.js +116 -116
  39. data/amber/js/SUnit.js +211 -211
  40. data/amber/js/amber.js +10 -11
  41. data/amber/js/boot.js +132 -156
  42. data/amber/js/init.js +2 -2
  43. data/amber/js/parser.js +2095 -3014
  44. data/amber/js/parser.pegjs +1 -1
  45. data/amber/st/Benchfib.st +22 -22
  46. data/amber/st/Canvas.st +471 -471
  47. data/amber/st/Compiler-Tests.st +471 -0
  48. data/amber/st/Compiler.st +858 -794
  49. data/amber/st/Examples.st +22 -5
  50. data/amber/st/IDE.st +1326 -1291
  51. data/amber/st/Kernel-Announcements.st +2 -2
  52. data/amber/st/Kernel-Classes.st +148 -90
  53. data/amber/st/Kernel-Collections.st +950 -1061
  54. data/amber/st/Kernel-Exceptions.st +33 -25
  55. data/amber/st/Kernel-Methods.st +151 -151
  56. data/amber/st/Kernel-Objects.st +891 -1036
  57. data/amber/st/Kernel-Tests.st +622 -544
  58. data/amber/st/Kernel-Transcript.st +38 -38
  59. data/amber/st/SUnit.st +53 -53
  60. metadata +27 -20
@@ -1,5 +1,7 @@
1
1
  # Resin: a simple environment for Amber development
2
2
 
3
+ [![Build Status](https://buildhive.cloudbees.com/job/rtyler/job/resin/badge/icon)](https://buildhive.cloudbees.com/job/rtyler/job/resin/)
4
+
3
5
 
4
6
  ## About
5
7
 
@@ -2,7 +2,7 @@
2
2
  // The arguments variable is a series of .st filenames and category names.
3
3
  // If it is a .st file we import it, if it is a category name we export it
4
4
  // as aCategoryName.js.
5
- var sys = require('sys'), fs = require('fs');
5
+ var util = require('util'), fs = require('fs');
6
6
 
7
7
  // Only care about our arguments, strip away node, all.js and debug flag.
8
8
  var arguments = process.argv.splice(4);
@@ -19,11 +19,11 @@ if (suffix == "no-silly-suffix") {
19
19
  // If it ends with .st, import it, otherwise export category as .js
20
20
  arguments.forEach(function(val, index, array) {
21
21
  if (/\.st/.test(val)) {
22
- sys.puts("Reading file " + val);
22
+ util.puts("Reading file " + val);
23
23
  code = fs.readFileSync(val, "utf8");
24
24
  smalltalk.Importer._new()._import_(code._stream());
25
25
  } else {
26
- sys.puts("Exporting " + (deploy ? "(debug + deploy)" : "(debug)") + " category "
26
+ util.puts("Exporting " + (deploy ? "(debug + deploy)" : "(debug)") + " category "
27
27
  + val + " as " + val + suffix + ".js" + (deploy ? " and " + val + suffix + ".deploy.js" : ""));
28
28
  fs.writeFileSync(val + suffix + ".js", smalltalk.Exporter._new()._exportPackage_(val));
29
29
  if (deploy) {
@@ -2,12 +2,10 @@ body.jtalkBody {
2
2
  margin-bottom: 350px;
3
3
  }
4
4
 
5
- @import url("amber-normalize.css");
6
-
7
5
  #jtalkTabs, #jtalk .jt_tabs {
8
6
  margin: 0;
9
7
  padding: 0;
10
- background: url("../images/sprite.png") #DBD9C9 0 -27px;
8
+ background: url("../images/sprite.amber.png") #DBD9C9 0 -27px;
11
9
  height: 22px;
12
10
  width: 100%;
13
11
  list-style: none;
@@ -18,10 +16,13 @@ body.jtalkBody {
18
16
  padding: 0 1px;
19
17
  cursor: pointer;
20
18
  color: #565656;
21
- max-width: 200px;
22
- float:left;
19
+ max-width: 200px;
20
+ float:left;
23
21
  }
22
+ #jtalk li {
23
+ line-height: 14px;
24
24
 
25
+ }
25
26
  #jtalk .ltab, #jtalk .rtab, #jtalk .mtab {
26
27
  height: 22px;
27
28
  float: left;
@@ -41,17 +42,17 @@ body.jtalkBody {
41
42
 
42
43
  #jtalkTabs li:hover .ltab,
43
44
  #jtalk .jt_tabs li:hover .ltab {
44
- background: url("../images/sprite.png") -16px -96px;
45
+ background: url("../images/sprite.amber.png") -16px -96px;
45
46
  }
46
47
 
47
48
  #jtalkTabs li:hover .mtab,
48
49
  #jtalk .jt_tabs li:hover .mtab {
49
- background: url("../images/sprite.png") 0 -73px;
50
+ background: url("../images/sprite.amber.png") 0 -73px;
50
51
  }
51
52
 
52
53
  #jtalkTabs li:hover .rtab,
53
54
  #jtalk .jt_tabs li:hover .rtab {
54
- background: url("../images/sprite.png") -24px -96px;
55
+ background: url("../images/sprite.amber.png") -24px -96px;
55
56
  }
56
57
 
57
58
  #jtalkTabs li.selected,
@@ -61,17 +62,17 @@ body.jtalkBody {
61
62
 
62
63
  #jtalkTabs li.selected .ltab,
63
64
  #jtalk .jt_tabs li.selected .ltab {
64
- background: url("../images/sprite.png") 0px -96px;
65
+ background: url("../images/sprite.amber.png") 0px -96px;
65
66
  }
66
67
 
67
68
  #jtalkTabs li.selected .mtab,
68
69
  #jtalk .jt_tabs li.selected .mtab {
69
- background: url("../images/sprite.png") 0 -50px;
70
+ background: url("../images/sprite.amber.png") 0 -50px;
70
71
  }
71
72
 
72
73
  #jtalkTabs li.selected .rtab,
73
74
  #jtalk .jt_tabs li.selected .rtab {
74
- background: url("../images/sprite.png") -8px -96px;
75
+ background: url("../images/sprite.amber.png") -8px -96px;
75
76
  }
76
77
 
77
78
  #jtalkTabs li .close {
@@ -99,12 +100,12 @@ body.jtalkBody {
99
100
  left: 8px;
100
101
  width: 22px;
101
102
  height: 20px;
102
- background: url("../images/tinylogo.png") top left no-repeat;
103
+ background: url("../images/tinylogo.amber.png") top left no-repeat;
103
104
  }
104
105
 
105
106
  #jtalk #jt_toolbar {
106
107
  height: 27px;
107
- background: url("../images/sprite.png") 0 0;
108
+ background: url("../images/sprite.amber.png") 0 0;
108
109
  }
109
110
 
110
111
  #jtalk #jt_toolbar input {
@@ -119,12 +120,12 @@ body.jtalkBody {
119
120
  top: 6px;
120
121
  width: 16px;
121
122
  height: 16px;
122
- background: url('../images/off.png');
123
+ background: url('../images/off.amber.png');
123
124
  cursor: pointer;
124
125
  }
125
126
 
126
127
  #jtalk #jt_toolbar #jt_close:hover {
127
- background: url('../images/offHover.png');
128
+ background: url('../images/offHover.amber.png');
128
129
  }
129
130
 
130
131
 
@@ -168,7 +169,7 @@ body.jtalkBody {
168
169
  right: 0;
169
170
  height: 27px;
170
171
  line-height: 27px;
171
- background: url("../images/sprite.png") 0 0 repeat;
172
+ background: url("../images/sprite.amber.png") 0 0 repeat;
172
173
  }
173
174
 
174
175
  .jtalkTool .jt_buttons .right {
@@ -214,8 +215,20 @@ body.jtalkBody {
214
215
  margin-bottom: 0;
215
216
  padding-top: 0;
216
217
  padding-bottom: 0;
218
+ height: 14px;
219
+ line-height: normal;
220
+ box-shadow: none;
221
+ outline: none;
222
+ vertical-align:baseline;
223
+ }
224
+ .jtalkTool select {
225
+ height:18px;
226
+ width: auto;
217
227
  }
218
228
 
229
+
230
+
231
+
219
232
  .jtalkTool li {
220
233
  margin: 0;
221
234
  padding: 0;
@@ -355,7 +368,7 @@ body.jtalkBody {
355
368
  line-height: 1.5em;
356
369
  font-size: 16px;
357
370
  color: red;
358
- background: url("../images/sprite.png") top left repeat;
371
+ background: url("../images/sprite.amber.png") top left repeat;
359
372
  height: 27px;
360
373
  }
361
374
 
@@ -413,30 +426,37 @@ body.jtalkBody {
413
426
 
414
427
  .jtalkTool .jt_box .jt_column.implementors,
415
428
  .jtalkTool .jt_box .jt_column.senders,
416
- .jtalkTool .jt_box .jt_column.referenced_classes {
429
+ .jtalkTool .jt_box .jt_column.referenced_classes,
430
+ .jtalkTool .jt_box .jt_column.matches {
417
431
  top: 20px;
418
432
  height: auto;
419
433
  bottom: 0;
420
- width: 33.333%;
434
+ width: 25%;
421
435
  }
422
436
 
423
437
  .jtalkTool .jt_box .jt_column.senders {
424
- left: 33.333%
438
+ left: 25%
425
439
  }
426
440
 
427
441
  .jtalkTool .jt_box .jt_column.referenced_classes {
428
- left: 66.67%
442
+ left: 50%
443
+ }
444
+
445
+ .jtalkTool .jt_box .jt_column.matches {
446
+ left: 75%
429
447
  }
430
448
 
431
449
  .jtalkTool .jt_box .jt_column.implementors .column_label,
432
450
  .jtalkTool .jt_box .jt_column.senders .column_label,
433
- .jtalkTool .jt_box .jt_column.referenced_classes .column_label {
451
+ .jtalkTool .jt_box .jt_column.referenced_classes .column_label,
452
+ .jtalkTool .jt_box .jt_column.matches .column_label {
434
453
  background: #dbdbdb
435
454
  }
436
455
 
437
456
  .jtalkTool .jt_box .jt_column.implementors .column_label:hover,
438
457
  .jtalkTool .jt_box .jt_column.senders .column_label:hover,
439
- .jtalkTool .jt_box .jt_column.referenced_classes .column_label:hover {
458
+ .jtalkTool .jt_box .jt_column.referenced_classes .column_label:hover,
459
+ .jtalkTool .jt_box .jt_column.matches .column_label:hover {
440
460
  font-weight: bold;
441
461
  color: #000;
442
462
  cursor: default
@@ -520,3 +540,7 @@ body.jtalkBody {
520
540
 
521
541
  /*.jtalkTool .jt_column.sunit.results ul {padding: 0; margin: 0}*/
522
542
 
543
+ /* Code mirror overrides */
544
+ .CodeMirror pre {
545
+ line-height: 14px;
546
+ }
@@ -2,23 +2,23 @@ smalltalk.addPackage('Benchfib', {});
2
2
  smalltalk.addClass('Benchfib', smalltalk.Object, [], 'Benchfib');
3
3
 
4
4
  smalltalk.addMethod(
5
- unescape('_main'),
5
+ "_main",
6
6
  smalltalk.method({
7
- selector: unescape('main'),
7
+ selector: "main",
8
8
  fn: function (){
9
9
  var self=this;
10
10
  var result=nil;
11
11
  (result=smalltalk.send((0), "_tinyBenchmarks", []));
12
- smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send(unescape("0%20tinyBenchmarks%20%3D%3E%20"), "__comma", [result])]);
12
+ smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send("0 tinyBenchmarks => ", "__comma", [result])]);
13
13
  return self;}
14
14
  }),
15
15
  smalltalk.Benchfib.klass);
16
16
 
17
17
 
18
18
  smalltalk.addMethod(
19
- unescape('_benchFib'),
19
+ "_benchFib",
20
20
  smalltalk.method({
21
- selector: unescape('benchFib'),
21
+ selector: "benchFib",
22
22
  fn: function (){
23
23
  var self=this;
24
24
  return ((($receiver = self < (2)).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (1);})() : (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (1);}), (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]));
@@ -27,9 +27,9 @@ return self;}
27
27
  smalltalk.Number);
28
28
 
29
29
  smalltalk.addMethod(
30
- unescape('_benchmark'),
30
+ "_benchmark",
31
31
  smalltalk.method({
32
- selector: unescape('benchmark'),
32
+ selector: "benchmark",
33
33
  fn: function (){
34
34
  var self=this;
35
35
  var size=nil;
@@ -45,29 +45,9 @@ return self;}
45
45
  smalltalk.Number);
46
46
 
47
47
  smalltalk.addMethod(
48
- unescape('_tinyBenchmarks'),
48
+ "_jsbenchFib",
49
49
  smalltalk.method({
50
- selector: unescape('tinyBenchmarks'),
51
- fn: function (){
52
- var self=this;
53
- var t1=nil;
54
- var t2=nil;
55
- var r=nil;
56
- var n1=nil;
57
- var n2=nil;
58
- (n1=(1));
59
- (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_benchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
60
- (n2=(16));
61
- (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_benchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
62
- return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
63
- return self;}
64
- }),
65
- smalltalk.Number);
66
-
67
- smalltalk.addMethod(
68
- unescape('_jsbenchFib'),
69
- smalltalk.method({
70
- selector: unescape('jsbenchFib'),
50
+ selector: "jsbenchFib",
71
51
  fn: function (){
72
52
  var self=this;
73
53
  if (this < 2) {
@@ -79,9 +59,9 @@ return self;}
79
59
  smalltalk.Number);
80
60
 
81
61
  smalltalk.addMethod(
82
- unescape('_jsbenchmark'),
62
+ "_jsbenchmark",
83
63
  smalltalk.method({
84
- selector: unescape('jsbenchmark'),
64
+ selector: "jsbenchmark",
85
65
  fn: function (){
86
66
  var self=this;
87
67
 
@@ -111,9 +91,9 @@ return self;}
111
91
  smalltalk.Number);
112
92
 
113
93
  smalltalk.addMethod(
114
- unescape('_jstinyBenchmarks'),
94
+ "_jstinyBenchmarks",
115
95
  smalltalk.method({
116
- selector: unescape('jstinyBenchmarks'),
96
+ selector: "jstinyBenchmarks",
117
97
  fn: function (){
118
98
  var self=this;
119
99
  var t1=nil;
@@ -125,7 +105,27 @@ var n2=nil;
125
105
  (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_jsbenchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
126
106
  (n2=(28));
127
107
  (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_jsbenchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
128
- return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
108
+ return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
109
+ return self;}
110
+ }),
111
+ smalltalk.Number);
112
+
113
+ smalltalk.addMethod(
114
+ "_tinyBenchmarks",
115
+ smalltalk.method({
116
+ selector: "tinyBenchmarks",
117
+ fn: function (){
118
+ var self=this;
119
+ var t1=nil;
120
+ var t2=nil;
121
+ var r=nil;
122
+ var n1=nil;
123
+ var n2=nil;
124
+ (n1=(1));
125
+ (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_benchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
126
+ (n2=(16));
127
+ (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_benchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
128
+ return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
129
129
  return self;}
130
130
  }),
131
131
  smalltalk.Number);
@@ -2,44 +2,44 @@ smalltalk.addPackage('Benchfib', {});
2
2
  smalltalk.addClass('Benchfib', smalltalk.Object, [], 'Benchfib');
3
3
 
4
4
  smalltalk.addMethod(
5
- unescape('_main'),
5
+ "_main",
6
6
  smalltalk.method({
7
- selector: unescape('main'),
7
+ selector: "main",
8
8
  category: 'not yet classified',
9
9
  fn: function (){
10
10
  var self=this;
11
11
  var result=nil;
12
12
  (result=smalltalk.send((0), "_tinyBenchmarks", []));
13
- smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send(unescape("0%20tinyBenchmarks%20%3D%3E%20"), "__comma", [result])]);
13
+ smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send("0 tinyBenchmarks => ", "__comma", [result])]);
14
14
  return self;},
15
15
  args: [],
16
- source: unescape('main%0A%0A%09%7C%20result%20%7C%0A%09result%20%3A%3D%200%20tinyBenchmarks.%0A%09console%20log%3A%20%270%20tinyBenchmarks%20%3D%3E%20%27%20%2C%20result'),
17
- messageSends: ["tinyBenchmarks", "log:", unescape("%2C")],
16
+ source: "main\x0a\x0a\x09| result |\x0a\x09result := 0 tinyBenchmarks.\x0a\x09console log: '0 tinyBenchmarks => ' , result",
17
+ messageSends: ["tinyBenchmarks", "log:", ","],
18
18
  referencedClasses: []
19
19
  }),
20
20
  smalltalk.Benchfib.klass);
21
21
 
22
22
 
23
23
  smalltalk.addMethod(
24
- unescape('_benchFib'),
24
+ "_benchFib",
25
25
  smalltalk.method({
26
- selector: unescape('benchFib'),
26
+ selector: "benchFib",
27
27
  category: '*Benchfib',
28
28
  fn: function (){
29
29
  var self=this;
30
30
  return ((($receiver = self < (2)).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (1);})() : (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (1);}), (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]));
31
31
  return self;},
32
32
  args: [],
33
- source: unescape('benchFib%20%0A%09%22Handy%20send-heavy%20benchmark%22%0A%09%22%28result%20//%20seconds%20to%20run%29%20%3D%20approx%20calls%20per%20second%22%0A%09%22%20%7C%20r%20t%20%7C%0A%09%20%20t%20%3A%3D%20Time%20millisecondsToRun%3A%20%5Br%20%3A%3D%2026%20benchFib%5D.%0A%09%20%20%28r%20*%201000%29%20//%20t%22%0A%09%22138000%20on%20a%20Mac%208100/100%22%0A%09%5E%20self%20%3C%202%20%0A%09%09ifTrue%3A%20%5B1%5D%20%0A%09%09ifFalse%3A%20%5B%28self-1%29%20benchFib%20+%20%28self-2%29%20benchFib%20+%201%5D'),
34
- messageSends: ["ifTrue:ifFalse:", unescape("%3C"), unescape("+"), "benchFib", unescape("-")],
33
+ source: "benchFib \x0a\x09\x22Handy send-heavy benchmark\x22\x0a\x09\x22(result // seconds to run) = approx calls per second\x22\x0a\x09\x22 | r t |\x0a\x09 t := Time millisecondsToRun: [r := 26 benchFib].\x0a\x09 (r * 1000) // t\x22\x0a\x09\x22138000 on a Mac 8100/100\x22\x0a\x09^ self < 2 \x0a\x09\x09ifTrue: [1] \x0a\x09\x09ifFalse: [(self-1) benchFib + (self-2) benchFib + 1]",
34
+ messageSends: ["ifTrue:ifFalse:", "<", "+", "benchFib", "-"],
35
35
  referencedClasses: []
36
36
  }),
37
37
  smalltalk.Number);
38
38
 
39
39
  smalltalk.addMethod(
40
- unescape('_benchmark'),
40
+ "_benchmark",
41
41
  smalltalk.method({
42
- selector: unescape('benchmark'),
42
+ selector: "benchmark",
43
43
  category: '*Benchfib',
44
44
  fn: function (){
45
45
  var self=this;
@@ -53,41 +53,16 @@ smalltalk.send((1), "_to_do_", [self, (function(iter){(count=(0));(flags=smallta
53
53
  return count;
54
54
  return self;},
55
55
  args: [],
56
- source: unescape('benchmark%20%0A%09%22Handy%20bytecode-heavy%20benchmark%22%0A%09%22%28500000%20//%20time%20to%20run%29%20%3D%20approx%20bytecodes%20per%20second%22%0A%09%225000000%20//%20%28Time%20millisecondsToRun%3A%20%5B10%20benchmark%5D%29%20*%201000%22%0A%09%223059000%20on%20a%20Mac%208100/100%22%0A%20%20%20%20%7C%20size%20flags%20prime%20k%20count%20%7C%0A%20%20%20%20size%20%3A%3D%208190.%0A%20%20%20%201%20to%3A%20self%20do%3A%0A%20%20%20%20%20%20%20%20%5B%3Aiter%20%7C%0A%20%20%20%20%20%20%20%20count%20%3A%3D%200.%0A%20%20%20%20%20%20%20%20flags%20%3A%3D%20Array%20new.%0A%20%20%20%20%20%20%20%20size%20timesRepeat%3A%20%5B%20flags%20add%3A%20true%5D.%0A%20%20%20%20%20%20%20%201%20to%3A%20size%20do%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%3Ai%20%7C%20%28flags%20at%3A%20i%29%20ifTrue%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bprime%20%3A%3D%20i+1.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%20%3A%3D%20i%20+%20prime.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bk%20%3C%3D%20size%5D%20whileTrue%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bflags%20at%3A%20k%20put%3A%20false.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%20%3A%3D%20k%20+%20prime%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20count%20%3A%3D%20count%20+%201%5D%5D%5D.%0A%20%20%20%20%5E%20count'),
57
- messageSends: ["to:do:", "new", "timesRepeat:", "add:", "ifTrue:", "at:", unescape("+"), "whileTrue:", unescape("%3C%3D"), "at:put:"],
56
+ source: "benchmark \x0a\x09\x22Handy bytecode-heavy benchmark\x22\x0a\x09\x22(500000 // time to run) = approx bytecodes per second\x22\x0a\x09\x225000000 // (Time millisecondsToRun: [10 benchmark]) * 1000\x22\x0a\x09\x223059000 on a Mac 8100/100\x22\x0a | size flags prime k count |\x0a size := 8190.\x0a 1 to: self do:\x0a [:iter |\x0a count := 0.\x0a flags := Array new.\x0a size timesRepeat: [ flags add: true].\x0a 1 to: size do:\x0a [:i | (flags at: i) ifTrue:\x0a [prime := i+1.\x0a k := i + prime.\x0a [k <= size] whileTrue:\x0a [flags at: k put: false.\x0a k := k + prime].\x0a count := count + 1]]].\x0a ^ count",
57
+ messageSends: ["to:do:", "new", "timesRepeat:", "add:", "ifTrue:", "at:", "+", "whileTrue:", "<=", "at:put:"],
58
58
  referencedClasses: ["Array"]
59
59
  }),
60
60
  smalltalk.Number);
61
61
 
62
62
  smalltalk.addMethod(
63
- unescape('_tinyBenchmarks'),
63
+ "_jsbenchFib",
64
64
  smalltalk.method({
65
- selector: unescape('tinyBenchmarks'),
66
- category: '*Benchfib',
67
- fn: function (){
68
- var self=this;
69
- var t1=nil;
70
- var t2=nil;
71
- var r=nil;
72
- var n1=nil;
73
- var n2=nil;
74
- (n1=(1));
75
- (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_benchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
76
- (n2=(16));
77
- (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_benchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
78
- return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
79
- return self;},
80
- args: [],
81
- source: unescape('tinyBenchmarks%20%0A%09%22Report%20the%20results%20of%20running%20the%20two%20tiny%20Squeak%20benchmarks.%0A%09ar%209/10/1999%3A%20Adjusted%20to%20run%20at%20least%201%20sec%20to%20get%20more%20stable%20results%22%0A%09%220%20tinyBenchmarks%22%0A%09%22On%20a%20292%20MHz%20G3%20Mac%3A%2022727272%20bytecodes/sec%3B%20984169%20sends/sec%22%0A%09%22On%20a%20400%20MHz%20PII/Win98%3A%20%2018028169%20bytecodes/sec%3B%201081272%20sends/sec%22%0A%09%7C%20t1%20t2%20r%20n1%20n2%20%7C%0A%09n1%20%3A%3D%201.%0A%09%5Bt1%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Bn1%20benchmark%5D.%0A%09t1%20%3C%201000%5D%20whileTrue%3A%5Bn1%20%3A%3D%20n1%20*%202%5D.%20%22Note%3A%20%23benchmark%27s%20runtime%20is%20about%20O%28n%29%22%0A%0A%09n2%20%3A%3D%2016.%0A%09%5Bt2%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Br%20%3A%3D%20n2%20benchFib%5D.%0A%09t2%20%3C%201000%5D%20whileTrue%3A%5Bn2%20%3A%3D%20n2%20+%201%5D.%20%0A%09%22Note%3A%20%23benchFib%27s%20runtime%20is%20about%20O%28k%5En%29%2C%0A%09%09where%20k%20is%20the%20golden%20number%20%3D%20%281%20+%205%20sqrt%29%20/%202%20%3D%201.618....%22%0A%0A%09%5E%20%28%28n1%20*%20500000%20*%201000%29%20/%20t1%29%20printString%2C%20%27%20bytecodes/sec%3B%20%27%2C%0A%09%20%20%28%28r%20*%201000%29%20/%20t2%29%20printString%2C%20%27%20sends/sec%27'),
82
- messageSends: ["whileTrue:", "millisecondsToRun:", "benchmark", unescape("%3C"), unescape("*"), "benchFib", unescape("+"), unescape("%2C"), "printString", unescape("/")],
83
- referencedClasses: ["Date"]
84
- }),
85
- smalltalk.Number);
86
-
87
- smalltalk.addMethod(
88
- unescape('_jsbenchFib'),
89
- smalltalk.method({
90
- selector: unescape('jsbenchFib'),
65
+ selector: "jsbenchFib",
91
66
  category: '*Benchfib',
92
67
  fn: function (){
93
68
  var self=this;
@@ -97,16 +72,16 @@ return 1;
97
72
  return (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;};
98
73
  return self;},
99
74
  args: [],
100
- source: unescape('jsbenchFib%0A%20%0A%09%3Cif%20%28this%20%3C%202%29%20%7B%0Areturn%201%3B%0A%7D%20else%20%7B%0Areturn%20%28this-1%29._jsbenchFib%28%29%20+%20%28this-2%29._jsbenchFib%28%29%20+%201%3B%7D%3E'),
75
+ source: "jsbenchFib\x0a \x0a\x09<if (this < 2) {\x0areturn 1;\x0a} else {\x0areturn (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;}>",
101
76
  messageSends: [],
102
77
  referencedClasses: []
103
78
  }),
104
79
  smalltalk.Number);
105
80
 
106
81
  smalltalk.addMethod(
107
- unescape('_jsbenchmark'),
82
+ "_jsbenchmark",
108
83
  smalltalk.method({
109
- selector: unescape('jsbenchmark'),
84
+ selector: "jsbenchmark",
110
85
  category: '*Benchfib',
111
86
  fn: function (){
112
87
  var self=this;
@@ -134,16 +109,16 @@ for (var z=0;z<this;z++) {
134
109
  return count;
135
110
  return self;},
136
111
  args: [],
137
- source: unescape('jsbenchmark%0A%0A%3C%0Avar%20size%20%3D%208190%3B%0Avar%20count%3B%0Afor%20%28var%20z%3D0%3Bz%3Cthis%3Bz++%29%20%7B%0A%20%20count%20%3D%200%3B%0A%20%20var%20flags%20%3D%20new%20Array%28%29%3B%0A%20%20for%20%28var%20p%3D0%3B%20p%3Csize%3B%20p++%29%20%7B%0A%20%20%20%20flags%5Bp%5D%20%3D%20true%3B%0A%20%20%7D%0A%20%20for%20%28var%20i%3D1%3Bi%3C%3Dsize%3Bi++%29%20%7B%0A%20%20%20%20if%20%28flags%5Bi-1%5D%29%20%7B%0A%20%20%20%20%20%20var%20prime%20%3D%20i+1%3B%0A%20%20%20%20%20%20var%20k%20%3D%20i%20+%20prime%3B%0A%20%20%20%20%20%20while%20%28k%20%3C%3D%20size%29%20%7B%0A%20%20%20%20%20%20%20%20flags%5Bk-1%5D%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20k%20%3D%20k%20+%20prime%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20count%20%3D%20count%20+%201%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0Areturn%20count%3E'),
112
+ source: "jsbenchmark\x0a\x0a<\x0avar size = 8190;\x0avar count;\x0afor (var z=0;z<this;z++) {\x0a count = 0;\x0a var flags = new Array();\x0a for (var p=0; p<size; p++) {\x0a flags[p] = true;\x0a }\x0a for (var i=1;i<=size;i++) {\x0a if (flags[i-1]) {\x0a var prime = i+1;\x0a var k = i + prime;\x0a while (k <= size) {\x0a flags[k-1] = false;\x0a k = k + prime;\x0a }\x0a count = count + 1;\x0a }\x0a }\x0a}\x0areturn count>",
138
113
  messageSends: [],
139
114
  referencedClasses: []
140
115
  }),
141
116
  smalltalk.Number);
142
117
 
143
118
  smalltalk.addMethod(
144
- unescape('_jstinyBenchmarks'),
119
+ "_jstinyBenchmarks",
145
120
  smalltalk.method({
146
- selector: unescape('jstinyBenchmarks'),
121
+ selector: "jstinyBenchmarks",
147
122
  category: '*Benchfib',
148
123
  fn: function (){
149
124
  var self=this;
@@ -156,11 +131,36 @@ var n2=nil;
156
131
  (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_jsbenchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
157
132
  (n2=(28));
158
133
  (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_jsbenchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
159
- return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
134
+ return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
135
+ return self;},
136
+ args: [],
137
+ source: "jstinyBenchmarks\x0a\x09\x220 jstinyBenchmarks\x22\x0a\x0a\x09| t1 t2 r n1 n2 |\x0a\x09n1 := 1.\x0a\x09[t1 := Date millisecondsToRun: [n1 jsbenchmark].\x0a\x09t1 < 1000] whileTrue:[n1 := n1 * 2]. \x22Note: #benchmark's runtime is about O(n)\x22\x0a\x0a\x09n2 := 28.\x0a\x09[t2 := Date millisecondsToRun: [r := n2 jsbenchFib].\x0a\x09t2 < 1000] whileTrue:[n2 := n2 + 1]. \x0a\x09\x22Note: #jsbenchFib's runtime is about O(k^n),\x0a\x09\x09where k is the golden number = (1 + 5 sqrt) / 2 = 1.618....\x22\x0a\x0a\x09^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',\x0a\x09 ((r * 1000) / t2) printString, ' sends/sec'",
138
+ messageSends: ["whileTrue:", "millisecondsToRun:", "jsbenchmark", "<", "*", "jsbenchFib", "+", ",", "printString", "/"],
139
+ referencedClasses: ["Date"]
140
+ }),
141
+ smalltalk.Number);
142
+
143
+ smalltalk.addMethod(
144
+ "_tinyBenchmarks",
145
+ smalltalk.method({
146
+ selector: "tinyBenchmarks",
147
+ category: '*Benchfib',
148
+ fn: function (){
149
+ var self=this;
150
+ var t1=nil;
151
+ var t2=nil;
152
+ var r=nil;
153
+ var n1=nil;
154
+ var n2=nil;
155
+ (n1=(1));
156
+ (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_benchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
157
+ (n2=(16));
158
+ (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_benchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
159
+ return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
160
160
  return self;},
161
161
  args: [],
162
- source: unescape('jstinyBenchmarks%0A%09%220%20jstinyBenchmarks%22%0A%0A%09%7C%20t1%20t2%20r%20n1%20n2%20%7C%0A%09n1%20%3A%3D%201.%0A%09%5Bt1%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Bn1%20jsbenchmark%5D.%0A%09t1%20%3C%201000%5D%20whileTrue%3A%5Bn1%20%3A%3D%20n1%20*%202%5D.%20%22Note%3A%20%23benchmark%27s%20runtime%20is%20about%20O%28n%29%22%0A%0A%09n2%20%3A%3D%2028.%0A%09%5Bt2%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Br%20%3A%3D%20n2%20jsbenchFib%5D.%0A%09t2%20%3C%201000%5D%20whileTrue%3A%5Bn2%20%3A%3D%20n2%20+%201%5D.%20%0A%09%22Note%3A%20%23jsbenchFib%27s%20runtime%20is%20about%20O%28k%5En%29%2C%0A%09%09where%20k%20is%20the%20golden%20number%20%3D%20%281%20+%205%20sqrt%29%20/%202%20%3D%201.618....%22%0A%0A%09%5E%20%28%28n1%20*%20500000%20*%201000%29%20/%20t1%29%20printString%2C%20%27%20bytecodes/sec%3B%20%27%2C%0A%09%20%20%28%28r%20*%201000%29%20/%20t2%29%20printString%2C%20%27%20sends/sec%27'),
163
- messageSends: ["whileTrue:", "millisecondsToRun:", "jsbenchmark", unescape("%3C"), unescape("*"), "jsbenchFib", unescape("+"), unescape("%2C"), "printString", unescape("/")],
162
+ source: "tinyBenchmarks \x0a\x09\x22Report the results of running the two tiny Squeak benchmarks.\x0a\x09ar 9/10/1999: Adjusted to run at least 1 sec to get more stable results\x22\x0a\x09\x220 tinyBenchmarks\x22\x0a\x09\x22On a 292 MHz G3 Mac: 22727272 bytecodes/sec; 984169 sends/sec\x22\x0a\x09\x22On a 400 MHz PII/Win98: 18028169 bytecodes/sec; 1081272 sends/sec\x22\x0a\x09| t1 t2 r n1 n2 |\x0a\x09n1 := 1.\x0a\x09[t1 := Date millisecondsToRun: [n1 benchmark].\x0a\x09t1 < 1000] whileTrue:[n1 := n1 * 2]. \x22Note: #benchmark's runtime is about O(n)\x22\x0a\x0a\x09n2 := 16.\x0a\x09[t2 := Date millisecondsToRun: [r := n2 benchFib].\x0a\x09t2 < 1000] whileTrue:[n2 := n2 + 1]. \x0a\x09\x22Note: #benchFib's runtime is about O(k^n),\x0a\x09\x09where k is the golden number = (1 + 5 sqrt) / 2 = 1.618....\x22\x0a\x0a\x09^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',\x0a\x09 ((r * 1000) / t2) printString, ' sends/sec'",
163
+ messageSends: ["whileTrue:", "millisecondsToRun:", "benchmark", "<", "*", "benchFib", "+", ",", "printString", "/"],
164
164
  referencedClasses: ["Date"]
165
165
  }),
166
166
  smalltalk.Number);