on master help sign in
Merge branch 'master' into dev
commit5d1ba746aca9d32b7279824358e40fa4d228fb65 authorEvan Czaplicki <info@elm-lang.org> dateWed 30 Oct 2013, 16:34 (13 years ago) parentd57b91c427ac52
2 files changed+23−1
libraries/Native/Show.js+22−1 runtime/Utils.js+1
libraries/Native/Show.js+22−1
@@ -25,7 +25,7 @@ Elm.Native.Show.make = function(elm) {
2525 return "'" + addSlashes(v) + "'";
2626 } else if (type === "string") {
2727 return '"' + addSlashes(v) + '"';
28− } else if (type === "object" && '_' in v) {
28+ } else if (type === "object" && '_' in v && probablyPublic(v)) {
2929 var output = [];
3030 for (var k in v._) {
3131 for (var i = v._[k].length; i--; ) {
@@ -91,5 +91,26 @@ Elm.Native.Show.make = function(elm) {
9191 .replace(/\"/g, '\\"');
9292 }
9393
94+ function probablyPublic(v) {
95+ var keys = Object.keys(v);
96+ var len = keys.length;
97+ if (len === 3
98+ && 'props' in v
99+ && 'element' in v) return false;
100+ if (len === 5
101+ && 'horizontal' in v
102+ && 'vertical' in v
103+ && 'x' in v
104+ && 'y' in v) return false;
105+ if (len === 7
106+ && 'theta' in v
107+ && 'scale' in v
108+ && 'x' in v
109+ && 'y' in v
110+ && 'alpha' in v
111+ && 'form' in v) return false;
112+ return true;
113+ }
114+
94115 return elm.Native.Show.values = { show:toString };
95116};
runtime/Utils.js+1
@@ -34,6 +34,7 @@ ElmRuntime.filterDeadInputs = function(inputs) {
3434
3535// define the draw function
3636var vendors = ['ms', 'moz', 'webkit', 'o'];
37+var window = window || {};
3738for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
3839 window.requestAnimationFrame = window[vendors[i]+'RequestAnimationFrame'];
3940 window.cancelAnimationFrame = window[vendors[i]+'CancelAnimationFrame'] ||