Skip to content

Commit 592f427

Browse files
committed
prevent wizard in 6.0
1 parent 429c513 commit 592f427

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

vm.interpreter.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)