@@ -1078,7 +1078,7 @@ STATIC void compile_funcdef_param(compiler_t *comp, mp_parse_node_t pn) {
10781078 if (comp -> have_star ) {
10791079 comp -> num_dict_params += 1 ;
10801080#if MICROPY_EMIT_CPYTHON
1081- EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pn_id ), false );
1081+ EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pn_id ));
10821082 compile_node (comp , pn_equal );
10831083#else
10841084 // in Micro Python we put the default dict parameters into a dictionary using the bytecode
@@ -1096,7 +1096,7 @@ STATIC void compile_funcdef_param(compiler_t *comp, mp_parse_node_t pn) {
10961096
10971097 // compile value then key, then store it to the dict
10981098 compile_node (comp , pn_equal );
1099- EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pn_id ), false );
1099+ EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pn_id ));
11001100 EMIT (store_map );
11011101#endif
11021102 } else {
@@ -1178,7 +1178,7 @@ STATIC qstr compile_classdef_helper(compiler_t *comp, mp_parse_node_struct_t *pn
11781178 close_over_variables_etc (comp , cscope , 0 , 0 );
11791179
11801180 // get its name
1181- EMIT_ARG (load_const_str , cscope -> simple_name , false );
1181+ EMIT_ARG (load_const_str , cscope -> simple_name );
11821182
11831183 // nodes[1] has parent classes, if any
11841184 // empty parenthesis (eg class C():) gets here as an empty PN_classdef_2 and needs special handling
@@ -1553,7 +1553,7 @@ STATIC void compile_import_from(compiler_t *comp, mp_parse_node_struct_t *pns) {
15531553#if MICROPY_EMIT_CPYTHON
15541554 EMIT_ARG (load_const_verbatim_strn , "('*',)" , 6 );
15551555#else
1556- EMIT_ARG (load_const_str , MP_QSTR__star_ , false );
1556+ EMIT_ARG (load_const_str , MP_QSTR__star_ );
15571557 EMIT_ARG (build_tuple , 1 );
15581558#endif
15591559
@@ -1597,7 +1597,7 @@ STATIC void compile_import_from(compiler_t *comp, mp_parse_node_struct_t *pns) {
15971597 assert (MP_PARSE_NODE_IS_STRUCT_KIND (pn_nodes [i ], PN_import_as_name ));
15981598 mp_parse_node_struct_t * pns3 = (mp_parse_node_struct_t * )pn_nodes [i ];
15991599 qstr id2 = MP_PARSE_NODE_LEAF_ARG (pns3 -> nodes [0 ]); // should be id
1600- EMIT_ARG (load_const_str , id2 , false );
1600+ EMIT_ARG (load_const_str , id2 );
16011601 }
16021602 EMIT_ARG (build_tuple , n );
16031603#endif
@@ -2531,7 +2531,7 @@ STATIC void compile_trailer_paren_helper(compiler_t *comp, mp_parse_node_t pn_ar
25312531 compile_syntax_error (comp , (mp_parse_node_t )pns_arg , "LHS of keyword arg must be an id" );
25322532 return ;
25332533 }
2534- EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pns_arg -> nodes [0 ]), false );
2534+ EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pns_arg -> nodes [0 ]));
25352535 compile_node (comp , pns2 -> nodes [0 ]);
25362536 n_keyword += 1 ;
25372537 } else {
@@ -2979,8 +2979,17 @@ STATIC void compile_node(compiler_t *comp, mp_parse_node_t pn) {
29792979 mp_uint_t arg = MP_PARSE_NODE_LEAF_ARG (pn );
29802980 switch (MP_PARSE_NODE_LEAF_KIND (pn )) {
29812981 case MP_PARSE_NODE_ID : compile_load_id (comp , arg ); break ;
2982- case MP_PARSE_NODE_STRING : EMIT_ARG (load_const_str , arg , false); break ;
2983- case MP_PARSE_NODE_BYTES : EMIT_ARG (load_const_str , arg , true); break ;
2982+ case MP_PARSE_NODE_STRING : EMIT_ARG (load_const_str , arg ); break ;
2983+ case MP_PARSE_NODE_BYTES :
2984+ // only create and load the actual bytes object on the last pass
2985+ if (comp -> pass != MP_PASS_EMIT ) {
2986+ EMIT_ARG (load_const_obj , mp_const_none );
2987+ } else {
2988+ mp_uint_t len ;
2989+ const byte * data = qstr_data (arg , & len );
2990+ EMIT_ARG (load_const_obj , mp_obj_new_bytes (data , len ));
2991+ }
2992+ break ;
29842993 case MP_PARSE_NODE_TOKEN : default :
29852994 if (arg == MP_TOKEN_NEWLINE ) {
29862995 // this can occur when file_input lets through a NEWLINE (eg if file starts with a newline)
@@ -3367,7 +3376,7 @@ STATIC void compile_scope(compiler_t *comp, scope_t *scope, pass_kind_t pass) {
33673376
33683377 compile_load_id (comp , MP_QSTR___name__ );
33693378 compile_store_id (comp , MP_QSTR___module__ );
3370- EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pns -> nodes [0 ]), false ); // 0 is class name
3379+ EMIT_ARG (load_const_str , MP_PARSE_NODE_LEAF_ARG (pns -> nodes [0 ])); // 0 is class name
33713380 compile_store_id (comp , MP_QSTR___qualname__ );
33723381
33733382 check_for_doc_string (comp , pns -> nodes [2 ]);
0 commit comments