@@ -154,7 +154,6 @@ Object.subclass('Squeak.Interpreter',
154
154
returnTrue = 257 ,
155
155
returnFalse = 258 ,
156
156
returnNil = 259 ,
157
- opts = typeof location === 'object' ? location . hash : "" ,
158
157
sista = this . method . methodSignFlag ( ) ;
159
158
[
160
159
// Etoys fallback for missing translation files is hugely inefficient.
@@ -165,7 +164,9 @@ Object.subclass('Squeak.Interpreter',
165
164
// 64 bit Squeak does not flush word size on snapshot
166
165
{ method : "SmalltalkImage>>wordSize" , literal : { index : 1 , old : 8 , hack : 4 } , enabled : true } ,
167
166
// 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 } ,
169
170
// Squeak source file should use UTF8 not MacRoman (both V3 and Sista)
170
171
{ method : "Latin1Environment class>>systemConverterClass" , bytecode : { pc : 53 , old : 0x45 , hack : 0x49 } , enabled : ! this . image . isSpur } ,
171
172
{ method : "Latin1Environment class>>systemConverterClass" , bytecode : { pc : 38 , old : 0x16 , hack : 0x13 } , enabled : this . image . isSpur && sista } ,
@@ -178,6 +179,7 @@ Object.subclass('Squeak.Interpreter',
178
179
byte = each . bytecode ,
179
180
lit = each . literal ,
180
181
hacked = true ;
182
+ if ( byte && byte . closure ) m = m . pointers [ byte . closure ] ;
181
183
if ( prim ) m . pointers [ 0 ] |= prim ;
182
184
else if ( byte && m . bytes [ byte . pc ] === byte . old ) m . bytes [ byte . pc ] = byte . hack ;
183
185
else if ( byte && m . bytes [ byte . pc ] === byte . hack ) hacked = false ; // already there
0 commit comments