Use external babel helpers
Reviewed By: vjeux Differential Revision: D2643810 fb-gh-sync-id: a415e2449a98b6070c688c1c250eb8a908b40409
This commit is contained in:
parent
b699526123
commit
b90fe8e2e8
File diff suppressed because it is too large
Load Diff
|
@ -56,6 +56,7 @@
|
||||||
"absolute-path": "^0.0.0",
|
"absolute-path": "^0.0.0",
|
||||||
"art": "^0.10.0",
|
"art": "^0.10.0",
|
||||||
"babel-core": "^6.1.2",
|
"babel-core": "^6.1.2",
|
||||||
|
"babel-plugin-external-helpers-2": "^6.1.4",
|
||||||
"babel-plugin-syntax-async-functions": "^6.0.14",
|
"babel-plugin-syntax-async-functions": "^6.0.14",
|
||||||
"babel-plugin-syntax-class-properties": "^6.0.14",
|
"babel-plugin-syntax-class-properties": "^6.0.14",
|
||||||
"babel-plugin-syntax-flow": "^6.0.14",
|
"babel-plugin-syntax-flow": "^6.0.14",
|
||||||
|
|
|
@ -36,6 +36,7 @@ describe('BundlesLayout', () => {
|
||||||
'polyfills/String.prototype.es6.js',
|
'polyfills/String.prototype.es6.js',
|
||||||
'polyfills/Array.prototype.es6.js',
|
'polyfills/Array.prototype.es6.js',
|
||||||
'polyfills/Array.es6.js',
|
'polyfills/Array.es6.js',
|
||||||
|
'polyfills/babelHelpers.js',
|
||||||
];
|
];
|
||||||
const baseFs = getBaseFs();
|
const baseFs = getBaseFs();
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,21 @@ describe('Resolver', function() {
|
||||||
'polyfills/String.prototype.es6.js',
|
'polyfills/String.prototype.es6.js',
|
||||||
'polyfills/Array.prototype.es6.js',
|
'polyfills/Array.prototype.es6.js',
|
||||||
],
|
],
|
||||||
}
|
},
|
||||||
|
{ id: 'polyfills/babelHelpers.js',
|
||||||
|
isPolyfill: true,
|
||||||
|
path: 'polyfills/babelHelpers.js',
|
||||||
|
dependencies: [
|
||||||
|
'polyfills/prelude.js',
|
||||||
|
'polyfills/require.js',
|
||||||
|
'polyfills/polyfills.js',
|
||||||
|
'polyfills/console.js',
|
||||||
|
'polyfills/error-guard.js',
|
||||||
|
'polyfills/String.prototype.es6.js',
|
||||||
|
'polyfills/Array.prototype.es6.js',
|
||||||
|
'polyfills/Array.es6.js',
|
||||||
|
],
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -211,6 +225,7 @@ describe('Resolver', function() {
|
||||||
'polyfills/String.prototype.es6.js',
|
'polyfills/String.prototype.es6.js',
|
||||||
'polyfills/Array.prototype.es6.js',
|
'polyfills/Array.prototype.es6.js',
|
||||||
'polyfills/Array.es6.js',
|
'polyfills/Array.es6.js',
|
||||||
|
'polyfills/babelHelpers.js',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -120,6 +120,7 @@ class Resolver {
|
||||||
path.join(__dirname, 'polyfills/String.prototype.es6.js'),
|
path.join(__dirname, 'polyfills/String.prototype.es6.js'),
|
||||||
path.join(__dirname, 'polyfills/Array.prototype.es6.js'),
|
path.join(__dirname, 'polyfills/Array.prototype.es6.js'),
|
||||||
path.join(__dirname, 'polyfills/Array.es6.js'),
|
path.join(__dirname, 'polyfills/Array.es6.js'),
|
||||||
|
path.join(__dirname, 'polyfills/babelHelpers.js'),
|
||||||
].concat(this._polyfillModuleNames);
|
].concat(this._polyfillModuleNames);
|
||||||
|
|
||||||
return polyfillModuleNames.map(
|
return polyfillModuleNames.map(
|
||||||
|
|
|
@ -0,0 +1,195 @@
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2015-present, Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD-style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* global self:true */
|
||||||
|
/* eslint-disable strict */
|
||||||
|
|
||||||
|
// Created by running:
|
||||||
|
// require('babel-core').buildExternalHelpers('_extends classCallCheck createClass createRawReactElement defineProperty get inherits objectWithoutProperties possibleConstructorReturn slicedToArray toConsumableArray'.split(' '))
|
||||||
|
// then replacing the `global` reference in the last line to also use `this`.
|
||||||
|
|
||||||
|
(function (global) {
|
||||||
|
var babelHelpers = global.babelHelpers = {};
|
||||||
|
|
||||||
|
babelHelpers.createRawReactElement = (function () {
|
||||||
|
var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7;
|
||||||
|
return function createRawReactElement(type, key, props) {
|
||||||
|
return {
|
||||||
|
$$typeof: REACT_ELEMENT_TYPE,
|
||||||
|
type: type,
|
||||||
|
key: key,
|
||||||
|
ref: null,
|
||||||
|
props: props,
|
||||||
|
_owner: null
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
babelHelpers.classCallCheck = function (instance, Constructor) {
|
||||||
|
if (!(instance instanceof Constructor)) {
|
||||||
|
throw new TypeError("Cannot call a class as a function");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
babelHelpers.createClass = (function () {
|
||||||
|
function defineProperties(target, props) {
|
||||||
|
for (var i = 0; i < props.length; i++) {
|
||||||
|
var descriptor = props[i];
|
||||||
|
descriptor.enumerable = descriptor.enumerable || false;
|
||||||
|
descriptor.configurable = true;
|
||||||
|
if ("value" in descriptor) descriptor.writable = true;
|
||||||
|
Object.defineProperty(target, descriptor.key, descriptor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return function (Constructor, protoProps, staticProps) {
|
||||||
|
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||||
|
if (staticProps) defineProperties(Constructor, staticProps);
|
||||||
|
return Constructor;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
babelHelpers.defineProperty = function (obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
};
|
||||||
|
|
||||||
|
babelHelpers._extends = Object.assign || function (target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i];
|
||||||
|
|
||||||
|
for (var key in source) {
|
||||||
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||||
|
target[key] = source[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
};
|
||||||
|
|
||||||
|
babelHelpers.get = function get(object, property, receiver) {
|
||||||
|
if (object === null) object = Function.prototype;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(object, property);
|
||||||
|
|
||||||
|
if (desc === undefined) {
|
||||||
|
var parent = Object.getPrototypeOf(object);
|
||||||
|
|
||||||
|
if (parent === null) {
|
||||||
|
return undefined;
|
||||||
|
} else {
|
||||||
|
return get(parent, property, receiver);
|
||||||
|
}
|
||||||
|
} else if ("value" in desc) {
|
||||||
|
return desc.value;
|
||||||
|
} else {
|
||||||
|
var getter = desc.get;
|
||||||
|
|
||||||
|
if (getter === undefined) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return getter.call(receiver);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
babelHelpers.inherits = function (subClass, superClass) {
|
||||||
|
if (typeof superClass !== "function" && superClass !== null) {
|
||||||
|
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||||||
|
constructor: {
|
||||||
|
value: subClass,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
configurable: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||||
|
};
|
||||||
|
|
||||||
|
babelHelpers.objectWithoutProperties = function (obj, keys) {
|
||||||
|
var target = {};
|
||||||
|
|
||||||
|
for (var i in obj) {
|
||||||
|
if (keys.indexOf(i) >= 0) continue;
|
||||||
|
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
|
||||||
|
target[i] = obj[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
};
|
||||||
|
|
||||||
|
babelHelpers.possibleConstructorReturn = function (self, call) {
|
||||||
|
if (!self) {
|
||||||
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||||
|
}
|
||||||
|
|
||||||
|
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
||||||
|
};
|
||||||
|
|
||||||
|
babelHelpers.slicedToArray = (function () {
|
||||||
|
function sliceIterator(arr, i) {
|
||||||
|
var _arr = [];
|
||||||
|
var _n = true;
|
||||||
|
var _d = false;
|
||||||
|
var _e = undefined;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
||||||
|
_arr.push(_s.value);
|
||||||
|
|
||||||
|
if (i && _arr.length === i) break;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_d = true;
|
||||||
|
_e = err;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (!_n && _i["return"]) _i["return"]();
|
||||||
|
} finally {
|
||||||
|
if (_d) throw _e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return function (arr, i) {
|
||||||
|
if (Array.isArray(arr)) {
|
||||||
|
return arr;
|
||||||
|
} else if (Symbol.iterator in Object(arr)) {
|
||||||
|
return sliceIterator(arr, i);
|
||||||
|
} else {
|
||||||
|
throw new TypeError("Invalid attempt to destructure non-iterable instance");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
babelHelpers.toConsumableArray = function (arr) {
|
||||||
|
if (Array.isArray(arr)) {
|
||||||
|
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
|
||||||
|
|
||||||
|
return arr2;
|
||||||
|
} else {
|
||||||
|
return Array.from(arr);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})(typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this);
|
|
@ -28,6 +28,7 @@ function transform(src, filename, options) {
|
||||||
filename,
|
filename,
|
||||||
plugins: plugins.concat([
|
plugins: plugins.concat([
|
||||||
// Keep in sync with packager/react-packager/.babelrc
|
// Keep in sync with packager/react-packager/.babelrc
|
||||||
|
'external-helpers-2',
|
||||||
'syntax-async-functions',
|
'syntax-async-functions',
|
||||||
'syntax-class-properties',
|
'syntax-class-properties',
|
||||||
'syntax-jsx',
|
'syntax-jsx',
|
||||||
|
|
Loading…
Reference in New Issue