Skip to content

Instantly share code, notes, and snippets.

@YellowAfterlife
Created December 24, 2015 09:10
Show Gist options
  • Save YellowAfterlife/c02e346bb25988e121d7 to your computer and use it in GitHub Desktop.
Save YellowAfterlife/c02e346bb25988e121d7 to your computer and use it in GitHub Desktop.
Messing with various small code transformations in CustomJSGenerator.
import js.Browser.*;
import js.html.CanvasElement;
import js.html.CanvasRenderingContext2D;
import js.html.HTMLDocument;
class Test {
static var canvas:CanvasElement;
static var context:CanvasRenderingContext2D;
static var images:Array<CanvasElement>;
static function reset() {
}
static function render() {
}
static function main() {
canvas = document.createCanvasElement();
canvas.width = 640;
canvas.height = 360;
context = canvas.getContext2d();
var atlas = document.createImageElement();
atlas.onload = function() {
images = [];
for (i in 0 ... 10) {
var img = document.createCanvasElement();
img.width = img.height = 32;
img.getContext2d().drawImage(atlas, -i * 32, 0);
images.push(img);
}
reset();
window.setInterval(function() {
render();
}, 50);
document.body.appendChild(images[8]);
};
atlas.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAMAAABUzVF2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAABQMHHFpP4VMMNJ9LMqsAN69AN++AN28Gt++GvXbOP/pAP/qAP//OtrUXt7u1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwNaGIAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjb8jGPfAAAED0lEQVRoQ+2YjXKbMBCEC6akjQu8/9O6u3sSFuJO1HWcSafsTDyYPUl3n/UD+Xb7VPVQuvREu+V/QX00wCaBvn+H4gDZDV/dp6uvogcBtmcITBFIXyuZSQV93P10o1bfX6/XJsJ2fq9QBfAggTSDgpA2gNWFRi+iCPA7ID4qzLD5+0lPAe6gdHnXFuBBAv1E/310688ARsjx6Y4TBNvtIfPTGF4H7Hi8Xn+FBPvJ8gts6BBwQ123DMNlh9AB+D0aAQkagMYEUpUBn8zPDVj5kYLbgTWMCTI9tXdd6QmAXXdZ5mGPcAPQCP0BwGgCyZN2AX3m9yPy0Vz1a4i9z5tsSYJuhpYe5dqUQkK3rW7ounkelgqhAzDc4uSiDNSxDxEAk+qsIvqpnH9Q7Rf8JnZUj8BBrWVEsJ8yQs+VngN4AboZ2iB8FCAr8AFq5ZlYaRWR6a+qfQFUkHVUj3AH+Os6uhBeDFAEhXCzkD8KIE2VR3kAOQF/mi3VPgFyADsI9iPcAY6Mc3L8FIAZ4TIngnuAWKLp61YokS7klHcMsPSp2gc1q58zsQ2QUU6OBpD4w3NCI/gmn1G8x5RCIpgWMknqpgMwGJ4l2iIFiV0ImsqTWGy6vwqbYKm9/z5plgqA96C4EmSSPkC1d3tPCgHijDW1EBIgVi+jLtgIjaADMPiJkP0K0E8/CweuA4gG3egUVvHkh2ECgBJzdDOw9JWG51IRwI77mrFpIezAT1GDQDoAmV0IkHVZBV6CAqgiXX7sHLczBbcDiCNwBnopWFtGYSg3IHm+S1l+6UuhBLCNsOsGPMlY1KylzLsVQKoBkPWRlJu+ESI+NyCzk9wO8voN9jCrnpT89n8PkPzwmmECwdlBiI0PVkYYAWTy0fDZjAOYncmvbw2IjymTb3OAjCjogLugBkg3ammEvQk2nILG8FKcEKvSuUGChhAEhwcBymV2cXpyQz4IsBkQ2XzVZ4Gxn/hFEfI1RLpRKwI48Mkk7YMGakMQr8EL7y2LTCIEQIt4AOCtf2NysZ9Xcfrm6fC/IW2fC7g1AO1xfIsTDABi7vENg3OQiASyIGg+V/eAF2JEAGH2HYCN/EjoCFC6epEOAItvo4AAoOjhj5/CVwFM/kUYyXEGQvM2AJHe+NYACL0a0JM6+AFtC0lf7uIeCDTY/cCPiMhoAzD7XME4ZDQJzdsCPMzgXxfKc+rjKUxEQoNr4ElHhGnjG77VrwH+l7IZRnF6CQ/WaDKh0udxUvonQAh7HA9YzDPtcVQFMPZPgBCf8jC7bKEaoGUDsOGfACVDRDL2gc8CYMs/ASbx4TgBEqn6bS7yT4Cr0luuOHn/T/D9E2AhLdQAH+X5J8CNgCjER+39E2ClFj6q9k+AT+oE+JRut9+GAj0wqmxExwAAAABJRU5ErkJggg==";
}
}
// Custom JS generator
(function() {
//{ Test
function Test_reset() { }
function Test_render() { }
function Test_main() {
Test_canvas = window.document.createElement("canvas");
Test_canvas.width = 640;
Test_canvas.height = 360;
Test_context = Test_canvas.getContext("2d", null);
var atlas = window.document.createElement("img");
atlas.onload = function() {
Test_images = [];
for (var i = 0; i < 10; i++) {
var img = window.document.createElement("canvas");
img.width = img.height = 32;
img.getContext("2d", null).drawImage(atlas, -i * 32, 0);
Test_images.push(img);
}
Test_reset();
window.setInterval(function() {
Test_render();
}, 50);
window.document.body.appendChild(Test_images[8]);
}
atlas.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAMAAABUzVF2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAABQMHHFpP4VMMNJ9LMqsAN69AN++AN28Gt++GvXbOP/pAP/qAP//OtrUXt7u1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwNaGIAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjb8jGPfAAAED0lEQVRoQ+2YjXKbMBCEC6akjQu8/9O6u3sSFuJO1HWcSafsTDyYPUl3n/UD+Xb7VPVQuvREu+V/QX00wCaBvn+H4gDZDV/dp6uvogcBtmcITBFIXyuZSQV93P10o1bfX6/XJsJ2fq9QBfAggTSDgpA2gNWFRi+iCPA7ID4qzLD5+0lPAe6gdHnXFuBBAv1E/310688ARsjx6Y4TBNvtIfPTGF4H7Hi8Xn+FBPvJ8gts6BBwQ123DMNlh9AB+D0aAQkagMYEUpUBn8zPDVj5kYLbgTWMCTI9tXdd6QmAXXdZ5mGPcAPQCP0BwGgCyZN2AX3m9yPy0Vz1a4i9z5tsSYJuhpYe5dqUQkK3rW7ounkelgqhAzDc4uSiDNSxDxEAk+qsIvqpnH9Q7Rf8JnZUj8BBrWVEsJ8yQs+VngN4AboZ2iB8FCAr8AFq5ZlYaRWR6a+qfQFUkHVUj3AH+Os6uhBeDFAEhXCzkD8KIE2VR3kAOQF/mi3VPgFyADsI9iPcAY6Mc3L8FIAZ4TIngnuAWKLp61YokS7klHcMsPSp2gc1q58zsQ2QUU6OBpD4w3NCI/gmn1G8x5RCIpgWMknqpgMwGJ4l2iIFiV0ImsqTWGy6vwqbYKm9/z5plgqA96C4EmSSPkC1d3tPCgHijDW1EBIgVi+jLtgIjaADMPiJkP0K0E8/CweuA4gG3egUVvHkh2ECgBJzdDOw9JWG51IRwI77mrFpIezAT1GDQDoAmV0IkHVZBV6CAqgiXX7sHLczBbcDiCNwBnopWFtGYSg3IHm+S1l+6UuhBLCNsOsGPMlY1KylzLsVQKoBkPWRlJu+ESI+NyCzk9wO8voN9jCrnpT89n8PkPzwmmECwdlBiI0PVkYYAWTy0fDZjAOYncmvbw2IjymTb3OAjCjogLugBkg3ammEvQk2nILG8FKcEKvSuUGChhAEhwcBymV2cXpyQz4IsBkQ2XzVZ4Gxn/hFEfI1RLpRKwI48Mkk7YMGakMQr8EL7y2LTCIEQIt4AOCtf2NysZ9Xcfrm6fC/IW2fC7g1AO1xfIsTDABi7vENg3OQiASyIGg+V/eAF2JEAGH2HYCN/EjoCFC6epEOAItvo4AAoOjhj5/CVwFM/kUYyXEGQvM2AJHe+NYACL0a0JM6+AFtC0lf7uIeCDTY/cCPiMhoAzD7XME4ZDQJzdsCPMzgXxfKc+rjKUxEQoNr4ElHhGnjG77VrwH+l7IZRnF6CQ/WaDKh0udxUvonQAh7HA9YzDPtcVQFMPZPgBCf8jC7bKEaoGUDsOGfACVDRDL2gc8CYMs/ASbx4TgBEqn6bS7yT4Cr0luuOHn/T/D9E2AhLdQAH+X5J8CNgCjER+39E2ClFj6q9k+AT+oE+JRut9+GAj0wqmxExwAAAABJRU5ErkJggg==";
}
//}
var Test_canvas;
var Test_context;
var Test_images;
Test_main();
})();
// Standard JS generator
(function (console) { "use strict";
var Test = function() { };
Test.reset = function() {
};
Test.render = function() {
};
Test.main = function() {
var _this = window.document;
Test.canvas = _this.createElement("canvas");
Test.canvas.width = 640;
Test.canvas.height = 360;
Test.context = Test.canvas.getContext("2d",null);
var atlas;
var _this1 = window.document;
atlas = _this1.createElement("img");
atlas.onload = function() {
Test.images = [];
var _g = 0;
while(_g < 10) {
var i = _g++;
var img;
var _this2 = window.document;
img = _this2.createElement("canvas");
img.width = img.height = 32;
img.getContext("2d",null).drawImage(atlas,-i * 32,0);
Test.images.push(img);
}
Test.reset();
window.setInterval(function() {
Test.render();
},50);
window.document.body.appendChild(Test.images[8]);
};
atlas.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAMAAABUzVF2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAABQMHHFpP4VMMNJ9LMqsAN69AN++AN28Gt++GvXbOP/pAP/qAP//OtrUXt7u1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwNaGIAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjb8jGPfAAAED0lEQVRoQ+2YjXKbMBCEC6akjQu8/9O6u3sSFuJO1HWcSafsTDyYPUl3n/UD+Xb7VPVQuvREu+V/QX00wCaBvn+H4gDZDV/dp6uvogcBtmcITBFIXyuZSQV93P10o1bfX6/XJsJ2fq9QBfAggTSDgpA2gNWFRi+iCPA7ID4qzLD5+0lPAe6gdHnXFuBBAv1E/310688ARsjx6Y4TBNvtIfPTGF4H7Hi8Xn+FBPvJ8gts6BBwQ123DMNlh9AB+D0aAQkagMYEUpUBn8zPDVj5kYLbgTWMCTI9tXdd6QmAXXdZ5mGPcAPQCP0BwGgCyZN2AX3m9yPy0Vz1a4i9z5tsSYJuhpYe5dqUQkK3rW7ounkelgqhAzDc4uSiDNSxDxEAk+qsIvqpnH9Q7Rf8JnZUj8BBrWVEsJ8yQs+VngN4AboZ2iB8FCAr8AFq5ZlYaRWR6a+qfQFUkHVUj3AH+Os6uhBeDFAEhXCzkD8KIE2VR3kAOQF/mi3VPgFyADsI9iPcAY6Mc3L8FIAZ4TIngnuAWKLp61YokS7klHcMsPSp2gc1q58zsQ2QUU6OBpD4w3NCI/gmn1G8x5RCIpgWMknqpgMwGJ4l2iIFiV0ImsqTWGy6vwqbYKm9/z5plgqA96C4EmSSPkC1d3tPCgHijDW1EBIgVi+jLtgIjaADMPiJkP0K0E8/CweuA4gG3egUVvHkh2ECgBJzdDOw9JWG51IRwI77mrFpIezAT1GDQDoAmV0IkHVZBV6CAqgiXX7sHLczBbcDiCNwBnopWFtGYSg3IHm+S1l+6UuhBLCNsOsGPMlY1KylzLsVQKoBkPWRlJu+ESI+NyCzk9wO8voN9jCrnpT89n8PkPzwmmECwdlBiI0PVkYYAWTy0fDZjAOYncmvbw2IjymTb3OAjCjogLugBkg3ammEvQk2nILG8FKcEKvSuUGChhAEhwcBymV2cXpyQz4IsBkQ2XzVZ4Gxn/hFEfI1RLpRKwI48Mkk7YMGakMQr8EL7y2LTCIEQIt4AOCtf2NysZ9Xcfrm6fC/IW2fC7g1AO1xfIsTDABi7vENg3OQiASyIGg+V/eAF2JEAGH2HYCN/EjoCFC6epEOAItvo4AAoOjhj5/CVwFM/kUYyXEGQvM2AJHe+NYACL0a0JM6+AFtC0lf7uIeCDTY/cCPiMhoAzD7XME4ZDQJzdsCPMzgXxfKc+rjKUxEQoNr4ElHhGnjG77VrwH+l7IZRnF6CQ/WaDKh0udxUvonQAh7HA9YzDPtcVQFMPZPgBCf8jC7bKEaoGUDsOGfACVDRDL2gc8CYMs/ASbx4TgBEqn6bS7yT4Cr0luuOHn/T/D9E2AhLdQAH+X5J8CNgCjER+39E2ClFj6q9k+AT+oE+JRut9+GAj0wqmxExwAAAABJRU5ErkJggg==";
};
Test.main();
})(typeof console != "undefined" ? console : {log:function(){}});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment