Version 1
[yaffs-website] / node_modules / es6-promise / lib / es6-promise / polyfill.js
diff --git a/node_modules/es6-promise/lib/es6-promise/polyfill.js b/node_modules/es6-promise/lib/es6-promise/polyfill.js
new file mode 100644 (file)
index 0000000..83ddf06
--- /dev/null
@@ -0,0 +1,35 @@
+/*global self*/
+import Promise from './promise';
+
+export default function polyfill() {
+  let local;
+
+  if (typeof global !== 'undefined') {
+      local = global;
+  } else if (typeof self !== 'undefined') {
+      local = self;
+  } else {
+      try {
+          local = Function('return this')();
+      } catch (e) {
+          throw new Error('polyfill failed because global object is unavailable in this environment');
+      }
+  }
+
+  let P = local.Promise;
+
+  if (P) {
+    var promiseToString = null;
+    try {
+        promiseToString = Object.prototype.toString.call(P.resolve());
+    } catch(e) {
+        // silently ignored
+    }
+
+    if (promiseToString === '[object Promise]' && !P.cast){
+        return;
+    }
+  }
+
+  local.Promise = Promise;
+}