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
|
const decl = node.is_arrow
|
||||||
? `(${args}) => `
|
? `(${args}) => `
|
||||||
: `function ${node.name}(${args})`
|
: `function(${args})`
|
||||||
|
|
||||||
const call = (node.is_async ? 'async ' : '') + decl + (
|
const call = (node.is_async ? 'async ' : '') + decl + (
|
||||||
// TODO gensym __obj, __fn
|
// 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
|
TODO use before assignment
|
||||||
test('no use before assignment', () => {
|
test('no use before assignment', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user