fix(rn) remove no longer needed hack
This commit is contained in:
parent
cce4c1ba9d
commit
0e545ef253
|
@ -6,33 +6,6 @@ import 'react-native-url-polyfill/auto'; // Complete URL polyfill.
|
||||||
|
|
||||||
import Storage from './Storage';
|
import Storage from './Storage';
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the first common prototype of two specified Objects (treating the
|
|
||||||
* objects themselves as prototypes as well).
|
|
||||||
*
|
|
||||||
* @param {Object} a - The first prototype chain to climb in search of a common
|
|
||||||
* prototype.
|
|
||||||
* @param {Object} b - The second prototype chain to climb in search of a common
|
|
||||||
* prototype.
|
|
||||||
* @returns {Object|undefined} - The first common prototype of a and b.
|
|
||||||
*/
|
|
||||||
function _getCommonPrototype(a, b) {
|
|
||||||
// Allow the arguments to be prototypes themselves.
|
|
||||||
if (a === b) {
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
let p;
|
|
||||||
|
|
||||||
if (((p = Object.getPrototypeOf(a)) && (p = _getCommonPrototype(b, p)))
|
|
||||||
|| ((p = Object.getPrototypeOf(b))
|
|
||||||
&& (p = _getCommonPrototype(a, p)))) {
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements an absolute minimum of the common logic of
|
* Implements an absolute minimum of the common logic of
|
||||||
* {@code Document.querySelector} and {@code Element.querySelector}. Implements
|
* {@code Document.querySelector} and {@code Element.querySelector}. Implements
|
||||||
|
@ -264,79 +237,6 @@ function _visitNode(node, callback) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME There is a weird infinite loop related to console.log and
|
|
||||||
// Document and/or Element at the time of this writing. Work around it
|
|
||||||
// by patching Node and/or overriding console.log.
|
|
||||||
const documentPrototype = Object.getPrototypeOf(document);
|
|
||||||
const nodePrototype
|
|
||||||
= _getCommonPrototype(documentPrototype, elementPrototype);
|
|
||||||
|
|
||||||
if (nodePrototype
|
|
||||||
|
|
||||||
// XXX The intention was to find Node from which Document and
|
|
||||||
// Element extend. If for whatever reason we've reached Object,
|
|
||||||
// then it doesn't sound like what expected.
|
|
||||||
&& nodePrototype !== Object.getPrototypeOf({})) {
|
|
||||||
// Override console.log.
|
|
||||||
const { console } = global;
|
|
||||||
|
|
||||||
if (console) {
|
|
||||||
const loggerLevels = require('@jitsi/logger').levels;
|
|
||||||
|
|
||||||
Object.keys(loggerLevels).forEach(key => {
|
|
||||||
const level = loggerLevels[key];
|
|
||||||
const consoleLog = console[level];
|
|
||||||
|
|
||||||
/* eslint-disable prefer-rest-params */
|
|
||||||
|
|
||||||
if (typeof consoleLog === 'function') {
|
|
||||||
console[level] = function(...args) {
|
|
||||||
// XXX If console's disableYellowBox is truthy, then
|
|
||||||
// react-native will not automatically display the
|
|
||||||
// yellow box for the warn level. However, it will
|
|
||||||
// still display the red box for the error level.
|
|
||||||
// But I disable the yellow box when I don't want to
|
|
||||||
// have react-native automatically show me the
|
|
||||||
// console's output just like in the Release build
|
|
||||||
// configuration. Because I didn't find a way to
|
|
||||||
// disable the red box, downgrade the error level to
|
|
||||||
// warn. The red box will still be displayed but not
|
|
||||||
// for the error level.
|
|
||||||
if (console.disableYellowBox && level === 'error') {
|
|
||||||
console.warn(...args);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { length } = args;
|
|
||||||
|
|
||||||
for (let i = 0; i < length; ++i) {
|
|
||||||
let arg = args[i];
|
|
||||||
|
|
||||||
if (arg
|
|
||||||
&& typeof arg !== 'string'
|
|
||||||
|
|
||||||
// Limit the console.log override to
|
|
||||||
// Node (instances).
|
|
||||||
&& nodePrototype.isPrototypeOf(arg)) {
|
|
||||||
const toString = arg.toString;
|
|
||||||
|
|
||||||
if (toString) {
|
|
||||||
arg = toString.call(arg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
args[i] = arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
consoleLog.apply(this, args);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/* eslint-enable prefer-rest-params */
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
global.document = document;
|
global.document = document;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue