@@ -154,7 +154,6 @@ Object.subclass('Squeak.Interpreter',
154154 returnTrue = 257 ,
155155 returnFalse = 258 ,
156156 returnNil = 259 ,
157- opts = typeof location === 'object' ? location . hash : "" ,
158157 sista = this . method . methodSignFlag ( ) ;
159158 [
160159 // Etoys fallback for missing translation files is hugely inefficient.
@@ -165,7 +164,9 @@ Object.subclass('Squeak.Interpreter',
165164 // 64 bit Squeak does not flush word size on snapshot
166165 { method : "SmalltalkImage>>wordSize" , literal : { index : 1 , old : 8 , hack : 4 } , enabled : true } ,
167166 // Squeak 5.3 disable wizard by replacing #open send with pop
168- { method : "ReleaseBuilder class>>prepareEnvironment" , bytecode : { pc : 28 , old : 0xD8 , hack : 0x87 } , enabled : opts . includes ( "wizard=false" ) } ,
167+ { method : "ReleaseBuilder class>>prepareEnvironment" , bytecode : { pc : 28 , old : 0xD8 , hack : 0x87 } , enabled : ! sista & this . options . wizard === false } ,
168+ // Squeak 6.0 disable wizard by replacing #open send with pop
169+ { method : "ReleaseBuilder class>>prepareEnvironment" , bytecode : { closure : 9 , pc : 5 , old : 0x81 , hack : 0xD8 } , enabled : sista & this . options . wizard === false } ,
169170 // Squeak source file should use UTF8 not MacRoman (both V3 and Sista)
170171 { method : "Latin1Environment class>>systemConverterClass" , bytecode : { pc : 53 , old : 0x45 , hack : 0x49 } , enabled : ! this . image . isSpur } ,
171172 { method : "Latin1Environment class>>systemConverterClass" , bytecode : { pc : 38 , old : 0x16 , hack : 0x13 } , enabled : this . image . isSpur && sista } ,
@@ -178,6 +179,7 @@ Object.subclass('Squeak.Interpreter',
178179 byte = each . bytecode ,
179180 lit = each . literal ,
180181 hacked = true ;
182+ if ( byte && byte . closure ) m = m . pointers [ byte . closure ] ;
181183 if ( prim ) m . pointers [ 0 ] |= prim ;
182184 else if ( byte && m . bytes [ byte . pc ] === byte . old ) m . bytes [ byte . pc ] = byte . hack ;
183185 else if ( byte && m . bytes [ byte . pc ] === byte . hack ) hacked = false ; // already there
0 commit comments