diff --git a/lib/debug/asserts.js b/lib/debug/asserts.js index ab801d735..501054722 100644 --- a/lib/debug/asserts.js +++ b/lib/debug/asserts.js @@ -39,7 +39,7 @@ goog.asserts.assert = function() {}; /** @private */ goog.asserts.patchAssert_ = function() { - var assert = console.assert; + let assert = console.assert; if (!assert) { console.assert = function() {}; diff --git a/lib/debug/log.js b/lib/debug/log.js index eebdcbd1f..1f18c0cec 100644 --- a/lib/debug/log.js +++ b/lib/debug/log.js @@ -93,9 +93,9 @@ if (window.console && window.console.log.bind) { * @exportDoc */ shaka.log.setLevel = function(level) { - var nop = function() {}; - var log = shaka.log; - var Level = shaka.log.Level; + let nop = function() {}; + let log = shaka.log; + const Level = shaka.log.Level; shaka.log.currentLevel = level; diff --git a/lib/util/abortable_operation.js b/lib/util/abortable_operation.js index d94b8ccde..823db44fc 100644 --- a/lib/util/abortable_operation.js +++ b/lib/util/abortable_operation.js @@ -148,10 +148,10 @@ shaka.util.AbortableOperation = class { * @template U */ chain(onSuccess, onError) { - var newPromise = new shaka.util.PublicPromise(); + let newPromise = new shaka.util.PublicPromise(); // If called before "this" completes, just abort "this". - var abort = () => { + let abort = () => { newPromise.reject(new shaka.util.Error( shaka.util.Error.Severity.CRITICAL, shaka.util.Error.Category.PLAYER, @@ -218,7 +218,7 @@ shaka.util.AbortableOperation = class { */ static wrapChainCallback_(callback, value, newPromise) { try { - var ret = callback(value); + let ret = callback(value); if (ret && ret.promise && ret.abort) { // This is an abortable operation, with its own abort() method. diff --git a/lib/util/array_utils.js b/lib/util/array_utils.js index 6d858f41d..21e7a79cd 100644 --- a/lib/util/array_utils.js +++ b/lib/util/array_utils.js @@ -33,10 +33,10 @@ goog.provide('shaka.util.ArrayUtils'); * @template T */ shaka.util.ArrayUtils.removeDuplicates = function(array, opt_compareFn) { - var result = []; - for (var i = 0; i < array.length; ++i) { - var matchFound = false; - for (var j = 0; j < result.length; ++j) { + let result = []; + for (let i = 0; i < array.length; ++i) { + let matchFound = false; + for (let j = 0; j < result.length; ++j) { matchFound = opt_compareFn ? opt_compareFn(array[i], result[j]) : array[i] === result[j]; if (matchFound) break; @@ -60,7 +60,7 @@ shaka.util.ArrayUtils.removeDuplicates = function(array, opt_compareFn) { * @template T */ shaka.util.ArrayUtils.indexOf = function(array, value, compareFn) { - for (var i = 0; i < array.length; ++i) { + for (let i = 0; i < array.length; ++i) { if (compareFn(array[i], value)) { return i; } @@ -76,7 +76,7 @@ shaka.util.ArrayUtils.indexOf = function(array, value, compareFn) { * @template T */ shaka.util.ArrayUtils.remove = function(array, element) { - var index = array.indexOf(element); + let index = array.indexOf(element); if (index > -1) array.splice(index, 1); }; @@ -90,7 +90,7 @@ shaka.util.ArrayUtils.remove = function(array, element) { * @template T */ shaka.util.ArrayUtils.count = function(array, check) { - var count = 0; + let count = 0; array.forEach(function(element) { count += check(element) ? 1 : 0; diff --git a/lib/util/config_utils.js b/lib/util/config_utils.js index 247a10ed0..03e10cac9 100644 --- a/lib/util/config_utils.js +++ b/lib/util/config_utils.js @@ -39,11 +39,11 @@ shaka.util.ConfigUtils.mergeConfigObjects = * @type {boolean} * If true, don't validate the keys in the next level. */ - var ignoreKeys = path in overrides; + let ignoreKeys = path in overrides; - for (var k in source) { - var subPath = path + '.' + k; - var subTemplate = ignoreKeys ? overrides[path] : template[k]; + for (let k in source) { + let subPath = path + '.' + k; + let subTemplate = ignoreKeys ? overrides[path] : template[k]; // The order of these checks is important. if (!ignoreKeys && !(k in destination)) { @@ -104,10 +104,10 @@ shaka.util.ConfigUtils.mergeConfigObjects = * @return {T} */ shaka.util.ConfigUtils.cloneObject = function(arg) { - var seenObjects = []; + let seenObjects = []; // This recursively clones the value |val|, using the captured variable // |seenObjects| to track the objects we have already cloned. - var clone = function(val) { + let clone = function(val) { switch (typeof val) { case 'undefined': case 'boolean': @@ -123,14 +123,14 @@ shaka.util.ConfigUtils.cloneObject = function(arg) { if (seenObjects.indexOf(val) >= 0) return null; - var isArray = val.constructor == Array; + let isArray = val.constructor == Array; if (val.constructor != Object && !isArray) return null; seenObjects.push(val); - var ret = isArray ? [] : {}; + let ret = isArray ? [] : {}; // Note |name| will equal a number for arrays. - for (var name in val) { + for (let name in val) { ret[name] = clone(val[name]); } diff --git a/lib/util/data_view_reader.js b/lib/util/data_view_reader.js index d283df359..1ee03a712 100644 --- a/lib/util/data_view_reader.js +++ b/lib/util/data_view_reader.js @@ -94,7 +94,7 @@ shaka.util.DataViewReader.prototype.getLength = function() { */ shaka.util.DataViewReader.prototype.readUint8 = function() { try { - var value = this.dataView_.getUint8(this.position_); + let value = this.dataView_.getUint8(this.position_); this.position_ += 1; return value; } catch (exception) { @@ -111,7 +111,7 @@ shaka.util.DataViewReader.prototype.readUint8 = function() { */ shaka.util.DataViewReader.prototype.readUint16 = function() { try { - var value = this.dataView_.getUint16(this.position_, this.littleEndian_); + let value = this.dataView_.getUint16(this.position_, this.littleEndian_); this.position_ += 2; return value; } catch (exception) { @@ -128,7 +128,7 @@ shaka.util.DataViewReader.prototype.readUint16 = function() { */ shaka.util.DataViewReader.prototype.readUint32 = function() { try { - var value = this.dataView_.getUint32(this.position_, this.littleEndian_); + let value = this.dataView_.getUint32(this.position_, this.littleEndian_); this.position_ += 4; return value; } catch (exception) { @@ -145,7 +145,7 @@ shaka.util.DataViewReader.prototype.readUint32 = function() { */ shaka.util.DataViewReader.prototype.readInt32 = function() { try { - var value = this.dataView_.getInt32(this.position_, this.littleEndian_); + let value = this.dataView_.getInt32(this.position_, this.littleEndian_); this.position_ += 4; return value; } catch (exception) { @@ -162,7 +162,7 @@ shaka.util.DataViewReader.prototype.readInt32 = function() { * @export */ shaka.util.DataViewReader.prototype.readUint64 = function() { - var low, high; + let low, high; try { if (this.littleEndian_) { @@ -204,7 +204,7 @@ shaka.util.DataViewReader.prototype.readBytes = function(bytes) { this.throwOutOfBounds_(); } - var value = new Uint8Array( + let value = new Uint8Array( this.dataView_.buffer, this.dataView_.byteOffset + this.position_, bytes); this.position_ += bytes; return new Uint8Array(value); @@ -264,14 +264,14 @@ shaka.util.DataViewReader.prototype.seek = function(position) { * @export */ shaka.util.DataViewReader.prototype.readTerminatedString = function() { - var start = this.position_; + let start = this.position_; while (this.hasMoreData()) { - var value = this.dataView_.getUint8(this.position_); + let value = this.dataView_.getUint8(this.position_); if (value == 0) break; this.position_ += 1; } - var ret = new Uint8Array( + let ret = new Uint8Array( this.dataView_.buffer, this.dataView_.byteOffset + start, this.position_ - start); // skip string termination diff --git a/lib/util/ebml_parser.js b/lib/util/ebml_parser.js index ee9173aa9..c9ef08744 100644 --- a/lib/util/ebml_parser.js +++ b/lib/util/ebml_parser.js @@ -76,11 +76,11 @@ shaka.util.EbmlParser.prototype.hasMoreData = function() { * @see http://matroska.org/technical/specs/rfc/index.html */ shaka.util.EbmlParser.prototype.parseElement = function() { - var id = this.parseId_(); + let id = this.parseId_(); // Parse the element's size. - var vint = this.parseVint_(); - var size; + let vint = this.parseVint_(); + let size; if (shaka.util.EbmlParser.isDynamicSizeValue_(vint)) { // If this has an unknown size, assume that it takes up the rest of the // data. @@ -93,12 +93,12 @@ shaka.util.EbmlParser.prototype.parseElement = function() { // parsing a "partial element". This may occur if for example we are // parsing the beginning of some WebM container data, but our buffer does // not contain the entire WebM container data. - var elementSize = + let elementSize = this.reader_.getPosition() + size <= this.dataView_.byteLength ? size : this.dataView_.byteLength - this.reader_.getPosition(); - var dataView = new DataView( + let dataView = new DataView( this.dataView_.buffer, this.dataView_.byteOffset + this.reader_.getPosition(), elementSize); @@ -116,7 +116,7 @@ shaka.util.EbmlParser.prototype.parseElement = function() { * @private */ shaka.util.EbmlParser.prototype.parseId_ = function() { - var vint = this.parseVint_(); + let vint = this.parseVint_(); if (vint.length > 7) { throw new shaka.util.Error( @@ -125,8 +125,8 @@ shaka.util.EbmlParser.prototype.parseId_ = function() { shaka.util.Error.Code.EBML_OVERFLOW); } - var id = 0; - for (var i = 0; i < vint.length; i++) { + let id = 0; + for (let i = 0; i < vint.length; i++) { // Note that we cannot use << since |value| may exceed 32 bits. id = (256 * id) + vint[i]; } @@ -147,12 +147,12 @@ shaka.util.EbmlParser.prototype.parseId_ = function() { * @private */ shaka.util.EbmlParser.prototype.parseVint_ = function() { - var firstByte = this.reader_.readUint8(); - var numBytes; + let firstByte = this.reader_.readUint8(); + let numBytes; // Determine the byte width of the variable sized integer. for (numBytes = 1; numBytes <= 8; numBytes++) { - var mask = 0x1 << (8 - numBytes); + let mask = 0x1 << (8 - numBytes); if (firstByte & mask) { break; } @@ -165,11 +165,11 @@ shaka.util.EbmlParser.prototype.parseVint_ = function() { shaka.util.Error.Code.EBML_OVERFLOW); } - var vint = new Uint8Array(numBytes); + let vint = new Uint8Array(numBytes); vint[0] = firstByte; // Include the remaining bytes. - for (var i = 1; i < numBytes; i++) { + for (let i = 1; i < numBytes; i++) { vint[i] = this.reader_.readUint8(); } @@ -204,11 +204,11 @@ shaka.util.EbmlParser.getVintValue_ = function(vint) { // Mask out the first few bits of |vint|'s first byte to get the most // significant bits of |vint|'s value. If |vint| is 8 bytes wide then |value| // will be set to 0. - var mask = 0x1 << (8 - vint.length); - var value = vint[0] & (mask - 1); + let mask = 0x1 << (8 - vint.length); + let value = vint[0] & (mask - 1); // Add the remaining bytes. - for (var i = 1; i < vint.length; i++) { + for (let i = 1; i < vint.length; i++) { // Note that we cannot use << since |value| may exceed 32 bits. value = (256 * value) + vint[i]; } @@ -225,10 +225,10 @@ shaka.util.EbmlParser.getVintValue_ = function(vint) { * @private */ shaka.util.EbmlParser.isDynamicSizeValue_ = function(vint) { - var EbmlParser = shaka.util.EbmlParser; - var uint8ArrayEqual = shaka.util.Uint8ArrayUtils.equal; + const EbmlParser = shaka.util.EbmlParser; + let uint8ArrayEqual = shaka.util.Uint8ArrayUtils.equal; - for (var i = 0; i < EbmlParser.DYNAMIC_SIZES.length; i++) { + for (let i = 0; i < EbmlParser.DYNAMIC_SIZES.length; i++) { if (uint8ArrayEqual(vint, EbmlParser.DYNAMIC_SIZES[i])) { return true; } @@ -294,10 +294,10 @@ shaka.util.EbmlElement.prototype.getUint = function() { shaka.util.Error.Code.JS_INTEGER_OVERFLOW); } - var value = 0; + let value = 0; - for (var i = 0; i < this.dataView_.byteLength; i++) { - var chunk = this.dataView_.getUint8(i); + for (let i = 0; i < this.dataView_.byteLength; i++) { + let chunk = this.dataView_.getUint8(i); value = (256 * value) + chunk; } diff --git a/lib/util/error.js b/lib/util/error.js index a113f465e..7d6799a68 100644 --- a/lib/util/error.js +++ b/lib/util/error.js @@ -62,14 +62,14 @@ shaka.util.Error = function(severity, category, code, var_args) { // This improves formatting of Errors in failure messages in the tests. if (goog.DEBUG) { - var categoryName = 'UNKNOWN'; - var codeName = 'UNKNOWN'; + let categoryName = 'UNKNOWN'; + let codeName = 'UNKNOWN'; - for (var k in shaka.util.Error.Category) { + for (let k in shaka.util.Error.Category) { if (shaka.util.Error.Category[k] == this.category) categoryName = k; } - for (var k in shaka.util.Error.Code) { + for (let k in shaka.util.Error.Code) { if (shaka.util.Error.Code[k] == this.code) codeName = k; } diff --git a/lib/util/event_manager.js b/lib/util/event_manager.js index e4a22c384..a3304c66b 100644 --- a/lib/util/event_manager.js +++ b/lib/util/event_manager.js @@ -66,7 +66,7 @@ shaka.util.EventManager.prototype.destroy = function() { shaka.util.EventManager.prototype.listen = function(target, type, listener) { if (!this.bindingMap_) return; - var binding = new shaka.util.EventManager.Binding_(target, type, listener); + let binding = new shaka.util.EventManager.Binding_(target, type, listener); this.bindingMap_.push(type, binding); }; @@ -98,10 +98,10 @@ shaka.util.EventManager.prototype.listenOnce = shaka.util.EventManager.prototype.unlisten = function(target, type) { if (!this.bindingMap_) return; - var list = this.bindingMap_.get(type) || []; + let list = this.bindingMap_.get(type) || []; - for (var i = 0; i < list.length; ++i) { - var binding = list[i]; + for (let i = 0; i < list.length; ++i) { + let binding = list[i]; if (binding.target == target) { binding.unlisten(); @@ -117,9 +117,9 @@ shaka.util.EventManager.prototype.unlisten = function(target, type) { shaka.util.EventManager.prototype.removeAll = function() { if (!this.bindingMap_) return; - var list = this.bindingMap_.getAll(); + let list = this.bindingMap_.getAll(); - for (var i = 0; i < list.length; ++i) { + for (let i = 0; i < list.length; ++i) { list[i].unlisten(); } diff --git a/lib/util/fake_event.js b/lib/util/fake_event.js index a94d43e4f..0ce4aa487 100644 --- a/lib/util/fake_event.js +++ b/lib/util/fake_event.js @@ -30,8 +30,8 @@ goog.provide('shaka.util.FakeEvent'); */ shaka.util.FakeEvent = function(type, opt_dict) { // Take properties from dict if present. - var dict = opt_dict || {}; - for (var key in dict) { + let dict = opt_dict || {}; + for (let key in dict) { this[key] = dict[key]; } diff --git a/lib/util/fake_event_target.js b/lib/util/fake_event_target.js index 50a4eea72..ad9715cf4 100644 --- a/lib/util/fake_event_target.js +++ b/lib/util/fake_event_target.js @@ -102,14 +102,14 @@ shaka.util.FakeEventTarget.prototype.dispatchEvent = function(event) { goog.asserts.assert(event instanceof shaka.util.FakeEvent, 'FakeEventTarget can only dispatch FakeEvents!'); - var list = this.listeners_.get(event.type) || []; + let list = this.listeners_.get(event.type) || []; - for (var i = 0; i < list.length; ++i) { + for (let i = 0; i < list.length; ++i) { // Do this every time, since events can be re-dispatched from handlers. event.target = this.dispatchTarget; event.currentTarget = this.dispatchTarget; - var listener = list[i]; + let listener = list[i]; try { if (listener.handleEvent) { listener.handleEvent(event); diff --git a/lib/util/language_utils.js b/lib/util/language_utils.js index 3f7cd7b19..1d7a079fb 100644 --- a/lib/util/language_utils.js +++ b/lib/util/language_utils.js @@ -43,7 +43,7 @@ goog.require('goog.asserts'); */ shaka.util.LanguageUtils.match = function(fuzz, preference, candidate) { // Alias. - var LanguageUtils = shaka.util.LanguageUtils; + const LanguageUtils = shaka.util.LanguageUtils; goog.asserts.assert(preference == LanguageUtils.normalize(preference), 'Language pref should be normalized first'); @@ -98,9 +98,9 @@ shaka.util.LanguageUtils.MatchType = { * @see ISO 639 */ shaka.util.LanguageUtils.normalize = function(lang) { - var fields = lang.toLowerCase().split('-'); - var base = fields[0]; - var replacement = shaka.util.LanguageUtils.isoMap_[base]; + let fields = lang.toLowerCase().split('-'); + let base = fields[0]; + let replacement = shaka.util.LanguageUtils.isoMap_[base]; if (replacement) { fields[0] = replacement; } diff --git a/lib/util/manifest_parser_utils.js b/lib/util/manifest_parser_utils.js index 00c61bac6..262299f5b 100644 --- a/lib/util/manifest_parser_utils.js +++ b/lib/util/manifest_parser_utils.js @@ -36,11 +36,11 @@ goog.require('shaka.util.Functional'); * @return {!Array.} */ shaka.util.ManifestParserUtils.resolveUris = function(baseUris, relativeUris) { - var Functional = shaka.util.Functional; + const Functional = shaka.util.Functional; if (relativeUris.length == 0) return baseUris; - var relativeAsGoog = + let relativeAsGoog = relativeUris.map(function(uri) { return new goog.Uri(uri); }); // Resolve each URI relative to each base URI, creating an Array of Arrays. // Then flatten the Arrays into a single Array. diff --git a/lib/util/map_utils.js b/lib/util/map_utils.js index fcc29d08c..300562bb2 100644 --- a/lib/util/map_utils.js +++ b/lib/util/map_utils.js @@ -58,7 +58,7 @@ shaka.util.MapUtils.values = function(object) { */ shaka.util.MapUtils.map = function(object, callback) { return Object.keys(object).reduce(function(ret, key) { - var value = object[key]; + let value = object[key]; ret[key] = callback(value, key); return ret; }, {}); diff --git a/lib/util/mime_utils.js b/lib/util/mime_utils.js index ae108705c..c5c4967a0 100644 --- a/lib/util/mime_utils.js +++ b/lib/util/mime_utils.js @@ -32,7 +32,7 @@ goog.provide('shaka.util.MimeUtils'); * @return {string} */ shaka.util.MimeUtils.getFullType = function(mimeType, opt_codecs) { - var fullMimeType = mimeType; + let fullMimeType = mimeType; if (opt_codecs) { fullMimeType += '; codecs="' + opt_codecs + '"'; } @@ -48,11 +48,11 @@ shaka.util.MimeUtils.getFullType = function(mimeType, opt_codecs) { * @return {string} */ shaka.util.MimeUtils.getExtendedType = function(stream) { - var mimeType = stream.mimeType; + let mimeType = stream.mimeType; - for (var streamKey in shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_) { - var value = stream[streamKey]; - var mimeKey = shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_[streamKey]; + for (let streamKey in shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_) { + let value = stream[streamKey]; + let mimeKey = shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_[streamKey]; if (value) { mimeType += '; ' + mimeKey + '="' + value + '"'; } diff --git a/lib/util/mp4_parser.js b/lib/util/mp4_parser.js index e136a336c..dcf7cf70f 100644 --- a/lib/util/mp4_parser.js +++ b/lib/util/mp4_parser.js @@ -107,7 +107,7 @@ shaka.util.Mp4Parser.BoxType_ = { * @export */ shaka.util.Mp4Parser.prototype.box = function(type, definition) { - var typeCode = shaka.util.Mp4Parser.typeFromString_(type); + let typeCode = shaka.util.Mp4Parser.typeFromString_(type); this.headers_[typeCode] = shaka.util.Mp4Parser.BoxType_.BASIC_BOX; this.boxDefinitions_[typeCode] = definition; return this; @@ -123,7 +123,7 @@ shaka.util.Mp4Parser.prototype.box = function(type, definition) { * @export */ shaka.util.Mp4Parser.prototype.fullBox = function(type, definition) { - var typeCode = shaka.util.Mp4Parser.typeFromString_(type); + let typeCode = shaka.util.Mp4Parser.typeFromString_(type); this.headers_[typeCode] = shaka.util.Mp4Parser.BoxType_.FULL_BOX; this.boxDefinitions_[typeCode] = definition; return this; @@ -151,8 +151,8 @@ shaka.util.Mp4Parser.prototype.stop = function() { * @export */ shaka.util.Mp4Parser.prototype.parse = function(data, opt_partialOkay) { - var wrapped = new Uint8Array(data); - var reader = new shaka.util.DataViewReader( + let wrapped = new Uint8Array(data); + let reader = new shaka.util.DataViewReader( new DataView(wrapped.buffer, wrapped.byteOffset, wrapped.byteLength), shaka.util.DataViewReader.Endianness.BIG_ENDIAN); @@ -176,11 +176,11 @@ shaka.util.Mp4Parser.prototype.parse = function(data, opt_partialOkay) { */ shaka.util.Mp4Parser.prototype.parseNext = function(absStart, reader, opt_partialOkay) { - var start = reader.getPosition(); + let start = reader.getPosition(); - var size = reader.readUint32(); - var type = reader.readUint32(); - var name = shaka.util.Mp4Parser.typeToString_(type); + let size = reader.readUint32(); + let type = reader.readUint32(); + let name = shaka.util.Mp4Parser.typeToString_(type); shaka.log.v2('Parsing MP4 box', name); switch (size) { @@ -192,35 +192,35 @@ shaka.util.Mp4Parser.prototype.parseNext = break; } - var boxDefinition = this.boxDefinitions_[type]; + let boxDefinition = this.boxDefinitions_[type]; if (boxDefinition) { - var version = null; - var flags = null; + let version = null; + let flags = null; if (this.headers_[type] == shaka.util.Mp4Parser.BoxType_.FULL_BOX) { - var versionAndFlags = reader.readUint32(); + let versionAndFlags = reader.readUint32(); version = versionAndFlags >>> 24; flags = versionAndFlags & 0xFFFFFF; } // Read the whole payload so that the current level can be safely read // regardless of how the payload is parsed. - var end = start + size; + let end = start + size; if (opt_partialOkay && end > reader.getLength()) { // For partial reads, truncate the payload if we must. end = reader.getLength(); } - var payloadSize = end - reader.getPosition(); - var payload = + let payloadSize = end - reader.getPosition(); + let payload = (payloadSize > 0) ? reader.readBytes(payloadSize) : new Uint8Array(0); - var payloadReader = new shaka.util.DataViewReader( + let payloadReader = new shaka.util.DataViewReader( new DataView(payload.buffer, payload.byteOffset, payload.byteLength), shaka.util.DataViewReader.Endianness.BIG_ENDIAN); /** @type {shaka.util.Mp4Parser.ParsedBox } */ - var box = { + let box = { parser: this, partialOkay: opt_partialOkay || false, version: version, @@ -262,7 +262,7 @@ shaka.util.Mp4Parser.children = function(box) { * @export */ shaka.util.Mp4Parser.sampleDescription = function(box) { - for (var count = box.reader.readUint32(); + for (let count = box.reader.readUint32(); count > 0 && !box.parser.done_; count -= 1) { box.parser.parseNext(box.start, box.reader, box.partialOkay); @@ -280,7 +280,7 @@ shaka.util.Mp4Parser.sampleDescription = function(box) { */ shaka.util.Mp4Parser.allData = function(callback) { return function(box) { - var all = box.reader.getLength() - box.reader.getPosition(); + let all = box.reader.getLength() - box.reader.getPosition(); callback(box.reader.readBytes(all)); }; }; @@ -299,8 +299,8 @@ shaka.util.Mp4Parser.typeFromString_ = function(name) { name.length == 4, 'Mp4 box names must be 4 characters long'); - var code = 0; - for (var i = 0; i < name.length; i++) { + let code = 0; + for (let i = 0; i < name.length; i++) { code = (code << 8) | name.charCodeAt(i); } return code; @@ -316,7 +316,7 @@ shaka.util.Mp4Parser.typeFromString_ = function(name) { * @private */ shaka.util.Mp4Parser.typeToString_ = function(type) { - var name = String.fromCharCode( + let name = String.fromCharCode( (type >> 24) & 0xff, (type >> 16) & 0xff, (type >> 8) & 0xff, diff --git a/lib/util/multi_map.js b/lib/util/multi_map.js index 56cfc851c..5a889945b 100644 --- a/lib/util/multi_map.js +++ b/lib/util/multi_map.js @@ -51,7 +51,7 @@ shaka.util.MultiMap.prototype.push = function(key, value) { * @return {Array.} or null if no such key exists. */ shaka.util.MultiMap.prototype.get = function(key) { - var list = this.map_[key]; + let list = this.map_[key]; // slice() clones the list so that it and the map can each be modified // without affecting the other. return list ? list.slice() : null; @@ -63,8 +63,8 @@ shaka.util.MultiMap.prototype.get = function(key) { * @return {!Array.} */ shaka.util.MultiMap.prototype.getAll = function() { - var list = []; - for (var key in this.map_) { + let list = []; + for (let key in this.map_) { list.push.apply(list, this.map_[key]); } return list; @@ -77,9 +77,9 @@ shaka.util.MultiMap.prototype.getAll = function() { * @param {T} value */ shaka.util.MultiMap.prototype.remove = function(key, value) { - var list = this.map_[key]; + let list = this.map_[key]; if (!list) return; - for (var i = 0; i < list.length; ++i) { + for (let i = 0; i < list.length; ++i) { if (list[i] == value) { list.splice(i, 1); --i; diff --git a/lib/util/operation_manager.js b/lib/util/operation_manager.js index 2fb3a5fcc..46016a6d8 100644 --- a/lib/util/operation_manager.js +++ b/lib/util/operation_manager.js @@ -46,7 +46,7 @@ shaka.util.OperationManager = class { /** @override */ destroy() { - var cleanup = []; + let cleanup = []; this.operations_.forEach((op) => { // Catch and ignore any failures. This silences error logs in the // JavaScript console about uncaught Promise failures. diff --git a/lib/util/pssh.js b/lib/util/pssh.js index 9ba36cc01..dc49575cf 100644 --- a/lib/util/pssh.js +++ b/lib/util/pssh.js @@ -79,17 +79,17 @@ shaka.util.Pssh.prototype.parseBox_ = function(box) { return; } - var systemId = shaka.util.Uint8ArrayUtils.toHex(box.reader.readBytes(16)); - var keyIds = []; + let systemId = shaka.util.Uint8ArrayUtils.toHex(box.reader.readBytes(16)); + let keyIds = []; if (box.version > 0) { - var numKeyIds = box.reader.readUint32(); - for (var i = 0; i < numKeyIds; ++i) { - var keyId = shaka.util.Uint8ArrayUtils.toHex(box.reader.readBytes(16)); + let numKeyIds = box.reader.readUint32(); + for (let i = 0; i < numKeyIds; ++i) { + let keyId = shaka.util.Uint8ArrayUtils.toHex(box.reader.readBytes(16)); keyIds.push(keyId); } } - var dataSize = box.reader.readUint32(); + let dataSize = box.reader.readUint32(); box.reader.skip(dataSize); // Ignore the data section. // Now that everything has been succesfully parsed from this box, diff --git a/lib/util/public_promise.js b/lib/util/public_promise.js index 91fbe59ee..01b319178 100644 --- a/lib/util/public_promise.js +++ b/lib/util/public_promise.js @@ -30,8 +30,8 @@ goog.provide('shaka.util.PublicPromise'); * @template T */ shaka.util.PublicPromise = function() { - var resolvePromise; - var rejectPromise; + let resolvePromise; + let rejectPromise; // Promise.call causes an error. It seems that inheriting from a native // Promise is not permitted by JavaScript interpreters. @@ -42,7 +42,7 @@ shaka.util.PublicPromise = function() { // compiler will be aware of the additional properties |resolve| and // |reject|. - var promise = new Promise(function(resolve, reject) { + let promise = new Promise(function(resolve, reject) { resolvePromise = resolve; rejectPromise = reject; }); diff --git a/lib/util/stream_utils.js b/lib/util/stream_utils.js index a6a0617ee..95077f00c 100644 --- a/lib/util/stream_utils.js +++ b/lib/util/stream_utils.js @@ -47,7 +47,7 @@ goog.require('shaka.util.MimeUtils'); */ shaka.util.StreamUtils.meetsRestrictions = function( variant, restrictions, maxHwRes) { - var video = variant.video; + let video = variant.video; if (video) { if (video.width < restrictions.minWidth || video.width > restrictions.maxWidth || video.width > maxHwRes.width || @@ -77,10 +77,10 @@ shaka.util.StreamUtils.meetsRestrictions = function( */ shaka.util.StreamUtils.applyRestrictions = function(period, restrictions, maxHwRes) { - var tracksChanged = false; + let tracksChanged = false; period.variants.forEach(function(variant) { - var originalAllowed = variant.allowedByApplication; + let originalAllowed = variant.allowedByApplication; variant.allowedByApplication = shaka.util.StreamUtils.meetsRestrictions( variant, restrictions, maxHwRes); @@ -103,7 +103,7 @@ shaka.util.StreamUtils.applyRestrictions = */ shaka.util.StreamUtils.filterNewPeriod = function( drmEngine, activeAudio, activeVideo, period) { - var StreamUtils = shaka.util.StreamUtils; + const StreamUtils = shaka.util.StreamUtils; if (activeAudio) { goog.asserts.assert( @@ -119,7 +119,7 @@ shaka.util.StreamUtils.filterNewPeriod = function( // Filter variants period.variants = period.variants.filter(function(variant) { - var keep = StreamUtils.isVariantCompatible_( + let keep = StreamUtils.isVariantCompatible_( variant, drmEngine, activeAudio, @@ -135,9 +135,9 @@ shaka.util.StreamUtils.filterNewPeriod = function( // Filter text streams period.textStreams = period.textStreams.filter(function(stream) { - var fullMimeType = shaka.util.MimeUtils.getFullType( + let fullMimeType = shaka.util.MimeUtils.getFullType( stream.mimeType, stream.codecs); - var keep = shaka.text.TextEngine.isTypeSupported(fullMimeType); + let keep = shaka.text.TextEngine.isTypeSupported(fullMimeType); if (!keep) { shaka.log.debug('Dropping text stream. Is not supported by the ' + @@ -163,17 +163,17 @@ shaka.util.StreamUtils.isStreamCompatible_ = function(stream, drmEngine, activeStream) { if (!stream) return true; - var ContentType = shaka.util.ManifestParserUtils.ContentType; + const ContentType = shaka.util.ManifestParserUtils.ContentType; goog.asserts.assert(stream.type != ContentType.TEXT, 'Should not be called on a text stream!'); - var drmSupportedMimeTypes = null; + let drmSupportedMimeTypes = null; if (drmEngine && drmEngine.initialized()) { drmSupportedMimeTypes = drmEngine.getSupportedTypes(); } // Check if stream can be played by the platform - var fullMimeType = shaka.util.MimeUtils.getFullType( + let fullMimeType = shaka.util.MimeUtils.getFullType( stream.mimeType, stream.codecs); if (!shaka.media.MediaSourceEngine.isStreamSupported(stream)) @@ -221,7 +221,7 @@ shaka.util.StreamUtils.isVariantCompatible_ = if (!drmEngine.isSupportedByKeySystem(variant)) return false; } - var isStreamCompatible = shaka.util.StreamUtils.isStreamCompatible_; + let isStreamCompatible = shaka.util.StreamUtils.isStreamCompatible_; return isStreamCompatible(variant.audio, drmEngine, activeAudio) && isStreamCompatible(variant.video, drmEngine, activeVideo); @@ -234,42 +234,42 @@ shaka.util.StreamUtils.isVariantCompatible_ = */ shaka.util.StreamUtils.variantToTrack = function(variant) { /** @type {?shakaExtern.Stream} */ - var audio = variant.audio; + let audio = variant.audio; /** @type {?shakaExtern.Stream} */ - var video = variant.video; + let video = variant.video; /** @type {?string} */ - var audioCodec = audio ? audio.codecs : null; + let audioCodec = audio ? audio.codecs : null; /** @type {?string} */ - var videoCodec = video ? video.codecs : null; + let videoCodec = video ? video.codecs : null; /** @type {!Array.} */ - var codecs = []; + let codecs = []; if (videoCodec) codecs.push(videoCodec); if (audioCodec) codecs.push(audioCodec); /** @type {!Array.} */ - var mimeTypes = []; + let mimeTypes = []; if (video) mimeTypes.push(video.mimeType); if (audio) mimeTypes.push(audio.mimeType); /** @type {?string} */ - var mimeType = mimeTypes[0] || null; + let mimeType = mimeTypes[0] || null; /** @type {!Array.} */ - var kinds = []; + let kinds = []; if (audio) kinds.push(audio.kind); if (video) kinds.push(video.kind); /** @type {?string} */ - var kind = kinds[0] || null; + let kind = kinds[0] || null; /** @type {!Array.} */ - var roles = []; + let roles = []; if (audio) roles.push.apply(roles, audio.roles); if (video) roles.push.apply(roles, video.roles); roles = shaka.util.ArrayUtils.removeDuplicates(roles); /** @type {shakaExtern.Track} */ - var track = { + let track = { id: variant.id, active: false, type: 'variant', @@ -317,10 +317,10 @@ shaka.util.StreamUtils.variantToTrack = function(variant) { * @return {shakaExtern.Track} */ shaka.util.StreamUtils.textStreamToTrack = function(stream) { - var ContentType = shaka.util.ManifestParserUtils.ContentType; + const ContentType = shaka.util.ManifestParserUtils.ContentType; /** @type {shakaExtern.Track} */ - var track = { + let track = { id: stream.id, active: false, type: ContentType.TEXT, @@ -355,12 +355,12 @@ shaka.util.StreamUtils.textStreamToTrack = function(stream) { * @return {!Array.} */ shaka.util.StreamUtils.getTracks = function(period) { - var StreamUtils = shaka.util.StreamUtils; + const StreamUtils = shaka.util.StreamUtils; - var tracks = []; + let tracks = []; - var variants = StreamUtils.getPlayableVariants(period.variants); - var textStreams = period.textStreams; + let variants = StreamUtils.getPlayableVariants(period.variants); + let textStreams = period.textStreams; variants.forEach(function(variant) { tracks.push(StreamUtils.variantToTrack(variant)); @@ -384,11 +384,11 @@ shaka.util.StreamUtils.getTracks = function(period) { */ shaka.util.StreamUtils.getVariantTracks = function(period, activeAudioId, activeVideoId) { - var StreamUtils = shaka.util.StreamUtils; - var variants = StreamUtils.getPlayableVariants(period.variants); + const StreamUtils = shaka.util.StreamUtils; + let variants = StreamUtils.getPlayableVariants(period.variants); return variants.map(function(variant) { - var track = StreamUtils.variantToTrack(variant); + let track = StreamUtils.variantToTrack(variant); if (variant.video && variant.audio) { track.active = activeVideoId == variant.video.id && @@ -413,7 +413,7 @@ shaka.util.StreamUtils.getVariantTracks = */ shaka.util.StreamUtils.getTextTracks = function(period, activeStreamId) { return period.textStreams.map(function(stream) { - var track = shaka.util.StreamUtils.textStreamToTrack(stream); + let track = shaka.util.StreamUtils.textStreamToTrack(stream); track.active = activeStreamId == stream.id; return track; }); @@ -428,7 +428,7 @@ shaka.util.StreamUtils.getTextTracks = function(period, activeStreamId) { * @return {?shakaExtern.Variant} */ shaka.util.StreamUtils.findVariantForTrack = function(period, track) { - for (var i = 0; i < period.variants.length; i++) { + for (let i = 0; i < period.variants.length; i++) { if (period.variants[i].id == track.id) return period.variants[i]; } @@ -444,7 +444,7 @@ shaka.util.StreamUtils.findVariantForTrack = function(period, track) { * @return {?shakaExtern.Stream} */ shaka.util.StreamUtils.findTextStreamForTrack = function(period, track) { - for (var i = 0; i < period.textStreams.length; i++) { + for (let i = 0; i < period.textStreams.length; i++) { if (period.textStreams[i].id == track.id) return period.textStreams[i]; } @@ -485,18 +485,18 @@ shaka.util.StreamUtils.getPlayableVariants = function(variants) { */ shaka.util.StreamUtils.filterVariantsByLanguageAndRole = function( variants, preferredLanguage, preferredRole, opt_languageMatches) { - var LanguageUtils = shaka.util.LanguageUtils; - var ContentType = shaka.util.ManifestParserUtils.ContentType; + const LanguageUtils = shaka.util.LanguageUtils; + const ContentType = shaka.util.ManifestParserUtils.ContentType; /** @type {!Array.} */ - var playable = shaka.util.StreamUtils.getPlayableVariants(variants); + let playable = shaka.util.StreamUtils.getPlayableVariants(variants); /** @type {!Array.} */ - var chosen = playable; + let chosen = playable; // Start with the set of primary variants. /** @type {!Array.} */ - var primary = playable.filter(function(variant) { + let primary = playable.filter(function(variant) { return variant.primary; }); @@ -506,7 +506,7 @@ shaka.util.StreamUtils.filterVariantsByLanguageAndRole = function( // Now reduce the set to one language. This covers both arbitrary language // choice and the reduction of the "primary" variant set to one language. - var firstLanguage = chosen.length ? chosen[0].language : ''; + let firstLanguage = chosen.length ? chosen[0].language : ''; chosen = chosen.filter(function(variant) { return variant.language == firstLanguage; }); @@ -516,15 +516,15 @@ shaka.util.StreamUtils.filterVariantsByLanguageAndRole = function( // matches, finally different subtags. Execute in reverse order so the later // steps override the previous ones. if (preferredLanguage) { - var pref = LanguageUtils.normalize(preferredLanguage); + let pref = LanguageUtils.normalize(preferredLanguage); [LanguageUtils.MatchType.OTHER_SUB_LANGUAGE_OKAY, LanguageUtils.MatchType.BASE_LANGUAGE_OKAY, LanguageUtils.MatchType.EXACT] .forEach(function(matchType) { - var betterLangMatchFound = false; + let betterLangMatchFound = false; playable.forEach(function(variant) { pref = LanguageUtils.normalize(pref); - var lang = LanguageUtils.normalize(variant.language); + let lang = LanguageUtils.normalize(variant.language); if (LanguageUtils.match(matchType, pref, lang)) { if (betterLangMatchFound) { chosen.push(variant); @@ -542,7 +542,7 @@ shaka.util.StreamUtils.filterVariantsByLanguageAndRole = function( // Now refine the choice based on role preference. if (preferredRole) { - var roleMatches = shaka.util.StreamUtils.filterVariantsByRole_( + let roleMatches = shaka.util.StreamUtils.filterVariantsByRole_( chosen, preferredRole); if (roleMatches.length) { return roleMatches; @@ -554,9 +554,9 @@ shaka.util.StreamUtils.filterVariantsByLanguageAndRole = function( // Either there was no role preference, or it could not be satisfied. // Choose an arbitrary role, if there are any, and filter out any other roles. // This ensures we never adapt between roles. - var allRoles = chosen.map(function(variant) { - var audioRoles = variant.audio ? variant.audio.roles : []; - var videoRoles = variant.video ? variant.video.roles : []; + let allRoles = chosen.map(function(variant) { + let audioRoles = variant.audio ? variant.audio.roles : []; + let videoRoles = variant.video ? variant.video.roles : []; return audioRoles.concat(videoRoles); }).reduce(shaka.util.Functional.collapseArrays, []); @@ -578,15 +578,15 @@ shaka.util.StreamUtils.filterVariantsByLanguageAndRole = function( */ shaka.util.StreamUtils.filterStreamsByLanguageAndRole = function( streams, preferredLanguage, preferredRole, opt_languageMatches) { - var LanguageUtils = shaka.util.LanguageUtils; - var ContentType = shaka.util.ManifestParserUtils.ContentType; + const LanguageUtils = shaka.util.LanguageUtils; + const ContentType = shaka.util.ManifestParserUtils.ContentType; /** @type {!Array.} */ - var chosen = streams; + let chosen = streams; // Start with the set of primary streams. /** @type {!Array.} */ - var primary = streams.filter(function(stream) { + let primary = streams.filter(function(stream) { return stream.primary; }); @@ -596,7 +596,7 @@ shaka.util.StreamUtils.filterStreamsByLanguageAndRole = function( // Now reduce the set to one language. This covers both arbitrary language // choice and the reduction of the "primary" stream set to one language. - var firstLanguage = chosen.length ? chosen[0].language : ''; + let firstLanguage = chosen.length ? chosen[0].language : ''; chosen = chosen.filter(function(stream) { return stream.language == firstLanguage; }); @@ -606,14 +606,14 @@ shaka.util.StreamUtils.filterStreamsByLanguageAndRole = function( // matches, finally different subtags. Execute in reverse order so the later // steps override the previous ones. if (preferredLanguage) { - var pref = LanguageUtils.normalize(preferredLanguage); + let pref = LanguageUtils.normalize(preferredLanguage); [LanguageUtils.MatchType.OTHER_SUB_LANGUAGE_OKAY, LanguageUtils.MatchType.BASE_LANGUAGE_OKAY, LanguageUtils.MatchType.EXACT] .forEach(function(matchType) { - var betterLangMatchFound = false; + let betterLangMatchFound = false; streams.forEach(function(stream) { - var lang = LanguageUtils.normalize(stream.language); + let lang = LanguageUtils.normalize(stream.language); if (LanguageUtils.match(matchType, pref, lang)) { if (betterLangMatchFound) { chosen.push(stream); @@ -630,7 +630,7 @@ shaka.util.StreamUtils.filterStreamsByLanguageAndRole = function( // Now refine the choice based on role preference. if (preferredRole) { - var roleMatches = shaka.util.StreamUtils.filterTextStreamsByRole_( + let roleMatches = shaka.util.StreamUtils.filterTextStreamsByRole_( chosen, preferredRole); if (roleMatches.length) { return roleMatches; @@ -639,7 +639,7 @@ shaka.util.StreamUtils.filterStreamsByLanguageAndRole = function( } } else { // Prefer text streams with no roles, if they exist. - var noRoleMatches = chosen.filter(function(stream) { + let noRoleMatches = chosen.filter(function(stream) { return stream.roles.length == 0; }); if (noRoleMatches.length) @@ -650,7 +650,7 @@ shaka.util.StreamUtils.filterStreamsByLanguageAndRole = function( // Choose an arbitrary role, if there are any, and filter out any other roles. // This ensures we never adapt between roles. - var allRoles = chosen.map(function(stream) { + let allRoles = chosen.map(function(stream) { return stream.roles; }).reduce(shaka.util.Functional.collapseArrays, []); @@ -716,7 +716,7 @@ shaka.util.StreamUtils.getVariantByStreams = function(audio, video, variants) { 'Video streams must have the video type.'); } - for (var i = 0; i < variants.length; i++) { + for (let i = 0; i < variants.length; i++) { if (variants[i].audio == audio && variants[i].video == video) return variants[i]; } @@ -743,7 +743,7 @@ shaka.util.StreamUtils.getVariantByStreamIds = function( return stream.id == id; } - for (var i = 0; i < variants.length; i++) { + for (let i = 0; i < variants.length; i++) { if (matchesId(audioId, variants[i].audio) && matchesId(videoId, variants[i].video)) { return variants[i]; @@ -761,9 +761,9 @@ shaka.util.StreamUtils.getVariantByStreamIds = function( * @return {number} */ shaka.util.StreamUtils.findPeriodContainingTime = function(manifest, time) { - var threshold = shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS; - for (var i = manifest.periods.length - 1; i > 0; --i) { - var period = manifest.periods[i]; + let threshold = shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS; + for (let i = manifest.periods.length - 1; i > 0; --i) { + let period = manifest.periods[i]; // The last segment may end right before the end of the Period because of // rounding issues. if (time + threshold >= period.startTime) @@ -780,18 +780,18 @@ shaka.util.StreamUtils.findPeriodContainingTime = function(manifest, time) { * no Period contains |stream|. */ shaka.util.StreamUtils.findPeriodContainingStream = function(manifest, stream) { - var ContentType = shaka.util.ManifestParserUtils.ContentType; - for (var periodIdx = 0; periodIdx < manifest.periods.length; ++periodIdx) { - var period = manifest.periods[periodIdx]; + const ContentType = shaka.util.ManifestParserUtils.ContentType; + for (let periodIdx = 0; periodIdx < manifest.periods.length; ++periodIdx) { + let period = manifest.periods[periodIdx]; if (stream.type == ContentType.TEXT) { - for (var j = 0; j < period.textStreams.length; ++j) { - var textStream = period.textStreams[j]; + for (let j = 0; j < period.textStreams.length; ++j) { + let textStream = period.textStreams[j]; if (textStream == stream) return periodIdx; } } else { - for (var j = 0; j < period.variants.length; ++j) { - var variant = period.variants[j]; + for (let j = 0; j < period.variants.length; ++j) { + let variant = period.variants[j]; if (variant.audio == stream || variant.video == stream || (variant.video && variant.video.trickModeVideo == stream)) { return periodIdx; @@ -811,9 +811,9 @@ shaka.util.StreamUtils.findPeriodContainingStream = function(manifest, stream) { */ shaka.util.StreamUtils.findPeriodContainingVariant = function(manifest, variant) { - for (var periodIdx = 0; periodIdx < manifest.periods.length; ++periodIdx) { - var period = manifest.periods[periodIdx]; - for (var j = 0; j < period.variants.length; ++j) { + for (let periodIdx = 0; periodIdx < manifest.periods.length; ++periodIdx) { + let period = manifest.periods[periodIdx]; + for (let j = 0; j < period.variants.length; ++j) { if (period.variants[j] == variant) { return periodIdx; } @@ -846,7 +846,7 @@ shaka.util.StreamUtils.getRebufferingGoal = function( * @return {boolean} */ shaka.util.StreamUtils.isAudio = function(stream) { - var ContentType = shaka.util.ManifestParserUtils.ContentType; + const ContentType = shaka.util.ManifestParserUtils.ContentType; return stream.type == ContentType.AUDIO; }; @@ -858,6 +858,6 @@ shaka.util.StreamUtils.isAudio = function(stream) { * @return {boolean} */ shaka.util.StreamUtils.isVideo = function(stream) { - var ContentType = shaka.util.ManifestParserUtils.ContentType; + const ContentType = shaka.util.ManifestParserUtils.ContentType; return stream.type == ContentType.VIDEO; }; diff --git a/lib/util/string_utils.js b/lib/util/string_utils.js index 98114d3dc..b012b0456 100644 --- a/lib/util/string_utils.js +++ b/lib/util/string_utils.js @@ -39,19 +39,19 @@ goog.require('shaka.util.Error'); shaka.util.StringUtils.fromUTF8 = function(data) { if (!data) return ''; - var uint8 = new Uint8Array(data); + let uint8 = new Uint8Array(data); // If present, strip off the UTF-8 BOM. if (uint8[0] == 0xef && uint8[1] == 0xbb && uint8[2] == 0xbf) { uint8 = uint8.subarray(3); } // http://stackoverflow.com/a/13691499 - var utf8 = shaka.util.StringUtils.fromCharCode_(uint8); + let utf8 = shaka.util.StringUtils.fromCharCode_(uint8); // This converts each character in the string to an escape sequence. If the // character is in the ASCII range, it is not converted; otherwise it is // converted to a URI escape sequence. // Example: '\x67\x35\xe3\x82\xac' -> 'g#%E3%82%AC' - var escaped = escape(utf8); + let escaped = escape(utf8); // Decode the escaped sequence. This will interpret UTF-8 sequences into the // correct character. // Example: 'g#%E3%82%AC' -> 'g#€' @@ -88,23 +88,23 @@ shaka.util.StringUtils.fromUTF16 = function(data, littleEndian, opt_noThrow) { } /** @type {ArrayBuffer} */ - var buffer; + let buffer; if (data instanceof ArrayBuffer) { buffer = data; } else { // Have to create a new buffer because the argument may be a smaller // view on a larger ArrayBuffer. We cannot use an ArrayBufferView in // a DataView. - var temp = new Uint8Array(data.byteLength); + let temp = new Uint8Array(data.byteLength); temp.set(new Uint8Array(data)); buffer = temp.buffer; } // Use a DataView to ensure correct endianness. - var length = Math.floor(data.byteLength / 2); - var arr = new Uint16Array(length); - var dataView = new DataView(buffer); - for (var i = 0; i < length; i++) { + let length = Math.floor(data.byteLength / 2); + let arr = new Uint16Array(length); + let dataView = new DataView(buffer); + for (let i = 0; i < length; i++) { arr[i] = dataView.getUint16(i * 2, littleEndian); } return shaka.util.StringUtils.fromCharCode_(arr); @@ -121,9 +121,9 @@ shaka.util.StringUtils.fromUTF16 = function(data, littleEndian, opt_noThrow) { * @export */ shaka.util.StringUtils.fromBytesAutoDetect = function(data) { - var StringUtils = shaka.util.StringUtils; + const StringUtils = shaka.util.StringUtils; - var uint8 = new Uint8Array(data); + let uint8 = new Uint8Array(data); if (uint8[0] == 0xef && uint8[1] == 0xbb && uint8[2] == 0xbf) return StringUtils.fromUTF8(uint8); else if (uint8[0] == 0xfe && uint8[1] == 0xff) @@ -131,7 +131,7 @@ shaka.util.StringUtils.fromBytesAutoDetect = function(data) { else if (uint8[0] == 0xff && uint8[1] == 0xfe) return StringUtils.fromUTF16(uint8.subarray(2), true /* littleEndian */); - var isAscii = (function(arr, i) { + let isAscii = (function(arr, i) { // arr[i] >= ' ' && arr[i] <= '~'; return arr.byteLength <= i || (arr[i] >= 0x20 && arr[i] <= 0x7e); }.bind(null, uint8)); @@ -164,16 +164,16 @@ shaka.util.StringUtils.toUTF8 = function(str) { // in the ASCII range, it is not converted; otherwise it will be converted to // a series of URI escape sequences according to UTF-8. // Example: 'g#€' -> 'g#%E3%82%AC' - var encoded = encodeURIComponent(str); + let encoded = encodeURIComponent(str); // Convert each escape sequence individually into a character. Each escape // sequence is interpreted as a code-point, so if an escape sequence happens // to be part of a multi-byte sequence, each byte will be converted to a // single character. // Example: 'g#%E3%82%AC' -> '\x67\x35\xe3\x82\xac' - var utf8 = unescape(encoded); + let utf8 = unescape(encoded); - var result = new Uint8Array(utf8.length); - for (var i = 0; i < utf8.length; ++i) { + let result = new Uint8Array(utf8.length); + for (let i = 0; i < utf8.length; ++i) { result[i] = utf8.charCodeAt(i); } return result.buffer; @@ -188,10 +188,10 @@ shaka.util.StringUtils.toUTF8 = function(str) { * @private */ shaka.util.StringUtils.fromCharCode_ = function(args) { - var max = 16000; - var ret = ''; - for (var i = 0; i < args.length; i += max) { - var subArray = args.subarray(i, i + max); + let max = 16000; + let ret = ''; + for (let i = 0; i < args.length; i += max) { + let subArray = args.subarray(i, i + max); ret += String.fromCharCode.apply(null, subArray); } diff --git a/lib/util/text_parser.js b/lib/util/text_parser.js index 448212c4b..ad1e9389d 100644 --- a/lib/util/text_parser.js +++ b/lib/util/text_parser.js @@ -87,7 +87,7 @@ shaka.util.TextParser.prototype.skipWhitespace = function() { * @return {Array.} */ shaka.util.TextParser.prototype.readRegex = function(regex) { - var index = this.indexOf_(regex); + let index = this.indexOf_(regex); if (this.atEnd() || index == null || index.position != this.position_) return null; @@ -109,7 +109,7 @@ shaka.util.TextParser.prototype.readRegexReturnCapture_ = if (this.atEnd()) return null; - var ret = this.readRegex(regex); + let ret = this.readRegex(regex); if (!ret) return null; else @@ -129,7 +129,7 @@ shaka.util.TextParser.prototype.indexOf_ = function(regex) { goog.asserts.assert(regex.global, 'global flag should be set'); regex.lastIndex = this.position_; - var results = regex.exec(this.data_); + let results = regex.exec(this.data_); if (results == null) return null; else diff --git a/lib/util/timer.js b/lib/util/timer.js index 088ca9aaf..209e66386 100644 --- a/lib/util/timer.js +++ b/lib/util/timer.js @@ -65,7 +65,7 @@ shaka.util.Timer.prototype.schedule = function(seconds) { */ shaka.util.Timer.prototype.scheduleRepeated = function(seconds) { this.cancel(); - var repeat = (function() { + let repeat = (function() { this.callback_(); this.id_ = setTimeout(repeat, seconds * 1000); }.bind(this)); diff --git a/lib/util/uint8array_utils.js b/lib/util/uint8array_utils.js index 9ade82340..7b7e9f48b 100644 --- a/lib/util/uint8array_utils.js +++ b/lib/util/uint8array_utils.js @@ -36,9 +36,9 @@ goog.provide('shaka.util.Uint8ArrayUtils'); */ shaka.util.Uint8ArrayUtils.toBase64 = function(arr, opt_padding) { // btoa expects a "raw string" where each character is interpreted as a byte. - var bytes = String.fromCharCode.apply(null, arr); - var padding = (opt_padding == undefined) ? true : opt_padding; - var base64 = window.btoa(bytes).replace(/\+/g, '-').replace(/\//g, '_'); + let bytes = String.fromCharCode.apply(null, arr); + let padding = (opt_padding == undefined) ? true : opt_padding; + let base64 = window.btoa(bytes).replace(/\+/g, '-').replace(/\//g, '_'); return padding ? base64 : base64.replace(/=*$/, ''); }; @@ -52,9 +52,9 @@ shaka.util.Uint8ArrayUtils.toBase64 = function(arr, opt_padding) { */ shaka.util.Uint8ArrayUtils.fromBase64 = function(str) { // atob creates a "raw string" where each character is interpreted as a byte. - var bytes = window.atob(str.replace(/-/g, '+').replace(/_/g, '/')); - var result = new Uint8Array(bytes.length); - for (var i = 0; i < bytes.length; ++i) { + let bytes = window.atob(str.replace(/-/g, '+').replace(/_/g, '/')); + let result = new Uint8Array(bytes.length); + for (let i = 0; i < bytes.length; ++i) { result[i] = bytes.charCodeAt(i); } return result; @@ -68,8 +68,8 @@ shaka.util.Uint8ArrayUtils.fromBase64 = function(str) { * @export */ shaka.util.Uint8ArrayUtils.fromHex = function(str) { - var arr = new Uint8Array(str.length / 2); - for (var i = 0; i < str.length; i += 2) { + let arr = new Uint8Array(str.length / 2); + for (let i = 0; i < str.length; i += 2) { arr[i / 2] = window.parseInt(str.substr(i, 2), 16); } return arr; @@ -83,9 +83,9 @@ shaka.util.Uint8ArrayUtils.fromHex = function(str) { * @export */ shaka.util.Uint8ArrayUtils.toHex = function(arr) { - var hex = ''; - for (var i = 0; i < arr.length; ++i) { - var value = arr[i].toString(16); + let hex = ''; + for (let i = 0; i < arr.length; ++i) { + let value = arr[i].toString(16); if (value.length == 1) value = '0' + value; hex += value; } @@ -104,7 +104,7 @@ shaka.util.Uint8ArrayUtils.equal = function(arr1, arr2) { if (!arr1 && !arr2) return true; if (!arr1 || !arr2) return false; if (arr1.length != arr2.length) return false; - for (var i = 0; i < arr1.length; ++i) { + for (let i = 0; i < arr1.length; ++i) { if (arr1[i] != arr2[i]) return false; } return true; @@ -118,14 +118,14 @@ shaka.util.Uint8ArrayUtils.equal = function(arr1, arr2) { * @export */ shaka.util.Uint8ArrayUtils.concat = function(var_args) { - var totalLength = 0; - for (var i = 0; i < arguments.length; ++i) { + let totalLength = 0; + for (let i = 0; i < arguments.length; ++i) { totalLength += arguments[i].length; } - var result = new Uint8Array(totalLength); - var offset = 0; - for (var i = 0; i < arguments.length; ++i) { + let result = new Uint8Array(totalLength); + let offset = 0; + for (let i = 0; i < arguments.length; ++i) { result.set(arguments[i], offset); offset += arguments[i].length; } diff --git a/lib/util/xml_utils.js b/lib/util/xml_utils.js index 68fc7bee3..9d6eb2595 100644 --- a/lib/util/xml_utils.js +++ b/lib/util/xml_utils.js @@ -35,7 +35,7 @@ goog.require('shaka.log'); * child XML element with the given tag name. */ shaka.util.XmlUtils.findChild = function(elem, name) { - var children = shaka.util.XmlUtils.findChildren(elem, name); + let children = shaka.util.XmlUtils.findChildren(elem, name); if (children.length != 1) return null; return children[0]; @@ -61,7 +61,7 @@ shaka.util.XmlUtils.findChildren = function(elem, name) { * @return {?string} The text contents, or null if there are none. */ shaka.util.XmlUtils.getContents = function(elem) { - var contents = elem.firstChild; + let contents = elem.firstChild; // check content if (!contents || contents.nodeType != Node.TEXT_NODE) @@ -86,9 +86,9 @@ shaka.util.XmlUtils.getContents = function(elem) { */ shaka.util.XmlUtils.parseAttr = function( elem, name, parseFunction, opt_defaultValue) { - var parsedValue = null; + let parsedValue = null; - var value = elem.getAttribute(name); + let value = elem.getAttribute(name); if (value != null) parsedValue = parseFunction(value); @@ -116,7 +116,7 @@ shaka.util.XmlUtils.parseDate = function(dateString) { if (/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(dateString)) dateString += 'Z'; - var result = Date.parse(dateString); + let result = Date.parse(dateString); return (!isNaN(result) ? Math.floor(result / 1000.0) : null); }; @@ -135,9 +135,9 @@ shaka.util.XmlUtils.parseDuration = function(durationString) { if (!durationString) return null; - var re = '^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?' + + let re = '^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?' + '(?:T(?:([0-9]*)H)?(?:([0-9]*)M)?(?:([0-9.]*)S)?)?$'; - var matches = new RegExp(re).exec(durationString); + let matches = new RegExp(re).exec(durationString); if (!matches) { shaka.log.warning('Invalid duration string:', durationString); @@ -145,15 +145,15 @@ shaka.util.XmlUtils.parseDuration = function(durationString) { } // Note: Number(null) == 0 but Number(undefined) == NaN. - var years = Number(matches[1] || null); - var months = Number(matches[2] || null); - var days = Number(matches[3] || null); - var hours = Number(matches[4] || null); - var minutes = Number(matches[5] || null); - var seconds = Number(matches[6] || null); + let years = Number(matches[1] || null); + let months = Number(matches[2] || null); + let days = Number(matches[3] || null); + let hours = Number(matches[4] || null); + let minutes = Number(matches[5] || null); + let seconds = Number(matches[6] || null); // Assume a year always has 365 days and a month always has 30 days. - var d = (60 * 60 * 24 * 365) * years + + let d = (60 * 60 * 24 * 365) * years + (60 * 60 * 24 * 30) * months + (60 * 60 * 24) * days + (60 * 60) * hours + @@ -170,16 +170,16 @@ shaka.util.XmlUtils.parseDuration = function(durationString) { * otherwise, return null. */ shaka.util.XmlUtils.parseRange = function(rangeString) { - var matches = /([0-9]+)-([0-9]+)/.exec(rangeString); + let matches = /([0-9]+)-([0-9]+)/.exec(rangeString); if (!matches) return null; - var start = Number(matches[1]); + let start = Number(matches[1]); if (!isFinite(start)) return null; - var end = Number(matches[2]); + let end = Number(matches[2]); if (!isFinite(end)) return null; @@ -193,7 +193,7 @@ shaka.util.XmlUtils.parseRange = function(rangeString) { * @return {?number} The parsed integer on success; otherwise, return null. */ shaka.util.XmlUtils.parseInt = function(intString) { - var n = Number(intString); + let n = Number(intString); return (n % 1 === 0) ? n : null; }; @@ -205,7 +205,7 @@ shaka.util.XmlUtils.parseInt = function(intString) { * return null. */ shaka.util.XmlUtils.parsePositiveInt = function(intString) { - var n = Number(intString); + let n = Number(intString); return (n % 1 === 0) && (n > 0) ? n : null; }; @@ -217,7 +217,7 @@ shaka.util.XmlUtils.parsePositiveInt = function(intString) { * return null. */ shaka.util.XmlUtils.parseNonNegativeInt = function(intString) { - var n = Number(intString); + let n = Number(intString); return (n % 1 === 0) && (n >= 0) ? n : null; }; @@ -229,7 +229,7 @@ shaka.util.XmlUtils.parseNonNegativeInt = function(intString) { * return null. May return -Infinity or Infinity. */ shaka.util.XmlUtils.parseFloat = function(floatString) { - var n = Number(floatString); + let n = Number(floatString); return !isNaN(n) ? n : null; }; @@ -242,8 +242,8 @@ shaka.util.XmlUtils.parseFloat = function(floatString) { * success; otherwise return null. */ shaka.util.XmlUtils.evalDivision = function(exprString) { - var res; - var n; + let res; + let n; if ((res = exprString.match(/^(\d+)\/(\d+)$/))) { n = Number(res[1] / res[2]); } else { diff --git a/test/util/abortable_operation_unit.js b/test/util/abortable_operation_unit.js index 9bb2b60bf..80dd47d7b 100644 --- a/test/util/abortable_operation_unit.js +++ b/test/util/abortable_operation_unit.js @@ -18,10 +18,10 @@ describe('AbortableOperation', function() { describe('promise', function() { it('is resolved by the constructor argument', function(done) { - var promise = new shaka.util.PublicPromise(); - var abort = () => Promise.resolve(); + let promise = new shaka.util.PublicPromise(); + let abort = () => Promise.resolve(); - var operation = new shaka.util.AbortableOperation(promise, abort); + let operation = new shaka.util.AbortableOperation(promise, abort); promise.resolve(100); operation.promise.catch(fail).then((value) => { @@ -33,23 +33,23 @@ describe('AbortableOperation', function() { describe('abort', function() { it('calls the abort argument from the constructor', function() { - var promise = Promise.resolve(); - var abort = jasmine.createSpy('abort').and.returnValue(Promise.resolve()); + let promise = Promise.resolve(); + let abort = jasmine.createSpy('abort').and.returnValue(Promise.resolve()); - var operation = new shaka.util.AbortableOperation( + let operation = new shaka.util.AbortableOperation( promise, shaka.test.Util.spyFunc(abort)); operation.abort(); expect(abort).toHaveBeenCalled(); }); it('is resolved when the underlying abort() is resolved', function(done) { - var p = new shaka.util.PublicPromise(); - var abort = jasmine.createSpy('abort').and.returnValue(p); + let p = new shaka.util.PublicPromise(); + let abort = jasmine.createSpy('abort').and.returnValue(p); - var operation = new shaka.util.AbortableOperation( + let operation = new shaka.util.AbortableOperation( new shaka.util.PublicPromise(), shaka.test.Util.spyFunc(abort)); - var abortComplete = jasmine.createSpy('abort complete'); + let abortComplete = jasmine.createSpy('abort complete'); operation.abort() .catch(fail).then(shaka.test.Util.spyFunc(abortComplete)); @@ -69,12 +69,12 @@ describe('AbortableOperation', function() { describe('failed', function() { it('creates a failed operation with the given error', function(done) { - var error = new shaka.util.Error( + let error = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.NETWORK, shaka.util.Error.Code.MALFORMED_DATA_URI); - var operation = shaka.util.AbortableOperation.failed(error); + let operation = shaka.util.AbortableOperation.failed(error); operation.promise.then(fail).catch((e) => { shaka.test.Util.expectToEqualError(e, error); }).then(done); @@ -83,12 +83,12 @@ describe('AbortableOperation', function() { describe('aborted', function() { it('creates a failed operation with OPERATION_ABORTED', function(done) { - var error = new shaka.util.Error( + let error = new shaka.util.Error( shaka.util.Error.Severity.CRITICAL, shaka.util.Error.Category.PLAYER, shaka.util.Error.Code.OPERATION_ABORTED); - var operation = shaka.util.AbortableOperation.aborted(); + let operation = shaka.util.AbortableOperation.aborted(); operation.promise.then(fail).catch((e) => { shaka.test.Util.expectToEqualError(e, error); }).then(done); @@ -97,7 +97,7 @@ describe('AbortableOperation', function() { describe('completed', function() { it('creates a completed operation with the given value', function(done) { - var operation = shaka.util.AbortableOperation.completed(100); + let operation = shaka.util.AbortableOperation.completed(100); operation.promise.catch(fail).then((value) => { expect(value).toEqual(100); done(); @@ -107,15 +107,15 @@ describe('AbortableOperation', function() { describe('notAbortable', function() { it('creates an operation from the given promise', function(done) { - var promise = new shaka.util.PublicPromise(); - var operation = shaka.util.AbortableOperation.notAbortable(promise); + let promise = new shaka.util.PublicPromise(); + let operation = shaka.util.AbortableOperation.notAbortable(promise); - var isAborted = false; + let isAborted = false; operation.abort().then(() => { isAborted = true; }); - var isComplete = false; + let isComplete = false; operation.promise.catch(fail).then((value) => { isComplete = true; expect(value).toEqual(100); @@ -141,21 +141,21 @@ describe('AbortableOperation', function() { describe('all', function() { it('creates a successful operation when all succeed', function(done) { - var p1 = new shaka.util.PublicPromise(); - var op1 = shaka.util.AbortableOperation.notAbortable(p1); + let p1 = new shaka.util.PublicPromise(); + let op1 = shaka.util.AbortableOperation.notAbortable(p1); - var p2 = new shaka.util.PublicPromise(); - var op2 = shaka.util.AbortableOperation.notAbortable(p2); + let p2 = new shaka.util.PublicPromise(); + let op2 = shaka.util.AbortableOperation.notAbortable(p2); - var p3 = new shaka.util.PublicPromise(); - var op3 = shaka.util.AbortableOperation.notAbortable(p3); + let p3 = new shaka.util.PublicPromise(); + let op3 = shaka.util.AbortableOperation.notAbortable(p3); - var all = shaka.util.AbortableOperation.all([op1, op2, op3]); + let all = shaka.util.AbortableOperation.all([op1, op2, op3]); - var onSuccessSpy = jasmine.createSpy('onSuccess'); - var onSuccess = shaka.test.Util.spyFunc(onSuccessSpy); - var onErrorSpy = jasmine.createSpy('onError'); - var onError = shaka.test.Util.spyFunc(onErrorSpy); + let onSuccessSpy = jasmine.createSpy('onSuccess'); + let onSuccess = shaka.test.Util.spyFunc(onSuccessSpy); + let onErrorSpy = jasmine.createSpy('onError'); + let onError = shaka.test.Util.spyFunc(onErrorSpy); all.promise.then(onSuccess, onError).catch(fail); @@ -181,21 +181,21 @@ describe('AbortableOperation', function() { }); it('creates a failed operation when any fail', function(done) { - var p1 = new shaka.util.PublicPromise(); - var op1 = shaka.util.AbortableOperation.notAbortable(p1); + let p1 = new shaka.util.PublicPromise(); + let op1 = shaka.util.AbortableOperation.notAbortable(p1); - var p2 = new shaka.util.PublicPromise(); - var op2 = shaka.util.AbortableOperation.notAbortable(p2); + let p2 = new shaka.util.PublicPromise(); + let op2 = shaka.util.AbortableOperation.notAbortable(p2); - var p3 = new shaka.util.PublicPromise(); - var op3 = shaka.util.AbortableOperation.notAbortable(p3); + let p3 = new shaka.util.PublicPromise(); + let op3 = shaka.util.AbortableOperation.notAbortable(p3); - var all = shaka.util.AbortableOperation.all([op1, op2, op3]); + let all = shaka.util.AbortableOperation.all([op1, op2, op3]); - var onSuccessSpy = jasmine.createSpy('onSuccess'); - var onSuccess = shaka.test.Util.spyFunc(onSuccessSpy); - var onErrorSpy = jasmine.createSpy('onError'); - var onError = shaka.test.Util.spyFunc(onErrorSpy); + let onSuccessSpy = jasmine.createSpy('onSuccess'); + let onSuccess = shaka.test.Util.spyFunc(onSuccessSpy); + let onErrorSpy = jasmine.createSpy('onError'); + let onError = shaka.test.Util.spyFunc(onErrorSpy); all.promise.then(onSuccess, onError).catch(fail); @@ -216,30 +216,30 @@ describe('AbortableOperation', function() { }); it('aborts all operations on abort', function(done) { - var p1 = new shaka.util.PublicPromise(); - var abort1Spy = jasmine.createSpy('abort1') + let p1 = new shaka.util.PublicPromise(); + let abort1Spy = jasmine.createSpy('abort1') .and.callFake(() => p1.reject()); - var abort1 = shaka.test.Util.spyFunc(abort1Spy); - var op1 = new shaka.util.AbortableOperation(p1, abort1); + let abort1 = shaka.test.Util.spyFunc(abort1Spy); + let op1 = new shaka.util.AbortableOperation(p1, abort1); - var p2 = new shaka.util.PublicPromise(); - var abort2Spy = jasmine.createSpy('abort2') + let p2 = new shaka.util.PublicPromise(); + let abort2Spy = jasmine.createSpy('abort2') .and.callFake(() => p2.reject()); - var abort2 = shaka.test.Util.spyFunc(abort2Spy); - var op2 = new shaka.util.AbortableOperation(p2, abort2); + let abort2 = shaka.test.Util.spyFunc(abort2Spy); + let op2 = new shaka.util.AbortableOperation(p2, abort2); - var p3 = new shaka.util.PublicPromise(); - var abort3Spy = jasmine.createSpy('abort3') + let p3 = new shaka.util.PublicPromise(); + let abort3Spy = jasmine.createSpy('abort3') .and.callFake(() => p3.reject()); - var abort3 = shaka.test.Util.spyFunc(abort3Spy); - var op3 = new shaka.util.AbortableOperation(p3, abort3); + let abort3 = shaka.test.Util.spyFunc(abort3Spy); + let op3 = new shaka.util.AbortableOperation(p3, abort3); - var all = shaka.util.AbortableOperation.all([op1, op2, op3]); + let all = shaka.util.AbortableOperation.all([op1, op2, op3]); - var onSuccessSpy = jasmine.createSpy('onSuccess'); - var onSuccess = shaka.test.Util.spyFunc(onSuccessSpy); - var onErrorSpy = jasmine.createSpy('onError'); - var onError = shaka.test.Util.spyFunc(onErrorSpy); + let onSuccessSpy = jasmine.createSpy('onSuccess'); + let onSuccess = shaka.test.Util.spyFunc(onSuccessSpy); + let onErrorSpy = jasmine.createSpy('onError'); + let onError = shaka.test.Util.spyFunc(onErrorSpy); all.promise.then(onSuccess, onError).catch(fail); @@ -266,8 +266,8 @@ describe('AbortableOperation', function() { describe('finally', function() { it('executes after the operation is successful', function(done) { - var isDone = false; - var promise = new shaka.util.PublicPromise(); + let isDone = false; + let promise = new shaka.util.PublicPromise(); shaka.util.AbortableOperation.notAbortable(promise).finally((ok) => { expect(ok).toBe(true); @@ -285,8 +285,8 @@ describe('AbortableOperation', function() { }); it('executes after the operation fails', function(done) { - var isDone = false; - var promise = new shaka.util.PublicPromise(); + let isDone = false; + let promise = new shaka.util.PublicPromise(); shaka.util.AbortableOperation.notAbortable(promise).finally((ok) => { expect(ok).toBe(false); @@ -304,9 +304,9 @@ describe('AbortableOperation', function() { }); it('executes after the chain is successful', function(done) { - var isDone = false; - var promise1 = new shaka.util.PublicPromise(); - var promise2 = new shaka.util.PublicPromise(); + let isDone = false; + let promise1 = new shaka.util.PublicPromise(); + let promise2 = new shaka.util.PublicPromise(); shaka.util.AbortableOperation.notAbortable(promise1).chain(() => { return shaka.util.AbortableOperation.notAbortable(promise2); @@ -330,9 +330,9 @@ describe('AbortableOperation', function() { }); it('executes after the chain fails', function(done) { - var isDone = false; - var promise1 = new shaka.util.PublicPromise(); - var promise2 = new shaka.util.PublicPromise(); + let isDone = false; + let promise1 = new shaka.util.PublicPromise(); + let promise2 = new shaka.util.PublicPromise(); shaka.util.AbortableOperation.notAbortable(promise1).chain(() => { return shaka.util.AbortableOperation.notAbortable(promise2); @@ -352,7 +352,7 @@ describe('AbortableOperation', function() { }); it('executes after a complex chain', function(done) { - var isDone = false; + let isDone = false; shaka.util.AbortableOperation.completed(0).chain(() => { return shaka.util.AbortableOperation.aborted(); @@ -374,7 +374,7 @@ describe('AbortableOperation', function() { describe('chain', function() { it('passes the value to the next operation on success', function(done) { - var values = []; + let values = []; shaka.util.AbortableOperation.completed(100).chain((value) => { values.push(value); @@ -411,7 +411,7 @@ describe('AbortableOperation', function() { }); it('skips the onSuccess callbacks on error', function(done) { - var error = new shaka.util.Error( + let error = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.NETWORK, shaka.util.Error.Code.MALFORMED_DATA_URI); @@ -431,15 +431,15 @@ describe('AbortableOperation', function() { }); it('can fall back to other operations in onError callback', function(done) { - var error1 = new shaka.util.Error( + let error1 = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.NETWORK, shaka.util.Error.Code.MALFORMED_DATA_URI); - var error2 = new shaka.util.Error( + let error2 = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.TEXT, shaka.util.Error.Code.INVALID_XML); - var error3 = new shaka.util.Error( + let error3 = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.MEDIA, shaka.util.Error.Code.EBML_BAD_FLOATING_POINT_SIZE); @@ -462,11 +462,11 @@ describe('AbortableOperation', function() { }); it('fails when an error is thrown', function(done) { - var error1 = new shaka.util.Error( + let error1 = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.NETWORK, shaka.util.Error.Code.MALFORMED_DATA_URI); - var error2 = new shaka.util.Error( + let error2 = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.TEXT, shaka.util.Error.Code.INVALID_XML); @@ -485,7 +485,7 @@ describe('AbortableOperation', function() { }); it('goes to success state when onError returns undefined', function(done) { - var error = new shaka.util.Error( + let error = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.NETWORK, shaka.util.Error.Code.MALFORMED_DATA_URI); @@ -502,7 +502,7 @@ describe('AbortableOperation', function() { }); it('does not need return when onSuccess omitted', function(done) { - var operation = shaka.util.AbortableOperation.completed(100); + let operation = shaka.util.AbortableOperation.completed(100); operation.chain(undefined, fail).chain(undefined, fail).chain((value) => { expect(value).toEqual(100); }).finally((ok) => { @@ -512,12 +512,12 @@ describe('AbortableOperation', function() { }); it('does not need rethrow when onError omitted', function(done) { - var error = new shaka.util.Error( + let error = new shaka.util.Error( shaka.util.Error.Severity.RECOVERABLE, shaka.util.Error.Category.NETWORK, shaka.util.Error.Code.MALFORMED_DATA_URI); - var operation = shaka.util.AbortableOperation.failed(error); + let operation = shaka.util.AbortableOperation.failed(error); operation.chain(fail).chain(fail).chain(fail).chain(fail, (e) => { shaka.test.Util.expectToEqualError(e, error); }).finally((ok) => { @@ -530,9 +530,9 @@ describe('AbortableOperation', function() { // During testing and development, an early version of chain() would // sometimes unbind an abort method from an earlier stage of the chain. // Make sure this doesn't happen. - var innerOperation; - var p = new shaka.util.PublicPromise(); - var abortCalled = false; + let innerOperation; + let p = new shaka.util.PublicPromise(); + let abortCalled = false; /** * @this {shaka.util.AbortableOperation} @@ -543,7 +543,7 @@ describe('AbortableOperation', function() { * called with the "this" of the test itself, regardless of what the * library is doing. */ - var abort = function() { + let abort = function() { expect(this).toBe(innerOperation); abortCalled = true; return Promise.resolve(); @@ -556,7 +556,7 @@ describe('AbortableOperation', function() { // The second stage of the chain returns innerOperation. A brief moment // later, the outer chain is aborted. - var operation = shaka.util.AbortableOperation.completed(100).chain(() => { + let operation = shaka.util.AbortableOperation.completed(100).chain(() => { shaka.test.Util.delay(0.1).then(() => { operation.abort(); p.resolve(); diff --git a/test/util/array_utils_unit.js b/test/util/array_utils_unit.js index 60f57b430..cbc9cab22 100644 --- a/test/util/array_utils_unit.js +++ b/test/util/array_utils_unit.js @@ -16,26 +16,22 @@ */ describe('ArrayUtils', function() { - var ArrayUtils; - - beforeAll(function() { - ArrayUtils = shaka.util.ArrayUtils; - }); + const ArrayUtils = shaka.util.ArrayUtils; describe('removeDuplicates', function() { it('will remove duplicate elements', function() { - var arr = [1, 2, 2, 5, 6, 3, 1, 2]; + let arr = [1, 2, 2, 5, 6, 3, 1, 2]; expect(ArrayUtils.removeDuplicates(arr)).toEqual([1, 2, 5, 6, 3]); }); it('does nothing if no duplicates', function() { - var arr = [1, 2, 3, 6, 5, 4]; + let arr = [1, 2, 3, 6, 5, 4]; expect(ArrayUtils.removeDuplicates(arr)).toEqual(arr); }); it('accepts an optional comparator', function() { - var arr = ['aaa', 'abc', 'bat', 'car', 'cat']; - var comparator = function(a, b) { return a[0] === b[0]; }; + let arr = ['aaa', 'abc', 'bat', 'car', 'cat']; + let comparator = function(a, b) { return a[0] === b[0]; }; expect(ArrayUtils.removeDuplicates(arr, comparator)) .toEqual(['aaa', 'bat', 'car']); }); @@ -43,14 +39,14 @@ describe('ArrayUtils', function() { describe('indexOf', function() { it('will find a matching element', function() { - var arr = ['aaa', 'bbb', 'ccc']; - var comparator = function(a, b) { return a[0] === b[0]; }; + let arr = ['aaa', 'bbb', 'ccc']; + let comparator = function(a, b) { return a[0] === b[0]; }; expect(ArrayUtils.indexOf(arr, 'bat', comparator)).toBe(1); }); it('will return -1 if not found', function() { - var arr = ['aaa', 'bbb', 'ccc']; - var comparator = function(a, b) { return a[0] === b[0]; }; + let arr = ['aaa', 'bbb', 'ccc']; + let comparator = function(a, b) { return a[0] === b[0]; }; expect(ArrayUtils.indexOf(arr, 'zoo', comparator)).toBe(-1); }); }); diff --git a/test/util/cancelable_chain_unit.js b/test/util/cancelable_chain_unit.js index 2b5385e25..f119617f2 100644 --- a/test/util/cancelable_chain_unit.js +++ b/test/util/cancelable_chain_unit.js @@ -17,14 +17,14 @@ describe('CancelableChain', function() { /** @type {!shaka.util.CancelableChain} */ - var chain; + let chain; beforeEach(function() { chain = new shaka.util.CancelableChain(); }); it('functions like a simple Promise chain', function(done) { - var delayStart; + let delayStart; chain.then(function(data) { expect(data).toBe(undefined); @@ -48,11 +48,11 @@ describe('CancelableChain', function() { expect(data).toEqual(73); delayStart = Date.now(); - var p = new shaka.util.PublicPromise(); + let p = new shaka.util.PublicPromise(); setTimeout(p.resolve.bind(p, 'delayed'), 200); return p; }).then(function(data) { - var delay = Date.now() - delayStart; + let delay = Date.now() - delayStart; expect(data).toEqual('delayed'); expect(delay).toBeGreaterThan(198); }).finalize().catch(fail).then(done); @@ -60,7 +60,7 @@ describe('CancelableChain', function() { it('must be finalized to catch failures', function() { // compiler workaround - var catchMethod = /** @type {Object} */(chain)['catch']; + let catchMethod = /** @type {Object} */(chain)['catch']; // no chain.catch expect(catchMethod).toBe(undefined); @@ -75,18 +75,18 @@ describe('CancelableChain', function() { return shaka.test.Util.delay(0.5); }); - var p = chain.finalize(); + let p = chain.finalize(); expect(chain.then).toThrow(jasmine.any(TypeError)); p.catch(fail).then(done); }); it('returns the same promise after being finalized', function() { - var p = chain.then(function() { return 1; }).finalize(); + let p = chain.then(function() { return 1; }).finalize(); expect(chain.finalize()).toBe(p); }); describe('cancel', function() { - var cannedError; + let cannedError; beforeAll(function() { cannedError = new shaka.util.Error( @@ -96,11 +96,11 @@ describe('CancelableChain', function() { }); it('stops executing subsequent stages', function(done) { - var block = new shaka.util.PublicPromise(); + let block = new shaka.util.PublicPromise(); - var firstStageComplete = false; - var secondStageComplete = false; - var p = chain.then(function() { + let firstStageComplete = false; + let secondStageComplete = false; + let p = chain.then(function() { firstStageComplete = true; // Now block the chain. return block; @@ -122,17 +122,17 @@ describe('CancelableChain', function() { }); it('multiple calls result in the same Promise', function(done) { - var block = new shaka.util.PublicPromise(); - var p = chain.then(function() { + let block = new shaka.util.PublicPromise(); + let p = chain.then(function() { return block; }).finalize(); - var ownerDone = p.then(fail).catch(function(reason) { + let ownerDone = p.then(fail).catch(function(reason) { expect(reason).toBe(cannedError); }); - var chainDone1 = chain.cancel(cannedError); - var chainDone2 = chain.cancel(cannedError); + let chainDone1 = chain.cancel(cannedError); + let chainDone2 = chain.cancel(cannedError); // These are the same Promise. expect(chainDone1).toBe(chainDone2); @@ -143,9 +143,9 @@ describe('CancelableChain', function() { }); it('works even during the final stage', function(done) { - var block = new shaka.util.PublicPromise(); - var stageComplete = false; - var p = chain.then(function() { + let block = new shaka.util.PublicPromise(); + let stageComplete = false; + let p = chain.then(function() { stageComplete = true; return block; }).finalize(); @@ -161,8 +161,8 @@ describe('CancelableChain', function() { }); it('works even if stage is rejected after being canceled', function(done) { - var p = new shaka.util.PublicPromise(); - var finalComplete = false; + let p = new shaka.util.PublicPromise(); + let finalComplete = false; chain.then(function() { return p; }).finalize().then(fail).catch(function(err) { @@ -184,8 +184,8 @@ describe('CancelableChain', function() { }); it('resolves even after the finalized chain is resolved', function(done) { - var stageComplete = false; - var finalComplete = false; + let stageComplete = false; + let finalComplete = false; chain.then(function() { stageComplete = true; }).finalize().then(function() { @@ -202,8 +202,8 @@ describe('CancelableChain', function() { }); it('resolves even after the finalized chain is rejected', function(done) { - var stageComplete = false; - var finalComplete = false; + let stageComplete = false; + let finalComplete = false; chain.then(function() { stageComplete = true; return Promise.reject(null); @@ -224,10 +224,10 @@ describe('CancelableChain', function() { describe('events', function() { it('can register onComplete event', function(done) { /** @type {boolean} */ - var completed = false; + let completed = false; /** @type {!shaka.util.CancelableChain} */ - var chain = new shaka.util.CancelableChain(); + let chain = new shaka.util.CancelableChain(); chain.onComplete(function() { completed = true; }); @@ -245,17 +245,17 @@ describe('CancelableChain', function() { it('can register onCancel event', function(done) { /** @const */ - var cannedError = new shaka.util.Error( + let cannedError = new shaka.util.Error( shaka.util.Error.Severity.CRITICAL, shaka.util.Error.Category.PLAYER, shaka.util.Error.Code.LOAD_INTERRUPTED); /** @type {!shaka.util.CancelableChain} */ - var chain = new shaka.util.CancelableChain(); + let chain = new shaka.util.CancelableChain(); chain.onCancel(done); chain.then(function() { - var wait = shaka.test.Util.delay(1.0); + let wait = shaka.test.Util.delay(1.0); chain.cancel(cannedError); return wait; }).finalize().then(fail); diff --git a/test/util/config_utils_unit.js b/test/util/config_utils_unit.js index 27aa6eb53..c92321f1e 100644 --- a/test/util/config_utils_unit.js +++ b/test/util/config_utils_unit.js @@ -16,20 +16,18 @@ */ describe('ConfigUtils', function() { - /** @const */ - var ConfigUtils = shaka.util.ConfigUtils; + const ConfigUtils = shaka.util.ConfigUtils; describe('cloneObject', function() { - /** @const */ - var cloneObject = ConfigUtils.cloneObject; + const cloneObject = ConfigUtils.cloneObject; it('clones values and plain objects', function() { expect(cloneObject(2)).toBe(2); expect(cloneObject('foo')).toBe('foo'); expect(cloneObject(false)).toBe(false); - var o = {foo: 'bar', count: 123}; - var copy = cloneObject(o); + let o = {foo: 'bar', count: 123}; + let copy = cloneObject(o); expect(copy).not.toBe(o); expect(copy).toEqual(o); @@ -40,7 +38,7 @@ describe('ConfigUtils', function() { }); it('clones nested objects', function() { - var o = { + let o = { foo: 'bar', lorem: 'ipsum', dolor: { @@ -61,27 +59,27 @@ describe('ConfigUtils', function() { other: 123 } }; - var copy = cloneObject(o); + let copy = cloneObject(o); expect(copy).not.toBe(o); expect(copy).toEqual(o); }); it('clones Arrays with non-default length', function() { - var a = [1, 2, 3]; + let a = [1, 2, 3]; a.length = 10; - var copy = cloneObject(a); + let copy = cloneObject(a); expect(copy).toEqual(a); expect(copy.length).toEqual(10); }); it('ignores cyclic objects', function() { - var o = {foo: 'bar'}; + let o = {foo: 'bar'}; o['baz'] = o; expect(cloneObject(o)).toEqual({foo: 'bar', baz: null}); }); it('ignores non-simple Object objects', function() { - var o = {foo: 1, baz: /foo/g}; + let o = {foo: 1, baz: /foo/g}; expect(cloneObject(o)).toEqual({foo: 1, baz: null}); o = {foo: 2, baz: new Date(123)}; diff --git a/test/util/data_view_reader_unit.js b/test/util/data_view_reader_unit.js index ecef665fd..50732a632 100644 --- a/test/util/data_view_reader_unit.js +++ b/test/util/data_view_reader_unit.js @@ -16,27 +16,25 @@ */ describe('DataViewReader', function() { - /** @const */ - var Code = shaka.util.Error.Code; + const Code = shaka.util.Error.Code; // |data| as interpreted as a 64 bit integer must not be larger than 2^53-1. // decimal digits. - /** @const */ - var data = new Uint8Array([0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07]); + const data = new Uint8Array([0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07]); // |data2| is small enough in little-endian to be read as a 64-bit number, // and has the sign bit set on the first 6 bytes to prove that we don't // return negative values. - /** @const */ - var data2 = new Uint8Array([0xde, 0xad, 0xbe, 0xef, 0xff, 0xff, 0x01, 0x00]); + const data2 = + new Uint8Array([0xde, 0xad, 0xbe, 0xef, 0xff, 0xff, 0x01, 0x00]); /** @type {!shaka.util.DataViewReader} */ - var bigEndianReader; + let bigEndianReader; /** @type {!shaka.util.DataViewReader} */ - var littleEndianReader; + let littleEndianReader; /** @type {!shaka.util.DataViewReader} */ - var bigEndianReader2; + let bigEndianReader2; /** @type {!shaka.util.DataViewReader} */ - var littleEndianReader2; + let littleEndianReader2; beforeEach(function() { bigEndianReader = new shaka.util.DataViewReader( @@ -54,130 +52,130 @@ describe('DataViewReader', function() { }); it('reads a uint8 in big endian', function() { - var value1 = bigEndianReader.readUint8(); + let value1 = bigEndianReader.readUint8(); expect(value1).toBe(0x00); - var value2 = bigEndianReader.readUint8(); + let value2 = bigEndianReader.readUint8(); expect(value2).toBe(0x01); - var value3 = bigEndianReader2.readUint8(); + let value3 = bigEndianReader2.readUint8(); expect(value3).toBe(0xde); - var value4 = bigEndianReader2.readUint8(); + let value4 = bigEndianReader2.readUint8(); expect(value4).toBe(0xad); }); it('reads a uint16 in big endian', function() { - var value1 = bigEndianReader.readUint16(); + let value1 = bigEndianReader.readUint16(); expect(value1).toBe(0x0001); - var value2 = bigEndianReader.readUint16(); + let value2 = bigEndianReader.readUint16(); expect(value2).toBe(0x0203); - var value3 = bigEndianReader2.readUint16(); + let value3 = bigEndianReader2.readUint16(); expect(value3).toBe(0xdead); - var value4 = bigEndianReader2.readUint16(); + let value4 = bigEndianReader2.readUint16(); expect(value4).toBe(0xbeef); }); it('reads a uint32 in big endian', function() { - var value1 = bigEndianReader.readUint32(); + let value1 = bigEndianReader.readUint32(); expect(value1).toBe(0x00010203); - var value2 = bigEndianReader.readUint32(); + let value2 = bigEndianReader.readUint32(); expect(value2).toBe(0x04050607); - var value3 = bigEndianReader2.readUint32(); + let value3 = bigEndianReader2.readUint32(); expect(value3).toBe(0xdeadbeef); - var value4 = bigEndianReader2.readUint32(); + let value4 = bigEndianReader2.readUint32(); expect(value4).toBe(0xffff0100); }); it('reads an int32 in big endian', function() { - var value1 = bigEndianReader.readInt32(); + let value1 = bigEndianReader.readInt32(); expect(value1).toBe(66051); - var value2 = bigEndianReader.readInt32(); + let value2 = bigEndianReader.readInt32(); expect(value2).toBe(67438087); - var value3 = bigEndianReader2.readInt32(); + let value3 = bigEndianReader2.readInt32(); expect(value3).toBe(-559038737); - var value4 = bigEndianReader2.readInt32(); + let value4 = bigEndianReader2.readInt32(); expect(value4).toBe(-65280); }); it('reads a uint64 in big endian', function() { - var value = bigEndianReader.readUint64(); + let value = bigEndianReader.readUint64(); expect(value).toBe(0x0001020304050607); }); it('reads a uint8 in little endian', function() { - var value1 = littleEndianReader.readUint8(); + let value1 = littleEndianReader.readUint8(); expect(value1).toBe(0x00); - var value2 = littleEndianReader.readUint8(); + let value2 = littleEndianReader.readUint8(); expect(value2).toBe(0x01); - var value3 = littleEndianReader2.readUint8(); + let value3 = littleEndianReader2.readUint8(); expect(value3).toBe(0xde); - var value4 = littleEndianReader2.readUint8(); + let value4 = littleEndianReader2.readUint8(); expect(value4).toBe(0xad); }); it('reads a uint16 in little endian', function() { - var value1 = littleEndianReader.readUint16(); + let value1 = littleEndianReader.readUint16(); expect(value1).toBe(0x0100); - var value2 = littleEndianReader.readUint16(); + let value2 = littleEndianReader.readUint16(); expect(value2).toBe(0x0302); - var value3 = littleEndianReader2.readUint16(); + let value3 = littleEndianReader2.readUint16(); expect(value3).toBe(0xadde); - var value4 = littleEndianReader2.readUint16(); + let value4 = littleEndianReader2.readUint16(); expect(value4).toBe(0xefbe); }); it('reads a uint32 in little endian', function() { - var value1 = littleEndianReader.readUint32(); + let value1 = littleEndianReader.readUint32(); expect(value1).toBe(0x03020100); - var value2 = littleEndianReader.readUint32(); + let value2 = littleEndianReader.readUint32(); expect(value2).toBe(0x07060504); - var value3 = littleEndianReader2.readUint32(); + let value3 = littleEndianReader2.readUint32(); expect(value3).toBe(0xefbeadde); - var value4 = littleEndianReader2.readUint32(); + let value4 = littleEndianReader2.readUint32(); expect(value4).toBe(0x0001ffff); }); it('reads an int32 in little endian', function() { - var value1 = littleEndianReader.readInt32(); + let value1 = littleEndianReader.readInt32(); expect(value1).toBe(50462976); - var value2 = littleEndianReader.readInt32(); + let value2 = littleEndianReader.readInt32(); expect(value2).toBe(117835012); - var value3 = littleEndianReader2.readInt32(); + let value3 = littleEndianReader2.readInt32(); expect(value3).toBe(-272716322); - var value4 = littleEndianReader2.readInt32(); + let value4 = littleEndianReader2.readInt32(); expect(value4).toBe(131071); }); it('reads a uint64 in little endian', function() { - var value = littleEndianReader2.readUint64(); + let value = littleEndianReader2.readUint64(); expect(value).toBe(0x0001ffffefbeadde); }); it('skips bytes', function() { bigEndianReader.skip(1); - var value = bigEndianReader.readUint8(); + let value = bigEndianReader.readUint8(); expect(value).toBe(0x01); }); @@ -249,7 +247,7 @@ describe('DataViewReader', function() { }); it('detects uint64s too large for JavaScript', function() { - var exception = null; + let exception = null; try { littleEndianReader.readUint64(); diff --git a/test/util/ebml_parser_unit.js b/test/util/ebml_parser_unit.js index 946eba4d6..4d750109f 100644 --- a/test/util/ebml_parser_unit.js +++ b/test/util/ebml_parser_unit.js @@ -16,20 +16,16 @@ */ describe('EbmlParser', /** @suppress {accessControls} */ function() { - var Code; - - beforeAll(function() { - Code = shaka.util.Error.Code; - }); + const Code = shaka.util.Error.Code; it('parses one element', function() { // Set ID to 0x1. // Set size to 4 bytes. // Set the data to [0x01, 0x02, 0x03, 0x04]. - var data = new Uint8Array([0x81, 0x84, 0x01, 0x02, 0x03, 0x04]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let data = new Uint8Array([0x81, 0x84, 0x01, 0x02, 0x03, 0x04]); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var elem = parser.parseElement(); + let elem = parser.parseElement(); expect(elem.id).toBe(0x81); expect(elem.dataView_.byteLength).toBe(4); expect(elem.dataView_.getUint8(0)).toBe(0x01); @@ -47,11 +43,11 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { // Set ID to 0x2. // Set size to 4 bytes. // Set the data to [0x09, 0x08, 0x07, 0x06]. - var data = new Uint8Array([0x81, 0x84, 0x01, 0x02, 0x03, 0x04, 0x82, 0x84, + let data = new Uint8Array([0x81, 0x84, 0x01, 0x02, 0x03, 0x04, 0x82, 0x84, 0x09, 0x08, 0x07, 0x06]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var elem1 = parser.parseElement(); + let elem1 = parser.parseElement(); expect(elem1.id).toBe(0x81); expect(elem1.dataView_.byteLength).toBe(4); expect(elem1.dataView_.getUint8(0)).toBe(0x01); @@ -59,7 +55,7 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { expect(elem1.dataView_.getUint8(2)).toBe(0x03); expect(elem1.dataView_.getUint8(3)).toBe(0x04); - var elem2 = parser.parseElement(); + let elem2 = parser.parseElement(); expect(elem2.id).toBe(0x82); expect(elem2.dataView_.byteLength).toBe(4); expect(elem2.dataView_.getUint8(0)).toBe(0x09); @@ -73,9 +69,9 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { // Set size to a dynamic size value. // The size should be 5 bytes. // Set the data to [0xaa, 0xbb, 0xcc, 0xdd, 0xee]. - var data = new Uint8Array([0x81, 0xff, 0xaa, 0xbb, 0xcc, 0xdd, 0xee]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var element = parser.parseElement(); + let data = new Uint8Array([0x81, 0xff, 0xaa, 0xbb, 0xcc, 0xdd, 0xee]); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let element = parser.parseElement(); expect(element).toBeTruthy(); expect(element.dataView_.byteLength).toBe(5); @@ -83,13 +79,13 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 1 byte vint', function() { // 7-bit value: 1|100 0001 - var data = new Uint8Array([0xc1]); + let data = new Uint8Array([0xc1]); // Extract the variable sized integer from |data|. Note that since // |data| contains exactly one variable sized integer, |vint| should be // identical to |data|. - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x41); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x41); @@ -97,10 +93,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 2 byte vint', function() { // 14-bit: 01|10 0001, 0001 1001 - var data = new Uint8Array([0x61, 0x19]); + let data = new Uint8Array([0x61, 0x19]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x2119); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x2119); @@ -108,10 +104,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 3 byte vint', function() { // 21-bit: 001|1 0001, 0010 0001, 0001 0011 - var data = new Uint8Array([0x31, 0x21, 0x13]); + let data = new Uint8Array([0x31, 0x21, 0x13]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x112113); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x112113); @@ -119,10 +115,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 4 byte vint', function() { // 28-bit: 0001 | 1000, 0001 0001, 0001 0001, 0001 0101 - var data = new Uint8Array([0x18, 0x11, 0x11, 0x15]); + let data = new Uint8Array([0x18, 0x11, 0x11, 0x15]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x8111115); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x8111115); @@ -130,10 +126,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 5 byte vint', function() { // 35-bit: 0000 1|100, 0001 0001, 0001 0001, 0001 0001, 0001 1001 - var data = new Uint8Array([0x0c, 0x11, 0x11, 0x11, 0x19]); + let data = new Uint8Array([0x0c, 0x11, 0x11, 0x11, 0x19]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x411111119); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x411111119); @@ -142,10 +138,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 6 byte vint', function() { // 42-bit: 0000 01|10, 0001 0010, 0001 0001, 0001 0001, 0001 0001, // 0001 1000 - var data = new Uint8Array([0x06, 0x12, 0x11, 0x11, 0x11, 0x18]); + let data = new Uint8Array([0x06, 0x12, 0x11, 0x11, 0x11, 0x18]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x21211111118); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x21211111118); @@ -154,10 +150,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 7 byte vint', function() { // 49-bit: 0000 001|1, 0001 0010, 0001 0001, 0001 0001, 0001 0001, // 0001 0001, 1001 0001 - var data = new Uint8Array([0x03, 0x12, 0x11, 0x11, 0x11, 0x11, 0x91]); + let data = new Uint8Array([0x03, 0x12, 0x11, 0x11, 0x11, 0x11, 0x91]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x1121111111191); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x1121111111191); @@ -166,25 +162,25 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('parses a 8 byte vint', function() { // 56-bit: 0000 0001 | 0001 0010, 0001 0100, 0001 1000, 0001 0001, // 0001 0001, 0001 1001, 0011 0001 - var data = new Uint8Array([0x01, 0x12, 0x14, 0x18, 0x11, 0x11, 0x19, 0x31]); + let data = new Uint8Array([0x01, 0x12, 0x14, 0x18, 0x11, 0x11, 0x19, 0x31]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var vint = parser.parseVint_(); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let vint = parser.parseVint_(); expect(shaka.util.EbmlParser.getVintValue_(data)).toBe(0x12141811111931); expect(shaka.util.EbmlParser.getVintValue_(vint)).toBe(0x12141811111931); }); it('detects vints with too many bytes', function() { - var exception = null; + let exception = null; try { // 63-bit: 0000 0000, 1|000 0001, 0001 0001, 0001 0001, 0001 0001, // 0001 0001, 0001 0001, 0001 0001, // 0001 0001 - var data = new Uint8Array( + let data = new Uint8Array( [0x00, 0x81, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); parser.parseVint_(); } catch (e) { exception = e; @@ -196,12 +192,12 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { }); it('detects vint values with too many bits', function() { - var exception = null; + let exception = null; try { // 56-bit: 0000 0001 | 1000 0001, 0001 0001, 0001 0001, 0001 0001, // 0001 0001, 0001 0001, 0001 0001 - var data = new Uint8Array( + let data = new Uint8Array( [0x01, 0x81, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]); shaka.util.EbmlParser.getVintValue_(data); } catch (e) { @@ -217,7 +213,7 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { try { // 56-bit: 0000 0001 | 0100 0001, 0001 0001, 0001 0001, 0001 0001, // 0001 0001, 0001 0001, 0001 0001 - var data = new Uint8Array( + let data = new Uint8Array( [0x01, 0x41, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]); shaka.util.EbmlParser.getVintValue_(data); } catch (e) { @@ -233,7 +229,7 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { try { // 56-bit: 0000 0001 | 0010 0001, 0001 0001, 0001 0001, 0001 0001, // 0001 0001, 0001 0001, 0001 0001 - var data = new Uint8Array( + let data = new Uint8Array( [0x01, 0x21, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]); shaka.util.EbmlParser.getVintValue_(data); } catch (e) { @@ -247,10 +243,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { it('detects the end of input while reading a vint', function() { // 14-bit: 01|10 0001, 0001 0001 - var data = new Uint8Array([0x61]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let data = new Uint8Array([0x61]); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var exception = null; + let exception = null; try { parser.parseVint_(); @@ -267,10 +263,10 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { // Set ID to 0x1. // Set size to 4 bytes. // Set the data to [0x01, 0x02, 0x03, 0x04]. - var data = new Uint8Array([0x81, 0x84, 0x01, 0x02, 0x03, 0x04]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let data = new Uint8Array([0x81, 0x84, 0x01, 0x02, 0x03, 0x04]); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var elem = parser.parseElement(); + let elem = parser.parseElement(); expect(elem.id).toBe(0x81); expect(elem.getUint()).toBe(0x01020304); }); @@ -279,14 +275,14 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { // Set ID to 0x1. // Set size to 9 bytes. // Set the data to [0x01, 0x02, 0x03, ..., 0x09]. - var data = new Uint8Array( + let data = new Uint8Array( [0x81, 0x89, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var elem = parser.parseElement(); + let elem = parser.parseElement(); expect(elem.id).toBe(0x81); - var exception = null; + let exception = null; try { elem.getUint(); @@ -303,14 +299,14 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { // Set ID to 0x1. // Set size to 8 bytes. // Set the data to [0x2f, 0xff, 0xff, ..., 0xff]. - var data = new Uint8Array( + let data = new Uint8Array( [0x81, 0x88, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]); - var parser = new shaka.util.EbmlParser(new DataView(data.buffer)); + let parser = new shaka.util.EbmlParser(new DataView(data.buffer)); - var elem = parser.parseElement(); + let elem = parser.parseElement(); expect(elem.id).toBe(0x81); - var exception = null; + let exception = null; try { elem.getUint(); @@ -324,7 +320,7 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { }); it('recognizes dynamic-sized values', function() { - var dynamicSizes = [ + let dynamicSizes = [ new Uint8Array([0xff]), new Uint8Array([0x7f, 0xff]), new Uint8Array([0x3f, 0xff, 0xff]), @@ -335,7 +331,7 @@ describe('EbmlParser', /** @suppress {accessControls} */ function() { new Uint8Array([0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]) ]; - var isDynamicSizeValue_ = shaka.util.EbmlParser.isDynamicSizeValue_; + let isDynamicSizeValue_ = shaka.util.EbmlParser.isDynamicSizeValue_; expect(isDynamicSizeValue_(dynamicSizes[0])).toBe(true); expect(isDynamicSizeValue_(dynamicSizes[1])).toBe(true); diff --git a/test/util/event_manager_unit.js b/test/util/event_manager_unit.js index 559002619..186257f52 100644 --- a/test/util/event_manager_unit.js +++ b/test/util/event_manager_unit.js @@ -16,19 +16,18 @@ */ describe('EventManager', function() { - /** @const */ - var Util = shaka.test.Util; + const Util = shaka.test.Util; /** @type {!shaka.util.EventManager} */ - var eventManager; + let eventManager; /** @type {!Event} */ - var event1; + let event1; /** @type {!Event} */ - var event2; + let event2; /** @type {!EventTarget} */ - var target1; + let target1; /** @type {!EventTarget} */ - var target2; + let target2; beforeEach(function() { eventManager = new shaka.util.EventManager(); @@ -47,7 +46,7 @@ describe('EventManager', function() { }); it('listens for an event', function() { - var listener = jasmine.createSpy('listener'); + let listener = jasmine.createSpy('listener'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener)); target1.dispatchEvent(event1); @@ -56,8 +55,8 @@ describe('EventManager', function() { }); it('listens for an event from mutiple targets', function() { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener1)); eventManager.listen(target2, 'eventtype1', Util.spyFunc(listener2)); @@ -70,8 +69,8 @@ describe('EventManager', function() { }); it('listens for multiple events', function() { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener1)); eventManager.listen(target1, 'eventtype2', Util.spyFunc(listener2)); @@ -84,8 +83,8 @@ describe('EventManager', function() { }); it('listens for multiple events from mutiple targets', function() { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener1)); eventManager.listen(target2, 'eventtype2', Util.spyFunc(listener2)); @@ -98,8 +97,8 @@ describe('EventManager', function() { }); it('listens for an event with multiple listeners', function() { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener1)); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener2)); @@ -111,7 +110,7 @@ describe('EventManager', function() { }); it('stops listening to an event', function() { - var listener = jasmine.createSpy('listener'); + let listener = jasmine.createSpy('listener'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener)); eventManager.unlisten(target1, 'eventtype1'); @@ -122,8 +121,8 @@ describe('EventManager', function() { }); it('ignores other targets when removing listeners', function() { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener1)); eventManager.listen(target2, 'eventtype1', Util.spyFunc(listener2)); @@ -135,8 +134,8 @@ describe('EventManager', function() { }); it('stops listening to multiple events', function() { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener1)); eventManager.listen(target1, 'eventtype2', Util.spyFunc(listener2)); @@ -151,8 +150,8 @@ describe('EventManager', function() { }); it('stops listening for an event with multiple listeners', function() { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener1)); eventManager.listen(target1, 'eventtype1', Util.spyFunc(listener2)); diff --git a/test/util/fake_event_target_unit.js b/test/util/fake_event_target_unit.js index c37912274..b6f39d7ff 100644 --- a/test/util/fake_event_target_unit.js +++ b/test/util/fake_event_target_unit.js @@ -16,15 +16,13 @@ */ describe('FakeEventTarget', function() { - /** @const */ - var Util = shaka.test.Util; - /** @const */ - var originalLogError = shaka.log.error; + const Util = shaka.test.Util; + const originalLogError = shaka.log.error; /** @type {!shaka.util.FakeEventTarget} */ - var target; + let target; /** @type {!jasmine.Spy} */ - var logErrorSpy; + let logErrorSpy; beforeAll(function() { logErrorSpy = jasmine.createSpy('shaka.log.error'); @@ -52,8 +50,8 @@ describe('FakeEventTarget', function() { }); it('calls all event listeners', function(done) { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); target.addEventListener('event', Util.spyFunc(listener1)); target.addEventListener('event', Util.spyFunc(listener2)); @@ -68,8 +66,8 @@ describe('FakeEventTarget', function() { }); it('stops processing on stopImmediatePropagation', function(done) { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); target.addEventListener('event', Util.spyFunc(listener1)); target.addEventListener('event', Util.spyFunc(listener2)); @@ -88,8 +86,8 @@ describe('FakeEventTarget', function() { }); it('catches exceptions thrown from listeners', function(done) { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); target.addEventListener('event', Util.spyFunc(listener1)); target.addEventListener('event', Util.spyFunc(listener2)); @@ -108,14 +106,14 @@ describe('FakeEventTarget', function() { }); it('allows events to be re-dispatched', function(done) { - var listener1 = jasmine.createSpy('listener1'); - var listener2 = jasmine.createSpy('listener2'); + let listener1 = jasmine.createSpy('listener1'); + let listener2 = jasmine.createSpy('listener2'); target.addEventListener('event', Util.spyFunc(listener1)); target.addEventListener('event', Util.spyFunc(listener2)); - var target2 = new shaka.util.FakeEventTarget(); - var target2Listener = jasmine.createSpy('target2Listener'); + let target2 = new shaka.util.FakeEventTarget(); + let target2Listener = jasmine.createSpy('target2Listener'); target2.addEventListener('event', Util.spyFunc(target2Listener)); diff --git a/test/util/manifest_parser_utils_unit.js b/test/util/manifest_parser_utils_unit.js index 08d2a2ff3..bb1270955 100644 --- a/test/util/manifest_parser_utils_unit.js +++ b/test/util/manifest_parser_utils_unit.js @@ -16,53 +16,50 @@ */ describe('ManifestParserUtils', function() { - var ManifestParserUtils; + const ManifestParserUtils = shaka.util.ManifestParserUtils; - beforeAll(function() { - ManifestParserUtils = shaka.util.ManifestParserUtils; - }); describe('resolveUris', function() { it('resolves relative URIs', function() { - var base = ['http://example.com/']; - var relative = ['page.html']; - var expected = ['http://example.com/page.html']; - var actual = ManifestParserUtils.resolveUris(base, relative); + let base = ['http://example.com/']; + let relative = ['page.html']; + let expected = ['http://example.com/page.html']; + let actual = ManifestParserUtils.resolveUris(base, relative); expect(actual).toEqual(expected); }); it('resolves URIs multiplicatively', function() { - var base = ['http://example.com/', 'http://example.org']; - var relative = ['page.html', 'site.css']; - var expected = [ + let base = ['http://example.com/', 'http://example.org']; + let relative = ['page.html', 'site.css']; + let expected = [ 'http://example.com/page.html', 'http://example.com/site.css', 'http://example.org/page.html', 'http://example.org/site.css' ]; - var actual = ManifestParserUtils.resolveUris(base, relative); + let actual = ManifestParserUtils.resolveUris(base, relative); expect(actual).toEqual(expected); }); it('returns base if no relative URIs', function() { - var base = ['http://example.com']; - var relative = []; - var actual = ManifestParserUtils.resolveUris(base, relative); + let base = ['http://example.com']; + let relative = []; + let actual = ManifestParserUtils.resolveUris(base, relative); expect(actual).toEqual(base); }); it('handles manifest file as base URI', function() { - var base = [ + let base = [ 'http://example.com/manifest.mpd', 'http://example.org/path/to/manifest.mpd' ]; - var relative = ['segment.mp4', 'other/location/segment.webm']; - var expected = [ + let relative = ['segment.mp4', 'other/location/segment.webm']; + let expected = [ 'http://example.com/segment.mp4', 'http://example.com/other/location/segment.webm', 'http://example.org/path/to/segment.mp4', 'http://example.org/path/to/other/location/segment.webm' ]; - var actual = ManifestParserUtils.resolveUris(base, relative); + let actual = ManifestParserUtils.resolveUris(base, relative); expect(actual).toEqual(expected); }); }); diff --git a/test/util/mp4_parser_unit.js b/test/util/mp4_parser_unit.js index 4255410cc..5dda40983 100644 --- a/test/util/mp4_parser_unit.js +++ b/test/util/mp4_parser_unit.js @@ -16,15 +16,15 @@ */ describe('Mp4Parser', function() { - var Util = shaka.test.Util; + const Util = shaka.test.Util; - var boxData; - var fullBoxData; - var boxWithChildData; - var boxWithSampleDescription; - var partialBoxWithSampleDescription; - var multipleSingleLevelBoxes; - var twoLevelBoxStructure; + let boxData; + let fullBoxData; + let boxWithChildData; + let boxWithSampleDescription; + let partialBoxWithSampleDescription; + let multipleSingleLevelBoxes; + let twoLevelBoxStructure; beforeAll(function() { boxData = new Uint8Array([ @@ -115,7 +115,7 @@ describe('Mp4Parser', function() { describe('headerDefinitions', function() { it('reads box header', function() { - var callback = jasmine.createSpy('parser callback').and.callFake( + let callback = jasmine.createSpy('parser callback').and.callFake( function(box) { expect(box.size).toEqual(12); expect(box.version).toEqual(null); @@ -129,7 +129,7 @@ describe('Mp4Parser', function() { }); it('reads full box header', function() { - var callback = jasmine.createSpy('parser callback').and.callFake( + let callback = jasmine.createSpy('parser callback').and.callFake( function(box) { expect(box.size).toEqual(16); expect(box.version).toEqual(1); @@ -145,17 +145,17 @@ describe('Mp4Parser', function() { describe('boxDefinitions', function() { it('reads children definition', function() { - var parentBox = jasmine.createSpy('parent box').and.callFake( + let parentBox = jasmine.createSpy('parent box').and.callFake( shaka.util.Mp4Parser.children); - var childBox1 = jasmine.createSpy('child box 1').and.callFake( + let childBox1 = jasmine.createSpy('child box 1').and.callFake( function(box) { expect(box.size).toEqual(12); expect(box.version).toEqual(null); expect(box.flags).toEqual(null); }); - var childBox2 = jasmine.createSpy('child box 2').and.callFake( + let childBox2 = jasmine.createSpy('child box 2').and.callFake( function(box) { expect(box.size).toEqual(12); expect(box.version).toEqual(null); @@ -173,15 +173,15 @@ describe('Mp4Parser', function() { }); it('stops reading children when asked to', function() { - var parentBox = jasmine.createSpy('parent box').and.callFake( + let parentBox = jasmine.createSpy('parent box').and.callFake( shaka.util.Mp4Parser.children); - var childBox1 = jasmine.createSpy('child box 1').and.callFake( + let childBox1 = jasmine.createSpy('child box 1').and.callFake( function(box) { box.parser.stop(); }); - var childBox2 = jasmine.createSpy('child box 2'); + let childBox2 = jasmine.createSpy('child box 2'); new shaka.util.Mp4Parser() .box('b003', Util.spyFunc(parentBox)) @@ -194,7 +194,7 @@ describe('Mp4Parser', function() { }); it('reads all data definition', function() { - var payload = []; + let payload = []; new shaka.util.Mp4Parser() .box('b001', shaka.util.Mp4Parser.allData( @@ -210,10 +210,10 @@ describe('Mp4Parser', function() { }); it('reads sample description definition', function() { - var parentBox = jasmine.createSpy('parent box').and.callFake( + let parentBox = jasmine.createSpy('parent box').and.callFake( shaka.util.Mp4Parser.sampleDescription); - var childBox1 = jasmine.createSpy('child box 1'); - var childBox2 = jasmine.createSpy('child box 2'); + let childBox1 = jasmine.createSpy('child box 1'); + let childBox2 = jasmine.createSpy('child box 2'); new shaka.util.Mp4Parser() .box('b003', Util.spyFunc(parentBox)) @@ -226,13 +226,13 @@ describe('Mp4Parser', function() { }); it('stops reading sample description when asked to', function() { - var parentBox = jasmine.createSpy('parent box').and.callFake( + let parentBox = jasmine.createSpy('parent box').and.callFake( shaka.util.Mp4Parser.sampleDescription); - var childBox1 = jasmine.createSpy('child box 1').and.callFake( + let childBox1 = jasmine.createSpy('child box 1').and.callFake( function(box) { box.parser.stop(); }); - var childBox2 = jasmine.createSpy('child box 2'); + let childBox2 = jasmine.createSpy('child box 2'); new shaka.util.Mp4Parser() .box('b003', Util.spyFunc(parentBox)) @@ -247,9 +247,9 @@ describe('Mp4Parser', function() { describe('parsing', function() { it('finds all top level boxes', function() { - var box1 = jasmine.createSpy('box 1'); - var box2 = jasmine.createSpy('box 2'); - var box3 = jasmine.createSpy('box 3'); + let box1 = jasmine.createSpy('box 1'); + let box2 = jasmine.createSpy('box 2'); + let box3 = jasmine.createSpy('box 3'); new shaka.util.Mp4Parser() .box('b001', Util.spyFunc(box1)) @@ -265,8 +265,8 @@ describe('Mp4Parser', function() { // By leaving a single box undefined, it should not interfere // with the other boxes (on the same level) from being read. - var box1 = jasmine.createSpy('box 1'); - var box3 = jasmine.createSpy('box 3'); + let box1 = jasmine.createSpy('box 1'); + let box3 = jasmine.createSpy('box 3'); new shaka.util.Mp4Parser() .box('b001', Util.spyFunc(box1)) @@ -277,9 +277,9 @@ describe('Mp4Parser', function() { }); it('does not parse child boxes with undefined parent box', function() { - var box1 = jasmine.createSpy('box 1'); - var box2Child = jasmine.createSpy('box 2 child'); - var box3 = jasmine.createSpy('box 3'); + let box1 = jasmine.createSpy('box 1'); + let box2Child = jasmine.createSpy('box 2 child'); + let box3 = jasmine.createSpy('box 3'); // Listing a definition for box 2's child but not for box 2 should mean // box 2's child is never parsed. @@ -294,10 +294,10 @@ describe('Mp4Parser', function() { }); it('can parse partial parent box and find first child', function() { - var parentBox = jasmine.createSpy('parent box').and.callFake( + let parentBox = jasmine.createSpy('parent box').and.callFake( shaka.util.Mp4Parser.sampleDescription); - var childBox1 = jasmine.createSpy('child box 1').and.callFake( + let childBox1 = jasmine.createSpy('child box 1').and.callFake( function(box) { // We found what we were looking for, so stop parsing. box.parser.stop(); diff --git a/test/util/pssh_unit.js b/test/util/pssh_unit.js index dcff90df4..6f827ecbd 100644 --- a/test/util/pssh_unit.js +++ b/test/util/pssh_unit.js @@ -16,18 +16,14 @@ */ describe('Pssh', function() { - var fromHex = shaka.util.Uint8ArrayUtils.fromHex; - var toHex = shaka.util.Uint8ArrayUtils.toHex; + let fromHex = shaka.util.Uint8ArrayUtils.fromHex; + let toHex = shaka.util.Uint8ArrayUtils.toHex; - /** @const {string} */ - var WIDEVINE_SYSTEM_ID = 'edef8ba979d64acea3c827dcd51d21ed'; - /** @const {string} */ - var PLAYREADY_SYSTEM_ID = '9a04f07998404286ab92e65be0885f95'; - /** @const {string} */ - var GENERIC_SYSTEM_ID = '1077efecc0b24d02ace33c1e52e2fb4b'; + const WIDEVINE_SYSTEM_ID = 'edef8ba979d64acea3c827dcd51d21ed'; + const PLAYREADY_SYSTEM_ID = '9a04f07998404286ab92e65be0885f95'; + const GENERIC_SYSTEM_ID = '1077efecc0b24d02ace33c1e52e2fb4b'; - /** @const {string} */ - var WIDEVINE_PSSH = + const WIDEVINE_PSSH = '00000028' + // atom size '70737368' + // atom type='pssh' '00000000' + // v0, flags=0 @@ -35,8 +31,7 @@ describe('Pssh', function() { '00000008' + // data size '0102030405060708'; // data - /** @const {string} */ - var PLAYREADY_PSSH = + const PLAYREADY_PSSH = '00000028' + // atom size '70737368' + // atom type 'pssh' '00000000' + // v0, flags=0 @@ -44,8 +39,7 @@ describe('Pssh', function() { '00000008' + // data size '0102030405060708'; // data - /** @const {string} */ - var GENERIC_PSSH = + const GENERIC_PSSH = '00000044' + // atom size '70737368' + // atom type 'pssh' '01000000' + // v1, flags=0 @@ -55,8 +49,7 @@ describe('Pssh', function() { '38393031323334354142434445464748' + // key ID='ABCDEFGHIJKLMNOP' '00000000'; // data size=0 - /** @const {string} */ - var ZERO_SIZED_GENERIC_PSSH = + const ZERO_SIZED_GENERIC_PSSH = '00000000' + // atom size (whole buffer) '70737368' + // atom type='pssh' '01000000' + // v1, flags=0 @@ -66,47 +59,43 @@ describe('Pssh', function() { '38393031323334354142434445464748' + // key ID='ABCDEFGHIJKLMNOP' '00000000'; // data size=0 - /** @const {string} */ - var OTHER_BOX = + const OTHER_BOX = '00000018' + // atom size '77686174' + // atom type 'what' 'deadbeefdeadbeefdeadbeefdeadbeef'; // garbage box data - /** @const {string} */ - var TRUNCATED_WIDEVINE_PSSH = + const TRUNCATED_WIDEVINE_PSSH = WIDEVINE_PSSH.substr(0, WIDEVINE_PSSH.length - 6); - /** @const {string} */ - var TRUNCATED_PLAYREADY_PSSH = + const TRUNCATED_PLAYREADY_PSSH = PLAYREADY_PSSH.substr(0, PLAYREADY_PSSH.length - 6); - /** @const {string} */ - var TRUNCATED_GENERIC_PSSH = + const TRUNCATED_GENERIC_PSSH = GENERIC_PSSH.substr(0, GENERIC_PSSH.length - 6); it('parses a Widevine PSSH', function() { - var pssh = new shaka.util.Pssh(fromHex(WIDEVINE_PSSH)); + let pssh = new shaka.util.Pssh(fromHex(WIDEVINE_PSSH)); expect(pssh.systemIds.length).toBe(1); expect(pssh.systemIds[0]).toBe(WIDEVINE_SYSTEM_ID); expect(pssh.cencKeyIds.length).toBe(0); }); it('parses a PlayReady PSSH', function() { - var pssh = new shaka.util.Pssh(fromHex(PLAYREADY_PSSH)); + let pssh = new shaka.util.Pssh(fromHex(PLAYREADY_PSSH)); expect(pssh.systemIds.length).toBe(1); expect(pssh.systemIds[0]).toBe(PLAYREADY_SYSTEM_ID); expect(pssh.cencKeyIds.length).toBe(0); }); it('parses a generic CENC PSSH', function() { - var pssh = new shaka.util.Pssh(fromHex(GENERIC_PSSH)); + let pssh = new shaka.util.Pssh(fromHex(GENERIC_PSSH)); expect(pssh.systemIds.length).toBe(1); expect(pssh.systemIds[0]).toBe(GENERIC_SYSTEM_ID); expect(pssh.cencKeyIds.length).toBe(2); }); it('throws on a truncated PSSH', function() { - var psshs = [ + let psshs = [ fromHex(TRUNCATED_WIDEVINE_PSSH), fromHex(TRUNCATED_PLAYREADY_PSSH), fromHex(TRUNCATED_GENERIC_PSSH), @@ -118,9 +107,9 @@ describe('Pssh', function() { fromHex(GENERIC_PSSH + TRUNCATED_PLAYREADY_PSSH) ]; - for (var i = 0; i < psshs.length; ++i) { + for (let i = 0; i < psshs.length; ++i) { try { - var pssh = new shaka.util.Pssh(psshs[i]); + let pssh = new shaka.util.Pssh(psshs[i]); expect(pssh).toBeTruthy(); // Closure: don't complain about unused vars fail(); } catch (error) { @@ -132,7 +121,7 @@ describe('Pssh', function() { }); it('parses concatenated PSSHs in any order', function() { - var pssh = new shaka.util.Pssh(fromHex( + let pssh = new shaka.util.Pssh(fromHex( WIDEVINE_PSSH + PLAYREADY_PSSH)); expect(pssh.systemIds.length).toBe(2); expect(pssh.systemIds[0]).toBe(WIDEVINE_SYSTEM_ID); @@ -201,7 +190,7 @@ describe('Pssh', function() { }); it('ignores non-PSSH boxes and continues parsing', function() { - var pssh = new shaka.util.Pssh(fromHex( + let pssh = new shaka.util.Pssh(fromHex( OTHER_BOX + WIDEVINE_PSSH)); expect(pssh.systemIds.length).toBe(1); expect(pssh.systemIds[0]).toBe(WIDEVINE_SYSTEM_ID); @@ -221,7 +210,7 @@ describe('Pssh', function() { }); it('parses a zero-sized PSSH box', function() { - var pssh = new shaka.util.Pssh(fromHex(ZERO_SIZED_GENERIC_PSSH)); + let pssh = new shaka.util.Pssh(fromHex(ZERO_SIZED_GENERIC_PSSH)); expect(pssh.systemIds.length).toBe(1); expect(pssh.systemIds[0]).toBe(GENERIC_SYSTEM_ID); expect(pssh.cencKeyIds.length).toBe(2); @@ -235,25 +224,25 @@ describe('Pssh', function() { }); it('extracts boundaries for concatenated boxes', function() { - var psshData = fromHex( + let psshData = fromHex( GENERIC_PSSH + WIDEVINE_PSSH + OTHER_BOX + PLAYREADY_PSSH); - var pssh = new shaka.util.Pssh(psshData); + let pssh = new shaka.util.Pssh(psshData); expect(pssh.dataBoundaries.length).toBe(3); - var data1 = psshData.subarray( + let data1 = psshData.subarray( pssh.dataBoundaries[0].start, pssh.dataBoundaries[0].end + 1); - var data2 = psshData.subarray( + let data2 = psshData.subarray( pssh.dataBoundaries[1].start, pssh.dataBoundaries[1].end + 1); - var data3 = psshData.subarray( + let data3 = psshData.subarray( pssh.dataBoundaries[2].start, pssh.dataBoundaries[2].end + 1); diff --git a/test/util/stream_utils_unit.js b/test/util/stream_utils_unit.js index e53035115..feb84353a 100644 --- a/test/util/stream_utils_unit.js +++ b/test/util/stream_utils_unit.js @@ -16,12 +16,13 @@ */ describe('StreamUtils', function() { - var manifest; - var filterVariantsByLanguageAndRole = + const filterVariantsByLanguageAndRole = shaka.util.StreamUtils.filterVariantsByLanguageAndRole; - var filterStreamsByLanguageAndRole = + const filterStreamsByLanguageAndRole = shaka.util.StreamUtils.filterStreamsByLanguageAndRole; + let manifest; + describe('filterVariantsByLanguageAndRole', function() { it('chooses variants in user\'s preferred language', function() { manifest = new shaka.test.ManifestGenerator() @@ -34,7 +35,7 @@ describe('StreamUtils', function() { .language('en') .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'en', ''); @@ -54,7 +55,7 @@ describe('StreamUtils', function() { .primary() .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'en', ''); @@ -74,7 +75,7 @@ describe('StreamUtils', function() { manifest.periods[0].variants[0].allowedByKeySystem = false; manifest.periods[0].variants[1].allowedByApplication = false; - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'en', ''); @@ -96,7 +97,7 @@ describe('StreamUtils', function() { .addAudio(2).roles(['main']) .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'en', 'main'); @@ -128,7 +129,7 @@ describe('StreamUtils', function() { .addAudio(5).roles(['main']) .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'en', ''); @@ -162,7 +163,7 @@ describe('StreamUtils', function() { .addAudio(5).roles(['main']) .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'zh', ''); @@ -190,7 +191,7 @@ describe('StreamUtils', function() { .addAudio(3) .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'zh', ''); @@ -224,7 +225,7 @@ describe('StreamUtils', function() { .addAudio(5).roles(['main']) .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'zh', ''); @@ -263,7 +264,7 @@ describe('StreamUtils', function() { .addAudio(5).roles(['main']) .build(); - var chosen = filterVariantsByLanguageAndRole( + let chosen = filterVariantsByLanguageAndRole( manifest.periods[0].variants, 'zh', ''); @@ -287,7 +288,7 @@ describe('StreamUtils', function() { .language('en') .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'en', ''); @@ -306,7 +307,7 @@ describe('StreamUtils', function() { .primary() .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'en', ''); @@ -328,7 +329,7 @@ describe('StreamUtils', function() { .roles(['caption']) .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'en', 'main'); @@ -349,7 +350,7 @@ describe('StreamUtils', function() { .roles(['secondary']) .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'en', ''); @@ -370,7 +371,7 @@ describe('StreamUtils', function() { .roles(['secondary']) .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'en', 'main'); // A role that is not present. @@ -402,7 +403,7 @@ describe('StreamUtils', function() { .roles(['main']) .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'en', ''); @@ -436,7 +437,7 @@ describe('StreamUtils', function() { .roles(['main']) .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'zh', ''); @@ -460,7 +461,7 @@ describe('StreamUtils', function() { .language('es').primary() .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'zh', ''); @@ -494,7 +495,7 @@ describe('StreamUtils', function() { .roles(['main']) .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'zh', ''); @@ -533,7 +534,7 @@ describe('StreamUtils', function() { .roles(['main']) .build(); - var chosen = filterStreamsByLanguageAndRole( + let chosen = filterStreamsByLanguageAndRole( manifest.periods[0].textStreams, 'zh', ''); @@ -547,7 +548,7 @@ describe('StreamUtils', function() { }); describe('filterNewPeriod', function() { - var fakeDrmEngine; + let fakeDrmEngine; beforeAll(function() { fakeDrmEngine = new shaka.test.FakeDrmEngine(); @@ -562,8 +563,8 @@ describe('StreamUtils', function() { .addTextStream(4).mime('application/mp4', 'bogus') .build(); - var noAudio = null; - var noVideo = null; + let noAudio = null; + let noVideo = null; shaka.util.StreamUtils.filterNewPeriod( fakeDrmEngine, noAudio, noVideo, manifest.periods[0]); @@ -571,7 +572,7 @@ describe('StreamUtils', function() { // The last two streams should be removed because their full MIME types // are bogus. expect(manifest.periods[0].textStreams.length).toBe(2); - var textStreams = manifest.periods[0].textStreams; + let textStreams = manifest.periods[0].textStreams; expect(textStreams[0].id).toBe(1); expect(textStreams[1].id).toBe(2); }); diff --git a/test/util/string_utils_unit.js b/test/util/string_utils_unit.js index db23e69eb..bcb7e93d8 100644 --- a/test/util/string_utils_unit.js +++ b/test/util/string_utils_unit.js @@ -16,86 +16,82 @@ */ describe('StringUtils', function() { - var StringUtils; - - beforeAll(function() { - StringUtils = shaka.util.StringUtils; - }); + const StringUtils = shaka.util.StringUtils; it('parses fromUTF8', function() { // This is 4 Unicode characters, the last will be split into a surrogate // pair. - var arr = [0x46, 0xe2, 0x82, 0xac, 0x20, 0xf0, 0x90, 0x8d, 0x88]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0x46, 0xe2, 0x82, 0xac, 0x20, 0xf0, 0x90, 0x8d, 0x88]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromUTF8(buffer)).toBe('F\u20ac \ud800\udf48'); }); it('strips the BOM in fromUTF8', function() { // This is 4 Unicode characters, the last will be split into a surrogate // pair. - var arr = [0xef, 0xbb, 0xbf, 0x74, 0x65, 0x78, 0x74]; - var buffer = new Uint8Array(arr).buffer; - var ContentType = shaka.util.ManifestParserUtils.ContentType; + let arr = [0xef, 0xbb, 0xbf, 0x74, 0x65, 0x78, 0x74]; + let buffer = new Uint8Array(arr).buffer; + const ContentType = shaka.util.ManifestParserUtils.ContentType; expect(StringUtils.fromUTF8(buffer)).toBe(ContentType.TEXT); }); it('parses fromUTF16 big-endian', function() { // This is big-endian pairs of 16-bit numbers. This translates into 3 // Unicode characters where the last is split into a surrogate pair. - var arr = [0x00, 0x46, 0x38, 0x01, 0xd8, 0x01, 0xdc, 0x37]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0x00, 0x46, 0x38, 0x01, 0xd8, 0x01, 0xdc, 0x37]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromUTF16(buffer, false)).toBe('F\u3801\ud801\udc37'); }); it('parses fromUTF16 little-endian', function() { // This is little-endian pairs of 16-bit numbers. This translates into 3 // Unicode characters where the last is split into a surrogate pair. - var arr = [0x46, 0x00, 0x01, 0x38, 0x01, 0xd8, 0x37, 0xdc]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0x46, 0x00, 0x01, 0x38, 0x01, 0xd8, 0x37, 0xdc]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromUTF16(buffer, true)).toBe('F\u3801\ud801\udc37'); }); describe('fromBytesAutoDetect', function() { it('detects UTF-8 BOM', function() { - var arr = [0xef, 0xbb, 0xbf, 0x46, 0x6f, 0x6f]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0xef, 0xbb, 0xbf, 0x46, 0x6f, 0x6f]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromBytesAutoDetect(buffer)).toBe('Foo'); }); it('detects UTF-16 BE BOM', function() { - var arr = [0xfe, 0xff, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6f]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0xfe, 0xff, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6f]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromBytesAutoDetect(buffer)).toBe('Foo'); }); it('detects UTF-16 LE BOM', function() { - var arr = [0xff, 0xfe, 0x46, 0x00, 0x6f, 0x00, 0x6f, 0x00]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0xff, 0xfe, 0x46, 0x00, 0x6f, 0x00, 0x6f, 0x00]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromBytesAutoDetect(buffer)).toBe('Foo'); }); it('guesses UTF-8', function() { - var arr = [0x46, 0x6f, 0x6f]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0x46, 0x6f, 0x6f]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromBytesAutoDetect(buffer)).toBe('Foo'); }); it('guesses UTF-16 BE', function() { - var arr = [0x00, 0x46, 0x00, 0x6f, 0x00, 0x6f]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0x00, 0x46, 0x00, 0x6f, 0x00, 0x6f]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromBytesAutoDetect(buffer)).toBe('Foo'); }); it('guesses UTF-16 LE', function() { - var arr = [0x46, 0x00, 0x6f, 0x00, 0x6f, 0x00]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0x46, 0x00, 0x6f, 0x00, 0x6f, 0x00]; + let buffer = new Uint8Array(arr).buffer; expect(StringUtils.fromBytesAutoDetect(buffer)).toBe('Foo'); }); it('fails if unable to guess', function() { try { - var arr = [0x01, 0x02, 0x03, 0x04]; - var buffer = new Uint8Array(arr).buffer; + let arr = [0x01, 0x02, 0x03, 0x04]; + let buffer = new Uint8Array(arr).buffer; StringUtils.fromBytesAutoDetect(buffer); fail('Should not be able to guess'); } catch (e) { @@ -106,14 +102,14 @@ describe('StringUtils', function() { }); it('converts toUTF8', function() { - var str = 'Xe\u4524\u1952'; - var arr = [0x58, 0x65, 0xe4, 0x94, 0xa4, 0xe1, 0xa5, 0x92]; - var buffer = StringUtils.toUTF8(str); + let str = 'Xe\u4524\u1952'; + let arr = [0x58, 0x65, 0xe4, 0x94, 0xa4, 0xe1, 0xa5, 0x92]; + let buffer = StringUtils.toUTF8(str); expect(new Uint8Array(buffer)).toEqual(new Uint8Array(arr)); }); it('does not cause stack overflow, #335', function() { - var buffer = new Uint8Array(8e5).buffer; // Well above arg count limit. + let buffer = new Uint8Array(8e5).buffer; // Well above arg count limit. expect(StringUtils.fromUTF8(buffer).length).toBe(buffer.byteLength); expect(StringUtils.fromUTF16(buffer, true).length) .toBe(buffer.byteLength / 2); diff --git a/test/util/text_parser_unit.js b/test/util/text_parser_unit.js index 7fc0a4d6e..3ace07634 100644 --- a/test/util/text_parser_unit.js +++ b/test/util/text_parser_unit.js @@ -16,31 +16,27 @@ */ describe('TextParser', function() { - var textParser; - - beforeAll(function() { - textParser = shaka.util.TextParser; - }); + const textParser = shaka.util.TextParser; describe('atEnd', function() { it('is false at start', function() { - var parser = new textParser('FOO'); + let parser = new textParser('FOO'); expect(parser.atEnd()).toBe(false); }); it('is true if no data at start', function() { - var parser = new textParser(''); + let parser = new textParser(''); expect(parser.atEnd()).toBe(true); }); it('is false if there is more after read', function() { - var parser = new textParser('FOO BAR'); + let parser = new textParser('FOO BAR'); parser.readRegex(/FOO/g); expect(parser.atEnd()).toBe(false); }); it('is true at the end', function() { - var parser = new textParser('FOO'); + let parser = new textParser('FOO'); parser.readLine(); expect(parser.atEnd()).toBe(true); }); @@ -48,24 +44,24 @@ describe('TextParser', function() { describe('readLine', function() { it('returns null at end', function() { - var parser = new textParser(''); + let parser = new textParser(''); expect(parser.atEnd()).toBe(true); expect(parser.readLine()).toBe(null); }); it('returns line read', function() { - var parser = new textParser('A Line\n Another'); + let parser = new textParser('A Line\n Another'); expect(parser.readLine()).toBe('A Line'); }); it('reads to end of string', function() { - var parser = new textParser('A Line'); + let parser = new textParser('A Line'); expect(parser.readLine()).toBe('A Line'); expect(parser.atEnd()).toBe(true); }); it('will return empty lines', function() { - var parser = new textParser('Line\n\nNew Line'); + let parser = new textParser('Line\n\nNew Line'); expect(parser.readLine()).toBe('Line'); expect(parser.readLine()).toBe(''); expect(parser.readLine()).toBe('New Line'); @@ -74,30 +70,30 @@ describe('TextParser', function() { describe('readWord', function() { it('returns null at end', function() { - var parser = new textParser(''); + let parser = new textParser(''); expect(parser.atEnd()).toBe(true); expect(parser.readWord()).toBe(null); }); it('returns word read', function() { - var parser = new textParser('FOO BAR'); + let parser = new textParser('FOO BAR'); expect(parser.readWord()).toBe('FOO'); }); it('moves position correctly', function() { - var parser = new textParser('FOO BAR'); + let parser = new textParser('FOO BAR'); expect(parser.readWord()).toBe('FOO'); expect(parser.readLine()).toBe(' BAR'); }); it('reads to end', function() { - var parser = new textParser('FOO'); + let parser = new textParser('FOO'); expect(parser.readWord()).toBe('FOO'); expect(parser.atEnd()).toBe(true); }); it('reads to end of line', function() { - var parser = new textParser('FOO\nBAR'); + let parser = new textParser('FOO\nBAR'); expect(parser.readWord()).toBe('FOO'); expect(parser.readRegex(/\nBAR/gm)).toBeTruthy(); }); @@ -105,44 +101,44 @@ describe('TextParser', function() { describe('readRegex', function() { it('returns null at end', function() { - var parser = new textParser(''); + let parser = new textParser(''); expect(parser.atEnd()).toBe(true); expect(parser.readRegex(/(?:)/g)).toBe(null); }); it('moves position', function() { - var parser = new textParser('FOOBAR'); + let parser = new textParser('FOOBAR'); expect(parser.readRegex(/FOO/g)).toBeTruthy(); expect(parser.readLine()).toBe('BAR'); }); it('will read to end', function() { - var parser = new textParser('FOO'); + let parser = new textParser('FOO'); expect(parser.readRegex(/FO+/g)).toBeTruthy(); expect(parser.atEnd()).toBe(true); }); it('only reads if matches', function() { - var parser = new textParser('FOO'); + let parser = new textParser('FOO'); expect(parser.readRegex(/CAT/g)).toBe(null); expect(parser.readLine()).toBe('FOO'); }); it('only reads if match is at current position', function() { - var parser = new textParser('AABB'); + let parser = new textParser('AABB'); expect(parser.readRegex(/B+/g)).toBe(null); expect(parser.readLine()).toBe('AABB'); }); it('only reads the first match', function() { - var parser = new textParser('AABBAA'); + let parser = new textParser('AABBAA'); expect(parser.readRegex(/A+/g)).toBeTruthy(); expect(parser.readLine()).toBe('BBAA'); }); it('returns results object', function() { - var parser = new textParser('00:11:22'); - var results = parser.readRegex(/(\d+):(\d+):/g); + let parser = new textParser('00:11:22'); + let results = parser.readRegex(/(\d+):(\d+):/g); expect(results).toBeTruthy(); expect(results.length).toBe(3); expect(results[0]).toBe('00:11:'); @@ -153,25 +149,25 @@ describe('TextParser', function() { describe('skipWhitespace', function() { it('skips blocks of whitespace', function() { - var parser = new textParser(' CAT'); + let parser = new textParser(' CAT'); parser.skipWhitespace(); expect(parser.readRegex(/CAT/g)).toBeTruthy(); }); it('skips mixed whitespace', function() { - var parser = new textParser(' \t\t CAT'); + let parser = new textParser(' \t\t CAT'); parser.skipWhitespace(); expect(parser.readRegex(/CAT/g)).toBeTruthy(); }); it('does not skip newlines', function() { - var parser = new textParser(' \nCAT'); + let parser = new textParser(' \nCAT'); parser.skipWhitespace(); expect(parser.readRegex(/\nCAT/gm)).toBeTruthy(); }); it('will skip to end of string', function() { - var parser = new textParser(' '); + let parser = new textParser(' '); expect(parser.atEnd()).toBe(false); parser.skipWhitespace(); expect(parser.atEnd()).toBe(true); diff --git a/test/util/xml_utils_unit.js b/test/util/xml_utils_unit.js index 3742a4b27..9a01ea491 100644 --- a/test/util/xml_utils_unit.js +++ b/test/util/xml_utils_unit.js @@ -23,16 +23,16 @@ describe('XmlUtils', function() { describe('findChild', function() { it('finds a child node', function() { - var xmlString = [ + let xmlString = [ '', '', ' ', '' ].join('\n'); - var xml = new DOMParser().parseFromString(xmlString, 'application/xml'); + let xml = new DOMParser().parseFromString(xmlString, 'application/xml'); goog.asserts.assert(xml, 'parseFromString should succeed'); - var root = XmlUtils.findChild(xml, 'Root'); + let root = XmlUtils.findChild(xml, 'Root'); goog.asserts.assert(root, 'findChild should find element'); expect(XmlUtils.findChild(root, 'Child')).toBeTruthy(); @@ -40,17 +40,17 @@ describe('XmlUtils', function() { }); it('handles duplicate child nodes', function() { - var xmlString = [ + let xmlString = [ '', '', ' ', ' ', '' ].join('\n'); - var xml = new DOMParser().parseFromString(xmlString, 'application/xml'); + let xml = new DOMParser().parseFromString(xmlString, 'application/xml'); goog.asserts.assert(xml, 'parseFromString should succeed'); - var root = XmlUtils.findChild(xml, 'Root'); + let root = XmlUtils.findChild(xml, 'Root'); goog.asserts.assert(root, 'findChild should find element'); expect(XmlUtils.findChild(root, 'Child')).toBeNull(); @@ -58,21 +58,21 @@ describe('XmlUtils', function() { }); it('findChildren', function() { - var xmlString = [ + let xmlString = [ '', '', ' ', ' ', '' ].join('\n'); - var xml = new DOMParser().parseFromString(xmlString, 'application/xml'); + let xml = new DOMParser().parseFromString(xmlString, 'application/xml'); goog.asserts.assert(xml, 'parseFromString should succeed'); - var roots = XmlUtils.findChildren(xml, 'Root'); + let roots = XmlUtils.findChildren(xml, 'Root'); expect(roots).toBeTruthy(); expect(roots.length).toBe(1); - var children = XmlUtils.findChildren(roots[0], 'Child'); + let children = XmlUtils.findChildren(roots[0], 'Child'); expect(children.length).toBe(2); children = XmlUtils.findChildren(roots[0], 'DoesNotExist'); @@ -81,41 +81,41 @@ describe('XmlUtils', function() { describe('getContents', function() { it('returns node contents', function() { - var xmlString = [ + let xmlString = [ '', '', ' foo bar', '' ].join('\n'); - var xml = new DOMParser().parseFromString(xmlString, 'application/xml'); + let xml = new DOMParser().parseFromString(xmlString, 'application/xml'); goog.asserts.assert(xml, 'parseFromString should succeed'); - var root = XmlUtils.findChild(xml, 'Root'); + let root = XmlUtils.findChild(xml, 'Root'); goog.asserts.assert(root, 'findChild should find element'); expect(XmlUtils.getContents(root)).toBe('foo bar'); }); it('handles empty node contents', function() { - var xmlString = [ + let xmlString = [ '', '', '' ].join('\n'); - var xml = new DOMParser().parseFromString(xmlString, 'application/xml'); + let xml = new DOMParser().parseFromString(xmlString, 'application/xml'); goog.asserts.assert(xml, 'parseFromString should succeed'); - var root = XmlUtils.findChild(xml, 'Root'); + let root = XmlUtils.findChild(xml, 'Root'); goog.asserts.assert(root, 'findChild should find element'); expect(XmlUtils.getContents(root)).toBe(''); }); it('handles null node contents', function() { - var xmlString = [ + let xmlString = [ '', '', '' ].join('\n'); - var xml = new DOMParser().parseFromString(xmlString, 'application/xml'); + let xml = new DOMParser().parseFromString(xmlString, 'application/xml'); goog.asserts.assert(xml, 'parseFromString should succeed'); expect(XmlUtils.getContents(xml)).toBeNull(); @@ -124,10 +124,10 @@ describe('XmlUtils', function() { describe('parseAttr', function() { /** @type {!Document} */ - var xml; + let xml; beforeEach(function() { - var xmlString = [ + let xmlString = [ '', '', '' @@ -137,7 +137,7 @@ describe('XmlUtils', function() { }); it('delegates to parser function', function() { - var root = XmlUtils.findChild(xml, 'Root'); + let root = XmlUtils.findChild(xml, 'Root'); goog.asserts.assert(root, 'findChild should find element'); expect(XmlUtils.parseAttr(root, 'a', XmlUtils.parseRange)).toEqual( {start: 2, end: 7}); @@ -147,14 +147,14 @@ describe('XmlUtils', function() { }); it('supports default values', function() { - var root = XmlUtils.findChild(xml, 'Root'); + let root = XmlUtils.findChild(xml, 'Root'); goog.asserts.assert(root, 'findChild should find element'); expect(XmlUtils.parseAttr(root, 'd', XmlUtils.parseInt, 9)).toBe(9); }); }); it('parseDate', function() { - var parseDate = shaka.util.XmlUtils.parseDate; + let parseDate = shaka.util.XmlUtils.parseDate; // Should be parsed as UTC independent of local timezone. expect(parseDate('2015-11-30T12:46:33')).toBe(1448887593); @@ -167,7 +167,7 @@ describe('XmlUtils', function() { }); it('parseDuration', function() { - var parseDuration = shaka.util.XmlUtils.parseDuration; + let parseDuration = shaka.util.XmlUtils.parseDuration; // No time. expect(parseDuration('P')).toBe(0); @@ -252,7 +252,7 @@ describe('XmlUtils', function() { }); it('parseRange', function() { - var parseRange = shaka.util.XmlUtils.parseRange; + let parseRange = shaka.util.XmlUtils.parseRange; expect(parseRange('0-0')).toEqual({start: 0, end: 0}); expect(parseRange('1-1')).toEqual({start: 1, end: 1}); @@ -275,7 +275,7 @@ describe('XmlUtils', function() { }); it('parseInt', function() { - var parseInt = shaka.util.XmlUtils.parseInt; + let parseInt = shaka.util.XmlUtils.parseInt; expect(parseInt('0')).toBe(0); expect(parseInt('1')).toBe(1); @@ -300,7 +300,7 @@ describe('XmlUtils', function() { }); it('parsePositiveInt', function() { - var parsePositiveInt = shaka.util.XmlUtils.parsePositiveInt; + let parsePositiveInt = shaka.util.XmlUtils.parsePositiveInt; expect(parsePositiveInt('0')).toBeNull(); expect(parsePositiveInt('1')).toBe(1); @@ -325,7 +325,7 @@ describe('XmlUtils', function() { }); it('parseNonNegativeInt', function() { - var parseNonNegativeInt = shaka.util.XmlUtils.parseNonNegativeInt; + let parseNonNegativeInt = shaka.util.XmlUtils.parseNonNegativeInt; expect(parseNonNegativeInt('0')).toBe(0); expect(parseNonNegativeInt('1')).toBe(1); @@ -350,7 +350,7 @@ describe('XmlUtils', function() { }); it('parseFloat', function() { - var parseFloat = shaka.util.XmlUtils.parseFloat; + let parseFloat = shaka.util.XmlUtils.parseFloat; expect(parseFloat('0')).toBe(0); expect(parseFloat('1')).toBe(1);