Skip to content

Commit 737e733

Browse files
committed
Fixed for loops with variable declarator list
1 parent 9dfc918 commit 737e733

3 files changed

Lines changed: 12 additions & 6 deletions

File tree

demo/gpu-demo.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ console.log("startup code", [set_a, set_b]);
6565
function benchmarkCode(mode) {
6666
var runFunction = gpu.createKernel(function(a, b) {
6767
var res = 0.0;
68-
var i = 0.0;
69-
for(i = 0.0; i < 500000; ++i) {
68+
69+
for(var i = 0.0; i < 500000; i++) {
7070
res += Math.sqrt( a[this.thread.x] * b[this.thread.x] );
7171
}
7272

@@ -86,13 +86,13 @@ function runBenchmark() {
8686
$(".cpu_result_gpu").removeClass("alert-success").addClass("alert-warning").html("GPU: Running ... ");
8787
var gpuTime = bench(function(){
8888
benchmarkCode('gpu');
89-
}, 10, [], this);
89+
}, 1, [], this);
9090
$(".cpu_result_gpu").removeClass("alert-warning").addClass("alert-success").html("GPU: "+gpuTime+" ms");
9191

9292
$(".cpu_result_cpu").removeClass("alert-success").addClass("alert-warning").html("CPU: Running ... ");
9393
cpuTime = bench(function(){
9494
benchmarkCode('cpu');
95-
}, 10, [], this);
95+
}, 1, [], this);
9696
$(".cpu_result_cpu").removeClass("alert-warning").addClass("alert-success").html("CPU: "+cpuTime+" ms");
9797

9898
$(".cpu_result_ovl").removeClass("alert-warning").addClass("alert-success").html("Percentage Gain: "+Math.round(cpuTime/gpuTime*100)+"%");

src/backend/glsl.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,13 @@
377377
if(ast === null) {
378378
throw ast_errorOutput("NULL ast", ast, stateParam);
379379
} else {
380+
if (Array.isArray(ast)) {
381+
for (var i=0; i<ast.length; i++) {
382+
ast_generic(ast[i], retArr, stateParam);
383+
}
384+
return retArr;
385+
}
386+
380387
switch(ast.type) {
381388
case "FunctionExpression":
382389
return ast_FunctionExpression(ast, retArr, stateParam);

test/src/basic_for_loop.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ function basic_for_loop_test( assert, mode ) {
22
var gpu = new GPU();
33
var f = gpu.createKernel(function(a, b) {
44
var x = 0.0;
5-
var i = 0.0;
6-
for(i = 0.0; i<10.0; ++i) {
5+
for(var i = 0.0; i<10.0; i++) {
76
x = x + 1.0;
87
}
98

0 commit comments

Comments
 (0)