Вход Регистрация
Файл: media/player/videojs/plugins/videojs-vast-vpaid-master/bin/ie8fix.js
Строк: 206
<?php
(function () {
  function 
isOldIE() {
    var 
version getInternetExplorerVersion();
    if (
version === -1) {
      return 
false;
    }

    return 
version 9;
  }

  
/**
   * Returns the version of Internet Explorer or a -1 (indicating the use of another browser).
   * Source: https://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx
   * @returns {number} the version of Internet Explorer or a -1 (indicating the use of another browser).
   */
  
function getInternetExplorerVersion() {
    var 
rv = -1;

    if (
navigator.appName == 'Microsoft Internet Explorer') {
      var 
ua navigator.userAgent;
      var 
re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
      var 
res re.exec(ua);
      if (
res !== null) {
        
rv parseFloat(res[1]);
      }
    }

    return 
rv;
  }

  function 
isDom(obj) {
    return (
typeof obj === "object") &&
      (
obj.nodeType === 1) && (typeof obj.style === "object") &&
      (
typeof obj.ownerDocument === "object");
  }

  if (
isOldIE()) {
    if (
Object.videoVastMonkeyPatched) {
      return;
    }

    (function () {

      var 
original Object.defineProperty;

      
Object.defineProperty = function (objpropdescription) {
        if (
isDom(obj)) {
          return 
original(objpropdescription);
        }
        if (
description.get || description.set) {
          throw new 
Error('browser doesn't support getters and setters');
        }
        obj[prop] = description.value;
      };

    })();

    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
      var buffer = [];
      var key;

      // Non-enumerable properties cannot be discovered but can be checked for by name.
      // Define those used internally by JS to allow an incomplete solution
      var commonProps = ['
length', "name", "arguments", "caller", "prototype", "observe", "unobserve"];

      if (typeof object === '
undefined' || object === null) {
        throw new TypeError('
Cannot convert undefined or null to object');
      }

      object = Object(object);

      // Enumerable properties only
      for (key in object) {
        if (Object.prototype.hasOwnProperty.call(object, key)) {
          buffer.push(key);
        }
      }

      // Check for and add the common non-enumerable properties
      for (var i = 0, s = commonProps.length; i < s; i++) {
        if (commonProps[i] in object) buffer.push(commonProps[i]);
      }

      return buffer;
    };

    (function () {
      var original = Object.getOwnPropertyDescriptor;
      Object.getOwnPropertyDescriptor = function(object, property) {
        if (isDom(object)) {
          return original(object, property);
        }else {
          return {
            writable: true,
            configurable: true,
            enumerable: false,
            value: object[property]
          };
        }
      };
    })();


    Object.videoVastMonkeyPatched = true;
  }


  if (typeof Object.create != '
function') {
    // Production steps of ECMA-262, Edition 5, 15.2.3.5
    // Reference: http://es5.github.io/#x15.2.3.5
    Object.create = (function () {
      // To save on memory, use a shared constructor
      function Temp() {
      }

      // make a safe reference to Object.prototype.hasOwnProperty
      var hasOwn = Object.prototype.hasOwnProperty;

      return function (O) {
        // 1. If Type(O) is not Object or Null throw a TypeError exception.
        if (typeof O != '
object') {
          throw new TypeError('
Object prototype may only be an Object or null');
        }

        // 2. Let obj be the result of creating a new object as if by the
        //    expression new Object() where Object is the standard built-in
        //    constructor with that name
        // 3. Set the [[Prototype]] internal property of obj to O.
        Temp.prototype = O;
        var obj = new Temp();
        Temp.prototype = null; // Let'
s not keep a stray reference to O...

        
// 4. If the argument Properties is present and not undefined, add
        //    own properties to obj as if by calling the standard built-in
        //    function Object.defineProperties with arguments obj and
        //    Properties.
        
if (arguments.length 1) {
          
// Object.defineProperties does ToObject on its first argument.
          
var Properties Object(arguments[1]);
          for (var 
prop in Properties) {
            if (
hasOwn.call(Propertiesprop)) {
              
obj[prop] = Properties[prop];
            }
          }
        }

        
// 5. Return obj
        
return obj;
      };
    })();
  }
  
/* jshint ignore:start */
  
if ( typeof Object.getPrototypeOf !== "function" ) {
    if ( 
typeof "test".__proto__ === "object" ) {
      
Object.getPrototypeOf = function(object){
        return 
object.__proto__;
      };
    } else {
      
Object.getPrototypeOf = function(object){
        
// May break if the constructor has been tampered with
        
return object.constructor.prototype;
      };
    }
  }
  
/* jshint ignore:end */
})();
?>
Онлайн: 0
Реклама