Skip to content
This repository was archived by the owner on Oct 29, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Conditionally load polyfill code based on feature detection.
  • Loading branch information
DFurnes committed May 5, 2014
commit 02b014160070bc48ec2d653b9a162497aa1b60b7
13 changes: 10 additions & 3 deletions lib/themes/dosomething/paraneue_dosomething/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,21 @@ define("main", function(require) {
// let's get going
var $ = window.jQuery;
var Finder = require("finder/Finder");
var Features = require("utils/features");


require("neue/main");

// Load polyfills
require("respond");
require("rem-unit-polyfill");
if(!Features.mediaQueries) {
require("respond");
}

if(!Features.remUnits) {
require("rem-unit-polyfill");
}

// Initialize modules on load
require("neue/main");
require("campaign/sources");
require("campaign/tips");
require("campaign/ImageUploader");
Expand Down
37 changes: 37 additions & 0 deletions lib/themes/dosomething/paraneue_dosomething/js/utils/Features.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/**
* @module utils/Features
* Methods to test browser support.
*/
define(function() {
"use strict";

/**
* Checks if media queries are supported by the browser.
* @see https://github.com/scottjehl/Respond/blob/master/src/respond.js#L68
*
* @returns {Boolean} Browser support for media queries.
*/
var mediaQueries = function() {
return window.matchMedia && window.matchMedia("only all") !== null && window.matchMedia("only all").matches;
};

/**
* Checks if REM units are supported by the browser.
* @see https://github.com/chuckcarpenter/REM-unit-polyfill/blob/master/js/rem.js#L4-L9
*
* @returns {Boolean} Browser support for REM units.
*/
var remUnits = function() {
var div = document.createElement("div");
div.style.cssText = "font-size: 1rem;";

return (/rem/).test(div.style.fontSize);
};


// Export API
return {
mediaQueries: mediaQueries,
remUnits: remUnits
};
});