ソースを参照

Various fixes for browser that don't support ES2015

Specifically for IE11.

* Add a polyfill for String.prototype.includes
* Make sure all bundled code is transpiled
* Add IE specific fix in converse-otr.js
JC Brand 8 年 前
コミット
ab0ec7301f
5 ファイル変更25 行追加5 行削除
  1. 2 0
      src/build-inverse.js
  2. 4 1
      src/build.js
  3. 4 3
      src/converse-otr.js
  4. 1 1
      src/lodash.fp.js
  5. 14 0
      src/polyfill.js

+ 2 - 0
src/build-inverse.js

@@ -4,9 +4,11 @@
     mainConfigFile: 'config.js',
     paths: {
         "converse-bookmarks":       "builds/converse-bookmarks",
+        "converse-chatboxes":       "builds/converse-chatboxes",
         "converse-chatview":        "builds/converse-chatview",
         "converse-controlbox":      "builds/converse-controlbox",
         "converse-core":            "builds/converse-core",
+        "converse-disco":           "builds/converse-disco",
         "converse-dragresize":      "builds/converse-dragresize",
         "converse-headline":        "builds/converse-headline",
         "converse-inverse":         "builds/converse-inverse",

+ 4 - 1
src/build.js

@@ -4,9 +4,11 @@
     mainConfigFile: 'config.js',
     paths: {
         "converse-bookmarks":       "builds/converse-bookmarks",
+        "converse-chatboxes":       "builds/converse-chatboxes",
         "converse-chatview":        "builds/converse-chatview",
         "converse-controlbox":      "builds/converse-controlbox",
         "converse-core":            "builds/converse-core",
+        "converse-disco":           "builds/converse-disco",
         "converse-dragresize":      "builds/converse-dragresize",
         "converse-headline":        "builds/converse-headline",
         "converse-inverse":         "builds/converse-inverse",
@@ -22,7 +24,8 @@
         "converse-rosterview":      "builds/converse-rosterview",
         "converse-singleton":       "builds/converse-singleton",
         "converse-vcard":           "builds/converse-vcard",
-        "utils":                    "builds/utils"
+        "utils":                    "builds/utils",
+        "form-utils":               "builds/form-utils"
     },
     wrap: {
         startFile: "start.frag",

+ 4 - 3
src/converse-otr.js

@@ -21,9 +21,10 @@
 
     const { Strophe, utils, b64_sha1, _ } = converse.env;
 
-    const HAS_CSPRNG = ((!_.isUndefined(crypto)) &&
-        ((_.isFunction(crypto.randomBytes)) || (_.isFunction(crypto.getRandomValues))
-    ));
+    const HAS_CSPRNG = _.isUndefined(window.crypto) ? false : (
+        _.isFunction(window.crypto.randomBytes) ||
+        _.isFunction(window.crypto.getRandomValues)
+    );
 
     const HAS_CRYPTO = HAS_CSPRNG && (
         (!_.isUndefined(otr.OTR)) &&

+ 1 - 1
src/lodash.fp.js

@@ -1,5 +1,5 @@
 define(['lodash', 'lodash.converter', 'converse-core'], function (_, lodashConverter, converse) {
-    const fp = lodashConverter(_.runInContext());
+    var fp = lodashConverter(_.runInContext());
     converse.env.fp = fp;
     return fp;
 });

+ 14 - 0
src/polyfill.js

@@ -1,3 +1,17 @@
+if (!String.prototype.includes) {
+  String.prototype.includes = function(search, start) {
+        'use strict';
+        if (typeof start !== 'number') {
+            start = 0;
+        }
+        if (start + search.length > this.length) {
+            return false;
+        } else {
+            return this.indexOf(search, start) !== -1;  // eslint-disable-line lodash/prefer-includes
+        }
+  };
+}
+
 if (!String.prototype.endsWith) {
   String.prototype.endsWith = function (searchString, position) {
       var subjectString = this.toString();