Skip to content

Commit 072eee0

Browse files
committed
fix(glsl): method call is working
1 parent 4d88f8c commit 072eee0

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/glsl/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,9 @@ function arrFun(node) {
246246

247247
function calExp(node) {
248248
// console.log('calExp()', node.name, node);
249-
const { arguments: args, callee: { name, object } } = node;
249+
const { arguments: args, callee } = node;
250+
const { name, object } = callee;
251+
250252
if (object && object.name === 'console') {
251253
return '/* console statement */';
252254
}
@@ -256,7 +258,7 @@ function calExp(node) {
256258
if (name === 'calc') {
257259
return `(${handleNode(args[0].body)})`;
258260
}
259-
return `${name}(${args.map(handleNode).join(', ')})`;
261+
return `${handleNode(callee)}(${args.map(handleNode).join(', ')})`;
260262
}
261263

262264
function varDec({ declarations, kind }) {

test/glsl/index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,4 +431,20 @@ in vec2 baz = vec2(1.0);
431431

432432
assert.equal(glsl.trim(), expected.trim());
433433
});
434+
435+
it('support method calls', () => {
436+
const { glsl } = buildGLSL(() => {
437+
let foo = vec2([vec2(1.0, 2.0), vec2(3.0, 4.0)]);
438+
let lon = int(mat.length);
439+
let len = int(mat.length());
440+
});
441+
442+
const expected = `
443+
vec2[2] foo = vec2[2](vec2(1.0, 2.0), vec2(3.0, 4.0));
444+
int lon = int(mat.length);
445+
int len = int(mat.length());
446+
`;
447+
448+
assert.equal(glsl.trim(), expected.trim());
449+
});
434450
});

0 commit comments

Comments
 (0)