Confine programmatically setting the “temporary?” attribute to dev mode

because it has serious pitfall issues
upd4.1
Jens Mönig 2017-08-30 08:09:48 +02:00
rodzic 19b36c7ee7
commit 1905142fc7
3 zmienionych plików z 15 dodań i 8 usunięć

Wyświetl plik

@ -148,7 +148,7 @@ CustomCommandBlockMorph, SymbolMorph*/
// Global stuff ////////////////////////////////////////////////////////
modules.blocks = '2017-August-29';
modules.blocks = '2017-August-30';
var SyntaxElementMorph;
var BlockMorph;
@ -8289,7 +8289,9 @@ InputSlotMorph.prototype.gettablesMenu = function () {
if (StageMorph.prototype.enableInheritance) {
dict.children = ['children'];
dict.parent = ['parent'];
dict['temporary?'] = ['temporary?'];
if (this.world().isDevMode) {
dict['temporary?'] = ['temporary?'];
}
}
dict.name = ['name'];
dict.costumes = ['costumes'];

Wyświetl plik

@ -3594,6 +3594,10 @@ Fixes:
* GUI, Objects: enable exporting costumes and variable-data in the newest Chrome version, which disables opening tabs on dataURLs
* Blocks, Threads: added “temporary?” as gettable and settable attribute for clones
170830
------
* Blocks, Threads: Confine programmatically setting the “temporary?” attribute to dev mode
Features:
* polymorphic sprite-local custom blocks

Wyświetl plik

@ -61,7 +61,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy,
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph,
TableFrameMorph, ColorSlotMorph, isSnapObject*/
modules.threads = '2017-August-29';
modules.threads = '2017-August-30';
var ThreadManager;
var Process;
@ -3195,12 +3195,13 @@ Process.prototype.doSet = function (attribute, value) {
case 'temporary?':
this.assertType(rcvr, 'sprite');
this.assertType(value, 'Boolean');
if (value) {
rcvr.release();
} else {
rcvr.perpetuate();
if (rcvr.world().isDevMode) {
if (value) {
rcvr.release();
} else {
rcvr.perpetuate();
}
}
rcvr.version = Date.now();
break;
case 'dangling?':
this.assertType(rcvr, 'sprite');