@@ -30,6 +30,16 @@ var TEST =
3030stdlib :[ ] ,
3131cli :function ( compiler , preset , out , _in , option )
3232{
33+ var _cachePath = path . join ( process . cwd ( ) , ".." , "cached_" + COMPILER . ENV . name + "_" + VERSION ) ;
34+ var _precompiled = path . join ( _cachePath , "nectar.o" ) ;
35+ if ( ! fs . existsSync ( _precompiled ) )
36+ {
37+ console . log ( `[+] Creating Nectar binary lib for${ COMPILER . ENV . name + "_" + VERSION } ` ) ;
38+ try { fs . mkdirSync ( _cachePath ) ; } catch ( e ) { } ;
39+ execSync ( `${ compiler } -std=c++17 -c nectar.cpp -Ofast -o "${ _precompiled } "` ) ;
40+ console . log ( "[+] Compiling with precompiled Nectar lib" ) ;
41+ }
42+
3343if ( compiler == "cl" || compiler . indexOf ( "cl " ) == 0 )
3444{
3545if ( preset == "none" ) return `${ compiler } ${ _in } /std:c++17 /D CL_WINDOWS=1 /I "${ CONFIG . win_inc_ucrt } " "${ CONFIG . win_lib_um } \\Uuid.Lib" "${ CONFIG . win_lib_um } \\kernel32.Lib" "${ CONFIG . win_lib_ucrt } \\libucrt.lib" /EHsc${ COMPILER . LIBS } /o${ out } ` ;
@@ -42,13 +52,13 @@ var TEST =
4252
4353if ( preset == "none" )
4454{
45- return `${ compiler } -std=c++17 "${ _in } "${ option } -I${ extern } /lib/ -s${ COMPILER . LIBS } -o${ out } ${ _cliOption } ` ;
55+ return `${ compiler } -std=c++17 "${ _in } "" ${ _precompiled } " ${ option } -I${ extern } /lib/ -s${ COMPILER . LIBS } -o${ out } ${ _cliOption } ` ;
4656}
4757else if ( preset == "size" )
4858{
49- return `${ compiler } -std=c++17 "${ _in } "${ option } -I${ extern } /lib/ -fno-rtti -fno-stack-protector -fomit-frame-pointer -s${ COMPILER . LIBS } -o${ out } ${ _cliOption } ` ;
59+ return `${ compiler } -std=c++17 "${ _in } "" ${ _precompiled } " ${ option } -I${ extern } /lib/ -fno-rtti -fno-stack-protector -fomit-frame-pointer -s${ COMPILER . LIBS } -o${ out } ${ _cliOption } ` ;
5060}
51- else return `${ compiler } -std=c++17 "${ _in } " -I${ extern } /lib/${ option } -s${ COMPILER . LIBS } -o${ out } ${ _cliOption } ` ;
61+ else return `${ compiler } -std=c++17 "${ _in } "" ${ _precompiled } " -I${ extern } /lib/${ option } -s${ COMPILER . LIBS } -o${ out } ${ _cliOption } ` ;
5262} ,
5363check :{
5464"env" :{
@@ -67,13 +77,25 @@ var TEST =
6777{
6878"undefined" :false ,
6979"eval" :false ,
70- "__njs_typeof" :false ,
71- "module" :false ,
72- "require" :false ,
73- "__NJS_Log_Console" :false ,
74- "__NJS_Object_Keys" :false ,
75- "__NJS_ARGS" :false ,
76- "__NJS_Call_Function" :false ,
80+ "__njs_typeof" :false ,
81+ "console" :false ,
82+ "module" :false ,
83+ "require" :false ,
84+ "__Nectar_Log_Console" :false ,
85+ "__Nectar_InitVar" :false ,
86+ "__Nectar_Object_Keys" :false ,
87+ "__Nectar_Object_Stringify" :false ,
88+ "__Nectar_Call_Function" :false ,
89+ "__NJS_ARGS" :false ,
90+ "__NJS_ENV" :false ,
91+ "__NJS_PLATFORM" :false ,
92+ "__Nectar_typeof" :false ,
93+ "__Nectar_THIS" :false ,
94+ "__Nectar_instanceof" :false ,
95+ "JSON" :false ,
96+ "Object" :false ,
97+ "isNaN" :false ,
98+ "Array" :false ,
7799"$ERROR" :false ,
78100}
79101}