From d1e60422c76f3afb19e8b85dc7dab9b486150147 Mon Sep 17 00:00:00 2001 From: surunzi Date: Tue, 17 May 2016 00:57:13 +0800 Subject: [PATCH] Dev: Modernizr lazy init --- src/Elements/Elements.scss | 1 + src/Features/Features.es6 | 11 ++++++++--- src/Features/build.js | 4 ++++ src/Features/modernizr.js | 10 +++++----- src/Network/Network.scss | 1 + 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/Elements/Elements.scss b/src/Elements/Elements.scss index 5aced6d..79b91cc 100644 --- a/src/Elements/Elements.scss +++ b/src/Elements/Elements.scss @@ -69,6 +69,7 @@ td { padding: 5px 10px; &.key { + white-space: nowrap; color: $red-dark; } } diff --git a/src/Features/Features.es6 b/src/Features/Features.es6 index 8c03669..cb021e5 100644 --- a/src/Features/Features.es6 +++ b/src/Features/Features.es6 @@ -17,15 +17,20 @@ export default class Features extends Tool this.name = 'features'; this._tpl = require('./Features.hbs'); this._features = {}; + this._isInit = false; } - init($el) + show() { - super.init($el); + super.show(); - this._initFeatures(); + if (!this._isInit) this._initFeatures(); } _initFeatures() { + this._isInit = true; + + modernizr.testRunner(); + util.each(featureNames, (feature) => { if (specialNames[feature]) feature = specialNames[feature]; diff --git a/src/Features/build.js b/src/Features/build.js index fb285f6..1e5d21f 100644 --- a/src/Features/build.js +++ b/src/Features/build.js @@ -5,6 +5,10 @@ var featureList = require('./featureList.json'); modernizr.build(featureList, function (result) { + result = result.replace(';(function(window, document, undefined){', '') + .replace('window.Modernizr = Modernizr;', '') + .replace('testRunner();', 'Modernizr.testRunner = testRunner;') + .replace('})(window, document);', ''); result += '\nmodule.exports = Modernizr;'; fs.writeFile('./modernizr.js', result, 'utf8'); }); \ No newline at end of file diff --git a/src/Features/modernizr.js b/src/Features/modernizr.js index fc57e1f..cdac066 100644 --- a/src/Features/modernizr.js +++ b/src/Features/modernizr.js @@ -22,7 +22,7 @@ * of control over the experience. */ -;(function(window, document, undefined){ + var tests = []; @@ -1275,7 +1275,7 @@ to be the File object's prototype.) * version of that property that the browser actually supports. * * For example, in older Firefox... - * ``` + * ```js * prefixed('boxSizing') * ``` * returns 'MozBoxSizing' @@ -2833,7 +2833,7 @@ Modernizr.video.ogg // 'probably' // Run each test - testRunner(); + Modernizr.testRunner = testRunner; delete ModernizrProto.addTest; delete ModernizrProto.addAsyncTest; @@ -2844,10 +2844,10 @@ Modernizr.video.ogg // 'probably' } // Leak Modernizr namespace - window.Modernizr = Modernizr; + ; -})(window, document); + module.exports = Modernizr; \ No newline at end of file diff --git a/src/Network/Network.scss b/src/Network/Network.scss index 76655e6..fddb31e 100644 --- a/src/Network/Network.scss +++ b/src/Network/Network.scss @@ -54,6 +54,7 @@ overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; + height: 40px; span { display: inline-block; line-height: 40px;