Skip to content

Instantly share code, notes, and snippets.

@jkrems
Created December 10, 2014 05:17
Show Gist options
  • Save jkrems/22260ee220452ec03131 to your computer and use it in GitHub Desktop.
Save jkrems/22260ee220452ec03131 to your computer and use it in GitHub Desktop.
What could go wrong..?
import * as assert from 'assert';
import { MY_FLAG } from './trust';
assert.ok(MY_FLAG === 1);
setTimeout(function() {
try {
assert.ok(MY_FLAG === 1);
} catch (err) {
console.log('Just ES6 things.');
}
}, 10);
export let MY_FLAG = 1;
setTimeout(function() { MY_FLAG = 0; }, 0);
@jkrems
Copy link
Author

jkrems commented Dec 10, 2014

More realistic example:

// logger.js
export let logger = null;
export function initLogger(options) { logger = console; }
export function resetLogger() { logger = null; }
import { logger, initLogger } from './logger';
// Hey, let me bootstrap my framework!
if (config.log) { logger.init(config.log); }
// ...
if (logger) {
  // huh? how can this be null if I just checked it?
  page.on('changed', () => logger.info('New page load'));
}
// ...
// ... (and possibly in a different file)
// ...
import { resetLogger, logger } from './logger';
if (config.isProduction) { // TICKET-3411: Don't spam console in production
  resetLogger();
}
logger && logger.info('Yes, this change totally worked!');

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment