diff --git a/browser.js b/browser.js index f7dd0820f..04b00ce9e 100644 --- a/browser.js +++ b/browser.js @@ -263,9 +263,14 @@ function getBindingChain (logger) { function set (self, opts, rootLogger, level) { // override the current log functions with either `noop` or the base log function - self[level] = levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger) - ? noop - : rootLogger[baseLogFunctionSymbol][level] + Object.defineProperty(self, level, { + value: (levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger) + ? noop + : rootLogger[baseLogFunctionSymbol][level]), + writable: true, + enumerable: true, + configurable: true + }) if (!opts.transmit && self[level] === noop) { return diff --git a/test/browser-early-console-freeze.test.js b/test/browser-early-console-freeze.test.js new file mode 100644 index 000000000..942abfa6f --- /dev/null +++ b/test/browser-early-console-freeze.test.js @@ -0,0 +1,12 @@ +'use strict' +Object.freeze(console) +const test = require('tape') +const pino = require('../browser') + +test('silent level', ({ end, fail, pass }) => { + pino({ + level: 'silent', + browser: { } + }) + end() +})