0)\n this.fallingLetters.clone().forEach(function (ea) { this.letterFallToPile(ea) }, this); // unused letter falls to pile\n\tif (this.activeLetters.length == 0) return;\n\tvar letter = this.activeLetters[0]; // Will be on the belt\n\tletter.moveBy(pt(this.xStep, 0));\n\t\n\t// Drop letter from belt to rack, and then drop anew one onto belt\n\tif (letter.bounds().topRight().x < this.rack.bounds().topRight().x) this.letterDropOntoRack(letter);\n\n\t// Propagate leftward motion along rack when letters touch\n\tthis.lettersSlideOnRack();\n\n\t// If leftmost letter is off rack then drop it\n\tif (this.activeLetters.last().bounds().center().x < this.rack.bounds().topLeft().x) this.letterFallOffEnd();\n}","funcProperties":{"__isSmartRef__":true,"id":1849},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1848":{"this":{"__isSmartRef__":true,"id":488}},"1849":{},"1850":{"varMapping":{"__isSmartRef__":true,"id":1851},"source":"function onKeyDown(evt) {\n\tif (this.paused) return;\n\tevt.stop();\n switch (evt.getKeyCode()) {\n\t\tcase 8: this.doDelete(true); return;\n\t\tcase 27: this.doClear(true); return;\n\t\tcase 13: this.doEnter(true); return;\n\t}\n\t// Normal letter keys...\n\tvar char = evt.getKeyChar();\n\tif (char == '!') return;\n\tvar letter = this.findCharOnRack(char.toUpperCase());\n\tif (letter) this.addToOutbox(letter);\n}","funcProperties":{"__isSmartRef__":true,"id":1856},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1851":{"this":{"__isSmartRef__":true,"id":488},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1852}},"1852":{"$super":{"__isSmartRef__":true,"id":1853}},"1853":{"varMapping":{"__isSmartRef__":true,"id":1854},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":1855},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1854":{"obj":{"__isSmartRef__":true,"id":488},"name":"onKeyDown"},"1855":{},"1856":{},"1857":{"varMapping":{"__isSmartRef__":true,"id":1858},"source":"function fillLetter(letterMorph, color) {\n\tletterMorph.setBorderColor(color);\n\ttry { // some problem in textColor code\n letterMorph.applyStyle({textColor: color});\n } catch(err) {};\n\ttry { // some problem in textColor code\n\t letterMorph.valueBox.applyStyle({textColor: color});\n } catch(err) {};\n}","funcProperties":{"__isSmartRef__":true,"id":1859},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1858":{"this":{"__isSmartRef__":true,"id":488}},"1859":{},"1860":{"varMapping":{"__isSmartRef__":true,"id":1861},"source":"function removeFromOutbox(letter) {\n\t\tletter.original.copyInOutbox = null; // restore original for, eg, del\n\t\tthis.fillLetter(letter.original, Color.black); \n\t\tletter.remove();\n}","funcProperties":{"__isSmartRef__":true,"id":1862},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1861":{"this":{"__isSmartRef__":true,"id":488}},"1862":{},"1863":{"varMapping":{"__isSmartRef__":true,"id":1864},"source":"function updateOutbox() {\n\t// Lay out outbox letters beginning at index = start\n\tthis.letterScore = 0;\n\tvar nLetters = this.outboxLetters.length;\n\tfor (var i=0; i