mirror of
https://github.com/leporello-js/leporello-js
synced 2026-01-13 13:04:30 -08:00
fix bug with function decls
This commit is contained in:
@@ -70,7 +70,7 @@ const codegen_function_expr = (node, node_cxt) => {
|
||||
|
||||
const decl = node.is_arrow
|
||||
? `(${args}) => `
|
||||
: `function ${node.name}(${args})`
|
||||
: `function(${args})`
|
||||
|
||||
const call = (node.is_async ? 'async ' : '') + decl + (
|
||||
// TODO gensym __obj, __fn
|
||||
|
||||
20
test/test.js
20
test/test.js
@@ -1227,6 +1227,26 @@ export const tests = [
|
||||
)
|
||||
}),
|
||||
|
||||
test('function decl', () => {
|
||||
const code = `
|
||||
function fib(n) {
|
||||
if(n == 0 || n == 1) {
|
||||
return n
|
||||
} else {
|
||||
return fib(n - 1) + fib(n - 2)
|
||||
}
|
||||
}
|
||||
|
||||
fib(6)
|
||||
`
|
||||
const i = test_initial_state(code)
|
||||
const s = COMMANDS.calltree.arrow_right(COMMANDS.calltree.arrow_down(
|
||||
COMMANDS.calltree.arrow_right(COMMANDS.calltree.arrow_down(i))
|
||||
))
|
||||
const s2 = COMMANDS.calltree.arrow_down(s)
|
||||
assert_equal(s2.active_calltree_node.value, 5)
|
||||
}),
|
||||
|
||||
/*
|
||||
TODO use before assignment
|
||||
test('no use before assignment', () => {
|
||||
|
||||
Reference in New Issue
Block a user