summaryrefslogtreecommitdiffstats
path: root/src/civetweb/src/third_party/duktape-1.8.0/polyfills/object-assign.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/civetweb/src/third_party/duktape-1.8.0/polyfills/object-assign.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/civetweb/src/third_party/duktape-1.8.0/polyfills/object-assign.js b/src/civetweb/src/third_party/duktape-1.8.0/polyfills/object-assign.js
new file mode 100644
index 000000000..dfa5a44d8
--- /dev/null
+++ b/src/civetweb/src/third_party/duktape-1.8.0/polyfills/object-assign.js
@@ -0,0 +1,45 @@
+/*
+ * Object.assign(), described in E6 Section 19.1.2.1
+ *
+ * http://www.ecma-international.org/ecma-262/6.0/index.html#sec-object.assign
+ */
+
+if (typeof Object.assign === 'undefined') {
+ Object.defineProperty(Object, 'assign', {
+ value: function (target) {
+ var i, n, j, m, k;
+ var source, keys;
+ var gotError;
+ var pendingError;
+
+ if (target == null) {
+ throw new Exception('target null or undefined');
+ }
+
+ for (i = 1, n = arguments.length; i < n; i++) {
+ source = arguments[i];
+ if (source == null) {
+ continue; // null or undefined
+ }
+ source = Object(source);
+ keys = Object.keys(source); // enumerable own keys
+
+ for (j = 0, m = keys.length; j < m; j++) {
+ k = keys[j];
+ try {
+ target[k] = source[k];
+ } catch (e) {
+ if (!gotError) {
+ gotError = true;
+ pendingError = e;
+ }
+ }
+ }
+ }
+
+ if (gotError) {
+ throw pendingError;
+ }
+ }, writable: true, enumerable: false, configurable: true
+ });
+}