PageSourceSearch

https://www.masterplating.com.au/wp-content/themes/masterplating/js/modernizr-webp.js?ver=1.1

js masterplating.com.au collected 2026-10-04 04:05:08 UTC 7,757 bytes, 308 lines download raw bytes

vendor: 7,757 bytes, lines 1-308
1
2/* Modernizr 2.8.3 (Custom Build) | MIT & BSD
3 * Build: http://modernizr.com/download/#-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-img_webp
4 */
5window.Modernizr = (function(window, document, undefined) {
6
7  var version = '2.8.3',
8
9    Modernizr = {},
10    enableClasses = true,
11    docElement = document.documentElement,
12    mod = 'modernizr',
13    modElem = document.createElement(mod),
14    mStyle = modElem.style,
15    inputElem,
16    toString = {}.toString,
17    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
18    omPrefixes = 'Webkit Moz O ms',
19    cssomPrefixes = omPrefixes.split(' '),
20    domPrefixes = omPrefixes.toLowerCase().split(' '),
21    tests = {},
22    inputs = {},
23    attrs = {},
24    classes = [],
25    slice = classes.slice,
26    featureName,
27
28    injectElementWithStyles = function(rule, callback, nodes, testnames) {
29
30      var style, ret, node, docOverflow,
31        div = document.createElement('div'),
32        body = document.body,
33        fakeBody = body || document.createElement('body');
34
35      if (parseInt(nodes, 10)) {
36        while (nodes--) {
37          node = document.createElement('div');
38          node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
39          div.appendChild(node);
40        }
41      }
42
43      style = ['&#173;', '<style id="s', mod, '">', rule, '</style>'].join('');
44      div.id = mod;
45      (body ? div : fakeBody).innerHTML += style;
46      fakeBody.appendChild(div);
47      if (!body) {
48        fakeBody.style.background = '';
49        fakeBody.style.overflow = 'hidden';
50        docOverflow = docElement.style.overflow;
51        docElement.style.overflow = 'hidden';
52        docElement.appendChild(fakeBody);
53      }
54
55      ret = callback(div, rule);
56      if (!body) {
57        fakeBody.parentNode.removeChild(fakeBody);
58        docElement.style.overflow = docOverflow;
59      } else {
60        div.parentNode.removeChild(div);
61      }
62
63      return !!ret;
64
65    },
66
67    isEventSupported = (function() {
68
69      var TAGNAMES = {
70        'select': 'input',
71        'change': 'input',
72        'submit': 'form',
73        'reset': 'form',
74        'error': 'img',
75        'load': 'img',
76        'abort': 'img'
77      };
78
79      function isEventSupported(eventName, element) {
80
81        element = element || document.createElement(TAGNAMES[eventName] || 'div');
82        eventName = 'on' + eventName;
83
84        var isSupported = eventName in element;
85
86        if (!isSupported) {
87          if (!element.setAttribute) {
88            element = document.createElement('div');
89          }
90          if (element.setAttribute && element.removeAttribute) {
91            element.setAttribute(eventName, '');
92            isSupported = is(element[eventName], 'function');
93
94            if (!is(element[eventName], 'undefined')) {
95              element[eventName] = undefined;
96            }
97            element.removeAttribute(eventName);
98          }
99        }
100
101        element = null;
102        return isSupported;
103      }
104      return isEventSupported;
105    })(),
106
107
108    _hasOwnProperty = ({}).hasOwnProperty,
109    hasOwnProp;
110
111  if (!is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined')) {
112    hasOwnProp = function(object, property) {
113      return _hasOwnProperty.call(object, property);
114    };
115  } else {
116    hasOwnProp = function(object, property) {
117      return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
118    };
119  }
120
121
122  if (!Function.prototype.bind) {
123    Function.prototype.bind = function bind(that) {
124
125      var target = this;
126
127      if (typeof target != "function") {
128        throw new TypeError();
129      }
130
131      var args = slice.call(arguments, 1),
132        bound = function() {
133
134          if (this instanceof bound) {
135
136            var F = function() {};
137            F.prototype = target.prototype;
138            var self = new F();
139
140            var result = target.apply(
141              self,
142              args.concat(slice.call(arguments))
143            );
144            if (Object(result) === result) {
145              return result;
146            }
147            return self;
148
149          } else {
150
151            return target.apply(
152              that,
153              args.concat(slice.call(arguments))
154            );
155
156          }
157
158        };
159
160      return bound;
161    };
162  }
163
164  function setCss(str) {
165    mStyle.cssText = str;
166  }
167
168  function setCssAll(str1, str2) {
169    return setCss(prefixes.join(str1 + ';') + (str2 || ''));
170  }
171
172  function is(obj, type) {
173    return typeof obj === type;
174  }
175
176  function contains(str, substr) {
177    return !!~('' + str).indexOf(substr);
178  }
179
180  function testProps(props, prefixed) {
181    for (var i in props) {
182      var prop = props[i];
183      if (!contains(prop, "-") && mStyle[prop] !== undefined) {
184        return prefixed == 'pfx' ? prop : true;
185      }
186    }
187    return false;
188  }
189
190  function testDOMProps(props, obj, elem) {
191    for (var i in props) {
192      var item = obj[props[i]];
193      if (item !== undefined) {
194
195        if (elem === false) return props[i];
196
197        if (is(item, 'function')) {
198          return item.bind(elem || obj);
199        }
200
201        return item;
202      }
203    }
204    return false;
205  }
206
207  function testPropsAll(prop, prefixed, elem) {
208
209    var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
210      props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
211
212    if (is(prefixed, "string") || is(prefixed, "undefined")) {
213      return testProps(props, prefixed);
214
215    } else {
216      props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
217      return testDOMProps(props, prefixed, elem);
218    }
219  }
220  for (var feature in tests) {
221    if (hasOwnProp(tests, feature)) {
222      featureName = feature.toLowerCase();
223      Modernizr[featureName] = tests[feature]();
224
225      classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
226    }
227  }
228
229  Modernizr.addTest = function(feature, test) {
230    if (typeof feature == 'object') {
231      for (var key in feature) {
232        if (hasOwnProp(feature, key)) {
233          Modernizr.addTest(key, feature[key]);
234        }
235      }
236    } else {
237
238      feature = feature.toLowerCase();
239
240      if (Modernizr[feature] !== undefined) {
241        return Modernizr;
242      }
243
244      test = typeof test == 'function' ? test() : test;
245
246      if (typeof enableClasses !== "undefined" && enableClasses) {
247        docElement.className += ' ' + (test ? '' : 'no-') + feature;
248      }
249      Modernizr[feature] = test;
250
251    }
252
253    return Modernizr;
254  };
255
256  setCss('');
257  modElem = inputElem = null;
258
259  Modernizr._version = version;
260
261  Modernizr._prefixes = prefixes;
262  Modernizr._domPrefixes = domPrefixes;
263  Modernizr._cssomPrefixes = cssomPrefixes;
264
265  Modernizr.hasEvent = isEventSupported;
266
267  Modernizr.testProp = function(prop) {
268    return testProps([prop]);
269  };
270
271  Modernizr.testAllProps = testPropsAll;
272
273  Modernizr.testStyles = injectElementWithStyles;
274  Modernizr.prefixed = function(prop, obj, elem) {
275    if (!obj) {
276      return testPropsAll(prop, 'pfx');
277    } else {
278      return testPropsAll(prop, obj, elem);
279    }
280  };
281
282  docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
283
284  (enableClasses ? ' js ' + classes.join(' ') : '');
285
286  return Modernizr;
287
288})(this, this.document);
289// code.google.com/speed/webp/
290// by rich bradshaw, ryan seddon, and paul irish
291// This test is asynchronous. Watch out.
292
293(function() {
294
295  var image = new Image();
296
297  image.onerror = function() {
298    Modernizr.addTest('webp', false);
299  };
300  image.onload = function() {
301    Modernizr.addTest('webp', function() {
302      return image.width == 1;
303    });
304  };
305
306  image.src = 'data:image/webp;base64,UklGRiwAAABXRUJQVlA4ICAAAAAUAgCdASoBAAEAL/3+/3+CAB/AAAFzrNsAAP5QAAAAAA==';
307
308}());

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.