Sha256: a3c8f77dac70f47006657a1478a00992a699f0d24ad4b25d0c346b1f7b44b44b

Contents?: true

Size: 1.6 KB

Versions: 31

Compression:

Stored size: 1.6 KB

Contents

/* */ 
var global    = require('./$.global')
  , core      = require('./$.core')
  , PROTOTYPE = 'prototype';
var ctx = function(fn, that){
  return function(){
    return fn.apply(that, arguments);
  };
};
var $def = function(type, name, source){
  var key, own, out, exp
    , isGlobal = type & $def.G
    , isProto  = type & $def.P
    , target   = isGlobal ? global : type & $def.S
        ? global[name] : (global[name] || {})[PROTOTYPE]
    , exports  = isGlobal ? core : core[name] || (core[name] = {});
  if(isGlobal)source = name;
  for(key in source){
    // contains in native
    own = !(type & $def.F) && target && key in target;
    if(own && key in exports)continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    if(isGlobal && typeof target[key] != 'function')exp = source[key];
    // bind timers to global for call from export context
    else if(type & $def.B && own)exp = ctx(out, global);
    // wrap global constructors for prevent change them in library
    else if(type & $def.W && target[key] == out)!function(C){
      exp = function(param){
        return this instanceof C ? new C(param) : C(param);
      };
      exp[PROTOTYPE] = C[PROTOTYPE];
    }(out);
    else exp = isProto && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export
    exports[key] = exp;
    if(isProto)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
  }
};
// type bitmap
$def.F = 1;  // forced
$def.G = 2;  // global
$def.S = 4;  // static
$def.P = 8;  // proto
$def.B = 16; // bind
$def.W = 32; // wrap
module.exports = $def;

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
sequenceserver-3.1.3 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-3.1.2 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-3.1.1 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-3.1.0 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-3.0.1 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-3.0 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.2.0 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.1.0 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc8 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc7 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc6 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc5 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc4 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc3 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc2 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.rc1 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.beta4 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.beta3 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js
sequenceserver-2.0.0.beta1 public/vendor/npm/core-js@1.1.2/modules/library/$.def.js