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.

destructure objects

+14 -29
+1 -1
meson.build
··· 75 75 build_date = run_command('date', '+%Y-%m-%d', check: true).stdout().strip() 76 76 77 77 version_conf = configuration_data() 78 - version_conf.set('ANT_VERSION', '0.2.0.0') 78 + version_conf.set('ANT_VERSION', '0.2.0.1') 79 79 version_conf.set('ANT_GIT_HASH', git_hash) 80 80 version_conf.set('ANT_BUILD_DATE', build_date) 81 81
+13 -28
src/ant.c
··· 4868 4868 jsoff_t pattern_len = fnpos - pattern_start; 4869 4869 4870 4870 jsval_t arg_val = (argi < argc) ? args[argi++] : js_mkundef(); 4871 + 4872 + fnpos = skiptonext(fn, fnlen, fnpos, NULL); 4873 + if (fnpos < fnlen && fn[fnpos] == '=') { 4874 + jsoff_t default_start = 0, default_len = 0; 4875 + fnpos = extract_default_param_value(fn, fnlen, fnpos, &default_start, &default_len); 4876 + if (vtype(arg_val) == T_UNDEF && default_len > 0) { 4877 + arg_val = js_eval_str(js, &fn[default_start], default_len); 4878 + } 4879 + } 4880 + 4871 4881 jsval_t r = bind_destruct_pattern(js, &fn[pattern_start], pattern_len, arg_val, function_scope); 4872 4882 if (is_err(r)) { 4873 4883 js->scope = saved_scope; ··· 4875 4885 return r; 4876 4886 } 4877 4887 4878 - fnpos = skiptonext(fn, fnlen, fnpos, NULL); 4879 4888 if (fnpos < fnlen && fn[fnpos] == ',') fnpos++; 4880 4889 continue; 4881 4890 } ··· 10155 10164 10156 10165 EXPECT(TOK_LPAREN, js->flags = save_flags); 10157 10166 jsoff_t method_params_start = js->pos - 1; 10158 - for (bool comma = false; next(js) != TOK_EOF; comma = true) { 10159 - if (!comma && next(js) == TOK_RPAREN) break; 10160 - EXPECT(TOK_IDENTIFIER, js->flags = save_flags); 10161 - js->consumed = 1; 10162 - 10163 - if (next(js) == TOK_ASSIGN) { 10164 - js->consumed = 1; 10165 - int depth = 0; 10166 - bool done = false; 10167 - while (!done && next(js) != TOK_EOF) { 10168 - uint8_t tok = next(js); 10169 - if (depth == 0 && (tok == TOK_RPAREN || tok == TOK_COMMA)) { 10170 - done = true; 10171 - } else if (tok == TOK_LPAREN || tok == TOK_LBRACKET || tok == TOK_LBRACE) { 10172 - depth++; 10173 - js->consumed = 1; 10174 - } else if (tok == TOK_RPAREN || tok == TOK_RBRACKET || tok == TOK_RBRACE) { 10175 - depth--; 10176 - js->consumed = 1; 10177 - } else { 10178 - js->consumed = 1; 10179 - } 10180 - } 10181 - } 10182 - 10183 - if (next(js) == TOK_RPAREN) break; 10184 - EXPECT(TOK_COMMA, js->flags = save_flags); 10167 + if (!parse_func_params(js, &save_flags, NULL)) { 10168 + js->flags = save_flags; 10169 + return js_mkerr_typed(js, JS_ERR_SYNTAX, "invalid method parameters"); 10185 10170 } 10186 10171 EXPECT(TOK_RPAREN, js->flags = save_flags); 10187 10172 EXPECT(TOK_LBRACE, js->flags = save_flags);