Index: imaps-frontend/node_modules/es-abstract/2017/AbstractEqualityComparison.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/AbstractEqualityComparison.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/AbstractEqualityComparison.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,10 +5,10 @@
 var Type = require('./Type');
 
-var isObject = require('../helpers/isObject');
-
 // https://262.ecma-international.org/6.0/#sec-abstract-equality-comparison
 
 module.exports = function AbstractEqualityComparison(x, y) {
-	if (Type(x) === Type(y)) {
+	var xType = Type(x);
+	var yType = Type(y);
+	if (xType === yType) {
 		return x === y; // ES6+ specified this shortcut anyways.
 	}
@@ -16,20 +16,20 @@
 		return true;
 	}
-	if (typeof x === 'number' && typeof y === 'string') {
+	if (xType === 'Number' && yType === 'String') {
 		return AbstractEqualityComparison(x, ToNumber(y));
 	}
-	if (typeof x === 'string' && typeof y === 'number') {
+	if (xType === 'String' && yType === 'Number') {
 		return AbstractEqualityComparison(ToNumber(x), y);
 	}
-	if (typeof x === 'boolean') {
+	if (xType === 'Boolean') {
 		return AbstractEqualityComparison(ToNumber(x), y);
 	}
-	if (typeof y === 'boolean') {
+	if (yType === 'Boolean') {
 		return AbstractEqualityComparison(x, ToNumber(y));
 	}
-	if ((typeof x === 'string' || typeof x === 'number' || typeof x === 'symbol') && isObject(y)) {
+	if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') {
 		return AbstractEqualityComparison(x, ToPrimitive(y));
 	}
-	if (isObject(x) && (typeof y === 'string' || typeof y === 'number' || typeof y === 'symbol')) {
+	if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) {
 		return AbstractEqualityComparison(ToPrimitive(x), y);
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/AbstractRelationalComparison.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/AbstractRelationalComparison.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/AbstractRelationalComparison.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,7 +5,7 @@
 var $Number = GetIntrinsic('%Number%');
 var $TypeError = require('es-errors/type');
-var $isNaN = require('math-intrinsics/isNaN');
-var $isFinite = require('math-intrinsics/isFinite');
 
+var $isNaN = require('../helpers/isNaN');
+var $isFinite = require('../helpers/isFinite');
 var isPrefixOf = require('../helpers/isPrefixOf');
 
Index: imaps-frontend/node_modules/es-abstract/2017/AdvanceStringIndex.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/AdvanceStringIndex.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/AdvanceStringIndex.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,13 +1,12 @@
 'use strict';
 
-var isInteger = require('math-intrinsics/isInteger');
-var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger');
-
+var isInteger = require('../helpers/isInteger');
 var isLeadingSurrogate = require('../helpers/isLeadingSurrogate');
 var isTrailingSurrogate = require('../helpers/isTrailingSurrogate');
+var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
 
 var $TypeError = require('es-errors/type');
 
-var $charCodeAt = require('call-bound')('String.prototype.charCodeAt');
+var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt');
 
 // https://262.ecma-international.org/6.0/#sec-advancestringindex
Index: imaps-frontend/node_modules/es-abstract/2017/ArrayCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ArrayCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ArrayCreate.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -7,7 +7,19 @@
 var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
-var isInteger = require('math-intrinsics/isInteger');
-var MAX_ARRAY_LENGTH = require('math-intrinsics/constants/maxArrayLength');
-var $setProto = require('set-proto');
+
+var isInteger = require('../helpers/isInteger');
+
+var hasProto = require('has-proto')();
+
+var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
+
+var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || (
+	hasProto
+		? function (O, proto) {
+			O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign
+			return O;
+		}
+		: null
+);
 
 // https://262.ecma-international.org/6.0/#sec-arraycreate
Index: imaps-frontend/node_modules/es-abstract/2017/ArraySpeciesCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ArraySpeciesCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ArraySpeciesCreate.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -6,11 +6,11 @@
 var $species = GetIntrinsic('%Symbol.species%', true);
 var $TypeError = require('es-errors/type');
-var isInteger = require('math-intrinsics/isInteger');
 
 var Get = require('./Get');
 var IsArray = require('./IsArray');
 var IsConstructor = require('./IsConstructor');
+var Type = require('./Type');
 
-var isObject = require('../helpers/isObject');
+var isInteger = require('../helpers/isInteger');
 
 // https://262.ecma-international.org/6.0/#sec-arrayspeciescreate
@@ -30,5 +30,5 @@
 		// 	Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
 		// }
-		if ($species && isObject(C)) {
+		if ($species && Type(C) === 'Object') {
 			C = Get(C, $species);
 			if (C === null) {
Index: imaps-frontend/node_modules/es-abstract/2017/Call.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/Call.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/Call.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,5 +2,5 @@
 
 var GetIntrinsic = require('get-intrinsic');
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $TypeError = require('es-errors/type');
Index: imaps-frontend/node_modules/es-abstract/2017/Canonicalize.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/Canonicalize.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/Canonicalize.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var hasOwn = require('hasown');
 
Index: imaps-frontend/node_modules/es-abstract/2017/CharacterRange.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/CharacterRange.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/CharacterRange.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,5 +2,5 @@
 
 var GetIntrinsic = require('get-intrinsic');
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $fromCharCode = GetIntrinsic('%String.fromCharCode%');
Index: imaps-frontend/node_modules/es-abstract/2017/CompletionRecord.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/CompletionRecord.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/CompletionRecord.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -31,8 +31,11 @@
 	var value = SLOT.get(this, '[[Value]]');
 
+	if (type === 'normal') {
+		return value;
+	}
 	if (type === 'throw') {
 		throw value;
 	}
-	return value;
+	throw new $SyntaxError('Completion Record is not of type "normal" or "throw": other types not supported');
 };
 
Index: imaps-frontend/node_modules/es-abstract/2017/CreateDataProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/CreateDataProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/CreateDataProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,17 +3,16 @@
 var $TypeError = require('es-errors/type');
 
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-createdataproperty
 
 module.exports = function CreateDataProperty(O, P, V) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key');
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
 	}
 	var newDesc = {
Index: imaps-frontend/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,16 +4,15 @@
 
 var CreateDataProperty = require('./CreateDataProperty');
-
-var isObject = require('../helpers/isObject');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
+var Type = require('./Type');
 
 // // https://262.ecma-international.org/6.0/#sec-createdatapropertyorthrow
 
 module.exports = function CreateDataPropertyOrThrow(O, P, V) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key');
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
 	}
 	var success = CreateDataProperty(O, P, V);
Index: imaps-frontend/node_modules/es-abstract/2017/CreateHTML.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/CreateHTML.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/CreateHTML.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $replace = callBound('String.prototype.replace');
Index: imaps-frontend/node_modules/es-abstract/2017/CreateListFromArrayLike.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/CreateListFromArrayLike.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/CreateListFromArrayLike.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $TypeError = require('es-errors/type');
@@ -13,6 +13,4 @@
 var Type = require('./Type');
 
-var isObject = require('../helpers/isObject');
-
 var defaultElementTypes = ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object'];
 
@@ -23,5 +21,5 @@
 		: defaultElementTypes;
 
-	if (!isObject(obj)) {
+	if (Type(obj) !== 'Object') {
 		throw new $TypeError('Assertion failed: `obj` must be an Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/CreateMethodProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/CreateMethodProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/CreateMethodProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -7,18 +7,17 @@
 var FromPropertyDescriptor = require('./FromPropertyDescriptor');
 var IsDataDescriptor = require('./IsDataDescriptor');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 var SameValue = require('./SameValue');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-createmethodproperty
 
 module.exports = function CreateMethodProperty(O, P, V) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key');
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2017/DefinePropertyOrThrow.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/DefinePropertyOrThrow.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/DefinePropertyOrThrow.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -8,19 +8,18 @@
 var FromPropertyDescriptor = require('./FromPropertyDescriptor');
 var IsDataDescriptor = require('./IsDataDescriptor');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 var SameValue = require('./SameValue');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-definepropertyorthrow
 
 module.exports = function DefinePropertyOrThrow(O, P, desc) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key');
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2017/DeletePropertyOrThrow.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/DeletePropertyOrThrow.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/DeletePropertyOrThrow.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,16 +3,16 @@
 var $TypeError = require('es-errors/type');
 
-var isObject = require('../helpers/isObject');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-deletepropertyorthrow
 
 module.exports = function DeletePropertyOrThrow(O, P) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key');
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2017/EnumerableOwnProperties.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/EnumerableOwnProperties.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/EnumerableOwnProperties.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,19 +1,25 @@
 'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
 
 var $TypeError = require('es-errors/type');
 
 var objectKeys = require('object-keys');
-var callBound = require('call-bound');
-var safePushApply = require('safe-push-apply');
+
+var callBound = require('call-bind/callBound');
+
+var callBind = require('call-bind');
 
 var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
+var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%'));
 
 var forEach = require('../helpers/forEach');
-var isObject = require('../helpers/isObject');
+
+var Type = require('./Type');
 
 // https://262.ecma-international.org/8.0/#sec-enumerableownproperties
 
 module.exports = function EnumerableOwnProperties(O, kind) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -27,5 +33,5 @@
 		forEach(keys, function (key) {
 			if ($isEnumerable(O, key)) {
-				safePushApply(results, [
+				$pushApply(results, [
 					kind === 'value' ? O[key] : [key, O[key]]
 				]);
Index: imaps-frontend/node_modules/es-abstract/2017/Get.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/Get.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/Get.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,6 +5,6 @@
 var inspect = require('object-inspect');
 
-var isObject = require('../helpers/isObject');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-get-o-p
@@ -12,10 +12,10 @@
 module.exports = function Get(O, P) {
 	// 7.3.1.1
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
 	// 7.3.1.2
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key, got ' + inspect(P));
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
 	}
 	// 7.3.1.3
Index: imaps-frontend/node_modules/es-abstract/2017/GetIterator.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/GetIterator.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/GetIterator.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -8,12 +8,5 @@
 var GetMethod = require('./GetMethod');
 var IsArray = require('./IsArray');
-
-var isObject = require('../helpers/isObject');
-
-var ES = {
-	AdvanceStringIndex: AdvanceStringIndex,
-	GetMethod: GetMethod,
-	IsArray: IsArray
-};
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-getiterator
@@ -22,8 +15,15 @@
 	var actualMethod = method;
 	if (arguments.length < 2) {
-		actualMethod = getIteratorMethod(ES, obj);
+		actualMethod = getIteratorMethod(
+			{
+				AdvanceStringIndex: AdvanceStringIndex,
+				GetMethod: GetMethod,
+				IsArray: IsArray
+			},
+			obj
+		);
 	}
 	var iterator = Call(actualMethod, obj);
-	if (!isObject(iterator)) {
+	if (Type(iterator) !== 'Object') {
 		throw new $TypeError('iterator must return an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/GetMethod.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/GetMethod.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/GetMethod.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,5 +5,5 @@
 var GetV = require('./GetV');
 var IsCallable = require('./IsCallable');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 
 var inspect = require('object-inspect');
@@ -13,6 +13,6 @@
 module.exports = function GetMethod(O, P) {
 	// 7.3.9.1
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key');
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2017/GetOwnPropertyKeys.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/GetOwnPropertyKeys.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/GetOwnPropertyKeys.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -11,10 +11,10 @@
 var keys = require('object-keys');
 
-var isObject = require('../helpers/isObject');
+var esType = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-getownpropertykeys
 
 module.exports = function GetOwnPropertyKeys(O, Type) {
-	if (!isObject(O)) {
+	if (esType(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -9,6 +9,5 @@
 var Get = require('./Get');
 var IsConstructor = require('./IsConstructor');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-getprototypefromconstructor
@@ -16,5 +15,5 @@
 module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) {
 	var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
-	if (!isObject(intrinsic)) {
+	if (Type(intrinsic) !== 'Object') {
 		throw new $TypeError('intrinsicDefaultProto must be an object');
 	}
@@ -23,5 +22,5 @@
 	}
 	var proto = Get(constructor, 'prototype');
-	if (!isObject(proto)) {
+	if (Type(proto) !== 'Object') {
 		if (!(constructor instanceof $Function)) {
 			// ignore other realms, for now
Index: imaps-frontend/node_modules/es-abstract/2017/GetSubstitution.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/GetSubstitution.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/GetSubstitution.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -8,7 +8,7 @@
 
 var inspect = require('object-inspect');
-var isInteger = require('math-intrinsics/isInteger');
+
 var regexTester = require('safe-regex-test');
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var every = require('../helpers/every');
 
@@ -20,4 +20,5 @@
 var IsArray = require('./IsArray');
 
+var isInteger = require('../helpers/isInteger');
 var isStringOrUndefined = require('../helpers/isStringOrUndefined');
 
Index: imaps-frontend/node_modules/es-abstract/2017/GetV.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/GetV.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/GetV.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,5 +5,5 @@
 var inspect = require('object-inspect');
 
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 // var ToObject = require('./ToObject');
 
@@ -12,6 +12,6 @@
 module.exports = function GetV(V, P) {
 	// 7.3.2.1
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key, got ' + inspect(P));
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2017/GetValueFromBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/GetValueFromBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/GetValueFromBuffer.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,10 +5,11 @@
 var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
-var isInteger = require('math-intrinsics/isInteger');
 var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $slice = callBound('Array.prototype.slice');
+
+var isInteger = require('../helpers/isInteger');
 
 var IsDetachedBuffer = require('./IsDetachedBuffer');
Index: imaps-frontend/node_modules/es-abstract/2017/HasOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/HasOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/HasOwnProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,14 +5,14 @@
 var hasOwn = require('hasown');
 
-var isObject = require('../helpers/isObject');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-hasownproperty
 
 module.exports = function HasOwnProperty(O, P) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: `O` must be an Object');
 	}
-	if (!isPropertyKey(P)) {
+	if (!IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: `P` must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/HasProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/HasProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/HasProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,14 +3,14 @@
 var $TypeError = require('es-errors/type');
 
-var isObject = require('../helpers/isObject');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-hasproperty
 
 module.exports = function HasProperty(O, P) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: `O` must be an Object');
 	}
-	if (!isPropertyKey(P)) {
+	if (!IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: `P` must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/InstanceofOperator.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/InstanceofOperator.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/InstanceofOperator.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,5 +5,5 @@
 var $TypeError = require('es-errors/type');
 
-var $hasInstance = GetIntrinsic('%Symbol.hasInstance%', true);
+var $hasInstance = GetIntrinsic('Symbol.hasInstance', true);
 
 var Call = require('./Call');
@@ -12,11 +12,10 @@
 var OrdinaryHasInstance = require('./OrdinaryHasInstance');
 var ToBoolean = require('./ToBoolean');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-instanceofoperator
 
 module.exports = function InstanceofOperator(O, C) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IntegerIndexedElementGet.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IntegerIndexedElementGet.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IntegerIndexedElementGet.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -8,5 +8,5 @@
 var IsInteger = require('./IsInteger');
 
-var isNegativeZero = require('math-intrinsics/isNegativeZero');
+var isNegativeZero = require('../helpers/isNegativeZero');
 
 var typedArrayLength = require('typed-array-length');
Index: imaps-frontend/node_modules/es-abstract/2017/IntegerIndexedElementSet.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IntegerIndexedElementSet.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IntegerIndexedElementSet.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,4 @@
 'use strict';
 
-var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
 
@@ -9,5 +8,5 @@
 var ToNumber = require('./ToNumber');
 
-var isNegativeZero = require('math-intrinsics/isNegativeZero');
+var isNegativeZero = require('is-negative-zero');
 var typedArrayBuffer = require('typed-array-buffer');
 var typedArrayByteOffset = require('typed-array-byte-offset');
@@ -26,7 +25,4 @@
 	if (!arrayTypeName) {
 		throw new $TypeError('`O` must be a TypedArray'); // step 2
-	}
-	if (arrayTypeName === 'BigInt64Array' || arrayTypeName === 'BigUint64Array') {
-		throw new $SyntaxError('BigInt64Array and BigUint64Array do not exist until ES2020'); // step 2
 	}
 
Index: imaps-frontend/node_modules/es-abstract/2017/InternalizeJSONProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/InternalizeJSONProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/InternalizeJSONProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -10,7 +10,7 @@
 var ToLength = require('./ToLength');
 var ToString = require('./ToString');
+var Type = require('./Type');
 
 var forEach = require('../helpers/forEach');
-var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/8.0/#sec-internalizejsonproperty
@@ -19,5 +19,5 @@
 
 module.exports = function InternalizeJSONProperty(holder, name, reviver) {
-	if (!isObject(holder)) {
+	if (Type(holder) !== 'Object') {
 		throw new $TypeError('Assertion failed: `holder` is not an Object');
 	}
@@ -31,5 +31,5 @@
 	var val = Get(holder, name); // step 1
 
-	if (isObject(val)) { // step 2
+	if (Type(val) === 'Object') { // step 2
 		var isArray = IsArray(val); // step 2.a
 		if (isArray) { // step 2.b
Index: imaps-frontend/node_modules/es-abstract/2017/Invoke.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/Invoke.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/Invoke.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -6,10 +6,10 @@
 var IsArray = require('./IsArray');
 var GetV = require('./GetV');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-invoke
 
 module.exports = function Invoke(O, P) {
-	if (!isPropertyKey(P)) {
+	if (!IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IsConcatSpreadable.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsConcatSpreadable.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsConcatSpreadable.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -8,11 +8,10 @@
 var IsArray = require('./IsArray');
 var ToBoolean = require('./ToBoolean');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-isconcatspreadable
 
 module.exports = function IsConcatSpreadable(O) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IsDetachedBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsDetachedBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsDetachedBuffer.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,5 +5,5 @@
 var $byteLength = require('array-buffer-byte-length');
 var availableTypedArrays = require('available-typed-arrays')();
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var isArrayBuffer = require('is-array-buffer');
 var isSharedArrayBuffer = require('is-shared-array-buffer');
Index: imaps-frontend/node_modules/es-abstract/2017/IsInteger.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsInteger.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsInteger.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var isInteger = require('math-intrinsics/isInteger');
+var isInteger = require('../helpers/isInteger');
 
 // https://262.ecma-international.org/6.0/#sec-isinteger
Index: imaps-frontend/node_modules/es-abstract/2017/IsPromise.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsPromise.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsPromise.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,14 +1,14 @@
 'use strict';
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $PromiseThen = callBound('Promise.prototype.then', true);
 
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-ispromise
 
 module.exports = function IsPromise(x) {
-	if (!isObject(x)) {
+	if (Type(x) !== 'Object') {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IsPropertyKey.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsPropertyKey.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsPropertyKey.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,9 +1,7 @@
 'use strict';
-
-var isPropertyKey = require('../helpers/isPropertyKey');
 
 // https://262.ecma-international.org/6.0/#sec-ispropertykey
 
 module.exports = function IsPropertyKey(argument) {
-	return isPropertyKey(argument);
+	return typeof argument === 'string' || typeof argument === 'symbol';
 };
Index: imaps-frontend/node_modules/es-abstract/2017/IsRegExp.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsRegExp.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsRegExp.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -9,10 +9,8 @@
 var ToBoolean = require('./ToBoolean');
 
-var isObject = require('../helpers/isObject');
-
 // https://262.ecma-international.org/6.0/#sec-isregexp
 
 module.exports = function IsRegExp(argument) {
-	if (!isObject(argument)) {
+	if (!argument || typeof argument !== 'object') {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IsSharedArrayBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsSharedArrayBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsSharedArrayBuffer.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 var isSharedArrayBuffer = require('is-shared-array-buffer');
@@ -10,5 +10,5 @@
 
 module.exports = function IsSharedArrayBuffer(obj) {
-	if (!isObject(obj)) {
+	if (Type(obj) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IsWordChar.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IsWordChar.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IsWordChar.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $indexOf = callBound('String.prototype.indexOf');
Index: imaps-frontend/node_modules/es-abstract/2017/IterableToList.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IterableToList.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IterableToList.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var $arrayPush = callBound('Array.prototype.push');
 
Index: imaps-frontend/node_modules/es-abstract/2017/IteratorClose.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IteratorClose.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IteratorClose.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -7,11 +7,10 @@
 var GetMethod = require('./GetMethod');
 var IsCallable = require('./IsCallable');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-iteratorclose
 
 module.exports = function IteratorClose(iterator, completion) {
-	if (!isObject(iterator)) {
+	if (Type(iterator) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(iterator) is not Object');
 	}
@@ -43,5 +42,5 @@
 	completionThunk = null; // ensure it's not called twice.
 
-	if (!isObject(innerResult)) {
+	if (Type(innerResult) !== 'Object') {
 		throw new $TypeError('iterator .return must return an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IteratorComplete.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IteratorComplete.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IteratorComplete.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,11 +5,10 @@
 var Get = require('./Get');
 var ToBoolean = require('./ToBoolean');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-iteratorcomplete
 
 module.exports = function IteratorComplete(iterResult) {
-	if (!isObject(iterResult)) {
+	if (Type(iterResult) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IteratorNext.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IteratorNext.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IteratorNext.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,6 +4,5 @@
 
 var Invoke = require('./Invoke');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-iteratornext
@@ -11,5 +10,5 @@
 module.exports = function IteratorNext(iterator, value) {
 	var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);
-	if (!isObject(result)) {
+	if (Type(result) !== 'Object') {
 		throw new $TypeError('iterator next must return an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/IteratorValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/IteratorValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/IteratorValue.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,11 +4,10 @@
 
 var Get = require('./Get');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-iteratorvalue
 
 module.exports = function IteratorValue(iterResult) {
-	if (!isObject(iterResult)) {
+	if (Type(iterResult) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/MakeDate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/MakeDate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/MakeDate.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,6 +1,5 @@
 'use strict';
 
-var $isFinite = require('math-intrinsics/isFinite');
-
+var $isFinite = require('../helpers/isFinite');
 var msPerDay = require('../helpers/timeConstants').msPerDay;
 
Index: imaps-frontend/node_modules/es-abstract/2017/MakeDay.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/MakeDay.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/MakeDay.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,5 +5,5 @@
 var $DateUTC = GetIntrinsic('%Date.UTC%');
 
-var $isFinite = require('math-intrinsics/isFinite');
+var $isFinite = require('../helpers/isFinite');
 
 var DateFromTime = require('./DateFromTime');
Index: imaps-frontend/node_modules/es-abstract/2017/MakeTime.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/MakeTime.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/MakeTime.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,6 +1,5 @@
 'use strict';
 
-var $isFinite = require('math-intrinsics/isFinite');
-
+var $isFinite = require('../helpers/isFinite');
 var timeConstants = require('../helpers/timeConstants');
 var msPerSecond = timeConstants.msPerSecond;
Index: imaps-frontend/node_modules/es-abstract/2017/MonthFromTime.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/MonthFromTime.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/MonthFromTime.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,3 @@
 'use strict';
-
-var $RangeError = require('es-errors/range');
 
 var DayWithinYear = require('./DayWithinYear');
@@ -47,5 +45,3 @@
 		return 11;
 	}
-
-	throw new $RangeError('Assertion failed: `day` is out of range');
 };
Index: imaps-frontend/node_modules/es-abstract/2017/ObjectCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ObjectCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ObjectCreate.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -8,7 +8,7 @@
 
 var IsArray = require('./IsArray');
+var Type = require('./Type');
 
 var forEach = require('../helpers/forEach');
-var isObject = require('../helpers/isObject');
 
 var SLOT = require('internal-slot');
@@ -19,5 +19,5 @@
 
 module.exports = function ObjectCreate(proto, internalSlotsList) {
-	if (proto !== null && !isObject(proto)) {
+	if (proto !== null && Type(proto) !== 'Object') {
 		throw new $TypeError('Assertion failed: `proto` must be null or an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/ObjectDefineProperties.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ObjectDefineProperties.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ObjectDefineProperties.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
@@ -10,15 +10,12 @@
 var forEach = require('../helpers/forEach');
 var getOwnPropertyDescriptor = require('gopd');
-var OwnPropertyKeys = require('own-keys');
+var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
 
 var $push = callBound('Array.prototype.push');
 
 // https://262.ecma-international.org/6.0/#sec-objectdefineproperties
-
-/** @type {<T extends Record<PropertyKey, unknown> = {}>(O: T, Properties: object) => T} */
 module.exports = function ObjectDefineProperties(O, Properties) {
 	var props = ToObject(Properties); // step 1
 	var keys = OwnPropertyKeys(props); // step 2
-	/** @type {[string | symbol, import('../types').Descriptor][]} */
 	var descriptors = []; // step 3
 
Index: imaps-frontend/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -9,18 +9,17 @@
 var IsAccessorDescriptor = require('./IsAccessorDescriptor');
 var IsExtensible = require('./IsExtensible');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
 var SameValue = require('./SameValue');
+var Type = require('./Type');
 var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor');
-
-var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty
 
 module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: O must be an Object');
 	}
-	if (!isPropertyKey(P)) {
+	if (!IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,5 +4,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
@@ -11,17 +11,16 @@
 
 var IsArray = require('./IsArray');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 var IsRegExp = require('./IsRegExp');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty
 
 module.exports = function OrdinaryGetOwnProperty(O, P) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: O must be an Object');
 	}
-	if (!isPropertyKey(P)) {
+	if (!IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,11 +3,12 @@
 var $TypeError = require('es-errors/type');
 
-var $getProto = require('get-proto');
-var isObject = require('../helpers/isObject');
+var $getProto = require('../helpers/getProto');
+
+var Type = require('./Type');
 
 // https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof
 
 module.exports = function OrdinaryGetPrototypeOf(O) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: O must be an Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/OrdinaryHasInstance.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/OrdinaryHasInstance.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/OrdinaryHasInstance.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,6 +5,5 @@
 var Get = require('./Get');
 var IsCallable = require('./IsCallable');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance
@@ -14,9 +13,9 @@
 		return false;
 	}
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		return false;
 	}
 	var P = Get(C, 'prototype');
-	if (!isObject(P)) {
+	if (Type(P) !== 'Object') {
 		throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/OrdinaryHasProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/OrdinaryHasProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/OrdinaryHasProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,14 +3,14 @@
 var $TypeError = require('es-errors/type');
 
-var isObject = require('../helpers/isObject');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty
 
 module.exports = function OrdinaryHasProperty(O, P) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
-	if (!isPropertyKey(P)) {
+	if (!IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: P must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,14 +2,13 @@
 
 var $TypeError = require('es-errors/type');
-var $setProto = require('set-proto');
+
+var $setProto = require('../helpers/setProto');
 
 var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf');
-
-var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof
 
 module.exports = function OrdinarySetPrototypeOf(O, V) {
-	if (V !== null && !isObject(V)) {
+	if (typeof V !== 'object') {
 		throw new $TypeError('Assertion failed: V must be Object or Null');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/OrdinaryToPrimitive.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/OrdinaryToPrimitive.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/OrdinaryToPrimitive.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -6,6 +6,5 @@
 var Get = require('./Get');
 var IsCallable = require('./IsCallable');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 var inspect = require('object-inspect');
@@ -14,5 +13,5 @@
 
 module.exports = function OrdinaryToPrimitive(O, hint) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -28,5 +27,5 @@
 		if (IsCallable(method)) {
 			var result = Call(method, O);
-			if (!isObject(result)) {
+			if (Type(result) !== 'Object') {
 				return result;
 			}
Index: imaps-frontend/node_modules/es-abstract/2017/QuoteJSONString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/QuoteJSONString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/QuoteJSONString.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var forEach = require('../helpers/forEach');
 
@@ -28,5 +28,5 @@
 	var product = '"';
 	if (value) {
-		forEach($strSplit(value, ''), function (C) {
+		forEach($strSplit(value), function (C) {
 			if (C === '"' || C === '\\') {
 				product += '\u005C' + C;
Index: imaps-frontend/node_modules/es-abstract/2017/RawBytesToNumber.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/RawBytesToNumber.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/RawBytesToNumber.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $RangeError = require('es-errors/range');
Index: imaps-frontend/node_modules/es-abstract/2017/RegExpExec.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/RegExpExec.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/RegExpExec.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,16 +3,15 @@
 var $TypeError = require('es-errors/type');
 
-var regexExec = require('call-bound')('RegExp.prototype.exec');
+var regexExec = require('call-bind/callBound')('RegExp.prototype.exec');
 
 var Call = require('./Call');
 var Get = require('./Get');
 var IsCallable = require('./IsCallable');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-regexpexec
 
 module.exports = function RegExpExec(R, S) {
-	if (!isObject(R)) {
+	if (Type(R) !== 'Object') {
 		throw new $TypeError('Assertion failed: `R` must be an Object');
 	}
@@ -23,5 +22,5 @@
 	if (IsCallable(exec)) {
 		var result = Call(exec, R, [S]);
-		if (result === null || isObject(result)) {
+		if (typeof result === 'object') {
 			return result;
 		}
Index: imaps-frontend/node_modules/es-abstract/2017/SameValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/SameValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/SameValue.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $isNaN = require('math-intrinsics/isNaN');
+var $isNaN = require('../helpers/isNaN');
 
 // http://262.ecma-international.org/5.1/#sec-9.12
Index: imaps-frontend/node_modules/es-abstract/2017/SameValueZero.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/SameValueZero.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/SameValueZero.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $isNaN = require('math-intrinsics/isNaN');
+var $isNaN = require('../helpers/isNaN');
 
 // https://262.ecma-international.org/6.0/#sec-samevaluezero
Index: imaps-frontend/node_modules/es-abstract/2017/Set.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/Set.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/Set.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,8 +3,7 @@
 var $TypeError = require('es-errors/type');
 
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 var SameValue = require('./SameValue');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // IE 9 does not throw in strict mode when writability/configurability/extensibility is violated
@@ -21,8 +20,8 @@
 
 module.exports = function Set(O, P, V, Throw) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: `O` must be an Object');
 	}
-	if (!isPropertyKey(P)) {
+	if (!IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: `P` must be a Property Key');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/SetIntegrityLevel.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/SetIntegrityLevel.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/SetIntegrityLevel.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -14,11 +14,10 @@
 var IsAccessorDescriptor = require('./IsAccessorDescriptor');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-setintegritylevel
 
 module.exports = function SetIntegrityLevel(O, level) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/SetValueInBuffer.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/SetValueInBuffer.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/SetValueInBuffer.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,30 +3,45 @@
 var GetIntrinsic = require('get-intrinsic');
 
-var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
 var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
 
-var isInteger = require('math-intrinsics/isInteger');
+var isInteger = require('../helpers/isInteger');
 
 var IsDetachedBuffer = require('./IsDetachedBuffer');
-var NumberToRawBytes = require('./NumberToRawBytes');
+var ToInt16 = require('./ToInt16');
+var ToInt32 = require('./ToInt32');
+var ToInt8 = require('./ToInt8');
+var ToUint16 = require('./ToUint16');
+var ToUint32 = require('./ToUint32');
+var ToUint8 = require('./ToUint8');
+var ToUint8Clamp = require('./ToUint8Clamp');
 
 var isArrayBuffer = require('is-array-buffer');
-var isSharedArrayBuffer = require('is-shared-array-buffer');
 var hasOwn = require('hasown');
 
 var tableTAO = require('./tables/typed-array-objects');
 
+var TypeToAO = {
+	__proto__: null,
+	Int8: ToInt8,
+	Uint8: ToUint8,
+	Uint8C: ToUint8Clamp,
+	Int16: ToInt16,
+	Uint16: ToUint16,
+	Int32: ToInt32,
+	Uint32: ToUint32
+};
+
 var defaultEndianness = require('../helpers/defaultEndianness');
 var forEach = require('../helpers/forEach');
+var integerToNBytes = require('../helpers/integerToNBytes');
+var valueToFloat32Bytes = require('../helpers/valueToFloat32Bytes');
+var valueToFloat64Bytes = require('../helpers/valueToFloat64Bytes');
 
-// https://262.ecma-international.org/8.0/#sec-setvalueinbuffer
+// https://262.ecma-international.org/6.0/#sec-setvalueinbuffer
 
-/* eslint max-params: 0 */
-
-module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value, isTypedArray, order) {
-	var isSAB = isSharedArrayBuffer(arrayBuffer);
-	if (!isArrayBuffer(arrayBuffer) && !isSAB) {
-		throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer or a SharedArrayBuffer');
+module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value) {
+	if (!isArrayBuffer(arrayBuffer)) {
+		throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer');
 	}
 
@@ -43,12 +58,5 @@
 	}
 
-	if (typeof isTypedArray !== 'boolean') {
-		throw new $TypeError('Assertion failed: `isTypedArray` must be a boolean');
-	}
-	if (order !== 'SeqCst' && order !== 'Unordered' && order !== 'Init') {
-		throw new $TypeError('Assertion failed: `order` must be `"SeqCst"`, `"Unordered"`, or `"Init"`');
-	}
-
-	if (arguments.length > 6 && typeof arguments[6] !== 'boolean') {
+	if (arguments.length > 4 && typeof arguments[4] !== 'boolean') {
 		throw new $TypeError('Assertion failed: `isLittleEndian` must be a boolean, if present');
 	}
@@ -66,29 +74,37 @@
 	// 4. Assert: Type(value) is Number.
 
-	// 5. Let block be arrayBuffer.[[ArrayBufferData]].
+	// 5. Let block be arrayBuffer’s [[ArrayBufferData]] internal slot.
 
-	var elementSize = tableTAO.size['$' + type]; // step 6
+	// 6. Assert: block is not undefined.
 
-	// 7. If isLittleEndian is not present, set isLittleEndian to to the value of the [[LittleEndian]] field of the surrounding agent's Agent Record.
-	var isLittleEndian = arguments.length > 6 ? arguments[6] : defaultEndianness === 'little'; // step 8
-
-	var rawBytes = NumberToRawBytes(type, value, isLittleEndian); // step 8
-
-	if (isSAB) { // step 9
-		/*
-			Let execution be the [[CandidateExecution]] field of the surrounding agent's Agent Record.
-			Let eventList be the [[EventList]] field of the element in execution.[[EventsRecords]] whose [[AgentSignifier]] is AgentSignifier().
-			If isTypedArray is true and IsNoTearConfiguration(type, order) is true, let noTear be true; otherwise let noTear be false.
-			Append WriteSharedMemory { [[Order]]: order, [[NoTear]]: noTear, [[Block]]: block, [[ByteIndex]]: byteIndex, [[ElementSize]]: elementSize, [[Payload]]: rawBytes } to eventList.
-		*/
-		throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation');
-	} else {
-		// 10. Store the individual bytes of rawBytes into block, in order, starting at block[byteIndex].
-		var arr = new $Uint8Array(arrayBuffer, byteIndex, elementSize);
-		forEach(rawBytes, function (rawByte, i) {
-			arr[i] = rawByte;
-		});
+	var elementSize = tableTAO.size['$' + type]; // step 7
+	if (!elementSize) {
+		throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
 	}
 
-	// 11. Return NormalCompletion(undefined).
+	// 8. If isLittleEndian is not present, set isLittleEndian to either true or false. The choice is implementation dependent and should be the alternative that is most efficient for the implementation. An implementation must use the same value each time this step is executed and the same value must be used for the corresponding step in the GetValueFromBuffer abstract operation.
+	var isLittleEndian = arguments.length > 4 ? arguments[4] : defaultEndianness === 'little'; // step 8
+
+	var rawBytes;
+	if (type === 'Float32') { // step 1
+		rawBytes = valueToFloat32Bytes(value, isLittleEndian);
+	} else if (type === 'Float64') { // step 2
+		rawBytes = valueToFloat64Bytes(value, isLittleEndian);
+	} else {
+		var n = elementSize; // step 3.a
+
+		var convOp = TypeToAO[type]; // step 3.b
+
+		var intValue = convOp(value); // step 3.c
+
+		rawBytes = integerToNBytes(intValue, n, isLittleEndian); // step 3.d, 3.e, 4
+	}
+
+	// 12. Store the individual bytes of rawBytes into block, in order, starting at block[byteIndex].
+	var arr = new $Uint8Array(arrayBuffer, byteIndex, elementSize);
+	forEach(rawBytes, function (rawByte, i) {
+		arr[i] = rawByte;
+	});
+
+	// 13. Return NormalCompletion(undefined).
 };
Index: imaps-frontend/node_modules/es-abstract/2017/SpeciesConstructor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/SpeciesConstructor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/SpeciesConstructor.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -7,11 +7,10 @@
 
 var IsConstructor = require('./IsConstructor');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-speciesconstructor
 
 module.exports = function SpeciesConstructor(O, defaultConstructor) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -20,5 +19,5 @@
 		return defaultConstructor;
 	}
-	if (!isObject(C)) {
+	if (Type(C) !== 'Object') {
 		throw new $TypeError('O.constructor is not an Object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/SplitMatch.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/SplitMatch.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/SplitMatch.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,8 +1,9 @@
 'use strict';
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $TypeError = require('es-errors/type');
-var isInteger = require('math-intrinsics/isInteger');
+
+var isInteger = require('../helpers/isInteger');
 
 var $charAt = callBound('String.prototype.charAt');
Index: imaps-frontend/node_modules/es-abstract/2017/StrictEqualityComparison.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/StrictEqualityComparison.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/StrictEqualityComparison.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -6,8 +6,10 @@
 
 module.exports = function StrictEqualityComparison(x, y) {
-	if (Type(x) !== Type(y)) {
+	var xType = Type(x);
+	var yType = Type(y);
+	if (xType !== yType) {
 		return false;
 	}
-	if (typeof x === 'undefined' || x === null) {
+	if (xType === 'Undefined' || xType === 'Null') {
 		return true;
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/StringCreate.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/StringCreate.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/StringCreate.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -7,7 +7,8 @@
 var $SyntaxError = require('es-errors/syntax');
 var $TypeError = require('es-errors/type');
-var setProto = require('set-proto');
 
 var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
+
+var setProto = require('../helpers/setProto');
 
 // https://262.ecma-international.org/6.0/#sec-stringcreate
Index: imaps-frontend/node_modules/es-abstract/2017/StringGetOwnProperty.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/StringGetOwnProperty.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/StringGetOwnProperty.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var $charAt = callBound('String.prototype.charAt');
 var $stringToString = callBound('String.prototype.toString');
@@ -9,9 +9,8 @@
 var CanonicalNumericIndexString = require('./CanonicalNumericIndexString');
 var IsInteger = require('./IsInteger');
+var IsPropertyKey = require('./IsPropertyKey');
+var Type = require('./Type');
 
-var isObject = require('../helpers/isObject');
-var isPropertyKey = require('../helpers/isPropertyKey');
-
-var isNegativeZero = require('math-intrinsics/isNegativeZero');
+var isNegativeZero = require('is-negative-zero');
 
 // https://262.ecma-international.org/8.0/#sec-stringgetownproperty
@@ -19,5 +18,5 @@
 module.exports = function StringGetOwnProperty(S, P) {
 	var str;
-	if (isObject(S)) {
+	if (Type(S) === 'Object') {
 		try {
 			str = $stringToString(S);
@@ -27,6 +26,6 @@
 		throw new $TypeError('Assertion failed: `S` must be a boxed string object');
 	}
-	if (!isPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P is not a Property Key');
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
 	}
 	if (typeof P !== 'string') {
Index: imaps-frontend/node_modules/es-abstract/2017/SymbolDescriptiveString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/SymbolDescriptiveString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/SymbolDescriptiveString.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $SymbolToString = callBound('Symbol.prototype.toString', true);
Index: imaps-frontend/node_modules/es-abstract/2017/TestIntegrityLevel.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/TestIntegrityLevel.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/TestIntegrityLevel.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,16 +5,15 @@
 
 var every = require('../helpers/every');
-var OwnPropertyKeys = require('own-keys');
+var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
 
 var IsDataDescriptor = require('./IsDataDescriptor');
 var IsExtensible = require('./IsExtensible');
 var ToPropertyDescriptor = require('./ToPropertyDescriptor');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-testintegritylevel
 
 module.exports = function TestIntegrityLevel(O, level) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: Type(O) is not Object');
 	}
@@ -23,5 +22,5 @@
 	}
 	var status = IsExtensible(O);
-	if (status || !$gOPD) {
+	if (status) {
 		return false;
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/TimeClip.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/TimeClip.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/TimeClip.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,8 +4,9 @@
 
 var $Date = GetIntrinsic('%Date%');
+var $Number = GetIntrinsic('%Number%');
 
-var $isFinite = require('math-intrinsics/isFinite');
-var abs = require('math-intrinsics/abs');
+var $isFinite = require('../helpers/isFinite');
 
+var abs = require('./abs');
 var ToNumber = require('./ToNumber');
 
@@ -16,5 +17,5 @@
 		return NaN;
 	}
-	return +new $Date(ToNumber(time));
+	return $Number(new $Date(ToNumber(time)));
 };
 
Index: imaps-frontend/node_modules/es-abstract/2017/ToDateString.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ToDateString.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ToDateString.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -7,5 +7,5 @@
 var $String = GetIntrinsic('%String%');
 
-var $isNaN = require('math-intrinsics/isNaN');
+var $isNaN = require('../helpers/isNaN');
 
 // https://262.ecma-international.org/6.0/#sec-todatestring
Index: imaps-frontend/node_modules/es-abstract/2017/ToLength.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ToLength.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ToLength.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger');
+var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
 
 var ToInteger = require('./ToInteger');
Index: imaps-frontend/node_modules/es-abstract/2017/ToNumber.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ToNumber.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ToNumber.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -8,5 +8,5 @@
 var $parseInteger = GetIntrinsic('%parseInt%');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var regexTester = require('safe-regex-test');
 var isPrimitive = require('../helpers/isPrimitive');
@@ -45,4 +45,4 @@
 
 	}
-	return +value;
+	return $Number(value);
 };
Index: imaps-frontend/node_modules/es-abstract/2017/ToPropertyDescriptor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ToPropertyDescriptor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ToPropertyDescriptor.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,13 +5,12 @@
 var $TypeError = require('es-errors/type');
 
+var Type = require('./Type');
+var ToBoolean = require('./ToBoolean');
 var IsCallable = require('./IsCallable');
-var ToBoolean = require('./ToBoolean');
-
-var isObject = require('../helpers/isObject');
 
 // https://262.ecma-international.org/5.1/#sec-8.10.5
 
 module.exports = function ToPropertyDescriptor(Obj) {
-	if (!isObject(Obj)) {
+	if (Type(Obj) !== 'Object') {
 		throw new $TypeError('ToPropertyDescriptor requires an object');
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/ToUint16.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ToUint16.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ToUint16.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,12 +1,12 @@
 'use strict';
 
+var abs = require('./abs');
+var floor = require('./floor');
 var modulo = require('./modulo');
 var ToNumber = require('./ToNumber');
 
-var abs = require('math-intrinsics/abs');
-var floor = require('math-intrinsics/floor');
-var $isNaN = require('math-intrinsics/isNaN');
-var $isFinite = require('math-intrinsics/isFinite');
-var $sign = require('math-intrinsics/sign');
+var $isNaN = require('../helpers/isNaN');
+var $isFinite = require('../helpers/isFinite');
+var $sign = require('../helpers/sign');
 
 // http://262.ecma-international.org/5.1/#sec-9.7
Index: imaps-frontend/node_modules/es-abstract/2017/ToUint8.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ToUint8.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ToUint8.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,10 +3,11 @@
 var ToNumber = require('./ToNumber');
 
-var $isNaN = require('math-intrinsics/isNaN');
-var $isFinite = require('math-intrinsics/isFinite');
-var $sign = require('math-intrinsics/sign');
-var abs = require('math-intrinsics/abs');
-var floor = require('math-intrinsics/floor');
-var modulo = require('math-intrinsics/mod');
+var $isNaN = require('../helpers/isNaN');
+var $isFinite = require('../helpers/isFinite');
+var $sign = require('../helpers/sign');
+
+var abs = require('./abs');
+var floor = require('./floor');
+var modulo = require('./modulo');
 
 // https://262.ecma-international.org/6.0/#sec-touint8
Index: imaps-frontend/node_modules/es-abstract/2017/ToUint8Clamp.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ToUint8Clamp.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ToUint8Clamp.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,5 +4,5 @@
 var floor = require('./floor');
 
-var $isNaN = require('math-intrinsics/isNaN');
+var $isNaN = require('../helpers/isNaN');
 
 // https://262.ecma-international.org/6.0/#sec-touint8clamp
Index: imaps-frontend/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -11,8 +11,7 @@
 var IsDataDescriptor = require('./IsDataDescriptor');
 var IsGenericDescriptor = require('./IsGenericDescriptor');
-var isPropertyKey = require('../helpers/isPropertyKey');
+var IsPropertyKey = require('./IsPropertyKey');
 var SameValue = require('./SameValue');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 // https://262.ecma-international.org/6.0/#sec-validateandapplypropertydescriptor
@@ -22,5 +21,6 @@
 module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) {
 	// this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic.
-	if (typeof O !== 'undefined' && !isObject(O)) {
+	var oType = Type(O);
+	if (oType !== 'Undefined' && oType !== 'Object') {
 		throw new $TypeError('Assertion failed: O must be undefined or an Object');
 	}
@@ -34,5 +34,5 @@
 		throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined');
 	}
-	if (typeof O !== 'undefined' && !isPropertyKey(P)) {
+	if (oType !== 'Undefined' && !IsPropertyKey(P)) {
 		throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key');
 	}
@@ -42,5 +42,5 @@
 		}
 		if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) {
-			if (typeof O !== 'undefined') {
+			if (oType !== 'Undefined') {
 				DefineOwnProperty(
 					IsDataDescriptor,
@@ -61,5 +61,5 @@
 				throw new $TypeError('Assertion failed: Desc is not an accessor descriptor');
 			}
-			if (typeof O !== 'undefined') {
+			if (oType !== 'Undefined') {
 				return DefineOwnProperty(
 					IsDataDescriptor,
@@ -96,5 +96,5 @@
 		}
 		if (IsDataDescriptor(current)) {
-			if (typeof O !== 'undefined') {
+			if (oType !== 'Undefined') {
 				DefineOwnProperty(
 					IsDataDescriptor,
@@ -110,5 +110,5 @@
 				);
 			}
-		} else if (typeof O !== 'undefined') {
+		} else if (oType !== 'Undefined') {
 			DefineOwnProperty(
 				IsDataDescriptor,
@@ -147,5 +147,5 @@
 		throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.');
 	}
-	if (typeof O !== 'undefined') {
+	if (oType !== 'Undefined') {
 		return DefineOwnProperty(
 			IsDataDescriptor,
Index: imaps-frontend/node_modules/es-abstract/2017/ValidateTypedArray.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/ValidateTypedArray.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/ValidateTypedArray.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,6 +4,5 @@
 
 var IsDetachedBuffer = require('./IsDetachedBuffer');
-
-var isObject = require('../helpers/isObject');
+var Type = require('./Type');
 
 var isTypedArray = require('is-typed-array');
@@ -13,5 +12,5 @@
 
 module.exports = function ValidateTypedArray(O) {
-	if (!isObject(O)) {
+	if (Type(O) !== 'Object') {
 		throw new $TypeError('Assertion failed: `O` must be an Object'); // step 1
 	}
Index: imaps-frontend/node_modules/es-abstract/2017/WordCharacters.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/WordCharacters.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/WordCharacters.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 var $TypeError = require('es-errors/type');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 var $indexOf = callBound('String.prototype.indexOf', true);
 
@@ -10,5 +10,5 @@
 var caseFolding = require('../helpers/caseFolding.json');
 var forEach = require('../helpers/forEach');
-var OwnPropertyKeys = require('own-keys');
+var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
 
 var A = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'; // step 1
Index: imaps-frontend/node_modules/es-abstract/2017/YearFromTime.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/YearFromTime.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/YearFromTime.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -5,5 +5,5 @@
 var $Date = GetIntrinsic('%Date%');
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear');
Index: imaps-frontend/node_modules/es-abstract/2017/abs.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/abs.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/abs.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,7 @@
 'use strict';
 
-var $abs = require('math-intrinsics/abs');
+var GetIntrinsic = require('get-intrinsic');
+
+var $abs = GetIntrinsic('%Math.abs%');
 
 // http://262.ecma-international.org/5.1/#sec-5.2
Index: imaps-frontend/node_modules/es-abstract/2017/floor.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/floor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/floor.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,5 +2,5 @@
 
 // var modulo = require('./modulo');
-var $floor = require('math-intrinsics/floor');
+var $floor = Math.floor;
 
 // http://262.ecma-international.org/5.1/#sec-5.2
Index: imaps-frontend/node_modules/es-abstract/2017/max.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/max.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/max.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,7 @@
 'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
 
 // https://262.ecma-international.org/6.0/#sec-algorithm-conventions
 
-module.exports = require('math-intrinsics/max');
+module.exports = GetIntrinsic('%Math.max%');
Index: imaps-frontend/node_modules/es-abstract/2017/min.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/min.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/min.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,7 @@
 'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
 
 // https://262.ecma-international.org/6.0/#sec-algorithm-conventions
 
-module.exports = require('math-intrinsics/min');
+module.exports = GetIntrinsic('%Math.min%');
Index: imaps-frontend/node_modules/es-abstract/2017/tables/typed-array-objects.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/tables/typed-array-objects.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/tables/typed-array-objects.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-// https://262.ecma-international.org/8.0/#table-49
+// https://262.ecma-international.org/8.0/#table-59
 
 module.exports = {
Index: imaps-frontend/node_modules/es-abstract/2017/thisBooleanValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/thisBooleanValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/thisBooleanValue.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $BooleanValueOf = require('call-bound')('Boolean.prototype.valueOf');
+var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf');
 
 // https://262.ecma-international.org/6.0/#sec-properties-of-the-boolean-prototype-object
Index: imaps-frontend/node_modules/es-abstract/2017/thisNumberValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/thisNumberValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/thisNumberValue.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var callBound = require('call-bound');
+var callBound = require('call-bind/callBound');
 
 var $NumberValueOf = callBound('Number.prototype.valueOf');
Index: imaps-frontend/node_modules/es-abstract/2017/thisStringValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/thisStringValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/thisStringValue.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,5 +1,5 @@
 'use strict';
 
-var $StringValueOf = require('call-bound')('String.prototype.valueOf');
+var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf');
 
 // https://262.ecma-international.org/6.0/#sec-properties-of-the-string-prototype-object
Index: imaps-frontend/node_modules/es-abstract/2017/thisTimeValue.js
===================================================================
--- imaps-frontend/node_modules/es-abstract/2017/thisTimeValue.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/es-abstract/2017/thisTimeValue.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,9 +1,9 @@
 'use strict';
 
-var timeValue = require('../helpers/timeValue');
+var $DateGetTime = require('call-bind/callBound')('Date.prototype.getTime');
 
 // https://262.ecma-international.org/6.0/#sec-properties-of-the-date-prototype-object
 
 module.exports = function thisTimeValue(value) {
-	return timeValue(value);
+	return $DateGetTime(value);
 };
