File tree Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -782,18 +782,22 @@ class QAST::CompilerJS does DWIMYNameMangling does SerializeOnce {
782
782
# Instead of implementing forceouterctx we use this hack to support settings.
783
783
method setup_setting ($ node ) {
784
784
if nqp ::eqaddr($ node , $ * SETTING_TARGET ) {
785
- my @ imported ;
786
- for $ node . symtable -> $ symbol {
787
- @ imported . push (" { self . mangle_name($ symbol . key )} = setting[{ quote_string($ symbol . key )} ]" );
788
- }
789
- " var setting = nqp.setup_setting({ quote_string($ * SETTING_NAME )} );\n "
790
- ~ self . declare_js_vars(@ imported );
785
+ self . import_stuff_from_setting($ node );
791
786
}
792
787
else {
793
788
' ' ;
794
789
}
795
790
}
796
791
792
+ method import_stuff_from_setting ($ node ) {
793
+ my @ imported ;
794
+ for $ node . symtable -> $ symbol {
795
+ @ imported . push (" { self . mangle_name($ symbol . key )} = setting[{ quote_string($ symbol . key )} ]" );
796
+ }
797
+ " var setting = nqp.setup_setting({ quote_string($ * SETTING_NAME )} );\n "
798
+ ~ self . declare_js_vars(@ imported );
799
+ }
800
+
797
801
798
802
has % ! serialized_code_ref_info ;
799
803
@@ -867,8 +871,8 @@ class QAST::CompilerJS does DWIMYNameMangling does SerializeOnce {
867
871
my $ expected_outer := % * BLOCKS_INFO {$ _ . key }. outer;
868
872
869
873
if $ expected_outer . cuid ne $ * BLOCK . cuid {
870
- @ capture_inners . push (" /*static block*/\n " );
871
874
@ capture_inners . push (" (function() \{\n " );
875
+ @ capture_inners . push (self . import_stuff_from_setting($ * SETTING_TARGET ));
872
876
@ capture_inners . push (" var { $ expected_outer . ctx} = null;\n " );
873
877
}
874
878
You can’t perform that action at this time.
0 commit comments