mirror of
https://github.com/hanzoai/react.git
synced 2026-09-24 17:02:27 +00:00
Fix missing stacks in WWW warnings (#17638)
This commit is contained in:
@@ -26,6 +26,8 @@ export function error(format, ...args) {
|
||||
}
|
||||
|
||||
function printWarning(level, format, args) {
|
||||
// When changing this logic, you might want to also
|
||||
// update consoleWithStackDev.www.js as well.
|
||||
if (__DEV__) {
|
||||
const hasExistingStack =
|
||||
args.length > 0 &&
|
||||
|
||||
@@ -8,15 +8,43 @@
|
||||
// This refers to a WWW module.
|
||||
const warningWWW = require('warning');
|
||||
|
||||
export function warn() {
|
||||
// TODO: use different level for "warn".
|
||||
const args = Array.prototype.slice.call(arguments);
|
||||
args.unshift(false);
|
||||
warningWWW.apply(null, args);
|
||||
export function warn(format, ...args) {
|
||||
if (__DEV__) {
|
||||
printWarning('warn', format, args);
|
||||
}
|
||||
}
|
||||
|
||||
export function error() {
|
||||
const args = Array.prototype.slice.call(arguments);
|
||||
args.unshift(false);
|
||||
warningWWW.apply(null, args);
|
||||
export function error(format, ...args) {
|
||||
if (__DEV__) {
|
||||
printWarning('error', format, args);
|
||||
}
|
||||
}
|
||||
|
||||
function printWarning(level, format, args) {
|
||||
if (__DEV__) {
|
||||
const hasExistingStack =
|
||||
args.length > 0 &&
|
||||
typeof args[args.length - 1] === 'string' &&
|
||||
args[args.length - 1].indexOf('\n in') === 0;
|
||||
|
||||
if (!hasExistingStack) {
|
||||
const React = require('react');
|
||||
const ReactSharedInternals =
|
||||
React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
||||
// Defensive in case this is fired before React is initialized.
|
||||
if (ReactSharedInternals != null) {
|
||||
const ReactDebugCurrentFrame =
|
||||
ReactSharedInternals.ReactDebugCurrentFrame;
|
||||
const stack = ReactDebugCurrentFrame.getStackAddendum();
|
||||
if (stack !== '') {
|
||||
format += '%s';
|
||||
args.push(stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO: don't ignore level and pass it down somewhere too.
|
||||
args.unshift(format);
|
||||
args.unshift(false);
|
||||
warningWWW.apply(null, args);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user