Replaced uses of var with const/let

This commit is contained in:
Steve Gravrock
2022-06-08 19:07:43 -07:00
parent 4af86f5398
commit 135ff20123
73 changed files with 1384 additions and 1391 deletions

View File

@@ -4,8 +4,8 @@ getJasmineRequireObj().CallTracker = function(j$) {
* @since 2.0.0
*/
function CallTracker() {
var calls = [];
var opts = {};
let calls = [];
const opts = {};
this.track = function(context) {
if (opts.cloneArgs) {
@@ -45,7 +45,7 @@ getJasmineRequireObj().CallTracker = function(j$) {
* @return {Array}
*/
this.argsFor = function(index) {
var call = calls[index];
const call = calls[index];
return call ? call.args : [];
};
@@ -58,7 +58,7 @@ getJasmineRequireObj().CallTracker = function(j$) {
* @return {Object?}
*/
this.thisFor = function(index) {
var call = calls[index];
const call = calls[index];
return call ? call.object : undefined;
};
@@ -81,12 +81,7 @@ getJasmineRequireObj().CallTracker = function(j$) {
* @return {Array}
*/
this.allArgs = function() {
var callArgs = [];
for (var i = 0; i < calls.length; i++) {
callArgs.push(calls[i].args);
}
return callArgs;
return calls.map(c => c.args);
};
/**

View File

@@ -1,15 +1,15 @@
getJasmineRequireObj().clearStack = function(j$) {
var maxInlineCallCount = 10;
const maxInlineCallCount = 10;
function messageChannelImpl(global, setTimeout) {
var channel = new global.MessageChannel(),
head = {},
tail = head;
const channel = new global.MessageChannel();
let head = {};
let tail = head;
var taskRunning = false;
let taskRunning = false;
channel.port1.onmessage = function() {
head = head.next;
var task = head.task;
const task = head.task;
delete head.task;
if (taskRunning) {
@@ -24,7 +24,7 @@ getJasmineRequireObj().clearStack = function(j$) {
}
};
var currentCallCount = 0;
let currentCallCount = 0;
return function clearStack(fn) {
currentCallCount++;
@@ -39,14 +39,14 @@ getJasmineRequireObj().clearStack = function(j$) {
}
function getClearStack(global) {
var currentCallCount = 0;
var realSetTimeout = global.setTimeout;
var setTimeoutImpl = function clearStack(fn) {
let currentCallCount = 0;
const realSetTimeout = global.setTimeout;
const setTimeoutImpl = function clearStack(fn) {
Function.prototype.apply.apply(realSetTimeout, [global, [fn, 0]]);
};
if (j$.isFunction_(global.setImmediate)) {
var realSetImmediate = global.setImmediate;
const realSetImmediate = global.setImmediate;
return function(fn) {
currentCallCount++;

View File

@@ -1,6 +1,6 @@
getJasmineRequireObj().Clock = function() {
/* global process */
var NODE_JS =
const NODE_JS =
typeof process !== 'undefined' &&
process.versions &&
typeof process.versions.node === 'string';
@@ -14,7 +14,7 @@ getJasmineRequireObj().Clock = function() {
* @hideconstructor
*/
function Clock(global, delayedFunctionSchedulerFactory, mockDate) {
var self = this,
const self = this,
realTimingFunctions = {
setTimeout: global.setTimeout,
clearTimeout: global.clearTimeout,
@@ -26,10 +26,10 @@ getJasmineRequireObj().Clock = function() {
clearTimeout: clearTimeout,
setInterval: setInterval,
clearInterval: clearInterval
},
installed = false,
delayedFunctionScheduler,
timer;
};
let installed = false;
let delayedFunctionScheduler;
let timer;
self.FakeTimeout = FakeTimeout;
@@ -151,7 +151,7 @@ getJasmineRequireObj().Clock = function() {
}
function replace(dest, source) {
for (var prop in source) {
for (const prop in source) {
dest[prop] = source[prop];
}
}
@@ -165,7 +165,7 @@ getJasmineRequireObj().Clock = function() {
);
}
var timeout = new FakeTimeout();
const timeout = new FakeTimeout();
delayedFunctionScheduler.scheduleFunction(
fn,
@@ -192,7 +192,7 @@ getJasmineRequireObj().Clock = function() {
);
}
var timeout = new FakeTimeout();
const timeout = new FakeTimeout();
delayedFunctionScheduler.scheduleFunction(
fn,

View File

@@ -1,15 +1,15 @@
getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
function DelayedFunctionScheduler() {
var self = this;
var scheduledLookup = [];
var scheduledFunctions = {};
var currentTime = 0;
var delayedFnCount = 0;
var deletedKeys = [];
const self = this;
const scheduledLookup = [];
const scheduledFunctions = {};
let currentTime = 0;
let delayedFnCount = 0;
let deletedKeys = [];
self.tick = function(millis, tickDate) {
millis = millis || 0;
var endTime = currentTime + millis;
const endTime = currentTime + millis;
runScheduledFunctions(endTime, tickDate);
};
@@ -22,7 +22,7 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
timeoutKey,
runAtMillis
) {
var f;
let f;
if (typeof funcToCall === 'string') {
f = function() {
// eslint-disable-next-line no-eval
@@ -36,7 +36,7 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
timeoutKey = timeoutKey || ++delayedFnCount;
runAtMillis = runAtMillis || currentTime + millis;
var funcToSchedule = {
const funcToSchedule = {
runAtMillis: runAtMillis,
funcToCall: f,
recurring: recurring,
@@ -61,9 +61,9 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
self.removeFunctionWithId = function(timeoutKey) {
deletedKeys.push(timeoutKey);
for (var runAtMillis in scheduledFunctions) {
var funcs = scheduledFunctions[runAtMillis];
var i = indexOfFirstToPass(funcs, function(func) {
for (const runAtMillis in scheduledFunctions) {
const funcs = scheduledFunctions[runAtMillis];
const i = indexOfFirstToPass(funcs, function(func) {
return func.timeoutKey === timeoutKey;
});
@@ -85,9 +85,9 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
return self;
function indexOfFirstToPass(array, testFn) {
var index = -1;
let index = -1;
for (var i = 0; i < array.length; ++i) {
for (let i = 0; i < array.length; ++i) {
if (testFn(array[i])) {
index = i;
break;
@@ -98,8 +98,8 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
}
function deleteFromLookup(key) {
var value = Number(key);
var i = indexOfFirstToPass(scheduledLookup, function(millis) {
const value = Number(key);
const i = indexOfFirstToPass(scheduledLookup, function(millis) {
return millis === value;
});
@@ -120,8 +120,8 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
}
function forEachFunction(funcsToRun, callback) {
for (var i = 0; i < funcsToRun.length; ++i) {
callback(funcsToRun[i]);
for (const f of funcsToRun) {
callback(f);
}
}
@@ -137,13 +137,13 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
do {
deletedKeys = [];
var newCurrentTime = scheduledLookup.shift();
const newCurrentTime = scheduledLookup.shift();
if (newCurrentTime >= currentTime) {
tickDate(newCurrentTime - currentTime);
currentTime = newCurrentTime;
}
var funcsToRun = scheduledFunctions[currentTime];
const funcsToRun = scheduledFunctions[currentTime];
delete scheduledFunctions[currentTime];

View File

@@ -5,7 +5,7 @@ getJasmineRequireObj().Deprecator = function(j$) {
this.toSuppress_ = [];
}
var verboseNote =
const verboseNote =
'Note: This message will be shown only once. Set the verboseDeprecations ' +
'config property to true to see every occurrence.';
@@ -35,13 +35,13 @@ getJasmineRequireObj().Deprecator = function(j$) {
};
Deprecator.prototype.log_ = function(runnable, deprecation, options) {
var context;
if (j$.isError_(deprecation)) {
console.error(deprecation);
return;
}
let context;
if (runnable === this.topSuite_ || options.ignoreRunnable) {
context = '';
} else if (runnable.children) {
@@ -62,7 +62,7 @@ getJasmineRequireObj().Deprecator = function(j$) {
};
Deprecator.prototype.stackTrace_ = function() {
var formatter = new j$.ExceptionFormatter();
const formatter = new j$.ExceptionFormatter();
return formatter.stack(j$.util.errorWithStack()).replace(/^Error\n/m, '');
};

View File

@@ -10,14 +10,14 @@ getJasmineRequireObj().Env = function(j$) {
function Env(options) {
options = options || {};
var self = this;
var global = options.global || j$.getGlobal();
const self = this;
const global = options.global || j$.getGlobal();
var totalSpecsDefined = 0;
let totalSpecsDefined = 0;
var realSetTimeout = global.setTimeout;
var realClearTimeout = global.clearTimeout;
var clearStack = j$.getClearStack(global);
const realSetTimeout = global.setTimeout;
const realClearTimeout = global.clearTimeout;
const clearStack = j$.getClearStack(global);
this.clock = new j$.Clock(
global,
function() {
@@ -26,12 +26,17 @@ getJasmineRequireObj().Env = function(j$) {
new j$.MockDate(global)
);
var runnableResources = {};
const runnableResources = {};
var currentSpec = null;
var currentlyExecutingSuites = [];
var currentDeclarationSuite = null;
var hasFailures = false;
let topSuite;
let currentSpec = null;
const currentlyExecutingSuites = [];
const focusedRunnables = [];
let currentDeclarationSuite = null;
let hasFailures = false;
let deprecator;
let reporter;
let spyRegistry;
/**
* This represents the available options to configure Jasmine.
@@ -40,7 +45,7 @@ getJasmineRequireObj().Env = function(j$) {
* @interface Configuration
* @since 3.3.0
*/
var config = {
const config = {
/**
* Whether to randomize spec execution order
* @name Configuration#random
@@ -133,24 +138,24 @@ getJasmineRequireObj().Env = function(j$) {
verboseDeprecations: false
};
var currentSuite = function() {
function currentSuite() {
return currentlyExecutingSuites[currentlyExecutingSuites.length - 1];
};
}
var currentRunnable = function() {
function currentRunnable() {
return currentSpec || currentSuite();
};
}
var globalErrors = null;
let globalErrors = null;
var installGlobalErrors = function() {
function installGlobalErrors() {
if (globalErrors) {
return;
}
globalErrors = new j$.GlobalErrors();
globalErrors.install();
};
}
if (!options.suppressLoadErrors) {
installGlobalErrors();
@@ -180,7 +185,7 @@ getJasmineRequireObj().Env = function(j$) {
* @function
*/
this.configure = function(configuration) {
var booleanProps = [
const booleanProps = [
'random',
'failSpecWithNoExpectations',
'hideDisabled',
@@ -217,8 +222,8 @@ getJasmineRequireObj().Env = function(j$) {
* @returns {Configuration}
*/
this.configuration = function() {
var result = {};
for (var property in config) {
const result = {};
for (const property in config) {
result[property] = config[property];
}
return result;
@@ -261,10 +266,10 @@ getJasmineRequireObj().Env = function(j$) {
'Matchers must be added in a before function or a spec'
);
}
var customMatchers =
const customMatchers =
runnableResources[currentRunnable().id].customMatchers;
for (var matcherName in matchersToAdd) {
for (const matcherName in matchersToAdd) {
customMatchers[matcherName] = matchersToAdd[matcherName];
}
};
@@ -275,10 +280,10 @@ getJasmineRequireObj().Env = function(j$) {
'Async Matchers must be added in a before function or a spec'
);
}
var customAsyncMatchers =
const customAsyncMatchers =
runnableResources[currentRunnable().id].customAsyncMatchers;
for (var matcherName in matchersToAdd) {
for (const matcherName in matchersToAdd) {
customAsyncMatchers[matcherName] = matchersToAdd[matcherName];
}
};
@@ -298,23 +303,25 @@ getJasmineRequireObj().Env = function(j$) {
j$.Expectation.addCoreMatchers(j$.matchers);
j$.Expectation.addAsyncCoreMatchers(j$.asyncMatchers);
var nextSpecId = 0;
var getNextSpecId = function() {
let nextSpecId = 0;
function getNextSpecId() {
return 'spec' + nextSpecId++;
};
}
var nextSuiteId = 0;
var getNextSuiteId = function() {
let nextSuiteId = 0;
function getNextSuiteId() {
return 'suite' + nextSuiteId++;
};
}
var makePrettyPrinter = function() {
var customObjectFormatters =
function makePrettyPrinter() {
const customObjectFormatters =
runnableResources[currentRunnable().id].customObjectFormatters;
return j$.makePrettyPrinter(customObjectFormatters);
};
}
var makeMatchersUtil = function() {
function makeMatchersUtil() {
const cr = currentRunnable();
if (cr) {
@@ -327,7 +334,7 @@ getJasmineRequireObj().Env = function(j$) {
} else {
return new j$.MatchersUtil({ pp: j$.basicPrettyPrinter_ });
}
};
}
const expectationFactory = function(actual, spec) {
return j$.Expectation.factory({
@@ -360,7 +367,7 @@ getJasmineRequireObj().Env = function(j$) {
}
function recordLateExpectation(runable, runableType, result) {
var delayedExpectationResult = {};
const delayedExpectationResult = {};
Object.keys(result).forEach(function(k) {
delayedExpectationResult[k] = result[k];
});
@@ -430,8 +437,8 @@ getJasmineRequireObj().Env = function(j$) {
return asyncExpectationFactory(actual, suite, 'Spec');
};
var defaultResourcesForRunnable = function(id, parentRunnableId) {
var resources = {
function defaultResourcesForRunnable(id, parentRunnableId) {
const resources = {
spies: [],
customEqualityTesters: [],
customMatchers: {},
@@ -462,16 +469,16 @@ getJasmineRequireObj().Env = function(j$) {
}
runnableResources[id] = resources;
};
}
var clearResourcesForRunnable = function(id) {
function clearResourcesForRunnable(id) {
spyRegistry.clearSpies();
delete runnableResources[id];
};
}
var beforeAndAfterFns = function(targetSuite) {
function beforeAndAfterFns(targetSuite) {
return function() {
var befores = [],
let befores = [],
afters = [],
suite = targetSuite;
@@ -487,17 +494,17 @@ getJasmineRequireObj().Env = function(j$) {
afters: afters
};
};
};
}
var getSpecName = function(spec, suite) {
var fullName = [spec.description],
function getSpecName(spec, suite) {
const fullName = [spec.description],
suiteFullName = suite.getFullName();
if (suiteFullName !== '') {
fullName.unshift(suiteFullName);
}
return fullName.join(' ');
};
}
/**
* Causes a deprecation warning to be logged to the console and reported to
@@ -522,11 +529,11 @@ getJasmineRequireObj().Env = function(j$) {
* @param {Object} [options] Optional extra options, as described above
*/
this.deprecated = function(deprecation, options) {
var runnable = currentRunnable() || topSuite;
const runnable = currentRunnable() || topSuite;
deprecator.addDeprecationWarning(runnable, deprecation, options);
};
var queueRunnerFactory = function(options, args) {
function queueRunnerFactory(options, args) {
if (options.isLeaf) {
// A spec
options.SkipPolicy = j$.CompleteOnFirstErrorSkipPolicy;
@@ -557,9 +564,9 @@ getJasmineRequireObj().Env = function(j$) {
options.deprecated = self.deprecated;
new j$.QueueRunner(options).execute(args);
};
}
var topSuite = new j$.Suite({
topSuite = new j$.Suite({
id: getNextSuiteId(),
description: 'Jasmine__TopLevel__Suite',
expectationFactory: expectationFactory,
@@ -567,7 +574,7 @@ getJasmineRequireObj().Env = function(j$) {
autoCleanClosures: config.autoCleanClosures,
onLateError: recordLateError
});
var deprecator = new j$.Deprecator(topSuite);
deprecator = new j$.Deprecator(topSuite);
currentDeclarationSuite = topSuite;
/**
@@ -587,7 +594,7 @@ getJasmineRequireObj().Env = function(j$) {
* @interface Reporter
* @see custom_reporter
*/
var reporter = new j$.ReportDispatcher(
reporter = new j$.ReportDispatcher(
[
/**
* `jasmineStarted` is called after all of the specs have been loaded, but just before execution starts.
@@ -705,12 +712,12 @@ getJasmineRequireObj().Env = function(j$) {
}
}
var order = new j$.Order({
const order = new j$.Order({
random: config.random,
seed: config.seed
});
var processor = new j$.TreeProcessor({
const processor = new j$.TreeProcessor({
tree: topSuite,
runnableIds: runnablesToRun,
queueRunnerFactory: queueRunnerFactory,
@@ -756,7 +763,7 @@ getJasmineRequireObj().Env = function(j$) {
);
}
var jasmineTimer = new j$.Timer();
const jasmineTimer = new j$.Timer();
jasmineTimer.start();
return new Promise(function(resolve) {
@@ -793,7 +800,7 @@ getJasmineRequireObj().Env = function(j$) {
clearResourcesForRunnable(topSuite.id);
currentlyExecutingSuites.pop();
var overallStatus, incompleteReason;
let overallStatus, incompleteReason;
if (
hasFailures ||
@@ -915,9 +922,9 @@ getJasmineRequireObj().Env = function(j$) {
reporter.clearReporters();
};
var spyFactory = new j$.SpyFactory(
const spyFactory = new j$.SpyFactory(
function getCustomStrategies() {
var runnable = currentRunnable();
const runnable = currentRunnable();
if (runnable) {
return runnableResources[runnable.id].customSpyStrategies;
@@ -926,7 +933,7 @@ getJasmineRequireObj().Env = function(j$) {
return {};
},
function getDefaultStrategyFn() {
var runnable = currentRunnable();
const runnable = currentRunnable();
if (runnable) {
return runnableResources[runnable.id].defaultStrategyFn;
@@ -937,7 +944,7 @@ getJasmineRequireObj().Env = function(j$) {
makeMatchersUtil
);
var spyRegistry = new j$.SpyRegistry({
spyRegistry = new j$.SpyRegistry({
currentSpies: function() {
if (!currentRunnable()) {
throw new Error(
@@ -989,24 +996,24 @@ getJasmineRequireObj().Env = function(j$) {
return spyFactory.createSpyObj(baseName, methodNames, propertyNames);
};
var ensureIsFunction = function(fn, caller) {
function ensureIsFunction(fn, caller) {
if (!j$.isFunction_(fn)) {
throw new Error(
caller + ' expects a function argument; received ' + j$.getType_(fn)
);
}
};
}
var ensureIsFunctionOrAsync = function(fn, caller) {
function ensureIsFunctionOrAsync(fn, caller) {
if (!j$.isFunction_(fn) && !j$.isAsyncFunction_(fn)) {
throw new Error(
caller + ' expects a function argument; received ' + j$.getType_(fn)
);
}
};
}
function ensureIsNotNested(method) {
var runnable = currentRunnable();
const runnable = currentRunnable();
if (runnable !== null && runnable !== undefined) {
throw new Error(
"'" + method + "' should only be used in 'describe' function"
@@ -1014,8 +1021,8 @@ getJasmineRequireObj().Env = function(j$) {
}
}
var suiteFactory = function(description) {
var suite = new j$.Suite({
function suiteFactory(description) {
return new j$.Suite({
id: getNextSuiteId(),
description: description,
parentSuite: currentDeclarationSuite,
@@ -1026,14 +1033,12 @@ getJasmineRequireObj().Env = function(j$) {
autoCleanClosures: config.autoCleanClosures,
onLateError: recordLateError
});
return suite;
};
}
this.describe = function(description, specDefinitions) {
ensureIsNotNested('describe');
ensureIsFunction(specDefinitions, 'describe');
var suite = suiteFactory(description);
const suite = suiteFactory(description);
if (specDefinitions.length > 0) {
throw new Error('describe does not expect any arguments');
}
@@ -1053,18 +1058,16 @@ getJasmineRequireObj().Env = function(j$) {
this.xdescribe = function(description, specDefinitions) {
ensureIsNotNested('xdescribe');
ensureIsFunction(specDefinitions, 'xdescribe');
var suite = suiteFactory(description);
const suite = suiteFactory(description);
suite.exclude();
addSpecsToSuite(suite, specDefinitions);
return suite.metadata;
};
var focusedRunnables = [];
this.fdescribe = function(description, specDefinitions) {
ensureIsNotNested('fdescribe');
ensureIsFunction(specDefinitions, 'fdescribe');
var suite = suiteFactory(description);
const suite = suiteFactory(description);
suite.isFocused = true;
focusedRunnables.push(suite.id);
@@ -1075,11 +1078,11 @@ getJasmineRequireObj().Env = function(j$) {
};
function addSpecsToSuite(suite, specDefinitions) {
var parentSuite = currentDeclarationSuite;
const parentSuite = currentDeclarationSuite;
parentSuite.addChild(suite);
currentDeclarationSuite = suite;
var declarationError = null;
let declarationError = null;
try {
specDefinitions();
} catch (e) {
@@ -1105,9 +1108,9 @@ getJasmineRequireObj().Env = function(j$) {
}
function unfocusAncestor() {
var focusedAncestor = findFocusedAncestor(currentDeclarationSuite);
const focusedAncestor = findFocusedAncestor(currentDeclarationSuite);
if (focusedAncestor) {
for (var i = 0; i < focusedRunnables.length; i++) {
for (let i = 0; i < focusedRunnables.length; i++) {
if (focusedRunnables[i] === focusedAncestor) {
focusedRunnables.splice(i, 1);
break;
@@ -1116,9 +1119,9 @@ getJasmineRequireObj().Env = function(j$) {
}
}
var specFactory = function(description, fn, suite, timeout) {
const specFactory = function(description, fn, suite, timeout) {
totalSpecsDefined++;
var spec = new j$.Spec({
const spec = new j$.Spec({
id: getNextSpecId(),
beforeAndAfterFns: beforeAndAfterFns(suite),
expectationFactory: expectationFactory,
@@ -1184,7 +1187,12 @@ getJasmineRequireObj().Env = function(j$) {
j$.util.validateTimeout(timeout);
}
var spec = specFactory(description, fn, currentDeclarationSuite, timeout);
const spec = specFactory(
description,
fn,
currentDeclarationSuite,
timeout
);
if (currentDeclarationSuite.markedExcluding) {
spec.exclude();
}
@@ -1205,7 +1213,7 @@ getJasmineRequireObj().Env = function(j$) {
if (arguments.length > 1 && typeof fn !== 'undefined') {
ensureIsFunctionOrAsync(fn, 'xit');
}
var spec = this.it_.apply(this, arguments);
const spec = this.it_.apply(this, arguments);
spec.exclude('Temporarily disabled with xit');
return spec.metadata;
};
@@ -1217,7 +1225,12 @@ getJasmineRequireObj().Env = function(j$) {
if (timeout) {
j$.util.validateTimeout(timeout);
}
var spec = specFactory(description, fn, currentDeclarationSuite, timeout);
const spec = specFactory(
description,
fn,
currentDeclarationSuite,
timeout
);
currentDeclarationSuite.addChild(spec);
focusedRunnables.push(spec.id);
unfocusAncestor();
@@ -1259,7 +1272,7 @@ getJasmineRequireObj().Env = function(j$) {
};
this.debugLog = function(msg) {
var maybeSpec = currentRunnable();
const maybeSpec = currentRunnable();
if (!maybeSpec || !maybeSpec.debugLog) {
throw new Error("'debugLog' was called when there was no current spec");
@@ -1346,7 +1359,7 @@ getJasmineRequireObj().Env = function(j$) {
};
this.pending = function(message) {
var fullMessage = j$.Spec.pendingSpecExceptionMessage;
let fullMessage = j$.Spec.pendingSpecExceptionMessage;
if (message) {
fullMessage += message;
}
@@ -1360,7 +1373,7 @@ getJasmineRequireObj().Env = function(j$) {
);
}
var message = 'Failed';
let message = 'Failed';
if (error) {
message += ': ';
if (error.message) {

View File

@@ -22,15 +22,13 @@ getJasmineRequireObj().ExpectationFilterChain = function() {
};
ExpectationFilterChain.prototype.modifyFailureMessage = function(msg) {
var result = this.callFirst_('modifyFailureMessage', arguments).result;
const result = this.callFirst_('modifyFailureMessage', arguments).result;
return result || msg;
};
ExpectationFilterChain.prototype.callFirst_ = function(fname, args) {
var prevResult;
if (this.prev_) {
prevResult = this.prev_.callFirst_(fname, args);
const prevResult = this.prev_.callFirst_(fname, args);
if (prevResult.found) {
return prevResult;

View File

@@ -19,20 +19,20 @@ getJasmineRequireObj().Expector = function(j$) {
this.args.unshift(this.actual);
var matcher = matcherFactory(this.matchersUtil);
const matcher = matcherFactory(this.matchersUtil);
var comparisonFunc = this.filters.selectComparisonFunc(matcher);
const comparisonFunc = this.filters.selectComparisonFunc(matcher);
return comparisonFunc || matcher.compare;
};
Expector.prototype.buildMessage = function(result) {
var self = this;
const self = this;
if (result.pass) {
return '';
}
var msg = this.filters.buildFailureMessage(
const msg = this.filters.buildFailureMessage(
result,
this.matcherName,
this.args,
@@ -43,7 +43,7 @@ getJasmineRequireObj().Expector = function(j$) {
function defaultMessage() {
if (!result.message) {
var args = self.args.slice();
const args = self.args.slice();
args.unshift(false);
args.unshift(self.matcherName);
return self.matchersUtil.buildFailureMessage.apply(
@@ -59,7 +59,7 @@ getJasmineRequireObj().Expector = function(j$) {
};
Expector.prototype.compare = function(matcherName, matcherFactory, args) {
var matcherCompare = this.instantiateMatcher(
const matcherCompare = this.instantiateMatcher(
matcherName,
matcherFactory,
args
@@ -68,13 +68,13 @@ getJasmineRequireObj().Expector = function(j$) {
};
Expector.prototype.addFilter = function(filter) {
var result = Object.create(this);
const result = Object.create(this);
result.filters = this.filters.addFilter(filter);
return result;
};
Expector.prototype.processResult = function(result, errorForStack) {
var message = this.buildMessage(result);
const message = this.buildMessage(result);
if (this.expected.length === 1) {
this.expected = this.expected[0];

View File

@@ -1,10 +1,10 @@
getJasmineRequireObj().GlobalErrors = function(j$) {
function GlobalErrors(global) {
var handlers = [];
const handlers = [];
global = global || j$.getGlobal();
var onerror = function onerror() {
var handler = handlers[handlers.length - 1];
const onerror = function onerror() {
const handler = handlers[handlers.length - 1];
if (handler) {
handler.apply(null, Array.prototype.slice.call(arguments, 0));
@@ -17,11 +17,11 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
this.jasmineHandlers = {};
this.installOne_ = function installOne_(errorType, jasmineMessage) {
function taggedOnError(error) {
var substituteMsg;
if (j$.isError_(error)) {
error.jasmineMessage = jasmineMessage + ': ' + error;
} else {
let substituteMsg;
if (error) {
substituteMsg = jasmineMessage + ': ' + error;
} else {
@@ -40,7 +40,7 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
error = new Error(substituteMsg);
}
var handler = handlers[handlers.length - 1];
const handler = handlers[handlers.length - 1];
if (handler) {
handler(error);
@@ -56,14 +56,14 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
global.process.on(errorType, taggedOnError);
this.uninstall = function uninstall() {
var errorTypes = Object.keys(this.originalHandlers);
for (var iType = 0; iType < errorTypes.length; iType++) {
var errorType = errorTypes[iType];
const errorTypes = Object.keys(this.originalHandlers);
for (const errorType of errorTypes) {
global.process.removeListener(
errorType,
this.jasmineHandlers[errorType]
);
for (var i = 0; i < this.originalHandlers[errorType].length; i++) {
for (let i = 0; i < this.originalHandlers[errorType].length; i++) {
global.process.on(errorType, this.originalHandlers[errorType][i]);
}
delete this.originalHandlers[errorType];
@@ -81,10 +81,12 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
this.installOne_('uncaughtException', 'Uncaught exception');
this.installOne_('unhandledRejection', 'Unhandled promise rejection');
} else {
var originalHandler = global.onerror;
const originalHandler = global.onerror;
global.onerror = onerror;
var browserRejectionHandler = function browserRejectionHandler(event) {
const browserRejectionHandler = function browserRejectionHandler(
event
) {
if (j$.isError_(event.reason)) {
event.reason.jasmineMessage =
'Unhandled promise rejection: ' + event.reason;

View File

@@ -6,8 +6,8 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
* @hideconstructor
*/
function JsApiReporter(options) {
var timer = options.timer || new j$.Timer(),
status = 'loaded';
const timer = options.timer || new j$.Timer();
let status = 'loaded';
this.started = false;
this.finished = false;
@@ -19,7 +19,7 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
timer.start();
};
var executionTime;
let executionTime;
this.jasmineDone = function(runDetails) {
this.finished = true;
@@ -39,7 +39,7 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
return status;
};
var suites = [],
const suites = [],
suites_hash = {};
this.suiteStarted = function(result) {
@@ -81,7 +81,7 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
return suites_hash;
};
var specs = [];
const specs = [];
this.specDone = function(result) {
specs.push(result);

View File

@@ -1,7 +1,7 @@
getJasmineRequireObj().MockDate = function(j$) {
function MockDate(global) {
var self = this;
var currentTime = 0;
const self = this;
let currentTime = 0;
if (!global || !global.Date) {
self.install = function() {};
@@ -10,7 +10,7 @@ getJasmineRequireObj().MockDate = function(j$) {
return self;
}
var GlobalDate = global.Date;
const GlobalDate = global.Date;
self.install = function(mockDate) {
if (mockDate instanceof GlobalDate) {

View File

@@ -1,7 +1,7 @@
getJasmineRequireObj().Order = function() {
function Order(options) {
this.random = 'random' in options ? options.random : true;
var seed = (this.seed = options.seed || generateSeed());
const seed = (this.seed = options.seed || generateSeed());
this.sort = this.random ? randomOrder : naturalOrder;
function naturalOrder(items) {
@@ -9,7 +9,7 @@ getJasmineRequireObj().Order = function() {
}
function randomOrder(items) {
var copy = items.slice();
const copy = items.slice();
copy.sort(function(a, b) {
return jenkinsHash(seed + a.id) - jenkinsHash(seed + b.id);
});
@@ -26,7 +26,7 @@ getJasmineRequireObj().Order = function() {
// used in conjunction with a seed
function jenkinsHash(key) {
var hash, i;
let hash, i;
for (hash = i = 0; i < key.length; ++i) {
hash += key.charCodeAt(i);
hash += hash << 10;

View File

@@ -1,12 +1,12 @@
getJasmineRequireObj().QueueRunner = function(j$) {
var nextid = 1;
let nextid = 1;
function StopExecutionError() {}
StopExecutionError.prototype = new Error();
j$.StopExecutionError = StopExecutionError;
function once(fn, onTwice) {
var called = false;
let called = false;
return function(arg) {
if (called) {
if (onTwice) {
@@ -66,7 +66,7 @@ getJasmineRequireObj().QueueRunner = function(j$) {
}
QueueRunner.prototype.execute = function() {
var self = this;
const self = this;
this.handleFinalError = function(message, source, lineno, colno, error) {
// Older browsers would send the error as the first parameter. HTML5
// specifies the the five parameters above. The error instance should
@@ -92,57 +92,57 @@ getJasmineRequireObj().QueueRunner = function(j$) {
};
QueueRunner.prototype.attempt = function attempt(iterativeIndex) {
var self = this,
completedSynchronously = true,
handleError = function handleError(error) {
// TODO probably shouldn't next() right away here.
// That makes debugging async failures much more confusing.
onException(error);
let timeoutId;
let timedOut;
const self = this;
let completedSynchronously = true;
function handleError(error) {
// TODO probably shouldn't next() right away here.
// That makes debugging async failures much more confusing.
onException(error);
}
const cleanup = once(function cleanup() {
if (timeoutId !== void 0) {
self.clearTimeout(timeoutId);
}
self.globalErrors.popListener(handleError);
});
const next = once(
function next(err) {
cleanup();
if (typeof err !== 'undefined') {
if (!(err instanceof StopExecutionError) && !err.jasmineMessage) {
self.fail(err);
}
self.recordError_(iterativeIndex);
}
function runNext() {
self.run(self.nextFnIx_(iterativeIndex));
}
if (completedSynchronously) {
self.setTimeout(runNext);
} else {
runNext();
}
},
cleanup = once(function cleanup() {
if (timeoutId !== void 0) {
self.clearTimeout(timeoutId);
function() {
try {
if (!timedOut) {
self.onMultipleDone();
}
} catch (error) {
// Any error we catch here is probably due to a bug in Jasmine,
// and it's not likely to end up anywhere useful if we let it
// propagate. Log it so it can at least show up when debugging.
console.error(error);
}
self.globalErrors.popListener(handleError);
}),
next = once(
function next(err) {
cleanup();
if (typeof err !== 'undefined') {
if (!(err instanceof StopExecutionError) && !err.jasmineMessage) {
self.fail(err);
}
self.recordError_(iterativeIndex);
}
function runNext() {
self.run(self.nextFnIx_(iterativeIndex));
}
if (completedSynchronously) {
self.setTimeout(runNext);
} else {
runNext();
}
},
function() {
try {
if (!timedOut) {
self.onMultipleDone();
}
} catch (error) {
// Any error we catch here is probably due to a bug in Jasmine,
// and it's not likely to end up anywhere useful if we let it
// propagate. Log it so it can at least show up when debugging.
console.error(error);
}
}
),
timedOut = false,
queueableFn = self.queueableFns[iterativeIndex],
timeoutId,
maybeThenable;
}
);
timedOut = false;
const queueableFn = self.queueableFns[iterativeIndex];
next.fail = function nextFail() {
self.fail.apply(null, arguments);
@@ -153,10 +153,11 @@ getJasmineRequireObj().QueueRunner = function(j$) {
self.globalErrors.pushListener(handleError);
if (queueableFn.timeout !== undefined) {
var timeoutInterval = queueableFn.timeout || j$.DEFAULT_TIMEOUT_INTERVAL;
const timeoutInterval =
queueableFn.timeout || j$.DEFAULT_TIMEOUT_INTERVAL;
timeoutId = self.setTimeout(function() {
timedOut = true;
var error = new Error(
const error = new Error(
'Timeout - Async function did not complete within ' +
timeoutInterval +
'ms ' +
@@ -173,6 +174,8 @@ getJasmineRequireObj().QueueRunner = function(j$) {
}
try {
let maybeThenable;
if (queueableFn.fn.length === 0) {
maybeThenable = queueableFn.fn.call(self.userContext);
@@ -210,16 +213,15 @@ getJasmineRequireObj().QueueRunner = function(j$) {
};
QueueRunner.prototype.run = function(recursiveIndex) {
var length = this.queueableFns.length,
self = this,
iterativeIndex;
const length = this.queueableFns.length;
const self = this;
for (
iterativeIndex = recursiveIndex;
let iterativeIndex = recursiveIndex;
iterativeIndex < length;
iterativeIndex = this.nextFnIx_(iterativeIndex)
) {
var result = this.attempt(iterativeIndex);
const result = this.attempt(iterativeIndex);
if (!result.completedSynchronously) {
return;

View File

@@ -1,9 +1,8 @@
getJasmineRequireObj().ReportDispatcher = function(j$) {
function ReportDispatcher(methods, queueRunnerFactory, onLateError) {
var dispatchedMethods = methods || [];
const dispatchedMethods = methods || [];
for (var i = 0; i < dispatchedMethods.length; i++) {
var method = dispatchedMethods[i];
for (const method of dispatchedMethods) {
this[method] = (function(m) {
return function() {
dispatch(m, arguments);
@@ -11,8 +10,8 @@ getJasmineRequireObj().ReportDispatcher = function(j$) {
})(method);
}
var reporters = [];
var fallbackReporter = null;
let reporters = [];
let fallbackReporter = null;
this.addReporter = function(reporter) {
reporters.push(reporter);
@@ -32,11 +31,10 @@ getJasmineRequireObj().ReportDispatcher = function(j$) {
if (reporters.length === 0 && fallbackReporter !== null) {
reporters.push(fallbackReporter);
}
var onComplete = args[args.length - 1];
const onComplete = args[args.length - 1];
args = j$.util.argsToArray(args).splice(0, args.length - 1);
var fns = [];
for (var i = 0; i < reporters.length; i++) {
var reporter = reporters[i];
const fns = [];
for (const reporter of reporters) {
addFn(fns, reporter, method, args);
}
@@ -56,12 +54,12 @@ getJasmineRequireObj().ReportDispatcher = function(j$) {
}
function addFn(fns, reporter, method, args) {
var fn = reporter[method];
const fn = reporter[method];
if (!fn) {
return;
}
var thisArgs = j$.util.cloneArgs(args);
const thisArgs = j$.util.cloneArgs(args);
if (fn.length <= 1) {
fns.push({
fn: function() {

View File

@@ -100,16 +100,16 @@ getJasmineRequireObj().Spec = function(j$) {
};
Spec.prototype.execute = function(onComplete, excluded, failSpecWithNoExp) {
var self = this;
const self = this;
var onStart = {
const onStart = {
fn: function(done) {
self.timer.start();
self.onStart(self, done);
}
};
var complete = {
const complete = {
fn: function(done) {
if (self.autoCleanClosures) {
self.queueableFn.fn = null;
@@ -126,9 +126,9 @@ getJasmineRequireObj().Spec = function(j$) {
type: 'specCleanup'
};
var fns = this.beforeAndAfterFns();
const fns = this.beforeAndAfterFns();
var runnerConfig = {
const runnerConfig = {
isLeaf: true,
queueableFns: [...fns.befores, this.queueableFn, ...fns.afters],
onException: function() {
@@ -289,8 +289,8 @@ getJasmineRequireObj().Spec = function(j$) {
});
};
var extractCustomPendingMessage = function(e) {
var fullMessage = e.toString(),
const extractCustomPendingMessage = function(e) {
const fullMessage = e.toString(),
boilerplateStart = fullMessage.indexOf(Spec.pendingSpecExceptionMessage),
boilerplateEnd =
boilerplateStart + Spec.pendingSpecExceptionMessage.length;

View File

@@ -1,6 +1,6 @@
getJasmineRequireObj().Spy = function(j$) {
var nextOrder = (function() {
var order = 0;
const nextOrder = (function() {
let order = 0;
return function() {
return order++;
@@ -15,9 +15,29 @@ getJasmineRequireObj().Spy = function(j$) {
* @hideconstructor
*/
function Spy(name, matchersUtil, optionals) {
const spy = function(context, args, invokeNew) {
/**
* @name Spy.callData
* @property {object} object - `this` context for the invocation.
* @property {number} invocationOrder - Order of the invocation.
* @property {Array} args - The arguments passed for this invocation.
* @property returnValue - The value that was returned from this invocation.
*/
const callData = {
object: context,
invocationOrder: nextOrder(),
args: Array.prototype.slice.apply(args)
};
callTracker.track(callData);
const returnValue = strategyDispatcher.exec(context, args, invokeNew);
callData.returnValue = returnValue;
return returnValue;
};
const { originalFn, customStrategies, defaultStrategyFn } = optionals || {};
var numArgs = typeof originalFn === 'function' ? originalFn.length : 0,
const numArgs = typeof originalFn === 'function' ? originalFn.length : 0,
wrapper = makeFunc(numArgs, function(context, args, invokeNew) {
return spy(context, args, invokeNew);
}),
@@ -32,27 +52,7 @@ getJasmineRequireObj().Spy = function(j$) {
},
matchersUtil
),
callTracker = new j$.CallTracker(),
spy = function(context, args, invokeNew) {
/**
* @name Spy.callData
* @property {object} object - `this` context for the invocation.
* @property {number} invocationOrder - Order of the invocation.
* @property {Array} args - The arguments passed for this invocation.
* @property returnValue - The value that was returned from this invocation.
*/
var callData = {
object: context,
invocationOrder: nextOrder(),
args: Array.prototype.slice.apply(args)
};
callTracker.track(callData);
var returnValue = strategyDispatcher.exec(context, args, invokeNew);
callData.returnValue = returnValue;
return returnValue;
};
callTracker = new j$.CallTracker();
function makeFunc(length, fn) {
switch (length) {
@@ -99,7 +99,7 @@ getJasmineRequireObj().Spy = function(j$) {
}
}
for (var prop in originalFn) {
for (const prop in originalFn) {
if (prop === 'and' || prop === 'calls') {
throw new Error(
"Jasmine spies would overwrite the 'and' and 'calls' properties on the object being spied upon"
@@ -144,15 +144,15 @@ getJasmineRequireObj().Spy = function(j$) {
}
function SpyStrategyDispatcher(strategyArgs, matchersUtil) {
var baseStrategy = new j$.SpyStrategy(strategyArgs);
var argsStrategies = new StrategyDict(function() {
const baseStrategy = new j$.SpyStrategy(strategyArgs);
const argsStrategies = new StrategyDict(function() {
return new j$.SpyStrategy(strategyArgs);
}, matchersUtil);
this.and = baseStrategy;
this.exec = function(spy, args, invokeNew) {
var strategy = argsStrategies.get(args);
let strategy = argsStrategies.get(args);
if (!strategy) {
if (argsStrategies.any() && !baseStrategy.isConfigured()) {
@@ -187,7 +187,7 @@ getJasmineRequireObj().Spy = function(j$) {
};
StrategyDict.prototype.getOrCreate = function(args) {
var strategy = this.get(args);
let strategy = this.get(args);
if (!strategy) {
strategy = this.strategyFactory();
@@ -201,9 +201,7 @@ getJasmineRequireObj().Spy = function(j$) {
};
StrategyDict.prototype.get = function(args) {
var i;
for (i = 0; i < this.strategies.length; i++) {
for (let i = 0; i < this.strategies.length; i++) {
if (this.matchersUtil.equals(args, this.strategies[i].args)) {
return this.strategies[i].strategy;
}

View File

@@ -4,7 +4,7 @@ getJasmineRequireObj().SpyFactory = function(j$) {
getDefaultStrategyFn,
getMatchersUtil
) {
var self = this;
const self = this;
this.createSpy = function(name, originalFn) {
return j$.Spy(name, getMatchersUtil(), {
@@ -15,7 +15,7 @@ getJasmineRequireObj().SpyFactory = function(j$) {
};
this.createSpyObj = function(baseName, methodNames, propertyNames) {
var baseNameIsCollection =
const baseNameIsCollection =
j$.isObject_(baseName) || j$.isArray_(baseName);
if (baseNameIsCollection) {
@@ -24,22 +24,21 @@ getJasmineRequireObj().SpyFactory = function(j$) {
baseName = 'unknown';
}
var obj = {};
var spy, descriptor;
const obj = {};
var methods = normalizeKeyValues(methodNames);
for (var i = 0; i < methods.length; i++) {
spy = obj[methods[i][0]] = self.createSpy(
const methods = normalizeKeyValues(methodNames);
for (let i = 0; i < methods.length; i++) {
const spy = (obj[methods[i][0]] = self.createSpy(
baseName + '.' + methods[i][0]
);
));
if (methods[i].length > 1) {
spy.and.returnValue(methods[i][1]);
}
}
var properties = normalizeKeyValues(propertyNames);
for (var i = 0; i < properties.length; i++) {
descriptor = {
const properties = normalizeKeyValues(propertyNames);
for (let i = 0; i < properties.length; i++) {
const descriptor = {
enumerable: true,
get: self.createSpy(baseName + '.' + properties[i][0] + '.get'),
set: self.createSpy(baseName + '.' + properties[i][0] + '.set')
@@ -60,13 +59,13 @@ getJasmineRequireObj().SpyFactory = function(j$) {
}
function normalizeKeyValues(object) {
var result = [];
const result = [];
if (j$.isArray_(object)) {
for (var i = 0; i < object.length; i++) {
for (let i = 0; i < object.length; i++) {
result.push([object[i]]);
}
} else if (j$.isObject_(object)) {
for (var key in object) {
for (const key in object) {
if (object.hasOwnProperty(key)) {
result.push([key, object[key]]);
}

View File

@@ -1,15 +1,18 @@
getJasmineRequireObj().SpyRegistry = function(j$) {
var spyOnMsg = j$.formatErrorMsg('<spyOn>', 'spyOn(<object>, <methodName>)');
var spyOnPropertyMsg = j$.formatErrorMsg(
const spyOnMsg = j$.formatErrorMsg(
'<spyOn>',
'spyOn(<object>, <methodName>)'
);
const spyOnPropertyMsg = j$.formatErrorMsg(
'<spyOnProperty>',
'spyOnProperty(<object>, <propName>, [accessType])'
);
function SpyRegistry(options) {
options = options || {};
var global = options.global || j$.getGlobal();
var createSpy = options.createSpy;
var currentSpies =
const global = options.global || j$.getGlobal();
const createSpy = options.createSpy;
const currentSpies =
options.currentSpies ||
function() {
return [];
@@ -20,7 +23,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
};
this.spyOn = function(obj, methodName) {
var getErrorMsg = spyOnMsg;
const getErrorMsg = spyOnMsg;
if (j$.util.isUndefined(obj) || obj === null) {
throw new Error(
@@ -48,7 +51,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
}
}
var descriptor = Object.getOwnPropertyDescriptor(obj, methodName);
const descriptor = Object.getOwnPropertyDescriptor(obj, methodName);
if (descriptor && !(descriptor.writable || descriptor.set)) {
throw new Error(
@@ -56,9 +59,9 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
);
}
var originalMethod = obj[methodName],
spiedMethod = createSpy(methodName, originalMethod),
restoreStrategy;
const originalMethod = obj[methodName];
const spiedMethod = createSpy(methodName, originalMethod);
let restoreStrategy;
if (
Object.prototype.hasOwnProperty.call(obj, methodName) ||
@@ -85,7 +88,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
};
this.spyOnProperty = function(obj, propertyName, accessType) {
var getErrorMsg = spyOnPropertyMsg;
const getErrorMsg = spyOnPropertyMsg;
accessType = accessType || 'get';
@@ -103,7 +106,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
throw new Error(getErrorMsg('No property name supplied'));
}
var descriptor = j$.util.getPropertyDescriptor(obj, propertyName);
const descriptor = j$.util.getPropertyDescriptor(obj, propertyName);
if (!descriptor) {
throw new Error(getErrorMsg(propertyName + ' property does not exist'));
@@ -138,9 +141,9 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
}
}
var originalDescriptor = j$.util.clone(descriptor),
spy = createSpy(propertyName, descriptor[accessType]),
restoreStrategy;
const originalDescriptor = j$.util.clone(descriptor);
const spy = createSpy(propertyName, descriptor[accessType]);
let restoreStrategy;
if (Object.prototype.hasOwnProperty.call(obj, propertyName)) {
restoreStrategy = function() {
@@ -170,7 +173,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
);
}
var pointer = obj,
let pointer = obj,
propsToSpyOn = [],
properties,
propertiesToSkip = [];
@@ -190,24 +193,24 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
pointer = Object.getPrototypeOf(pointer);
}
for (var i = 0; i < propsToSpyOn.length; i++) {
this.spyOn(obj, propsToSpyOn[i]);
for (const prop of propsToSpyOn) {
this.spyOn(obj, prop);
}
return obj;
};
this.clearSpies = function() {
var spies = currentSpies();
for (var i = spies.length - 1; i >= 0; i--) {
var spyEntry = spies[i];
const spies = currentSpies();
for (let i = spies.length - 1; i >= 0; i--) {
const spyEntry = spies[i];
spyEntry.restoreObjectToOriginalState();
}
};
}
function getProps(obj, includeNonEnumerable) {
var enumerableProperties = Object.keys(obj);
const enumerableProperties = Object.keys(obj);
if (!includeNonEnumerable) {
return enumerableProperties;
@@ -222,10 +225,9 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
}
function getSpyableFunctionProps(obj, propertiesToCheck) {
var props = [],
prop;
for (var i = 0; i < propertiesToCheck.length; i++) {
prop = propertiesToCheck[i];
const props = [];
for (const prop of propertiesToCheck) {
if (
Object.prototype.hasOwnProperty.call(obj, prop) &&
isSpyableProp(obj, prop)
@@ -237,14 +239,15 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
}
function isSpyableProp(obj, prop) {
var value, descriptor;
let value;
try {
value = obj[prop];
} catch (e) {
return false;
}
if (value instanceof Function) {
descriptor = Object.getOwnPropertyDescriptor(obj, prop);
const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
return (descriptor.writable || descriptor.set) && descriptor.configurable;
}
return false;

View File

@@ -5,7 +5,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
function SpyStrategy(options) {
options = options || {};
var self = this;
const self = this;
/**
* Get the identifying information for the spy.
@@ -19,9 +19,8 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
this.getSpy = options.getSpy || function() {};
this.plan = this._defaultPlan = function() {};
var k,
cs = options.customStrategies || {};
for (k in cs) {
const cs = options.customStrategies || {};
for (const k in cs) {
if (j$.util.has(cs, k) && !this[k]) {
this[k] = createCustomPlan(cs[k]);
}
@@ -58,7 +57,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
function createCustomPlan(factory) {
return function() {
var plan = factory.apply(null, arguments);
const plan = factory.apply(null, arguments);
if (!j$.isFunction_(plan)) {
throw new Error('Spy strategy must return a function');
@@ -76,10 +75,10 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
* @function
*/
SpyStrategy.prototype.exec = function(context, args, invokeNew) {
var contextArgs = [context].concat(
const contextArgs = [context].concat(
args ? Array.prototype.slice.call(args) : []
);
var target = this.plan.bind.apply(this.plan, contextArgs);
const target = this.plan.bind.apply(this.plan, contextArgs);
return invokeNew ? new target() : target();
};
@@ -117,7 +116,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
* @param {...*} values - Values to be returned on subsequent calls to the spy.
*/
SpyStrategy.prototype.returnValues = function() {
var values = Array.prototype.slice.call(arguments);
const values = Array.prototype.slice.call(arguments);
this.plan = function() {
return values.shift();
};
@@ -132,7 +131,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
* @param {Error|Object|String} something Thing to throw
*/
SpyStrategy.prototype.throwError = function(something) {
var error = j$.isString_(something) ? new Error(something) : something;
const error = j$.isString_(something) ? new Error(something) : something;
this.plan = function() {
throw error;
};

View File

@@ -1,22 +1,22 @@
getJasmineRequireObj().StackTrace = function(j$) {
function StackTrace(error) {
var lines = error.stack.split('\n').filter(function(line) {
let lines = error.stack.split('\n').filter(function(line) {
return line !== '';
});
var extractResult = extractMessage(error.message, lines);
const extractResult = extractMessage(error.message, lines);
if (extractResult) {
this.message = extractResult.message;
lines = extractResult.remainder;
}
var parseResult = tryParseFrames(lines);
const parseResult = tryParseFrames(lines);
this.frames = parseResult.frames;
this.style = parseResult.style;
}
var framePatterns = [
const framePatterns = [
// Node, Chrome, Edge
// e.g. " at QueueRunner.run (http://localhost:8888/__jasmine__/jasmine.js:4320:20)"
// Note that the "function name" can include a surprisingly large set of
@@ -46,16 +46,15 @@ getJasmineRequireObj().StackTrace = function(j$) {
// regexes should capture the function name (if any) as group 1
// and the file, line, and column as group 2.
function tryParseFrames(lines) {
var style = null;
var frames = lines.map(function(line) {
var convertedLine = first(framePatterns, function(pattern) {
var overallMatch = line.match(pattern.re),
fileLineColMatch;
let style = null;
const frames = lines.map(function(line) {
const convertedLine = first(framePatterns, function(pattern) {
const overallMatch = line.match(pattern.re);
if (!overallMatch) {
return null;
}
fileLineColMatch = overallMatch[pattern.fileLineColIx].match(
const fileLineColMatch = overallMatch[pattern.fileLineColIx].match(
/^(.*):(\d+):\d+$/
);
if (!fileLineColMatch) {
@@ -81,10 +80,8 @@ getJasmineRequireObj().StackTrace = function(j$) {
}
function first(items, fn) {
var i, result;
for (i = 0; i < items.length; i++) {
result = fn(items[i]);
for (const item of items) {
const result = fn(item);
if (result) {
return result;
@@ -93,7 +90,7 @@ getJasmineRequireObj().StackTrace = function(j$) {
}
function extractMessage(message, stackLines) {
var len = messagePrefixLength(message, stackLines);
const len = messagePrefixLength(message, stackLines);
if (len > 0) {
return {
@@ -108,10 +105,9 @@ getJasmineRequireObj().StackTrace = function(j$) {
return 0;
}
var messageLines = message.split('\n');
var i;
const messageLines = message.split('\n');
for (i = 1; i < messageLines.length; i++) {
for (let i = 1; i < messageLines.length; i++) {
if (messageLines[i] !== stackLines[i]) {
return 0;
}

View File

@@ -35,9 +35,9 @@ getJasmineRequireObj().Suite = function(j$) {
};
Suite.prototype.getFullName = function() {
var fullName = [];
const fullName = [];
for (
var parentSuite = this;
let parentSuite = this;
parentSuite;
parentSuite = parentSuite.parentSuite
) {
@@ -89,8 +89,8 @@ getJasmineRequireObj().Suite = function(j$) {
};
function removeFns(queueableFns) {
for (var i = 0; i < queueableFns.length; i++) {
queueableFns[i].fn = null;
for (const qf of queueableFns) {
qf.fn = null;
}
}

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().Timer = function() {
var defaultNow = (function(Date) {
const defaultNow = (function(Date) {
return function() {
return new Date().getTime();
};
@@ -8,8 +8,8 @@ getJasmineRequireObj().Timer = function() {
function Timer(options) {
options = options || {};
var now = options.now || defaultNow,
startTime;
const now = options.now || defaultNow;
let startTime;
this.start = function() {
startTime = now();

View File

@@ -1,25 +1,25 @@
getJasmineRequireObj().TreeProcessor = function() {
function TreeProcessor(attrs) {
var tree = attrs.tree,
runnableIds = attrs.runnableIds,
queueRunnerFactory = attrs.queueRunnerFactory,
nodeStart = attrs.nodeStart || function() {},
nodeComplete = attrs.nodeComplete || function() {},
failSpecWithNoExpectations = !!attrs.failSpecWithNoExpectations,
orderChildren =
attrs.orderChildren ||
function(node) {
return node.children;
},
excludeNode =
attrs.excludeNode ||
function(node) {
return false;
},
stats = { valid: true },
processed = false,
defaultMin = Infinity,
defaultMax = 1 - Infinity;
const tree = attrs.tree;
const runnableIds = attrs.runnableIds;
const queueRunnerFactory = attrs.queueRunnerFactory;
const nodeStart = attrs.nodeStart || function() {};
const nodeComplete = attrs.nodeComplete || function() {};
const failSpecWithNoExpectations = !!attrs.failSpecWithNoExpectations;
const orderChildren =
attrs.orderChildren ||
function(node) {
return node.children;
};
const excludeNode =
attrs.excludeNode ||
function(node) {
return false;
};
let stats = { valid: true };
let processed = false;
const defaultMin = Infinity;
const defaultMax = 1 - Infinity;
this.processTree = function() {
processNode(tree, true);
@@ -36,7 +36,7 @@ getJasmineRequireObj().TreeProcessor = function() {
throw 'invalid order';
}
var childFns = wrapChildren(tree, 0);
const childFns = wrapChildren(tree, 0);
queueRunnerFactory({
queueableFns: childFns,
@@ -52,7 +52,7 @@ getJasmineRequireObj().TreeProcessor = function() {
};
function runnableIndex(id) {
for (var i = 0; i < runnableIds.length; i++) {
for (let i = 0; i < runnableIds.length; i++) {
if (runnableIds[i] === id) {
return i;
}
@@ -60,14 +60,14 @@ getJasmineRequireObj().TreeProcessor = function() {
}
function processNode(node, parentExcluded) {
var executableIndex = runnableIndex(node.id);
const executableIndex = runnableIndex(node.id);
if (executableIndex !== undefined) {
parentExcluded = false;
}
if (!node.children) {
var excluded = parentExcluded || excludeNode(node);
const excluded = parentExcluded || excludeNode(node);
stats[node.id] = {
excluded: excluded,
willExecute: !excluded && !node.markedPending,
@@ -82,12 +82,12 @@ getJasmineRequireObj().TreeProcessor = function() {
]
};
} else {
var hasExecutableChild = false;
let hasExecutableChild = false;
var orderedChildren = orderChildren(node);
const orderedChildren = orderChildren(node);
for (var i = 0; i < orderedChildren.length; i++) {
var child = orderedChildren[i];
for (let i = 0; i < orderedChildren.length; i++) {
const child = orderedChildren[i];
processNode(child, parentExcluded);
@@ -95,7 +95,7 @@ getJasmineRequireObj().TreeProcessor = function() {
return;
}
var childStats = stats[child.id];
const childStats = stats[child.id];
hasExecutableChild = hasExecutableChild || childStats.willExecute;
}
@@ -127,7 +127,7 @@ getJasmineRequireObj().TreeProcessor = function() {
nodeStats,
executableIndex
) {
var currentSegment = {
let currentSegment = {
index: 0,
owner: node,
nodes: [],
@@ -146,8 +146,8 @@ getJasmineRequireObj().TreeProcessor = function() {
);
}
for (var i = 0; i < orderedChildSegments.length; i++) {
var childSegment = orderedChildSegments[i],
for (let i = 0; i < orderedChildSegments.length; i++) {
const childSegment = orderedChildSegments[i],
maxIndex = childSegment.max,
minIndex = childSegment.min;
@@ -172,15 +172,15 @@ getJasmineRequireObj().TreeProcessor = function() {
}
function orderChildSegments(children) {
var specifiedOrder = [],
const specifiedOrder = [],
unspecifiedOrder = [];
for (var i = 0; i < children.length; i++) {
var child = children[i],
for (let i = 0; i < children.length; i++) {
const child = children[i],
segments = stats[child.id].segments;
for (var j = 0; j < segments.length; j++) {
var seg = segments[j];
for (let j = 0; j < segments.length; j++) {
const seg = segments[j];
if (seg.min === defaultMin) {
unspecifiedOrder.push(seg);
@@ -201,7 +201,7 @@ getJasmineRequireObj().TreeProcessor = function() {
if (node.children) {
return {
fn: function(done) {
var onStart = {
const onStart = {
fn: function(next) {
nodeStart(node, next);
}
@@ -209,7 +209,7 @@ getJasmineRequireObj().TreeProcessor = function() {
queueRunnerFactory({
onComplete: function() {
var args = Array.prototype.slice.call(arguments, [0]);
const args = Array.prototype.slice.call(arguments, [0]);
node.cleanupBeforeAfter();
nodeComplete(node, node.getResult(), function() {
done.apply(undefined, args);
@@ -240,10 +240,10 @@ getJasmineRequireObj().TreeProcessor = function() {
}
function wrapChildren(node, segmentNumber) {
var result = [],
const result = [],
segmentChildren = stats[node.id].segments[segmentNumber].nodes;
for (var i = 0; i < segmentChildren.length; i++) {
for (let i = 0; i < segmentChildren.length; i++) {
result.push(
executeNode(segmentChildren[i].owner, segmentChildren[i].index)
);

View File

@@ -2,9 +2,9 @@ getJasmineRequireObj().UserContext = function(j$) {
function UserContext() {}
UserContext.fromExisting = function(oldContext) {
var context = new UserContext();
const context = new UserContext();
for (var prop in oldContext) {
for (const prop in oldContext) {
if (oldContext.hasOwnProperty(prop)) {
context[prop] = oldContext[prop];
}

View File

@@ -19,8 +19,7 @@ getJasmineRequireObj().ArrayContaining = function(j$) {
return false;
}
for (var i = 0; i < this.sample.length; i++) {
var item = this.sample[i];
for (const item of this.sample) {
if (!matchersUtil.contains(other, item)) {
return false;
}

View File

@@ -19,8 +19,7 @@ getJasmineRequireObj().ArrayWithExactContents = function(j$) {
return false;
}
for (var i = 0; i < this.sample.length; i++) {
var item = this.sample[i];
for (const item of this.sample) {
if (!matchersUtil.contains(other, item)) {
return false;
}

View File

@@ -16,7 +16,7 @@ getJasmineRequireObj().MapContaining = function(j$) {
for (const [key, value] of this.sample) {
// for each key/value pair in `sample`
// there should be at least one pair in `other` whose key and value both match
var hasMatch = false;
let hasMatch = false;
for (const [oKey, oValue] of other) {
if (
matchersUtil.equals(oKey, key) &&

View File

@@ -27,7 +27,7 @@ getJasmineRequireObj().ObjectContaining = function(j$) {
return false;
}
for (var property in this.sample) {
for (const property in this.sample) {
if (
!hasProperty(other, property) ||
!matchersUtil.equals(this.sample[property], other[property])
@@ -47,7 +47,7 @@ getJasmineRequireObj().ObjectContaining = function(j$) {
};
}
var filteredOther = {};
const filteredOther = {};
Object.keys(this.sample).forEach(function(k) {
// eq short-circuits comparison of objects that have different key sets,
// so include all keys even if undefined.

View File

@@ -17,7 +17,7 @@ getJasmineRequireObj().SetContaining = function(j$) {
// for each item in `sample` there should be at least one matching item in `other`
// (not using `matchersUtil.contains` because it compares set members by reference,
// not by deep value equality)
var hasMatch = false;
let hasMatch = false;
for (const oItem of other) {
if (matchersUtil.equals(oItem, item)) {
hasMatch = true;

View File

@@ -43,7 +43,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
* @default 5000
* @since 1.3.0
*/
var DEFAULT_TIMEOUT_INTERVAL = 5000;
let DEFAULT_TIMEOUT_INTERVAL = 5000;
Object.defineProperty(j$, 'DEFAULT_TIMEOUT_INTERVAL', {
get: function() {
return DEFAULT_TIMEOUT_INTERVAL;
@@ -67,7 +67,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
* @return {Env}
*/
j$.getEnv = function(options) {
var env = (j$.currentEnv_ = j$.currentEnv_ || new j$.Env(options));
const env = (j$.currentEnv_ = j$.currentEnv_ || new j$.Env(options));
//jasmine. singletons in here (setTimeout blah blah).
return env;
};
@@ -208,7 +208,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
return func.name;
}
var matches =
const matches =
func.toString().match(/^\s*function\s*(\w+)\s*\(/) ||
func.toString().match(/^\s*\[object\s*(\w+)Constructor\]/);
@@ -216,7 +216,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
};
j$.isPending_ = function(promise) {
var sentinel = {};
const sentinel = {};
return Promise.race([promise, Promise.resolve(sentinel)]).then(
function(result) {
return result === sentinel;

View File

@@ -1,6 +1,6 @@
getJasmineRequireObj().formatErrorMsg = function() {
function generateErrorMsg(domain, usage) {
var usageDefinition = usage ? '\nUsage: ' + usage : '';
const usageDefinition = usage ? '\nUsage: ' + usage : '';
return function errorMsg(msg) {
return domain + ' : ' + msg + usageDefinition;

View File

@@ -14,7 +14,7 @@ getJasmineRequireObj().toBePending = function(j$) {
if (!j$.isPromiseLike(actual)) {
throw new Error('Expected toBePending to be called on a promise.');
}
var want = {};
const want = {};
return Promise.race([actual, Promise.resolve(want)]).then(
function(got) {
return { pass: want === got };

View File

@@ -23,7 +23,7 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$) {
);
}
var expected = getExpectedFromArgs(arg1, arg2, matchersUtil);
const expected = getExpectedFromArgs(arg1, arg2, matchersUtil);
return actualPromise.then(
function() {
@@ -52,7 +52,7 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$) {
);
}
var actualMessage = actual.message;
const actualMessage = actual.message;
if (
actualMessage === expected.message ||
@@ -94,7 +94,7 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$) {
}
function getExpectedFromArgs(arg1, arg2, matchersUtil) {
var error, message;
let error, message;
if (isErrorConstructor(arg1)) {
error = arg1;

View File

@@ -63,7 +63,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
if (j$.isNumber_(haystack.length)) {
// Objects that are shaped like arrays but aren't iterable
for (var i = 0; i < haystack.length; i++) {
for (let i = 0; i < haystack.length; i++) {
if (this.equals(haystack[i], needle)) {
return true;
}
@@ -74,8 +74,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
};
MatchersUtil.prototype.buildFailureMessage = function() {
var self = this;
var args = Array.prototype.slice.call(arguments, 0),
const self = this;
const args = Array.prototype.slice.call(arguments, 0),
matcherName = args[0],
isNot = args[1],
actual = args[2],
@@ -84,14 +84,14 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return ' ' + s.toLowerCase();
});
var message =
let message =
'Expected ' +
self.pp(actual) +
(isNot ? ' not ' : ' ') +
englishyPredicate;
if (expected.length > 0) {
for (var i = 0; i < expected.length; i++) {
for (let i = 0; i < expected.length; i++) {
if (i > 0) {
message += ',';
}
@@ -110,7 +110,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
diffBuilder
) {
if (j$.isFunction_(b.valuesForDiff_)) {
var values = b.valuesForDiff_(a, this.pp);
const values = b.valuesForDiff_(a, this.pp);
this.eq_(values.other, values.self, aStack, bStack, diffBuilder);
} else {
diffBuilder.recordMismatch();
@@ -124,14 +124,15 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
bStack,
diffBuilder
) {
var asymmetricA = j$.isAsymmetricEqualityTester_(a),
asymmetricB = j$.isAsymmetricEqualityTester_(b),
result;
const asymmetricA = j$.isAsymmetricEqualityTester_(a);
const asymmetricB = j$.isAsymmetricEqualityTester_(b);
if (asymmetricA === asymmetricB) {
return undefined;
}
let result;
if (asymmetricA) {
result = a.asymmetricMatch(b, this);
if (!result) {
@@ -168,11 +169,10 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
// Equality function lovingly adapted from isEqual in
// [Underscore](http://underscorejs.org)
MatchersUtil.prototype.eq_ = function(a, b, aStack, bStack, diffBuilder) {
var result = true,
self = this,
i;
let result = true;
const self = this;
var asymmetricResult = this.asymmetricMatch_(
const asymmetricResult = this.asymmetricMatch_(
a,
b,
aStack,
@@ -183,8 +183,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return asymmetricResult;
}
for (i = 0; i < this.customTesters_.length; i++) {
var customTesterResult = this.customTesters_[i](a, b);
for (const tester of this.customTesters_) {
const customTesterResult = tester(a, b);
if (!j$.util.isUndefined(customTesterResult)) {
if (!customTesterResult) {
diffBuilder.recordMismatch();
@@ -218,7 +218,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
}
return result;
}
var className = Object.prototype.toString.call(a);
const className = Object.prototype.toString.call(a);
if (className != Object.prototype.toString.call(b)) {
diffBuilder.recordMismatch();
return false;
@@ -276,8 +276,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return false;
}
var aIsDomNode = j$.isDomNode(a);
var bIsDomNode = j$.isDomNode(b);
const aIsDomNode = j$.isDomNode(a);
const bIsDomNode = j$.isDomNode(b);
if (aIsDomNode && bIsDomNode) {
// At first try to use DOM3 method isEqualNode
result = a.isEqualNode(b);
@@ -291,15 +291,15 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return false;
}
var aIsPromise = j$.isPromise(a);
var bIsPromise = j$.isPromise(b);
const aIsPromise = j$.isPromise(a);
const bIsPromise = j$.isPromise(b);
if (aIsPromise && bIsPromise) {
return a === b;
}
// Assume equality for cyclic structures. The algorithm for detecting cyclic
// structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
var length = aStack.length;
let length = aStack.length;
while (length--) {
// Linear search. Performance is inversely proportional to the number of
// unique nested structures.
@@ -310,12 +310,12 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
// Add the first object to the stack of traversed objects.
aStack.push(a);
bStack.push(b);
var size = 0;
let size = 0;
// Recursively compare objects and arrays.
// Compare array lengths to determine if a deep comparison is necessary.
if (className == '[object Array]') {
var aLength = a.length;
var bLength = b.length;
const aLength = a.length;
const bLength = b.length;
diffBuilder.withPath('length', function() {
if (aLength !== bLength) {
@@ -324,7 +324,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
}
});
for (i = 0; i < aLength || i < bLength; i++) {
for (let i = 0; i < aLength || i < bLength; i++) {
diffBuilder.withPath(i, function() {
if (i >= bLength) {
diffBuilder.recordMismatch(
@@ -352,8 +352,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return false;
}
var keysA = [];
var keysB = [];
const keysA = [];
const keysB = [];
a.forEach(function(valueA, keyA) {
keysA.push(keyA);
});
@@ -363,18 +363,17 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
// For both sets of keys, check they map to equal values in both maps.
// Keep track of corresponding keys (in insertion order) in order to handle asymmetric obj keys.
var mapKeys = [keysA, keysB];
var cmpKeys = [keysB, keysA];
var mapIter, mapKey, mapValueA, mapValueB;
var cmpIter, cmpKey;
for (i = 0; result && i < mapKeys.length; i++) {
mapIter = mapKeys[i];
cmpIter = cmpKeys[i];
const mapKeys = [keysA, keysB];
const cmpKeys = [keysB, keysA];
for (let i = 0; result && i < mapKeys.length; i++) {
const mapIter = mapKeys[i];
const cmpIter = cmpKeys[i];
for (var j = 0; result && j < mapIter.length; j++) {
mapKey = mapIter[j];
cmpKey = cmpIter[j];
mapValueA = a.get(mapKey);
for (let j = 0; result && j < mapIter.length; j++) {
const mapKey = mapIter[j];
const cmpKey = cmpIter[j];
const mapValueA = a.get(mapKey);
let mapValueB;
// Only use the cmpKey when one of the keys is asymmetric and the corresponding key matches,
// otherwise explicitly look up the mapKey in the other Map since we want keys with unique
@@ -408,35 +407,30 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return false;
}
var valuesA = [];
const valuesA = [];
a.forEach(function(valueA) {
valuesA.push(valueA);
});
var valuesB = [];
const valuesB = [];
b.forEach(function(valueB) {
valuesB.push(valueB);
});
// For both sets, check they are all contained in the other set
var setPairs = [[valuesA, valuesB], [valuesB, valuesA]];
var stackPairs = [[aStack, bStack], [bStack, aStack]];
var baseValues, baseValue, baseStack;
var otherValues, otherValue, otherStack;
var found;
var prevStackSize;
for (i = 0; result && i < setPairs.length; i++) {
baseValues = setPairs[i][0];
otherValues = setPairs[i][1];
baseStack = stackPairs[i][0];
otherStack = stackPairs[i][1];
const setPairs = [[valuesA, valuesB], [valuesB, valuesA]];
const stackPairs = [[aStack, bStack], [bStack, aStack]];
for (let i = 0; result && i < setPairs.length; i++) {
const baseValues = setPairs[i][0];
const otherValues = setPairs[i][1];
const baseStack = stackPairs[i][0];
const otherStack = stackPairs[i][1];
// For each value in the base set...
for (var k = 0; result && k < baseValues.length; k++) {
baseValue = baseValues[k];
found = false;
for (const baseValue of baseValues) {
let found = false;
// ... test that it is present in the other set
for (var l = 0; !found && l < otherValues.length; l++) {
otherValue = otherValues[l];
prevStackSize = baseStack.length;
for (let j = 0; !found && j < otherValues.length; j++) {
const otherValue = otherValues[j];
const prevStackSize = baseStack.length;
// compare by value equality
found = this.eq_(
baseValue,
@@ -465,7 +459,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
} else {
// Objects with different constructors are not equivalent, but `Object`s
// or `Array`s from different frames are.
var aCtor = a.constructor,
const aCtor = a.constructor,
bCtor = b.constructor;
if (
aCtor !== bCtor &&
@@ -483,8 +477,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
}
// Deep compare objects.
var aKeys = MatchersUtil.keys(a, className == '[object Array]'),
key;
const aKeys = MatchersUtil.keys(a, className == '[object Array]');
size = aKeys.length;
// Ensure that both objects contain the same number of properties before comparing deep equality.
@@ -495,8 +488,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return false;
}
for (i = 0; i < size; i++) {
key = aKeys[i];
for (const key of aKeys) {
// Deep compare each member
if (!j$.util.has(b, key)) {
diffBuilder.recordMismatch(
@@ -525,18 +517,18 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
};
MatchersUtil.keys = function(obj, isArray) {
var allKeys = (function(o) {
var keys = [];
for (var key in o) {
const allKeys = (function(o) {
const keys = [];
for (const key in o) {
if (j$.util.has(o, key)) {
keys.push(key);
}
}
var symbols = Object.getOwnPropertySymbols(o);
for (var i = 0; i < symbols.length; i++) {
if (o.propertyIsEnumerable(symbols[i])) {
keys.push(symbols[i]);
const symbols = Object.getOwnPropertySymbols(o);
for (const sym of symbols) {
if (o.propertyIsEnumerable(sym)) {
keys.push(sym);
}
}
@@ -551,10 +543,10 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
return allKeys;
}
var extraKeys = [];
for (var i = 0; i < allKeys.length; i++) {
if (typeof allKeys[i] === 'symbol' || !/^[0-9]+$/.test(allKeys[i])) {
extraKeys.push(allKeys[i]);
const extraKeys = [];
for (const k of allKeys) {
if (typeof k === 'symbol' || !/^[0-9]+$/.test(k)) {
extraKeys.push(k);
}
}
@@ -574,7 +566,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
}
function objectKeysAreDifferentFormatter(pp, actual, expected, path) {
var missingProperties = extraKeysAndValues(expected, actual),
const missingProperties = extraKeysAndValues(expected, actual),
extraProperties = extraKeysAndValues(actual, expected),
missingPropertiesMessage = formatKeyValuePairs(pp, missingProperties),
extraPropertiesMessage = formatKeyValuePairs(pp, extraProperties),

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().requireAsyncMatchers = function(jRequire, j$) {
var availableMatchers = [
const availableMatchers = [
'toBePending',
'toBeResolved',
'toBeRejected',
@@ -9,8 +9,7 @@ getJasmineRequireObj().requireAsyncMatchers = function(jRequire, j$) {
],
matchers = {};
for (var i = 0; i < availableMatchers.length; i++) {
var name = availableMatchers[i];
for (const name of availableMatchers) {
matchers[name] = jRequire[name](j$);
}

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().requireMatchers = function(jRequire, j$) {
var availableMatchers = [
const availableMatchers = [
'nothing',
'toBe',
'toBeCloseTo',
@@ -35,8 +35,7 @@ getJasmineRequireObj().requireMatchers = function(jRequire, j$) {
],
matchers = {};
for (var i = 0; i < availableMatchers.length; i++) {
var name = availableMatchers[i];
for (const name of availableMatchers) {
matchers[name] = jRequire[name](j$);
}

View File

@@ -9,12 +9,12 @@ getJasmineRequireObj().toBe = function(j$) {
* expect(thing).toBe(realThing);
*/
function toBe(matchersUtil) {
var tip =
const tip =
' Tip: To check for deep equality, use .toEqual() instead of .toBe().';
return {
compare: function(actual, expected) {
var result = {
const result = {
pass: actual === expected
};

View File

@@ -35,9 +35,9 @@ getJasmineRequireObj().toBeCloseTo = function() {
};
}
var pow = Math.pow(10, precision + 1);
var delta = Math.abs(expected - actual);
var maxDelta = Math.pow(10, -precision) / 2;
const pow = Math.pow(10, precision + 1);
const delta = Math.abs(expected - actual);
const maxDelta = Math.pow(10, -precision) / 2;
return {
pass: Math.round(delta * pow) <= maxDelta * pow

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toBeInstanceOf = function(j$) {
var usageError = j$.formatErrorMsg(
const usageError = j$.formatErrorMsg(
'<toBeInstanceOf>',
'expect(value).toBeInstanceOf(<ConstructorFunction>)'
);
@@ -18,15 +18,15 @@ getJasmineRequireObj().toBeInstanceOf = function(j$) {
function toBeInstanceOf(matchersUtil) {
return {
compare: function(actual, expected) {
var actualType =
actual && actual.constructor
? j$.fnNameFor(actual.constructor)
: matchersUtil.pp(actual),
expectedType = expected
? j$.fnNameFor(expected)
: matchersUtil.pp(expected),
expectedMatcher,
pass;
const actualType =
actual && actual.constructor
? j$.fnNameFor(actual.constructor)
: matchersUtil.pp(actual);
const expectedType = expected
? j$.fnNameFor(expected)
: matchersUtil.pp(expected);
let expectedMatcher;
let pass;
try {
expectedMatcher = new j$.Any(expected);

View File

@@ -10,7 +10,7 @@ getJasmineRequireObj().toBeNaN = function(j$) {
function toBeNaN(matchersUtil) {
return {
compare: function(actual) {
var result = {
const result = {
pass: actual !== actual
};

View File

@@ -10,7 +10,7 @@ getJasmineRequireObj().toBeNegativeInfinity = function(j$) {
function toBeNegativeInfinity(matchersUtil) {
return {
compare: function(actual) {
var result = {
const result = {
pass: actual === Number.NEGATIVE_INFINITY
};

View File

@@ -10,7 +10,7 @@ getJasmineRequireObj().toBePositiveInfinity = function(j$) {
function toBePositiveInfinity(matchersUtil) {
return {
compare: function(actual) {
var result = {
const result = {
pass: actual === Number.POSITIVE_INFINITY
};

View File

@@ -11,7 +11,7 @@ getJasmineRequireObj().toEqual = function(j$) {
function toEqual(matchersUtil) {
return {
compare: function(actual, expected) {
var result = {
const result = {
pass: false
},
diffBuilder = new j$.DiffBuilder({ prettyPrinter: matchersUtil.pp });

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toHaveBeenCalled = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toHaveBeenCalled>',
'expect(<spyObj>).toHaveBeenCalled()'
);
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveBeenCalled = function(j$) {
function toHaveBeenCalled(matchersUtil) {
return {
compare: function(actual) {
var result = {};
const result = {};
if (!j$.isSpy(actual)) {
throw new Error(

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toHaveBeenCalledBefore>',
'expect(<spyObj>).toHaveBeenCalledBefore(<spyObj>)'
);
@@ -31,7 +31,7 @@ getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
);
}
var result = { pass: false };
const result = { pass: false };
if (!firstSpy.calls.count()) {
result.message =
@@ -44,8 +44,8 @@ getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
return result;
}
var latest1stSpyCall = firstSpy.calls.mostRecent().invocationOrder;
var first2ndSpyCall = latterSpy.calls.first().invocationOrder;
const latest1stSpyCall = firstSpy.calls.mostRecent().invocationOrder;
const first2ndSpyCall = latterSpy.calls.first().invocationOrder;
result.pass = latest1stSpyCall < first2ndSpyCall;
@@ -57,8 +57,8 @@ getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
latterSpy.and.identity +
', but it was';
} else {
var first1stSpyCall = firstSpy.calls.first().invocationOrder;
var latest2ndSpyCall = latterSpy.calls.mostRecent().invocationOrder;
const first1stSpyCall = firstSpy.calls.first().invocationOrder;
const latest2ndSpyCall = latterSpy.calls.mostRecent().invocationOrder;
if (first1stSpyCall < first2ndSpyCall) {
result.message =

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toHaveBeenCalledOnceWith>',
'expect(<spyObj>).toHaveBeenCalledOnceWith(...arguments)'
);
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
function toHaveBeenCalledOnceWith(util) {
return {
compare: function() {
var args = Array.prototype.slice.call(arguments, 0),
const args = Array.prototype.slice.call(arguments, 0),
actual = args[0],
expectedArgs = args.slice(1);
@@ -26,7 +26,7 @@ getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
);
}
var prettyPrintedCalls = actual.calls
const prettyPrintedCalls = actual.calls
.allArgs()
.map(function(argsForCall) {
return ' ' + util.pp(argsForCall);
@@ -53,7 +53,7 @@ getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
function getDiffs() {
return actual.calls.allArgs().map(function(argsForCall, callIx) {
var diffBuilder = new j$.DiffBuilder();
const diffBuilder = new j$.DiffBuilder();
util.equals(argsForCall, expectedArgs, diffBuilder);
return diffBuilder.getMessage();
});

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toHaveBeenCalledTimes = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toHaveBeenCalledTimes>',
'expect(<spyObj>).toHaveBeenCalledTimes(<Number>)'
);
@@ -24,7 +24,7 @@ getJasmineRequireObj().toHaveBeenCalledTimes = function(j$) {
);
}
var args = Array.prototype.slice.call(arguments, 0),
const args = Array.prototype.slice.call(arguments, 0),
result = { pass: false };
if (!j$.isNumber_(expected)) {
@@ -36,8 +36,8 @@ getJasmineRequireObj().toHaveBeenCalledTimes = function(j$) {
}
actual = args[0];
var calls = actual.calls.count();
var timesMessage = expected === 1 ? 'once' : expected + ' times';
const calls = actual.calls.count();
const timesMessage = expected === 1 ? 'once' : expected + ' times';
result.pass = calls === expected;
result.message = result.pass
? 'Expected spy ' +

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toHaveBeenCalledWith>',
'expect(<spyObj>).toHaveBeenCalledWith(...arguments)'
);
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
function toHaveBeenCalledWith(matchersUtil) {
return {
compare: function() {
var args = Array.prototype.slice.call(arguments, 0),
const args = Array.prototype.slice.call(arguments, 0),
actual = args[0],
expectedArgs = args.slice(1),
result = { pass: false };
@@ -57,16 +57,16 @@ getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
};
} else {
result.message = function() {
var prettyPrintedCalls = actual.calls
const prettyPrintedCalls = actual.calls
.allArgs()
.map(function(argsForCall) {
return ' ' + matchersUtil.pp(argsForCall);
});
var diffs = actual.calls
const diffs = actual.calls
.allArgs()
.map(function(argsForCall, callIx) {
var diffBuilder = new j$.DiffBuilder();
const diffBuilder = new j$.DiffBuilder();
matchersUtil.equals(argsForCall, expectedArgs, diffBuilder);
return (
'Call ' +

View File

@@ -12,7 +12,7 @@ getJasmineRequireObj().toHaveSize = function(j$) {
function toHaveSize() {
return {
compare: function(actual, expected) {
var result = {
const result = {
pass: false
};
@@ -37,7 +37,7 @@ getJasmineRequireObj().toHaveSize = function(j$) {
};
}
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
function isLength(value) {
return (
typeof value == 'number' &&

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toHaveSpyInteractions = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toHaveSpyInteractions>',
'expect(<spyObj>).toHaveSpyInteractions()'
);
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveSpyInteractions = function(j$) {
function toHaveSpyInteractions(matchersUtil) {
return {
compare: function(actual) {
var result = {};
const result = {};
if (!j$.isObject_(actual)) {
throw new Error(

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toMatch = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toMatch>',
'expect(<expectation>).toMatch(<string> || <regexp>)'
);
@@ -21,7 +21,7 @@ getJasmineRequireObj().toMatch = function(j$) {
throw new Error(getErrorMsg('Expected is not a String or a RegExp'));
}
var regexp = new RegExp(expected);
const regexp = new RegExp(expected);
return {
pass: regexp.test(actual)

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toThrow = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toThrow>',
'expect(function() {<expectation>}).toThrow()'
);
@@ -17,9 +17,9 @@ getJasmineRequireObj().toThrow = function(j$) {
function toThrow(matchersUtil) {
return {
compare: function(actual, expected) {
var result = { pass: false },
threw = false,
thrown;
const result = { pass: false };
let threw = false;
let thrown;
if (typeof actual != 'function') {
throw new Error(getErrorMsg('Actual is not a Function'));

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toThrowError = function(j$) {
var getErrorMsg = j$.formatErrorMsg(
const getErrorMsg = j$.formatErrorMsg(
'<toThrowError>',
'expect(function() {<expectation>}).toThrowError(<ErrorConstructor>, <message>)'
);
@@ -21,13 +21,14 @@ getJasmineRequireObj().toThrowError = function(j$) {
function toThrowError(matchersUtil) {
return {
compare: function(actual) {
var errorMatcher = getMatcher.apply(null, arguments),
thrown;
const errorMatcher = getMatcher.apply(null, arguments);
if (typeof actual != 'function') {
throw new Error(getErrorMsg('Actual is not a Function'));
}
let thrown;
try {
actual();
return fail('Expected function to throw an Error.');
@@ -50,7 +51,7 @@ getJasmineRequireObj().toThrowError = function(j$) {
};
function getMatcher() {
var expected, errorType;
let expected, errorType;
if (arguments[2]) {
errorType = arguments[1];
@@ -106,15 +107,15 @@ getJasmineRequireObj().toThrowError = function(j$) {
}
}
var errorTypeDescription = errorType
const errorTypeDescription = errorType
? j$.fnNameFor(errorType)
: 'an exception';
function thrownDescription(thrown) {
var thrownName = errorType
? j$.fnNameFor(thrown.constructor)
: 'an exception',
thrownMessage = '';
const thrownName = errorType
? j$.fnNameFor(thrown.constructor)
: 'an exception';
let thrownMessage = '';
if (expected) {
thrownMessage = ' with message ' + matchersUtil.pp(thrown.message);
@@ -176,7 +177,7 @@ getJasmineRequireObj().toThrowError = function(j$) {
return false;
}
var Surrogate = function() {};
const Surrogate = function() {};
Surrogate.prototype = type.prototype;
return j$.isError_(new Surrogate());
}

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().toThrowMatching = function(j$) {
var usageError = j$.formatErrorMsg(
const usageError = j$.formatErrorMsg(
'<toThrowMatching>',
'expect(function() {<expectation>}).toThrowMatching(<Predicate>)'
);
@@ -16,8 +16,6 @@ getJasmineRequireObj().toThrowMatching = function(j$) {
function toThrowMatching(matchersUtil) {
return {
compare: function(actual, predicate) {
var thrown;
if (typeof actual !== 'function') {
throw new Error(usageError('Actual is not a Function'));
}
@@ -26,6 +24,8 @@ getJasmineRequireObj().toThrowMatching = function(j$) {
throw new Error(usageError('Predicate is not a Function'));
}
let thrown;
try {
actual();
return fail('Expected function to throw an exception.');

View File

@@ -1,6 +1,6 @@
// eslint-disable-next-line no-unused-vars
// eslint-disable-next-line no-unused-vars,no-var
var getJasmineRequireObj = (function(jasmineGlobal) {
var jasmineRequire;
let jasmineRequire;
if (
typeof module !== 'undefined' &&
@@ -29,7 +29,7 @@ var getJasmineRequireObj = (function(jasmineGlobal) {
}
getJasmineRequire().core = function(jRequire) {
var j$ = {};
const j$ = {};
jRequire.base(j$, jasmineGlobal);
j$.util = jRequire.util(j$);

View File

@@ -1,5 +1,5 @@
getJasmineRequireObj().interface = function(jasmine, env) {
var jasmineInterface = {
const jasmineInterface = {
/**
* Callback passed to parts of the Jasmine base interface.
*

View File

@@ -1,15 +1,15 @@
getJasmineRequireObj().util = function(j$) {
var util = {};
const util = {};
util.inherit = function(childClass, parentClass) {
var Subclass = function() {};
const Subclass = function() {};
Subclass.prototype = parentClass.prototype;
childClass.prototype = new Subclass();
};
util.argsToArray = function(args) {
var arrayOfArgs = [];
for (var i = 0; i < args.length; i++) {
const arrayOfArgs = [];
for (let i = 0; i < args.length; i++) {
arrayOfArgs.push(args[i]);
}
return arrayOfArgs;
@@ -20,7 +20,7 @@ getJasmineRequireObj().util = function(j$) {
};
util.arrayContains = function(array, search) {
var i = array.length;
let i = array.length;
while (i--) {
if (array[i] === search) {
return true;
@@ -34,8 +34,8 @@ getJasmineRequireObj().util = function(j$) {
return obj.slice();
}
var cloned = {};
for (var prop in obj) {
const cloned = {};
for (const prop in obj) {
if (obj.hasOwnProperty(prop)) {
cloned[prop] = obj[prop];
}
@@ -45,10 +45,10 @@ getJasmineRequireObj().util = function(j$) {
};
util.cloneArgs = function(args) {
var clonedArgs = [];
var argsAsArray = j$.util.argsToArray(args);
for (var i = 0; i < argsAsArray.length; i++) {
var str = Object.prototype.toString.apply(argsAsArray[i]),
const clonedArgs = [];
const argsAsArray = j$.util.argsToArray(args);
for (let i = 0; i < argsAsArray.length; i++) {
const str = Object.prototype.toString.apply(argsAsArray[i]),
primitives = /^\[object (Boolean|String|RegExp|Number)/;
// All falsey values are either primitives, `null`, or `undefined.
@@ -64,7 +64,7 @@ getJasmineRequireObj().util = function(j$) {
};
util.getPropertyDescriptor = function(obj, methodName) {
var descriptor,
let descriptor,
proto = obj;
do {
@@ -87,12 +87,12 @@ getJasmineRequireObj().util = function(j$) {
};
function callerFile() {
var trace = new j$.StackTrace(util.errorWithStack());
const trace = new j$.StackTrace(util.errorWithStack());
return trace.frames[2].file;
}
util.jasmineFile = (function() {
var result;
let result;
return function() {
if (!result) {
@@ -113,7 +113,7 @@ getJasmineRequireObj().util = function(j$) {
// exceeded. But on all currently supported JS runtimes, setTimeout calls
// the callback immediately when the timeout is greater than 2147483647
// (the maximum value of a signed 32 bit integer).
var max = 2147483647;
const max = 2147483647;
if (timeout > max) {
throw new Error(