yeet
This commit is contained in:
65
node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js
generated
vendored
Normal file
65
node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/* eslint-disable */
|
||||
|
||||
/**
|
||||
* Copyright 2013-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* From React 16.0.0
|
||||
*/
|
||||
import invariant from 'fbjs/lib/invariant';
|
||||
|
||||
var twoArgumentPooler = function twoArgumentPooler(a1, a2) {
|
||||
var Klass = this;
|
||||
|
||||
if (Klass.instancePool.length) {
|
||||
var instance = Klass.instancePool.pop();
|
||||
Klass.call(instance, a1, a2);
|
||||
return instance;
|
||||
} else {
|
||||
return new Klass(a1, a2);
|
||||
}
|
||||
};
|
||||
|
||||
var standardReleaser = function standardReleaser(instance) {
|
||||
var Klass = this;
|
||||
instance.destructor();
|
||||
|
||||
if (Klass.instancePool.length < Klass.poolSize) {
|
||||
Klass.instancePool.push(instance);
|
||||
}
|
||||
};
|
||||
|
||||
var DEFAULT_POOL_SIZE = 10;
|
||||
var DEFAULT_POOLER = twoArgumentPooler;
|
||||
/**
|
||||
* Augments `CopyConstructor` to be a poolable class, augmenting only the class
|
||||
* itself (statically) not adding any prototypical fields. Any CopyConstructor
|
||||
* you give this may have a `poolSize` property, and will look for a
|
||||
* prototypical `destructor` on instances.
|
||||
*
|
||||
* @param {Function} CopyConstructor Constructor that can be used to reset.
|
||||
* @param {Function} pooler Customizable pooler.
|
||||
*/
|
||||
|
||||
var addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {
|
||||
// Casting as any so that flow ignores the actual implementation and trusts
|
||||
// it to match the type we declared
|
||||
var NewKlass = CopyConstructor;
|
||||
NewKlass.instancePool = [];
|
||||
NewKlass.getPooled = pooler || DEFAULT_POOLER;
|
||||
|
||||
if (!NewKlass.poolSize) {
|
||||
NewKlass.poolSize = DEFAULT_POOL_SIZE;
|
||||
}
|
||||
|
||||
NewKlass.release = standardReleaser;
|
||||
return NewKlass;
|
||||
};
|
||||
|
||||
var PooledClass = {
|
||||
addPoolingTo: addPoolingTo,
|
||||
twoArgumentPooler: twoArgumentPooler
|
||||
};
|
||||
export default PooledClass;
|
Reference in New Issue
Block a user