@@ -1522,23 +1522,26 @@ class QAST::CompilerJS does DWIMYNameMangling does SerializeOnce {
1522
1522
$ * BLOCK . add_js_lexical($ * BLOCK . add_mangled_var($ node ));
1523
1523
}
1524
1524
}
1525
- elsif $ node . decl eq ' var' || $ node . decl eq ' contvar' {
1525
+ elsif $ node . decl eq ' var' || $ node . decl eq ' contvar' || $ node . decl eq ' static ' {
1526
1526
$ * BLOCK . add_variable($ node );
1527
1527
1528
1528
if ! self . is_dynamic_var($ * BLOCK , $ node ) {
1529
1529
my $ mangled_name := $ * BLOCK . add_mangled_var($ node );
1530
1530
if $ node . decl eq ' contvar' {
1531
1531
$ * BLOCK . add_js_lexical_with_value($ mangled_name , " nqp.op.clone({ self . value_as_js($ node . value )} )" );
1532
1532
}
1533
+ elsif $ node . decl eq ' static' {
1534
+ $ * BLOCK . add_js_lexical_with_value($ mangled_name , self . value_as_js($ node . value ));
1535
+ }
1533
1536
else {
1534
1537
$ * BLOCK . add_js_lexical($ mangled_name );
1535
1538
}
1536
1539
}
1537
1540
}
1538
- elsif $ node . decl eq ' static' {
1539
- $ * BLOCK . add_variable($ node );
1540
- $ * BLOCK . add_static_variable($ node );
1541
- }
1541
+ # elsif $node.decl eq 'static' {
1542
+ # $*BLOCK.add_variable($node);
1543
+ # $*BLOCK.add_static_variable($node);
1544
+ # }
1542
1545
elsif $ node . decl eq ' param' {
1543
1546
$ * BLOCK . add_variable($ node );
1544
1547
if $ node . scope eq ' local' || $ node . scope eq ' lexical' {
@@ -1682,6 +1685,9 @@ class QAST::CompilerJS does DWIMYNameMangling does SerializeOnce {
1682
1685
elsif $ var . decl eq ' contvar' {
1683
1686
self . stored_result(Chunk. new ($ T_OBJ , " ({ $ * CTX } [{ quote_string($ var . name )} ] = nqp.op.clone({ self . value_as_js($ var . value )} ))" , []), : $ want );
1684
1687
}
1688
+ elsif $ var . decl eq ' static' {
1689
+ self . stored_result(Chunk. new ($ T_OBJ , " ({ $ * CTX } [{ quote_string($ var . name )} ] = { self . value_as_js($ var . value )} )" , []), : $ want );
1690
+ }
1685
1691
else {
1686
1692
if $ * BLOCK . ctx_for_var($ var ) -> $ ctx {
1687
1693
Chunk. new ($ type , " $ ctx[ {quote_string($ var . name )}] ", [ ] , :node($ var ));
0 commit comments