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); }