MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

prevent evals from returning undefined

+4 -4
+4 -4
src/silver/compiler.c
··· 1165 1165 1166 1166 static void annex_b_collect_funcs(sv_ast_t *node, sv_ast_list_t *out) { 1167 1167 if (!node) return; 1168 - if (node->type == N_FUNC && node->str && !(node->flags & FN_ARROW)) { 1168 + if (node->type == N_FUNC && node->str && !(node->flags & (FN_ARROW | FN_PAREN))) { 1169 1169 sv_ast_list_push(out, node); 1170 1170 return; 1171 1171 } ··· 1218 1218 emit_op(c, OP_SET_LOCAL_UNDEF); 1219 1219 emit_u16(c, (uint16_t)slot); 1220 1220 } 1221 - } else if (decl_node->type == N_FUNC && decl_node->str && !(decl_node->flags & FN_ARROW)) { 1221 + } else if (decl_node->type == N_FUNC && decl_node->str && !(decl_node->flags & (FN_ARROW | FN_PAREN))) { 1222 1222 ensure_local_at_depth(c, decl_node->str, decl_node->len, false, c->scope_depth); 1223 1223 } 1224 1224 if (!c->is_strict && (decl_node->type == N_IF || decl_node->type == N_LABEL)) { ··· 1254 1254 if (node && node->type == N_EXPORT && node->left) 1255 1255 node = node->left; 1256 1256 if (!node) continue; 1257 - if (node->type == N_FUNC && node->str && !(node->flags & FN_ARROW)) { 1257 + if (node->type == N_FUNC && node->str && !(node->flags & (FN_ARROW | FN_PAREN))) { 1258 1258 hoist_one_func(c, node); 1259 1259 } 1260 1260 if (!c->is_strict && (node->type == N_IF || node->type == N_LABEL)) { ··· 3112 3112 break; 3113 3113 3114 3114 case N_FUNC: 3115 - if (node->str && !(node->flags & FN_ARROW)) break; 3115 + if (node->str && !(node->flags & (FN_ARROW | FN_PAREN))) break; 3116 3116 compile_expr(c, node); 3117 3117 emit_set_completion_from_stack(c); 3118 3118 break;