From e82356cfbcd8728b46beaa27aaf4c614da5797d6 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sat, 06 Jul 2019 14:58:25 +0000
Subject: [PATCH] Make Deferred a class

---
 common.js  |   41 +++++++++++++++++++++--------------------
 index.html |    2 +-
 map.html   |    2 +-
 3 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/common.js b/common.js
index 964cf68..9551468 100644
--- a/common.js
+++ b/common.js
@@ -22,27 +22,28 @@
  ********/
 
 function Deferred(promise, request) {
-	return {
-		promise: promise,
-		request: request,
-		abort: function() {
-			request.abort.bind(request);
-			return Deferred(promise, request);
-		},
-		done: function(func) {
-			return Deferred(promise.then(func), request);
-		},
-		fail: function(func) {
-			return Deferred(promise.catch(func), request);
-		},
-		always: function(func) {
-			return Deferred(promise.finally(func), request);
-		},
-	};
+	this.promise = promise;
+	this.request = request;
 }
-
+Deferred.prototype = {
+	promise: null,
+	request: null,
+	abort: function() {
+		this.request.abort.bind(this.request);
+		return new Deferred(this.promise, this.request);
+	},
+	done: function(func) {
+		return new Deferred(this.promise.then(func), this.request);
+	},
+	fail: function(func) {
+		return new Deferred(this.promise.catch(func), this.request);
+	},
+	always: function(func) {
+		return new Deferred(this.promise.finally(func), this.request);
+	},
+};
 Deferred.all = function(iterable) {
-	return Deferred(
+	return new Deferred(
 		Promise.all(
 			iterable.map(x => x.promise)
 		)
@@ -73,7 +74,7 @@
 			request.open('GET', url, true);
 			request.send();
 		});
-		return Deferred(promise, request);
+		return new Deferred(promise, request);
 	},
 };
 
diff --git a/index.html b/index.html
index 4b7b298..16a13b0 100644
--- a/index.html
+++ b/index.html
@@ -136,7 +136,7 @@
 		</div>
 		<script src="https://polyfill.io/v3/polyfill.min.js?features=Promise,XMLHttpRequest"></script>
 		<script type="text/javascript" src="lang_pl.js?v10" id="lang_script"></script>
-		<script type="text/javascript" src="common.js?v10"></script>
+		<script type="text/javascript" src="common.js?v11"></script>
 		<script type="text/javascript" src="index.js?v8"></script>
 	</body>
 </html>
diff --git a/map.html b/map.html
index f052b3d..9d2f1df 100644
--- a/map.html
+++ b/map.html
@@ -21,7 +21,7 @@
 <script src="https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.forEach,Array.prototype.includes,Array.prototype.map,Element.prototype.classList,Promise,String.prototype.startsWith,XMLHttpRequest,requestAnimationFrame"></script>
 <script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v5.3.0/build/ol.js" integrity="sha384-iQkGyyH4ioz3m+maM3s9MX1Oq67mACa4B9Z3ovUv3Sv37LJ96fx3WnZfLoiC3Wfl" crossorigin="anonymous"></script>
 <script tyle="text/javascript" src="lang_pl.js?v10" id="lang_script"></script>
-<script tyle="text/javascript" src="common.js?v10"></script>
+<script tyle="text/javascript" src="common.js?v11"></script>
 <script tyle="text/javascript" src="map.js?v25"></script>
 </body>
 </html>

--
Gitblit v1.9.1