Skip to content

Commit

Permalink
Merge pull request #17479 from bobisjan/restore-window-performance-fa…
Browse files Browse the repository at this point in the history
…llback-in-fastboot

Restore fallback for `window.performance` in FastBoot
  • Loading branch information
rwjblue committed Jan 16, 2019
2 parents 32a3d7a + 4bb5328 commit ecf605a
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion packages/@ember/instrumentation/index.ts
Expand Up @@ -105,7 +105,7 @@ function populateListeners(name: string) {
}

const time = ((): (() => number) => {
let perf: MaybePerf = 'undefined' !== typeof window ? window.performance : {};
let perf: MaybePerf = 'undefined' !== typeof window ? window.performance || {} : {};
let fn = perf.now || perf.mozNow || perf.webkitNow || perf.msNow || perf.oNow;

return fn ? fn.bind(perf) : Date.now;
Expand Down
27 changes: 27 additions & 0 deletions tests/node/instrumentation-test.js
@@ -0,0 +1,27 @@
'use strict';

var path = require('path');
var distPath = path.join(__dirname, '../../dist');
var emberPath = path.join(distPath, 'ember.debug');

QUnit.module('instrumentation', function(hooks) {
hooks.afterEach(function() {
delete global.Ember;
delete require.cache[emberPath + '.js'];
});

QUnit.test('it works in FastBoot environment', function(assert) {
var _originalWindow = global.window;

global.window = {}; // mock window without `performance` property
var Ember = require(emberPath);

var result = Ember.instrument('render', {}, function() {
return 'hello';
});

assert.equal(result, 'hello', 'called block');

global.window = _originalWindow;
});
});

0 comments on commit ecf605a

Please sign in to comment.