vendor/assets/javascripts/webshims/shims/combos/25.js in webshims-rails-1.12.5 vs vendor/assets/javascripts/webshims/shims/combos/25.js in webshims-rails-1.12.7
- old
+ new
@@ -223,11 +223,13 @@
webshims.isReady('swfmini', true);
;// Copyright 2009-2012 by contributors, MIT License
// vim: ts=4 sts=4 sw=4 expandtab
(function () {
-
+setTimeout(function(){
+ webshims.isReady('es5', true);
+});
/**
* Brings an environment as close to ECMAScript 5 compliance
* as is possible with the facilities of erstwhile engines.
*
* Annotated ES5: http://es5.github.com/ (specific links below)
@@ -1662,14 +1664,73 @@
return descriptor;
};
}
+webshims.isReady('es5', true);
})(webshims.$, webshims);
-;//DOM-Extension helper
+;
+//this might was already extended by ES5 shim feature
+(function($){
+ "use strict";
+ var webshims = window.webshims;
+ if(webshims.defineProperties){return;}
+ var defineProperty = 'defineProperty';
+ var has = Object.prototype.hasOwnProperty;
+ var descProps = ['configurable', 'enumerable', 'writable'];
+ var extendUndefined = function(prop){
+ for(var i = 0; i < 3; i++){
+ if(prop[descProps[i]] === undefined && (descProps[i] !== 'writable' || prop.value !== undefined)){
+ prop[descProps[i]] = true;
+ }
+ }
+ };
+
+ var extendProps = function(props){
+ if(props){
+ for(var i in props){
+ if(has.call(props, i)){
+ extendUndefined(props[i]);
+ }
+ }
+ }
+ };
+
+ if(Object.create){
+ webshims.objectCreate = function(proto, props, opts){
+ extendProps(props);
+ var o = Object.create(proto, props);
+ if(opts){
+ o.options = $.extend(true, {}, o.options || {}, opts);
+ opts = o.options;
+ }
+ if(o._create && $.isFunction(o._create)){
+ o._create(opts);
+ }
+ return o;
+ };
+ }
+
+ if(Object[defineProperty]){
+ webshims[defineProperty] = function(obj, prop, desc){
+ extendUndefined(desc);
+ return Object[defineProperty](obj, prop, desc);
+ };
+ }
+ if(Object.defineProperties){
+ webshims.defineProperties = function(obj, props){
+ extendProps(props);
+ return Object.defineProperties(obj, props);
+ };
+ }
+ webshims.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+ webshims.getPrototypeOf = Object.getPrototypeOf;
+})(window.webshims.$);
+//DOM-Extension helper
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
@@ -2300,10 +2361,17 @@
this._create();
this.height = docObserve.getHeight();
this.width = docObserve.getWidth();
setInterval(this.test, 999);
$(this.test);
+ if($.support.boxSizing == null){
+ $(function(){
+ if($.support.boxSizing){
+ docObserve.handler({type: 'boxsizing'});
+ }
+ });
+ }
webshims.ready('WINDOWLOAD', this.test);
$(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
$(window).on('resize', this.handler);
}
}
@@ -2311,17 +2379,11 @@
webshims.docObserve = function(){
webshims.ready('DOM', function(){
docObserve.start();
- if($.support.boxSizing == null){
- $(function(){
- if($.support.boxSizing){
- docObserve.handler({type: 'boxsizing'});
- }
- });
- }
+
});
};
return function(nativeElem, shadowElem, opts){
if(nativeElem && shadowElem){
opts = opts || {};
@@ -3203,11 +3265,10 @@
});
};
var wsCfg = webshims.cfg;
var options = wsCfg.mediaelement;
- var hasFullTrackSupport;
var hasSwf;
if(!options){
webshims.error("mediaelement wasn't implemented but loaded");
return;
}
@@ -3245,15 +3306,13 @@
bugs.track = true;
}
}
})();
}
- hasFullTrackSupport = Modernizr.track && !bugs.track;
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
- $('html').addClass(hasSwf ? 'swf' : 'no-swf');
var mediaelement = webshims.mediaelement;
mediaelement.parseRtmp = function(data){
var src = data.src.split('://');
var paths = src[1].split('/');
@@ -3628,10 +3687,13 @@
var data = webshims.data(this, 'mediaelement');
selectSource(this, data);
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
supLoad.prop._supvalue.apply(this, arguments);
}
+ if(!loadTrackUi.loaded && $('track', this).length){
+ loadTrackUi();
+ }
$(this).triggerHandler('wsmediareload');
}
}
});
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
@@ -3698,17 +3760,11 @@
}
});
}
};
- if(hasFullTrackSupport){
- webshims.defineProperty(TextTrack.prototype, 'shimActiveCues', {
- get: function(){
- return this._shimActiveCues || this.activeCues;
- }
- });
- }
+
//set native implementation ready, before swf api is retested
if(hasNative){
webshims.isReady('mediaelement-core', true);
initMediaElements();
webshims.ready('WINDOWLOAD mediaelement', loadThird);
@@ -4474,11 +4530,11 @@
box.insertBefore(elem);
if(hasNative){
- $.extend(data, {volume: $.prop(elem, 'volume'), muted: $.prop(elem, 'muted')});
+ $.extend(data, {volume: $.prop(elem, 'volume'), muted: $.prop(elem, 'muted'), paused: $.prop(elem, 'paused')});
}
webshims.addShadowDom(elem, box);
if(!webshims.data(elem, 'mediaelement')){
webshims.data(elem, 'mediaelement', data);
@@ -4512,9 +4568,12 @@
mediaelement.jarisEvent[data.id] = function(jaris){
if(jaris.type == 'ready'){
var onReady = function(){
if(data.api){
+ if(!data.paused){
+ data.api.api_play();
+ }
if(bufferSrc(elem)){
data.api.api_preload();
}
onEvent.ready(jaris, data);
}