<snapdata remixID="12800040"><project name="javascript external tester" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>this project detects whether JS extensions are enabled when you press the flag.&#xD;&#xD;Used for testing&#xD;</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="javascript external tester"><notes>this project detects whether JS extensions are enabled when you press the flag.&#xD;&#xD;Used for testing&#xD;</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="js enabled?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return true;</l></block><list></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block var="a"/></list></block><block s="doApplyExtension"><l>err_reset</l><list><l></l></list></block></script><scripts><script x="329" y="14.800000000000011"><block s="fork"><block s="reifyScript"><script></script><list></list></block><list></list></block></script></scripts></block-definition><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows reading global settings programmatically.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:o valor da configuração _&#xD;ca:paràmetre _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;User&#xD;Presentation mode&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support&#xD;Hyper blocks support&#xD;Visible palette</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    ide = stage.parentThatIsA(IDE_Morph),&#xD;    world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        return ide.projectNotes;&#xD;    case &apos;Project name&apos;:&#xD;        return ide.projectName;&#xD;    case &apos;User&apos;:&#xD;        return ide.cloud.username;&#xD;    case &apos;Presentation mode&apos;:&#xD;        return ide.isAppMode;&#xD;    case &apos;Language&apos;:&#xD;        return SnapTranslator.language;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        return SyntaxElementMorph.prototype.scale;&#xD;    case &apos;Stage size&apos;:&#xD;        return new List([stage.dimensions.x, stage.dimensions.y]);&#xD;    case &apos;Stage scale&apos;:&#xD;       return stage.scale;&#xD;    case &apos;Retina display support&apos;:&#xD;        return isRetinaEnabled();&#xD;    case &apos;Long form input dialog&apos;:&#xD;        return InputSlotDialogMorph.prototype.isLaunchingExpanded;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        return BlockLabelPlaceHolderMorph.prototype.plainLabel;&#xD;    case &apos;Input sliders&apos;:&#xD;        return MorphicPreferences.useSliderForInput;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        return ArgMorph.prototype.executeOnSliderEdit;&#xD;    case &apos;Clicking sound&apos;:&#xD;        return !!BlockMorph.prototype.snapSound;&#xD;    case &apos;Turbo mode&apos;:&#xD;        return stage.isFastTracked;&#xD;    case &apos;Flat design&apos;:&#xD;        return MorphicPreferences.isFlat;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        return !!this.scripts.focus;&#xD;    case &apos;Visible stepping&apos;:&#xD;        return Process.prototype.enableSingleStepping;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        return stage.isThreadSafe;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        return StageMorph.prototype.frameRate &gt; 0;&#xD;    case &apos;Flat line ends&apos;:&#xD;        return SpriteMorph.prototype.useFlatLineEnds;&#xD;    case &apos;Codification support&apos;:&#xD;        return StageMorph.prototype.enableCodeMapping;&#xD;    case &apos;Inheritance support&apos;:&#xD;        return StageMorph.prototype.enableInheritance;&#xD;    case &apos;Hyper blocks support&apos;:&#xD;        return Process.prototype.enableHyperOps;&#xD;    default: return which;&#xD;    case &apos;Visible palette&apos;:&#xD;        return ide.currentCategory;&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for Boolean (checkbox) settings; use&#xD;SET VALUE for numeric or text values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;ca:fixa el paràmetre _ a _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Presentation mode&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support&#xD;Hyper blocks support</options></input><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>tf</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph),&#xD;        thisObj = this;&#xD;&#xD;if (tf != !!tf) return;&#xD;&#xD;try{&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Presentation mode&apos;:&#xD;        if (tf != ide.isAppMode) ide.toggleAppMode();&#xD;        break;&#xD;    case &apos;Retina display support&apos;:&#xD;        if (tf != isRetinaEnabled()) ide.toggleRetina();&#xD;        break;&#xD;    case &apos;Long form input dialog&apos;:&#xD;        if (tf != InputSlotDialogMorph.prototype.isLaunchingExpanded)&#xD;            ide.toggleLongFormInputDialog();&#xD;        break;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        if (tf != BlockLabelPlaceHolderMorph.prototype.plainLabel)&#xD;            ide.togglePlainPrototypeLabels();&#xD;        break;&#xD;    case &apos;Input sliders&apos;:&#xD;        MorphicPreferences.useSliderForInput = tf;&#xD;        break;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        ArgMorph.prototype.executeOnSliderEdit = tf;&#xD;        break;&#xD;    case &apos;Clicking sound&apos;:&#xD;        if (tf != !!BlockMorph.prototype.snapSound)&#xD;            BlockMorph.prototype.toggleSnapSound();&#xD;        break;&#xD;    case &apos;Turbo mode&apos;:&#xD;        if (tf != stage.isFastTracked)&#xD;            ide.toggleFastTracking();&#xD;        break;&#xD;    case &apos;Flat design&apos;:&#xD;        if (tf == MorphicPreferences.isFlat) break;&#xD;        if (tf)&#xD;            ide.flatDesign();&#xD;        else&#xD;            ide.defaultDesign();&#xD;        break;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        if (thisObj.scripts.focus &amp;&amp; !tf) {&#xD;            thisObj.scripts.focus.stopEditing();&#xD;        } else if (tf &amp;&amp; !thisObj.scripts.focus) {&#xD;            thisObj.scripts.toggleKeyboardEntry();&#xD;        };&#xD;        break;&#xD;    case &apos;Visible stepping&apos;:&#xD;        if (tf != Process.prototype.enableSingleStepping)&#xD;            ide.toggleSingleStepping();&#xD;        break;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        stage.isThreadSafe = tf;&#xD;        break;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        if (tf != (StageMorph.prototype.frameRate &gt; 0))&#xD;            ide.toggleVariableFrameRate();&#xD;        break;&#xD;    case &apos;Flat line ends&apos;:&#xD;        SpriteMorph.prototype.useFlatLineEnds = tf;&#xD;        break;&#xD;    case &apos;Codification support&apos;:&#xD;        if (tf != StageMorph.prototype.enableCodeMapping) {&#xD;            StageMorph.prototype.enableCodeMapping = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;    case &apos;Inheritance support&apos;:&#xD;        if (tf != StageMorph.prototype.enableInheritance) {&#xD;            StageMorph.prototype.enableInheritance = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;    case &apos;Hyper blocks support&apos;:&#xD;        Process.prototype.enableHyperOps = tf;&#xD;        break;&#xD;};&#xD;}&#xD;finally {&#xD;ide.savingPreferences = false;&#xD;};&#xD;</l></block><list><block var="which"/><block var="tf"/></list></block></script></block-definition><block-definition s="set value %&apos;which&apos; to %&apos;value&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for numeric or text settings; use&#xD;SET FLAG for Boolean (checkbox) values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;ca:fixa el valor de _ a _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Visible palette</options></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>value</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;try {&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        ide.projectNotes = value;&#xD;        break;&#xD;    case &apos;Project name&apos;:&#xD;        ide.setProjectName(value);&#xD;        break;&#xD;    case &apos;Language&apos;:&#xD;        ide.setLanguage(value);&#xD;        break;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        if (!isNaN(value)) ide.setBlocksScale(Math.min(value, 12));&#xD;        break;&#xD;    case &apos;Stage size&apos;:&#xD;        if ((value instanceof List) &amp;&amp; value.length()==2&#xD;                       &amp;&amp; !isNaN(value.at(1)) &amp;&amp; !isNaN(value.at(2)))&#xD;            ide.setStageExtent(new Point(value.at(1), value.at(2)));&#xD;        break;&#xD;    case &apos;Stage scale&apos;:&#xD;        ide.toggleStageSize(value != 1, Math.max(0.1, value));&#xD;        break;&#xD;    case &apos;Visible palette&apos;:&#xD;        ide.currentCategory = value.toLowerCase();&#xD;        ide.categories.children.forEach(function (each) {&#xD;                each.refresh();&#xD;        });&#xD;        ide.refreshPalette(true);&#xD;        break;&#xD;};&#xD;}&#xD;finally {ide.savingPreferences = true;&#xD;};</l></block><list><block var="which"/><block var="value"/></list></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="97"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAGulJREFUeF7t3XtsnfV5B/AnxnYGjqizAulIW9qtQaAkTQkpCQkVxIZwKUFIKWq3TgGJSZM6Kf9ERQLUav8grUPqmASdpv0xkNDUtdBJm6tWhYZeggYxuTTkRgSLjRPHuTghFzvGl2Q6xyJVRWl9/73n/X0s+T+f93mez/OTvjonJ+8765+vvv1C+CFAgAABAgRmVGCWAJ5Rb8UIECBAgEBVQAA7CAQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6kgQIECBAQAA7AwQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6kgQIECBAQAA7AwQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6kgQIECBAQAA7AwQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6kgQIECBAQAA7AwQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6kgQIECBAQAA7AwQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6kgQIECBAQAA7AwQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6kgQIECBAQAA7AwQIECBAIIGAAE6AriQBAgQIEBDAzgABAgQIEEggIIAToCtJgAABAgQEsDNAgAABAgQSCAjgBOhKEiBAgAABAewMECBAgACBBAICOAG6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x1U3Vm7EMfrfjD7ZfEX1AQ5dm7dVQ/dU5+Gpb9IVCdSogACu0cVpm8B0C3xwK8oH77o/lr714VtRHmsYim1/4FaUHZvaPTlpupfk+jUtIIBren2aJzB9AuN9GMPB13ZG56b2GB5w7+fp24orl0lAAJdpm2YhMIUCY3kc4bu/fCNOdx2ZwqouRSAfAQGcz65NSmBcAhsOvRRtbW1x27IV1acb9WwdfeRg5WlHfggQmLyAAJ68oSsQKKXA8o3rq2F78NUdMTI4VMoZDUUgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkKyCAs129wQkQIEAgpYAATqmvNgECBAhkK/D/h+DAggNmvg4AAAAASUVORK5CYII=</pentrails><costumes><list struct="atomic" id="98"></list></costumes><sounds><list struct="atomic" id="99"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-174.9296875" y="-43" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="145,26,68,1" pen="tip" id="104"><costumes><list struct="atomic" id="105"></list></costumes><sounds><list struct="atomic" id="106"></list></sounds><blocks></blocks><variables></variables><scripts><script x="127" y="309.6666666666673"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return (this.parentThatIsA(StageMorph))</l></block><list></list></block></script><script x="10" y="403"><custom-block s="set flag %s to %b"><l></l><l/></custom-block></script><script x="17" y="477"><custom-block s="set value %s to %s"><l></l><l></l></custom-block></script><script x="58" y="271"><custom-block s="js enabled?"></custom-block></script><script x="37" y="71.33333333333334"><block s="receiveGo"></block></script><script x="262" y="87.33333333333337"><block s="receiveMessage"><l>__shout__go__</l><list></list></block><block s="doSetVar"><l>foo</l><l>the flag has been clicked!</l></block><block s="bubble"><l>:( js is off...</l></block><block s="doIf"><custom-block s="js enabled?"></custom-block><script><block s="bubble"><l>Yay JS is enabled!</l></block></script><list></list></block></script></scripts></sprite><watcher scope="Sprite" s="getPenDown" style="normal" x="10" y="10" color="0,161,120" hidden="true"/><watcher var="foo" style="normal" x="10" y="34.000002" color="243,118,29"/></sprites></stage><variables><variable name="foo"><l>0</l></variable></variables></scene></scenes></project><media name="javascript external tester" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>