Skip to content

Commit 2247bb9

Browse files
committed
Merge branch 'somebee-master'
2 parents c6f5a04 + 0bcc14b commit 2247bb9

File tree

6 files changed

+84
-100
lines changed

6 files changed

+84
-100
lines changed

frameworks/keyed/imba/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "js-framework-benchmark-imba",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "Imba demo",
55
"main": "index.js",
66
"js-framework-benchmark": {

frameworks/keyed/imba/src/main.imba

Lines changed: 36 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,24 @@ var A = ["pretty", "large", "big", "small", "tall", "short", "long", "handsome",
22
var C = ["red", "yellow", "blue", "green", "pink", "brown", "purple", "brown", "white", "black", "orange"]
33
var N = ["table", "chair", "house", "bbq", "desk", "car", "pony", "cookie", "sandwich", "burger", "pizza", "mouse", "keyboard"]
44

5-
tag RemoveIcon < span
6-
def build
7-
set('aria-hidden', true)
8-
9-
def render
10-
<self.glyphicon.glyphicon-remove>
5+
extend tag element
6+
attr aria-hidden
117

128
tag Row < tr
13-
prop select
14-
prop remove
15-
prop item
16-
prop selected
17-
18-
def onSelect
19-
@select(@item)
20-
21-
def onRemove
22-
@remove(@item)
23-
24-
def render
25-
<self .danger=@selected>
26-
<td.col-md-1> @item:id
27-
<td.col-md-4><a :tap.onSelect> @item:label
28-
<td.col-md-1><a :tap.onRemove><RemoveIcon>
29-
<td.col-md-6>
9+
def select
10+
trigger('select',@data)
3011

31-
tag Button
32-
prop id
33-
prop cb
34-
prop title
12+
def remove
13+
trigger('remove',@data)
3514

3615
def render
16+
return if @data === @prev
17+
@prev = @data
3718
<self>
38-
<div.col-sm-6.smallpad>
39-
<button.btn.btn-primary.btn-block type='button' id=@id :tap=@cb> @title
19+
<td.col-md-1 text=@data:id>
20+
<td.col-md-4> <a :tap.select text=@data:label>
21+
<td.col-md-1> <a :tap.remove> <span.glyphicon.glyphicon-remove aria-hidden=true>
22+
<td.col-md-6>
4023

4124
var items = []
4225
var selected = 0
@@ -61,14 +44,20 @@ tag Main
6144
var item = items[i]
6245
items[i] = { id: item:id, label: item:label + ' !!!' }
6346
i = i + 10
64-
Imba.commit()
47+
Imba.commit
6548

6649
def select item
6750
selected = item:id
6851

6952
def remove item
7053
items.splice(items.indexOf(item), 1)
71-
Imba.commit()
54+
Imba.commit
55+
56+
def onselect e
57+
select(e.data)
58+
59+
def onremove e
60+
remove(e.data)
7261

7362
def clear
7463
items = []
@@ -79,7 +68,6 @@ tag Main
7968
var temp = items[1]
8069
items[1] = items[998]
8170
items[998] = temp
82-
8371
Imba.commit
8472

8573

@@ -97,7 +85,7 @@ tag Main
9785
newItems
9886

9987
def random max
100-
Math.round(Math.random() * 1000) % max
88+
Math.round(Math.random * 1000) % max
10189

10290
def render
10391
<self>
@@ -108,16 +96,21 @@ tag Main
10896
<h1> 'Imba keyed'
10997
<div.col-md-6>
11098
<div.row>
111-
<Button id='run' title='Create 1,000 rows' cb=(do run)>
112-
<Button id="runlots" title="Create 10,000 rows" cb=(do runLots)>
113-
<Button id="add" title="Append 1,000 rows" cb=(do add)>
114-
<Button id="update" title="Update every 10th row" cb=(do update)>
115-
<Button id="clear" title="Clear" cb=(do clear)>
116-
<Button id="swaprows" title="Swap Rows" cb=(do swapRows)>
117-
99+
<div.col-sm-6.smallpad>
100+
<button.btn.btn-primary.btn-block type='button' id='run' :tap.run> 'Create 1,000 rows'
101+
<div.col-sm-6.smallpad>
102+
<button.btn.btn-primary.btn-block type='button' id="runlots" :tap.runLots> "Create 10,000 rows"
103+
<div.col-sm-6.smallpad>
104+
<button.btn.btn-primary.btn-block type='button' id="add" :tap.add> "Append 1,000 rows"
105+
<div.col-sm-6.smallpad>
106+
<button.btn.btn-primary.btn-block type='button' id="update" :tap.update> "Update every 10th row"
107+
<div.col-sm-6.smallpad>
108+
<button.btn.btn-primary.btn-block type='button' id="clear" :tap.clear> "Clear"
109+
<div.col-sm-6.smallpad>
110+
<button.btn.btn-primary.btn-block type='button' id="swaprows" :tap.swapRows> "Swap Rows"
118111
<table.table.table-hover.table-striped.test-data>
119112
<tbody> for item in items
120-
<Row@{item:id} item=item selected=(selected === item:id) select=(do select(item)) remove=(do remove(item))>
121-
<RemoveIcon.preloadicon>
113+
<Row@{item:id} data=item .danger=(selected === item:id)>
114+
<span.glyphicon.glyphicon-remove.preloadicon aria-hidden=true>
122115

123-
Imba.mount <Main[{selected: 0, nextId: 0}]>
116+
Imba.mount <Main>

frameworks/keyed/imba/webpack.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ const webpack = require('webpack')
33
const TerserPlugin = require('terser-webpack-plugin')
44

55
module.exports = {
6-
// mode: 'production',
7-
mode: 'development',
6+
mode: 'production',
87
entry: {
98
main: path.join(__dirname, 'src', 'main.imba')
109
},

frameworks/non-keyed/imba/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "js-framework-benchmark-imba",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "Imba demo",
55
"main": "index.js",
66
"js-framework-benchmark": {
@@ -29,4 +29,4 @@
2929
"dependencies": {
3030
"imba": "^1.4.1"
3131
}
32-
}
32+
}

frameworks/non-keyed/imba/src/main.imba

Lines changed: 43 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,50 +2,33 @@ var A = ["pretty", "large", "big", "small", "tall", "short", "long", "handsome",
22
var C = ["red", "yellow", "blue", "green", "pink", "brown", "purple", "brown", "white", "black", "orange"]
33
var N = ["table", "chair", "house", "bbq", "desk", "car", "pony", "cookie", "sandwich", "burger", "pizza", "mouse", "keyboard"]
44

5-
tag RemoveIcon < span
6-
def build
7-
set('aria-hidden', true)
8-
9-
def render
10-
<self.glyphicon.glyphicon-remove>
5+
extend tag element
6+
attr aria-hidden
117

128
tag Row < tr
13-
prop select
14-
prop remove
15-
prop item
16-
prop selected
17-
18-
def onSelect
19-
@select(@item)
20-
21-
def onRemove
22-
@remove(@item)
9+
def select
10+
trigger('select',@data)
2311

24-
def render
25-
<self .danger=@selected>
26-
<td.col-md-1> @item:id
27-
<td.col-md-4><a :tap.onSelect> @item:label
28-
<td.col-md-1><a :tap.onRemove><RemoveIcon>
29-
<td.col-md-6>
30-
31-
tag Button
32-
prop id
33-
prop cb
34-
prop title
12+
def remove
13+
trigger('remove',@data)
3514

3615
def render
16+
return if @data === @prev
17+
@prev = @data
3718
<self>
38-
<div.col-sm-6.smallpad>
39-
<button.btn.btn-primary.btn-block type='button' id=@id :tap=@cb> @title
19+
<td.col-md-1 text=@data:id>
20+
<td.col-md-4> <a :tap.select text=@data:label>
21+
<td.col-md-1> <a :tap.remove> <span.glyphicon.glyphicon-remove aria-hidden=true>
22+
<td.col-md-6>
4023

4124
var items = []
4225
var selected = 0
4326
var nextId = 1
4427

4528
tag Main
4629
def run
47-
items = buildData(1000)
48-
selected = 0
30+
items = buildData(1000)
31+
selected = 0
4932
Imba.commit
5033

5134
def runLots
@@ -55,34 +38,39 @@ tag Main
5538
def add
5639
items = items.concat(buildData(1000))
5740

58-
def update
41+
def update
5942
var i = 0
6043
while i < items:length
6144
var item = items[i]
6245
items[i] = { id: item:id, label: item:label + ' !!!' }
6346
i = i + 10
64-
Imba.commit()
47+
Imba.commit
6548

6649
def select item
6750
selected = item:id
6851

6952
def remove item
7053
items.splice(items.indexOf(item), 1)
71-
Imba.commit()
54+
Imba.commit
55+
56+
def onselect e
57+
select(e.data)
58+
59+
def onremove e
60+
remove(e.data)
7261

7362
def clear
7463
items = []
7564
selected = 0
7665

77-
def swapRows
66+
def swapRows
7867
if (items:length > 998)
7968
var temp = items[1]
8069
items[1] = items[998]
8170
items[998] = temp
82-
8371
Imba.commit
8472

85-
73+
8674
def buildData(count)
8775
var newItems = Array.new(count)
8876
var i = 0
@@ -95,9 +83,9 @@ tag Main
9583
nextId = nextId + 1
9684

9785
newItems
98-
99-
def random max
100-
Math.round(Math.random() * 1000) % max
86+
87+
def random max
88+
Math.round(Math.random * 1000) % max
10189

10290
def render
10391
<self>
@@ -108,16 +96,21 @@ tag Main
10896
<h1> 'Imba non-keyed'
10997
<div.col-md-6>
11098
<div.row>
111-
<Button id='run' title='Create 1,000 rows' cb=(do run)>
112-
<Button id="runlots" title="Create 10,000 rows" cb=(do runLots)>
113-
<Button id="add" title="Append 1,000 rows" cb=(do add)>
114-
<Button id="update" title="Update every 10th row" cb=(do update)>
115-
<Button id="clear" title="Clear" cb=(do clear)>
116-
<Button id="swaprows" title="Swap Rows" cb=(do swapRows)>
117-
99+
<div.col-sm-6.smallpad>
100+
<button.btn.btn-primary.btn-block type='button' id='run' :tap.run> 'Create 1,000 rows'
101+
<div.col-sm-6.smallpad>
102+
<button.btn.btn-primary.btn-block type='button' id="runlots" :tap.runLots> "Create 10,000 rows"
103+
<div.col-sm-6.smallpad>
104+
<button.btn.btn-primary.btn-block type='button' id="add" :tap.add> "Append 1,000 rows"
105+
<div.col-sm-6.smallpad>
106+
<button.btn.btn-primary.btn-block type='button' id="update" :tap.update> "Update every 10th row"
107+
<div.col-sm-6.smallpad>
108+
<button.btn.btn-primary.btn-block type='button' id="clear" :tap.clear> "Clear"
109+
<div.col-sm-6.smallpad>
110+
<button.btn.btn-primary.btn-block type='button' id="swaprows" :tap.swapRows> "Swap Rows"
118111
<table.table.table-hover.table-striped.test-data>
119112
<tbody> for item in items
120-
<Row item=item selected=(selected === item:id) select=(do select(item)) remove=(do remove(item))>
121-
<RemoveIcon.preloadicon>
113+
<Row data=item .danger=(selected === item:id)>
114+
<span.glyphicon.glyphicon-remove.preloadicon aria-hidden=true>
122115

123-
Imba.mount <Main[{selected: 0, nextId: 0}]>
116+
Imba.mount <Main>

frameworks/non-keyed/imba/webpack.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ const webpack = require('webpack')
33
const TerserPlugin = require('terser-webpack-plugin')
44

55
module.exports = {
6-
// mode: 'production',
7-
mode: 'development',
6+
mode: 'production',
87
entry: {
98
main: path.join(__dirname, 'src', 'main.imba')
109
},

0 commit comments

Comments
 (0)