@@ -265,7 +265,7 @@ export class Interpreter {
265265 ) {
266266 value . name = nsScope . getNsPrefix ( ) + node . dest . name ;
267267 }
268- await this . define ( nsScope , node . dest , value , node . mut ) ;
268+ this . define ( nsScope , node . dest , value , node . mut ) ;
269269
270270 break ;
271271 }
@@ -309,7 +309,7 @@ export class Interpreter {
309309 ) {
310310 value . name = nsScope . getNsPrefix ( ) + node . dest . name ;
311311 }
312- this . defineSync ( nsScope , node . dest , value , node . mut ) ;
312+ this . define ( nsScope , node . dest , value , node . mut ) ;
313313
314314 break ;
315315 }
@@ -668,7 +668,7 @@ export class Interpreter {
668668 ) {
669669 value . name = node . dest . name ;
670670 }
671- await this . define ( scope , node . dest , value , node . mut ) ;
671+ this . define ( scope , node . dest , value , node . mut ) ;
672672 return NULL ;
673673 }
674674
@@ -1212,7 +1212,7 @@ export class Interpreter {
12121212 ) {
12131213 value . name = node . dest . name ;
12141214 }
1215- this . defineSync ( scope , node . dest , value , node . mut ) ;
1215+ this . define ( scope , node . dest , value , node . mut ) ;
12161216 return NULL ;
12171217 }
12181218
@@ -1667,34 +1667,7 @@ export class Interpreter {
16671667 }
16681668
16691669 @autobind
1670- private async define ( scope : Scope , dest : Ast . Expression , value : Value , isMutable : boolean ) : Promise < void > {
1671- switch ( dest . type ) {
1672- case 'identifier' : {
1673- scope . add ( dest . name , { isMutable, value } ) ;
1674- break ;
1675- }
1676- case 'arr' : {
1677- assertArray ( value ) ;
1678- await Promise . all ( dest . value . map (
1679- ( item , index ) => this . define ( scope , item , value . value [ index ] ?? NULL , isMutable ) ,
1680- ) ) ;
1681- break ;
1682- }
1683- case 'obj' : {
1684- assertObject ( value ) ;
1685- await Promise . all ( [ ...dest . value ] . map (
1686- ( [ key , item ] ) => this . define ( scope , item , value . value . get ( key ) ?? NULL , isMutable ) ,
1687- ) ) ;
1688- break ;
1689- }
1690- default : {
1691- throw new AiScriptRuntimeError ( 'The left-hand side of an definition expression must be a variable.' ) ;
1692- }
1693- }
1694- }
1695-
1696- @autobind
1697- private defineSync ( scope : Scope , dest : Ast . Expression , value : Value , isMutable : boolean ) : void {
1670+ private define ( scope : Scope , dest : Ast . Expression , value : Value , isMutable : boolean ) : void {
16981671 switch ( dest . type ) {
16991672 case 'identifier' : {
17001673 scope . add ( dest . name , { isMutable, value } ) ;
@@ -1703,14 +1676,14 @@ export class Interpreter {
17031676 case 'arr' : {
17041677 assertArray ( value ) ;
17051678 dest . value . map (
1706- ( item , index ) => this . defineSync ( scope , item , value . value [ index ] ?? NULL , isMutable ) ,
1679+ ( item , index ) => this . define ( scope , item , value . value [ index ] ?? NULL , isMutable ) ,
17071680 ) ;
17081681 break ;
17091682 }
17101683 case 'obj' : {
17111684 assertObject ( value ) ;
17121685 [ ...dest . value ] . map (
1713- ( [ key , item ] ) => this . defineSync ( scope , item , value . value . get ( key ) ?? NULL , isMutable ) ,
1686+ ( [ key , item ] ) => this . define ( scope , item , value . value . get ( key ) ?? NULL , isMutable ) ,
17141687 ) ;
17151688 break ;
17161689 }
0 commit comments