@@ -788,3 +788,46 @@ test("exported variable with lua keyword as name is not renamed", () => {
788788
789789 expect ( util . transpileExecuteAndReturnExport ( code , "print" ) ) . toBe ( "foobar" ) ;
790790} ) ;
791+
792+ describe ( "globalThis translation" , ( ) => {
793+ test ( "globalThis to _G (expression)" , ( ) => {
794+ const code = `
795+ var foo = "bar";
796+ return globalThis.foo;` ;
797+
798+ const lua = util . transpileString ( code ) ;
799+
800+ expect ( util . executeLua ( lua ) ) . toBe ( "bar" ) ;
801+ } ) ;
802+
803+ test ( "globalThis to _G (assign)" , ( ) => {
804+ const code = `
805+ globalThis.foo = "bar";
806+ return globalThis.foo;` ;
807+
808+ const lua = util . transpileString ( code ) ;
809+
810+ expect ( util . executeLua ( lua ) ) . toBe ( "bar" ) ;
811+ } ) ;
812+
813+ test ( "globalThis to _G (reassign)" , ( ) => {
814+ const code = `
815+ globalThis.foo = "bar";
816+ globalThis.foo = "baz";
817+ return globalThis.foo;` ;
818+
819+ const lua = util . transpileString ( code ) ;
820+
821+ expect ( util . executeLua ( lua ) ) . toBe ( "baz" ) ;
822+ } ) ;
823+
824+ test ( "globalThis to _G (function)" , ( ) => {
825+ const code = `
826+ globalThis.foo = () => "bar";
827+ return globalThis.foo();` ;
828+
829+ const lua = util . transpileString ( code ) ;
830+
831+ expect ( util . executeLua ( lua ) ) . toBe ( "bar" ) ;
832+ } ) ;
833+ } ) ;
0 commit comments