on master help sign in
Merge branch 'master' into dev
5d1ba74Evan Czaplicki
libraries/Native/Show.js+22−1
@@ -25,7 +25,7 @@ Elm.Native.Show.make = function(elm) {
25 return "'" + addSlashes(v) + "'";
25 return "'" + addSlashes(v) + "'";
26 } else if (type === "string") {
26 } else if (type === "string") {
27 return '"' + addSlashes(v) + '"';
27 return '"' + addSlashes(v) + '"';
28− } else if (type === "object" && '_' in v) {
28+ } else if (type === "object" && '_' in v && probablyPublic(v)) {
29 var output = [];
29 var output = [];
30 for (var k in v._) {
30 for (var k in v._) {
31 for (var i = v._[k].length; i--; ) {
31 for (var i = v._[k].length; i--; ) {
@@ -91,5 +91,26 @@ Elm.Native.Show.make = function(elm) {
91 .replace(/\"/g, '\\"');
91 .replace(/\"/g, '\\"');
92 }
92 }
93
93
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+
94 return elm.Native.Show.values = { show:toString };
115 return elm.Native.Show.values = { show:toString };
95};
116};
runtime/Utils.js+1
@@ -34,6 +34,7 @@ ElmRuntime.filterDeadInputs = function(inputs) {
34
34
35// define the draw function
35// define the draw function
36var vendors = ['ms', 'moz', 'webkit', 'o'];
36var vendors = ['ms', 'moz', 'webkit', 'o'];
37+var window = window || {};
37for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
38for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
38 window.requestAnimationFrame = window[vendors[i]+'RequestAnimationFrame'];
39 window.requestAnimationFrame = window[vendors[i]+'RequestAnimationFrame'];
39 window.cancelAnimationFrame = window[vendors[i]+'CancelAnimationFrame'] ||
40 window.cancelAnimationFrame = window[vendors[i]+'CancelAnimationFrame'] ||