Fix Range Error : Maximum Call Stack Size Exceeded
This commit fixes the `capture` console.log, with an alternate logic to resolve the objects with correct scope. Refer the PR FreeCodeCamp/FreeCodeCamp#6681 discussion for details. Tested locally. Updated fix to resolve broken CI
This commit is contained in:
@ -1831,16 +1831,22 @@
|
|||||||
],
|
],
|
||||||
"tail": [
|
"tail": [
|
||||||
"var logOutput = \"\";",
|
"var logOutput = \"\";",
|
||||||
"var oldLog = console.log;",
|
"var originalConsole = console",
|
||||||
"function capture() {",
|
"function capture() {",
|
||||||
|
" var nativeLog = console.log;",
|
||||||
" console.log = function (message) {",
|
" console.log = function (message) {",
|
||||||
" logOutput = message.trim();",
|
" if(message && message.trim) logOutput = message.trim();",
|
||||||
" oldLog.apply(console, arguments);",
|
" if(nativeLog.apply) {",
|
||||||
|
" nativeLog.apply(originalConsole, arguments);",
|
||||||
|
" } else {",
|
||||||
|
" var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');",
|
||||||
|
" nativeLog(nativeMsg);",
|
||||||
|
" }",
|
||||||
" };",
|
" };",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"function uncapture() {",
|
"function uncapture() {",
|
||||||
" console.log = oldLog;",
|
" console.log = originalConsole.log;",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"if (typeof myFunction !== \"function\") { ",
|
"if (typeof myFunction !== \"function\") { ",
|
||||||
@ -1891,16 +1897,22 @@
|
|||||||
"releasedOn": "January 1, 2016",
|
"releasedOn": "January 1, 2016",
|
||||||
"head": [
|
"head": [
|
||||||
"var logOutput = \"\";",
|
"var logOutput = \"\";",
|
||||||
"var oldLog = console.log;",
|
"var originalConsole = console",
|
||||||
"function capture() {",
|
"function capture() {",
|
||||||
|
" var nativeLog = console.log;",
|
||||||
" console.log = function (message) {",
|
" console.log = function (message) {",
|
||||||
" logOutput = message + ''.trim();",
|
" if(message) logOutput = JSON.stringify(message).trim();",
|
||||||
" oldLog.apply(console, arguments);",
|
" if(nativeLog.apply) {",
|
||||||
|
" nativeLog.apply(originalConsole, arguments);",
|
||||||
|
" } else {",
|
||||||
|
" var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');",
|
||||||
|
" nativeLog(nativeMsg);",
|
||||||
|
" }",
|
||||||
" };",
|
" };",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"function uncapture() {",
|
"function uncapture() {",
|
||||||
" console.log = oldLog;",
|
" console.log = originalConsole.log;",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"capture();"
|
"capture();"
|
||||||
@ -1950,16 +1962,22 @@
|
|||||||
"releasedOn": "January 1, 2016",
|
"releasedOn": "January 1, 2016",
|
||||||
"head": [
|
"head": [
|
||||||
"var logOutput = \"\";",
|
"var logOutput = \"\";",
|
||||||
"var oldLog = console.log;",
|
"var originalConsole = console",
|
||||||
"function capture() {",
|
"function capture() {",
|
||||||
|
" var nativeLog = console.log;",
|
||||||
" console.log = function (message) {",
|
" console.log = function (message) {",
|
||||||
" logOutput = message;",
|
" logOutput = message;",
|
||||||
" oldLog.apply(console, arguments);",
|
" if(nativeLog.apply) {",
|
||||||
|
" nativeLog.apply(originalConsole, arguments);",
|
||||||
|
" } else {",
|
||||||
|
" var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');",
|
||||||
|
" nativeLog(nativeMsg);",
|
||||||
|
" }",
|
||||||
" };",
|
" };",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"function uncapture() {",
|
"function uncapture() {",
|
||||||
" console.log = oldLog;",
|
" console.log = originalConsole.log;",
|
||||||
"}",
|
"}",
|
||||||
"var oopsGlobal;",
|
"var oopsGlobal;",
|
||||||
"capture();"
|
"capture();"
|
||||||
@ -2018,16 +2036,22 @@
|
|||||||
"releasedOn": "January 1, 2016",
|
"releasedOn": "January 1, 2016",
|
||||||
"head": [
|
"head": [
|
||||||
"var logOutput = \"\";",
|
"var logOutput = \"\";",
|
||||||
"var oldLog = console.log;",
|
"var originalConsole = console",
|
||||||
"function capture() {",
|
"function capture() {",
|
||||||
|
" var nativeLog = console.log;",
|
||||||
" console.log = function (message) {",
|
" console.log = function (message) {",
|
||||||
" logOutput = message;",
|
" logOutput = message;",
|
||||||
" oldLog.apply(console, arguments);",
|
" if(nativeLog.apply) {",
|
||||||
|
" nativeLog.apply(originalConsole, arguments);",
|
||||||
|
" } else {",
|
||||||
|
" var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');",
|
||||||
|
" nativeLog(nativeMsg);",
|
||||||
|
" }",
|
||||||
" };",
|
" };",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"function uncapture() {",
|
"function uncapture() {",
|
||||||
" console.log = oldLog;",
|
" console.log = originalConsole.log;",
|
||||||
"}",
|
"}",
|
||||||
""
|
""
|
||||||
],
|
],
|
||||||
@ -2192,16 +2216,22 @@
|
|||||||
"releasedOn": "January 1, 2016",
|
"releasedOn": "January 1, 2016",
|
||||||
"head": [
|
"head": [
|
||||||
"var logOutput = [];",
|
"var logOutput = [];",
|
||||||
"var oldLog = console.log;",
|
"var originalConsole = console",
|
||||||
"function capture() {",
|
"function capture() {",
|
||||||
|
" var nativeLog = console.log;",
|
||||||
" console.log = function (message) {",
|
" console.log = function (message) {",
|
||||||
" logOutput.push(message);",
|
" logOutput.push(message);",
|
||||||
" oldLog.apply(console, arguments);",
|
" if(nativeLog.apply) {",
|
||||||
|
" nativeLog.apply(originalConsole, arguments);",
|
||||||
|
" } else {",
|
||||||
|
" var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');",
|
||||||
|
" nativeLog(nativeMsg);",
|
||||||
|
" }",
|
||||||
" };",
|
" };",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"function uncapture() {",
|
"function uncapture() {",
|
||||||
" console.log = oldLog;",
|
" console.log = originalConsole.log;",
|
||||||
"}",
|
"}",
|
||||||
"",
|
"",
|
||||||
"capture();"
|
"capture();"
|
||||||
|
Reference in New Issue
Block a user