ende 0.5.6 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/component.json +2 -2
- data/components/component/bind/{0.0.1 → 1.0.0}/component.json +1 -1
- data/components/component/bind/{0.0.1 → 1.0.0}/index.js +1 -2
- data/components/component/jquery/1.0.0/component.json +10 -0
- data/components/component/jquery/1.0.0/index.js +10308 -0
- data/components/component/matches-selector/{0.1.2 → 0.1.4}/component.json +1 -1
- data/components/component/matches-selector/{0.1.2 → 0.1.4}/index.js +0 -0
- data/components/indefinido/advisable/master/component.json +1 -1
- data/components/indefinido/indemma/master/component.json +4 -7
- data/components/indefinido/indemma/master/lib/record.js +7 -2
- data/components/indefinido/indemma/master/lib/record/dirtyable.js +15 -6
- data/components/indefinido/indemma/master/lib/record/scopable.js +1 -1
- data/components/indefinido/observable/es6-modules/component.json +1 -1
- data/components/indefinido/observable/es6-modules/lib/legacy/schedulerable.js +8 -3
- data/components/indefinido/observable/es6-modules/lib/observable.js +0 -1
- data/components/indefinido/observable/es6-modules/lib/observable/observation.js +2 -2
- data/components/paulmillr/es6-shim/{0.10.1 → 0.14.0}/component.json +1 -1
- data/components/paulmillr/es6-shim/{0.10.1 → 0.14.0}/es6-shim.js +151 -102
- data/components/pluma/assimilate/{0.3.0 → 0.4.0}/component.json +2 -2
- data/components/pluma/assimilate/{0.3.0 → 0.4.0}/dist/assimilate.js +1 -1
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +12 -6
- data/lib/assets/javascripts/config/load_components.js.coffee +1 -1
- data/lib/assets/javascripts/ende.js.coffee +1 -1
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/component/build.css +112 -0
- data/vendor/assets/components/ende_build.js +20357 -19584
- metadata +13 -84
- data/components/chaijs/assertion-error/1.0.0/component.json +0 -18
- data/components/chaijs/assertion-error/1.0.0/index.js +0 -110
- data/components/chaijs/chai/1.9.1/.gitignore +0 -22
- data/components/chaijs/chai/1.9.1/.mailmap +0 -1
- data/components/chaijs/chai/1.9.1/.npmignore +0 -14
- data/components/chaijs/chai/1.9.1/.travis.yml +0 -14
- data/components/chaijs/chai/1.9.1/CONTRIBUTING.md +0 -173
- data/components/chaijs/chai/1.9.1/History.md +0 -895
- data/components/chaijs/chai/1.9.1/Makefile +0 -93
- data/components/chaijs/chai/1.9.1/README.md +0 -99
- data/components/chaijs/chai/1.9.1/ReleaseNotes.md +0 -482
- data/components/chaijs/chai/1.9.1/bower.json +0 -27
- data/components/chaijs/chai/1.9.1/chai.js +0 -4782
- data/components/chaijs/chai/1.9.1/component.json +0 -50
- data/components/chaijs/chai/1.9.1/index.js +0 -1
- data/components/chaijs/chai/1.9.1/karma.conf.js +0 -28
- data/components/chaijs/chai/1.9.1/karma.sauce.js +0 -41
- data/components/chaijs/chai/1.9.1/lib/chai.js +0 -87
- data/components/chaijs/chai/1.9.1/lib/chai/assertion.js +0 -130
- data/components/chaijs/chai/1.9.1/lib/chai/config.js +0 -50
- data/components/chaijs/chai/1.9.1/lib/chai/core/assertions.js +0 -1314
- data/components/chaijs/chai/1.9.1/lib/chai/interface/assert.js +0 -1056
- data/components/chaijs/chai/1.9.1/lib/chai/interface/expect.js +0 -12
- data/components/chaijs/chai/1.9.1/lib/chai/interface/should.js +0 -78
- data/components/chaijs/chai/1.9.1/lib/chai/utils/addChainableMethod.js +0 -111
- data/components/chaijs/chai/1.9.1/lib/chai/utils/addMethod.js +0 -43
- data/components/chaijs/chai/1.9.1/lib/chai/utils/addProperty.js +0 -40
- data/components/chaijs/chai/1.9.1/lib/chai/utils/flag.js +0 -32
- data/components/chaijs/chai/1.9.1/lib/chai/utils/getActual.js +0 -18
- data/components/chaijs/chai/1.9.1/lib/chai/utils/getEnumerableProperties.js +0 -25
- data/components/chaijs/chai/1.9.1/lib/chai/utils/getMessage.js +0 -49
- data/components/chaijs/chai/1.9.1/lib/chai/utils/getName.js +0 -20
- data/components/chaijs/chai/1.9.1/lib/chai/utils/getPathValue.js +0 -102
- data/components/chaijs/chai/1.9.1/lib/chai/utils/getProperties.js +0 -35
- data/components/chaijs/chai/1.9.1/lib/chai/utils/index.js +0 -114
- data/components/chaijs/chai/1.9.1/lib/chai/utils/inspect.js +0 -320
- data/components/chaijs/chai/1.9.1/lib/chai/utils/objDisplay.js +0 -49
- data/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteChainableMethod.js +0 -53
- data/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteMethod.js +0 -51
- data/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteProperty.js +0 -54
- data/components/chaijs/chai/1.9.1/lib/chai/utils/test.js +0 -26
- data/components/chaijs/chai/1.9.1/lib/chai/utils/transferFlags.js +0 -44
- data/components/chaijs/chai/1.9.1/lib/chai/utils/type.js +0 -45
- data/components/chaijs/chai/1.9.1/package.json +0 -42
- data/components/chaijs/chai/1.9.1/sauce.browsers.js +0 -128
- data/components/chaijs/chai/1.9.1/support/sauce/sauce_connect_block.sh +0 -7
- data/components/chaijs/chai/1.9.1/support/sauce/sauce_connect_setup.sh +0 -53
- data/components/chaijs/chai/1.9.1/test/assert.js +0 -638
- data/components/chaijs/chai/1.9.1/test/auth/.gitkeep +0 -0
- data/components/chaijs/chai/1.9.1/test/bootstrap/index.js +0 -22
- data/components/chaijs/chai/1.9.1/test/bootstrap/karma.js +0 -22
- data/components/chaijs/chai/1.9.1/test/configuration.js +0 -133
- data/components/chaijs/chai/1.9.1/test/display/errors.js +0 -14
- data/components/chaijs/chai/1.9.1/test/display/message.js +0 -47
- data/components/chaijs/chai/1.9.1/test/expect.js +0 -814
- data/components/chaijs/chai/1.9.1/test/globalShould.js +0 -15
- data/components/chaijs/chai/1.9.1/test/plugins.js +0 -24
- data/components/chaijs/chai/1.9.1/test/should.js +0 -744
- data/components/chaijs/chai/1.9.1/test/utilities.js +0 -309
- data/components/chaijs/deep-eql/0.1.3/component.json +0 -20
- data/components/chaijs/deep-eql/0.1.3/lib/eql.js +0 -257
- data/components/chaijs/type-detect/0.1.1/component.json +0 -18
- data/components/chaijs/type-detect/0.1.1/lib/type.js +0 -142
- data/components/component/classes/1.2.1/component.json +0 -19
- data/components/component/classes/1.2.1/index.js +0 -184
- data/components/component/domify/1.2.2/component.json +0 -22
- data/components/component/domify/1.2.2/index.js +0 -87
- data/components/component/event/0.1.3/component.json +0 -13
- data/components/component/event/0.1.3/index.js +0 -35
- data/components/component/jquery/1.9.1/component.json +0 -14
- data/components/component/jquery/1.9.1/index.js +0 -9601
- data/components/component/query/0.0.3/component.json +0 -23
- data/components/component/query/0.0.3/index.js +0 -21
- data/lib/tasks/.gitkeep +0 -0
|
File without changes
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "indemma",
|
|
3
|
+
"repository": "indefinido/indemma",
|
|
3
4
|
"description": "Indemma (mind picture = memory), client side ES5 observable REST model",
|
|
4
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.3",
|
|
5
6
|
"keywords": [],
|
|
6
7
|
"dependencies": {
|
|
7
|
-
"pluma/assimilate": "0.
|
|
8
|
+
"pluma/assimilate": "0.4.0",
|
|
8
9
|
"component/type": "*",
|
|
9
10
|
"component/bind": "*",
|
|
10
11
|
"component/jquery": "*",
|
|
@@ -21,9 +22,6 @@
|
|
|
21
22
|
]
|
|
22
23
|
},
|
|
23
24
|
"license": "WTFPL",
|
|
24
|
-
"paths": [
|
|
25
|
-
"vendor/components"
|
|
26
|
-
],
|
|
27
25
|
"scripts": [
|
|
28
26
|
"index.js",
|
|
29
27
|
"lib/extensions/rivets.js",
|
|
@@ -50,6 +48,5 @@
|
|
|
50
48
|
"lib/record/validations/validatorable.js",
|
|
51
49
|
"vendor/stampit.js",
|
|
52
50
|
"vendor/owl/pluralize.js"
|
|
53
|
-
]
|
|
54
|
-
"repository": "indefinido/indemma"
|
|
51
|
+
]
|
|
55
52
|
}
|
|
@@ -95,7 +95,7 @@ this.model = (function() {
|
|
|
95
95
|
return instance;
|
|
96
96
|
};
|
|
97
97
|
mixer = function(options) {
|
|
98
|
-
var after_initialize, callback, instance, _i, _len, _ref;
|
|
98
|
+
var after_initialize, after_mix, callback, instance, _i, _len, _ref;
|
|
99
99
|
|
|
100
100
|
if (this === window) {
|
|
101
101
|
throw 'Model mixin called incorrectly call with model.call {} instead of model({})';
|
|
@@ -108,12 +108,17 @@ this.model = (function() {
|
|
|
108
108
|
} else {
|
|
109
109
|
after_initialize = [];
|
|
110
110
|
}
|
|
111
|
+
if (this.after_mix) {
|
|
112
|
+
after_mix = this.after_mix.splice(0);
|
|
113
|
+
} else {
|
|
114
|
+
after_mix = [];
|
|
115
|
+
}
|
|
111
116
|
instance = bind(this, initialize_record);
|
|
112
117
|
extend(instance, merge(this, modelable));
|
|
113
118
|
this.record = instance.record = merge({}, instance.record, modelable.record);
|
|
114
119
|
this.record.after_initialize = instance.record.after_initialize = instance.record.after_initialize.concat(after_initialize);
|
|
115
120
|
this.record.before_initialize = instance.record.before_initialize.concat([]);
|
|
116
|
-
_ref = modelable.after_mix;
|
|
121
|
+
_ref = modelable.after_mix.concat(after_mix);
|
|
117
122
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
118
123
|
callback = _ref[_i];
|
|
119
124
|
callback.call(instance, instance);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var dirtyable, model, record;
|
|
2
|
+
var dirt, dirtyable, model, record;
|
|
3
3
|
|
|
4
4
|
dirtyable = {
|
|
5
5
|
ignores: ['dirty', 'resource', 'route', 'initial_route', 'after_initialize', 'before_initialize', 'parent_resource', 'nested_attributes', 'reloading', 'ready', 'saving', 'salvation', 'sustained', 'element', 'default', 'lock', 'validated', 'validation', 'errors', 'dirty'],
|
|
6
|
-
|
|
6
|
+
reserved_filter: function(name) {
|
|
7
7
|
return dirtyable.ignores.indexOf(name) === -1;
|
|
8
8
|
},
|
|
9
9
|
descriptor: {
|
|
@@ -11,9 +11,7 @@ dirtyable = {
|
|
|
11
11
|
return this.observed.dirty;
|
|
12
12
|
},
|
|
13
13
|
set: function(value) {
|
|
14
|
-
this.observed.dirty = value;
|
|
15
|
-
this.observation.scheduler.schedule();
|
|
16
|
-
return value;
|
|
14
|
+
return this.observed.dirty = value;
|
|
17
15
|
}
|
|
18
16
|
},
|
|
19
17
|
record: {
|
|
@@ -21,12 +19,23 @@ dirtyable = {
|
|
|
21
19
|
Object.defineProperty(this, 'dirty', dirtyable.descriptor);
|
|
22
20
|
this.observed.dirty = !!this._id;
|
|
23
21
|
return this.subscribe(function(added, removed, changed, past) {
|
|
24
|
-
|
|
22
|
+
this.dirty || (this.dirty = !!Object.keys(changed).filter(dirtyable.reserved_filter).length);
|
|
23
|
+
this.dirty || (this.dirty = !!Object.keys(added).filter(dirtyable.reserved_filter).length);
|
|
24
|
+
return this.dirty || (this.dirty = !!Object.keys(removed).filter(dirtyable.reserved_filter).length);
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
+
if (!Object.observe) {
|
|
31
|
+
dirt = dirtyable.descriptor.set;
|
|
32
|
+
dirtyable.descriptor.set = function(value) {
|
|
33
|
+
value = dirt.apply(this, arguments);
|
|
34
|
+
this.observation.scheduler.schedule();
|
|
35
|
+
return value;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
30
39
|
model = window.model;
|
|
31
40
|
|
|
32
41
|
record = window.record;
|
|
@@ -117,15 +117,20 @@ schedulerable.schedulable_observers = function() {
|
|
|
117
117
|
};
|
|
118
118
|
|
|
119
119
|
schedulerable.augment = function(observable) {
|
|
120
|
-
var
|
|
120
|
+
var subscribe, unobserve;
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
subscribe = observable.methods.subscribe;
|
|
123
123
|
observable.methods.subscribe = function(keypath, callback) {
|
|
124
|
-
|
|
124
|
+
subscribe.apply(this, arguments);
|
|
125
125
|
if (typeof keypath !== 'function') {
|
|
126
126
|
return this.observation.scheduler.schedulable(this, keypath);
|
|
127
127
|
}
|
|
128
128
|
};
|
|
129
|
+
unobserve = observable.unobserve;
|
|
130
|
+
observable.unobserve = function() {
|
|
131
|
+
unobserve.apply(this, arguments);
|
|
132
|
+
return object.observation.scheduler.destroy();
|
|
133
|
+
};
|
|
129
134
|
return jQuery.extend((function() {
|
|
130
135
|
var object;
|
|
131
136
|
|
|
@@ -7,14 +7,14 @@ observation = {
|
|
|
7
7
|
remove: function(keypath, callback) {
|
|
8
8
|
return this.observers[keypath].remove(callback);
|
|
9
9
|
},
|
|
10
|
-
deliver: function() {
|
|
10
|
+
deliver: function(discard) {
|
|
11
11
|
var keypath, observer, _ref, _results;
|
|
12
12
|
|
|
13
13
|
_ref = this.observers;
|
|
14
14
|
_results = [];
|
|
15
15
|
for (keypath in _ref) {
|
|
16
16
|
observer = _ref[keypath];
|
|
17
|
-
_results.push(observer.deliver());
|
|
17
|
+
_results.push(observer.deliver(discard));
|
|
18
18
|
}
|
|
19
19
|
return _results;
|
|
20
20
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// ES6-shim 0.
|
|
1
|
+
// ES6-shim 0.14.0 (c) 2013-2014 Paul Miller (http://paulmillr.com)
|
|
2
2
|
// ES6-shim may be freely distributed under the MIT license.
|
|
3
3
|
// For more details and documentation:
|
|
4
4
|
// https://github.com/paulmillr/es6-shim/
|
|
@@ -48,8 +48,12 @@
|
|
|
48
48
|
return rejectsRegex;
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
+
/*jshint evil: true */
|
|
52
|
+
var getGlobal = new Function('return this;');
|
|
53
|
+
/*jshint evil: false */
|
|
54
|
+
|
|
51
55
|
var main = function() {
|
|
52
|
-
var globals = (
|
|
56
|
+
var globals = getGlobal();
|
|
53
57
|
var global_isFinite = globals.isFinite;
|
|
54
58
|
var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();
|
|
55
59
|
var startsWithIsCompliant = startsWithRejectsRegex();
|
|
@@ -57,6 +61,7 @@
|
|
|
57
61
|
var _indexOf = String.prototype.indexOf;
|
|
58
62
|
var _toString = Object.prototype.toString;
|
|
59
63
|
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
64
|
+
var ArrayIterator; // make our implementation private
|
|
60
65
|
|
|
61
66
|
// Define configurable, writable and non-enumerable props
|
|
62
67
|
// if they don’t exist.
|
|
@@ -77,12 +82,24 @@
|
|
|
77
82
|
});
|
|
78
83
|
};
|
|
79
84
|
|
|
85
|
+
// Simple shim for Object.create on ES3 browsers
|
|
86
|
+
// (unlike real shim, no attempt to support `prototype === null`)
|
|
87
|
+
var create = Object.create || function(prototype, properties) {
|
|
88
|
+
function Type() {}
|
|
89
|
+
Type.prototype = prototype;
|
|
90
|
+
var object = new Type();
|
|
91
|
+
if (typeof properties !== "undefined") {
|
|
92
|
+
defineProperties(object, properties);
|
|
93
|
+
}
|
|
94
|
+
return object;
|
|
95
|
+
};
|
|
96
|
+
|
|
80
97
|
// This is a private name in the es6 spec, equal to '[Symbol.iterator]'
|
|
81
98
|
// we're going to use an arbitrary _-prefixed name to make our shims
|
|
82
99
|
// work properly with each other, even though we don't have full Iterator
|
|
83
100
|
// support. That is, `Array.from(map.keys())` will work, but we don't
|
|
84
101
|
// pretend to export a "real" Iterator interface.
|
|
85
|
-
var $iterator$ = (typeof Symbol === '
|
|
102
|
+
var $iterator$ = (typeof Symbol === 'function' && Symbol.iterator) ||
|
|
86
103
|
'_es6shim_iterator_';
|
|
87
104
|
// Firefox ships a partial implementation using the name @@iterator.
|
|
88
105
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14
|
|
@@ -221,7 +238,7 @@
|
|
|
221
238
|
obj = C['@@create']();
|
|
222
239
|
} else {
|
|
223
240
|
// OrdinaryCreateFromConstructor
|
|
224
|
-
obj =
|
|
241
|
+
obj = create(C.prototype || null);
|
|
225
242
|
}
|
|
226
243
|
// Mark that we've used the es6 construct path
|
|
227
244
|
// (see emulateES6construct)
|
|
@@ -311,8 +328,8 @@
|
|
|
311
328
|
// Bits to bytes
|
|
312
329
|
bytes = [];
|
|
313
330
|
while (str.length) {
|
|
314
|
-
bytes.push(parseInt(str.
|
|
315
|
-
str = str.
|
|
331
|
+
bytes.push(parseInt(str.slice(0, 8), 2));
|
|
332
|
+
str = str.slice(8);
|
|
316
333
|
}
|
|
317
334
|
return bytes;
|
|
318
335
|
}
|
|
@@ -334,9 +351,9 @@
|
|
|
334
351
|
|
|
335
352
|
// Unpack sign, exponent, fraction
|
|
336
353
|
bias = (1 << (ebits - 1)) - 1;
|
|
337
|
-
s = parseInt(str.
|
|
338
|
-
e = parseInt(str.
|
|
339
|
-
f = parseInt(str.
|
|
354
|
+
s = parseInt(str.slice(0, 1), 2) ? -1 : 1;
|
|
355
|
+
e = parseInt(str.slice(1, 1 + ebits), 2);
|
|
356
|
+
f = parseInt(str.slice(1 + ebits), 2);
|
|
340
357
|
|
|
341
358
|
// Produce number
|
|
342
359
|
if (e === (1 << ebits) - 1) {
|
|
@@ -371,7 +388,7 @@
|
|
|
371
388
|
}());
|
|
372
389
|
|
|
373
390
|
defineProperties(String, {
|
|
374
|
-
fromCodePoint: function() {
|
|
391
|
+
fromCodePoint: function(_) { // length = 1
|
|
375
392
|
var points = _slice.call(arguments, 0, arguments.length);
|
|
376
393
|
var result = [];
|
|
377
394
|
var next;
|
|
@@ -489,6 +506,31 @@
|
|
|
489
506
|
};
|
|
490
507
|
defineProperties(String.prototype, StringShims);
|
|
491
508
|
|
|
509
|
+
var hasStringTrimBug = '\u0085'.trim().length !== 1;
|
|
510
|
+
if (hasStringTrimBug) {
|
|
511
|
+
var originalStringTrim = String.prototype.trim;
|
|
512
|
+
delete String.prototype.trim;
|
|
513
|
+
// whitespace from: http://es5.github.io/#x15.5.4.20
|
|
514
|
+
// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324
|
|
515
|
+
var ws = [
|
|
516
|
+
'\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003',
|
|
517
|
+
'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028',
|
|
518
|
+
'\u2029\uFEFF'
|
|
519
|
+
].join('');
|
|
520
|
+
var trimBeginRegexp = new RegExp('^[' + ws + '][' + ws + ']*');
|
|
521
|
+
var trimEndRegexp = new RegExp('[' + ws + '][' + ws + ']*$');
|
|
522
|
+
defineProperties(String.prototype, {
|
|
523
|
+
trim: function() {
|
|
524
|
+
if (this === undefined || this === null) {
|
|
525
|
+
throw new TypeError("can't convert " + this + " to object");
|
|
526
|
+
}
|
|
527
|
+
return String(this)
|
|
528
|
+
.replace(trimBeginRegexp, "")
|
|
529
|
+
.replace(trimEndRegexp, "");
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
|
|
492
534
|
// see https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator
|
|
493
535
|
var StringIterator = function(s) {
|
|
494
536
|
this._s = String(ES.CheckObjectCoercible(s));
|
|
@@ -496,7 +538,7 @@
|
|
|
496
538
|
};
|
|
497
539
|
StringIterator.prototype.next = function() {
|
|
498
540
|
var s = this._s, i = this._i;
|
|
499
|
-
if (s===undefined || i >= s.length) {
|
|
541
|
+
if (s === undefined || i >= s.length) {
|
|
500
542
|
this._s = undefined;
|
|
501
543
|
return { value: undefined, done: true };
|
|
502
544
|
}
|
|
@@ -551,8 +593,8 @@
|
|
|
551
593
|
} else {
|
|
552
594
|
value = list[i];
|
|
553
595
|
}
|
|
554
|
-
if (mapFn
|
|
555
|
-
result[i] = thisArg ? mapFn.call(thisArg, value) : mapFn(value);
|
|
596
|
+
if (mapFn) {
|
|
597
|
+
result[i] = thisArg ? mapFn.call(thisArg, value, i) : mapFn(value, i);
|
|
556
598
|
} else {
|
|
557
599
|
result[i] = value;
|
|
558
600
|
}
|
|
@@ -567,18 +609,18 @@
|
|
|
567
609
|
}
|
|
568
610
|
});
|
|
569
611
|
|
|
570
|
-
|
|
571
|
-
|
|
612
|
+
// Our ArrayIterator is private; see
|
|
613
|
+
// https://github.com/paulmillr/es6-shim/issues/252
|
|
614
|
+
ArrayIterator = function(array, kind) {
|
|
572
615
|
this.i = 0;
|
|
573
616
|
this.array = array;
|
|
574
617
|
this.kind = kind;
|
|
575
|
-
|
|
576
|
-
});
|
|
618
|
+
};
|
|
577
619
|
|
|
578
620
|
defineProperties(ArrayIterator.prototype, {
|
|
579
621
|
next: function() {
|
|
580
622
|
var i = this.i, array = this.array;
|
|
581
|
-
if (i===undefined || this.kind===undefined) {
|
|
623
|
+
if (i === undefined || this.kind === undefined) {
|
|
582
624
|
throw new TypeError('Not an ArrayIterator');
|
|
583
625
|
}
|
|
584
626
|
if (array!==undefined) {
|
|
@@ -588,11 +630,9 @@
|
|
|
588
630
|
var retval;
|
|
589
631
|
if (kind === "key") {
|
|
590
632
|
retval = i;
|
|
591
|
-
}
|
|
592
|
-
if (kind === "value") {
|
|
633
|
+
} else if (kind === "value") {
|
|
593
634
|
retval = array[i];
|
|
594
|
-
}
|
|
595
|
-
if (kind === "entry") {
|
|
635
|
+
} else if (kind === "entry") {
|
|
596
636
|
retval = [i, array[i]];
|
|
597
637
|
}
|
|
598
638
|
this.i = i + 1;
|
|
@@ -635,16 +675,19 @@
|
|
|
635
675
|
}
|
|
636
676
|
return o;
|
|
637
677
|
},
|
|
678
|
+
|
|
638
679
|
fill: function(value) {
|
|
639
|
-
var start = arguments
|
|
680
|
+
var start = arguments.length > 1 ? arguments[1] : undefined;
|
|
681
|
+
var end = arguments.length > 2 ? arguments[2] : undefined;
|
|
640
682
|
var O = ES.ToObject(this);
|
|
641
683
|
var len = ES.ToLength(O.length);
|
|
642
|
-
start = ES.ToInteger(start===undefined ? 0 : start);
|
|
643
|
-
end = ES.ToInteger(end===undefined ? len : end);
|
|
684
|
+
start = ES.ToInteger(start === undefined ? 0 : start);
|
|
685
|
+
end = ES.ToInteger(end === undefined ? len : end);
|
|
644
686
|
|
|
645
687
|
var relativeStart = start < 0 ? Math.max(len + start, 0) : Math.min(start, len);
|
|
688
|
+
var relativeEnd = end < 0 ? len + end : end;
|
|
646
689
|
|
|
647
|
-
for (var i = relativeStart; i < len && i <
|
|
690
|
+
for (var i = relativeStart; i < len && i < relativeEnd; ++i) {
|
|
648
691
|
O[i] = value;
|
|
649
692
|
}
|
|
650
693
|
return O;
|
|
@@ -696,7 +739,9 @@
|
|
|
696
739
|
addIterator(Array.prototype, function() { return this.values(); });
|
|
697
740
|
// Chrome defines keys/values/entries on Array, but doesn't give us
|
|
698
741
|
// any way to identify its iterator. So add our own shimmed field.
|
|
699
|
-
|
|
742
|
+
if (Object.getPrototypeOf) {
|
|
743
|
+
addIterator(Object.getPrototypeOf([].values()));
|
|
744
|
+
}
|
|
700
745
|
|
|
701
746
|
var maxSafeInteger = Math.pow(2, 53) - 1;
|
|
702
747
|
defineProperties(Number, {
|
|
@@ -712,15 +757,12 @@
|
|
|
712
757
|
},
|
|
713
758
|
|
|
714
759
|
isInteger: function(value) {
|
|
715
|
-
return
|
|
716
|
-
!Number.isNaN(value) &&
|
|
717
|
-
Number.isFinite(value) &&
|
|
760
|
+
return Number.isFinite(value) &&
|
|
718
761
|
ES.ToInteger(value) === value;
|
|
719
762
|
},
|
|
720
763
|
|
|
721
764
|
isSafeInteger: function(value) {
|
|
722
|
-
return Number.isInteger(value) &&
|
|
723
|
-
Math.abs(value) <= Number.MAX_SAFE_INTEGER;
|
|
765
|
+
return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
|
|
724
766
|
},
|
|
725
767
|
|
|
726
768
|
isNaN: function(value) {
|
|
@@ -734,19 +776,8 @@
|
|
|
734
776
|
|
|
735
777
|
});
|
|
736
778
|
|
|
737
|
-
defineProperties(Number.prototype, {
|
|
738
|
-
});
|
|
739
|
-
|
|
740
779
|
if (supportsDescriptors) {
|
|
741
780
|
defineProperties(Object, {
|
|
742
|
-
getOwnPropertyDescriptors: function(subject) {
|
|
743
|
-
var descs = {};
|
|
744
|
-
Object.getOwnPropertyNames(subject).forEach(function(propName) {
|
|
745
|
-
descs[propName] = Object.getOwnPropertyDescriptor(subject, propName);
|
|
746
|
-
});
|
|
747
|
-
return descs;
|
|
748
|
-
},
|
|
749
|
-
|
|
750
781
|
getPropertyDescriptor: function(subject, name) {
|
|
751
782
|
var pd = Object.getOwnPropertyDescriptor(subject, name);
|
|
752
783
|
var proto = Object.getPrototypeOf(subject);
|
|
@@ -772,20 +803,32 @@
|
|
|
772
803
|
proto = Object.getPrototypeOf(proto);
|
|
773
804
|
}
|
|
774
805
|
return result;
|
|
775
|
-
},
|
|
776
|
-
|
|
777
|
-
// 19.1.3.1
|
|
778
|
-
assign: function(target, source) {
|
|
779
|
-
return Object.keys(source).reduce(function(target, key) {
|
|
780
|
-
target[key] = source[key];
|
|
781
|
-
return target;
|
|
782
|
-
}, target);
|
|
783
806
|
}
|
|
784
807
|
});
|
|
785
808
|
|
|
786
|
-
// 19.1.3.9
|
|
787
|
-
// shim from https://gist.github.com/WebReflection/5593554
|
|
788
809
|
defineProperties(Object, {
|
|
810
|
+
// 19.1.3.1
|
|
811
|
+
assign: function(target, source) {
|
|
812
|
+
if (!ES.TypeIsObject(target)) {
|
|
813
|
+
throw new TypeError('target must be an object');
|
|
814
|
+
}
|
|
815
|
+
return Array.prototype.reduce.call(arguments, function(target, source) {
|
|
816
|
+
if (!ES.TypeIsObject(source)) {
|
|
817
|
+
throw new TypeError('source must be an object');
|
|
818
|
+
}
|
|
819
|
+
return Object.keys(source).reduce(function(target, key) {
|
|
820
|
+
target[key] = source[key];
|
|
821
|
+
return target;
|
|
822
|
+
}, target);
|
|
823
|
+
});
|
|
824
|
+
},
|
|
825
|
+
|
|
826
|
+
is: function(a, b) {
|
|
827
|
+
return ES.SameValue(a, b);
|
|
828
|
+
},
|
|
829
|
+
|
|
830
|
+
// 19.1.3.9
|
|
831
|
+
// shim from https://gist.github.com/WebReflection/5593554
|
|
789
832
|
setPrototypeOf: (function(Object, magic) {
|
|
790
833
|
var set;
|
|
791
834
|
|
|
@@ -859,16 +902,6 @@
|
|
|
859
902
|
})();
|
|
860
903
|
}
|
|
861
904
|
|
|
862
|
-
defineProperties(Object, {
|
|
863
|
-
getOwnPropertyKeys: function(subject) {
|
|
864
|
-
return Object.keys(subject);
|
|
865
|
-
},
|
|
866
|
-
|
|
867
|
-
is: function(a, b) {
|
|
868
|
-
return ES.SameValue(a, b);
|
|
869
|
-
}
|
|
870
|
-
});
|
|
871
|
-
|
|
872
905
|
try {
|
|
873
906
|
Object.keys('foo');
|
|
874
907
|
} catch (e) {
|
|
@@ -918,7 +951,6 @@
|
|
|
918
951
|
clz32: function(value) {
|
|
919
952
|
// See https://bugs.ecmascript.org/show_bug.cgi?id=2465
|
|
920
953
|
value = Number(value);
|
|
921
|
-
if (Number.isNaN(value)) return NaN;
|
|
922
954
|
var number = ES.ToUint32(value);
|
|
923
955
|
if (number === 0) {
|
|
924
956
|
return 32;
|
|
@@ -940,15 +972,7 @@
|
|
|
940
972
|
value = Number(value);
|
|
941
973
|
if (value === -Infinity) return -1;
|
|
942
974
|
if (!global_isFinite(value) || value === 0) return value;
|
|
943
|
-
|
|
944
|
-
var n = 50;
|
|
945
|
-
for (var i = 1; i < n; i++) {
|
|
946
|
-
for (var j = 2, factorial = 1; j <= i; j++) {
|
|
947
|
-
factorial *= j;
|
|
948
|
-
}
|
|
949
|
-
result += Math.pow(value, i) / factorial;
|
|
950
|
-
}
|
|
951
|
-
return result;
|
|
975
|
+
return Math.exp(value) - 1;
|
|
952
976
|
},
|
|
953
977
|
|
|
954
978
|
hypot: function(x, y) {
|
|
@@ -1035,6 +1059,8 @@
|
|
|
1035
1059
|
|
|
1036
1060
|
imul: function(x, y) {
|
|
1037
1061
|
// taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul
|
|
1062
|
+
x = ES.ToUint32(x);
|
|
1063
|
+
y = ES.ToUint32(y);
|
|
1038
1064
|
var ah = (x >>> 16) & 0xffff;
|
|
1039
1065
|
var al = x & 0xffff;
|
|
1040
1066
|
var bh = (y >>> 16) & 0xffff;
|
|
@@ -1105,30 +1131,44 @@
|
|
|
1105
1131
|
|
|
1106
1132
|
// find an appropriate setImmediate-alike
|
|
1107
1133
|
var setTimeout = globals.setTimeout;
|
|
1108
|
-
var makeZeroTimeout
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1134
|
+
var makeZeroTimeout;
|
|
1135
|
+
if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {
|
|
1136
|
+
makeZeroTimeout = function() {
|
|
1137
|
+
// from http://dbaron.org/log/20100309-faster-timeouts
|
|
1138
|
+
var timeouts = [];
|
|
1139
|
+
var messageName = "zero-timeout-message";
|
|
1140
|
+
var setZeroTimeout = function(fn) {
|
|
1141
|
+
timeouts.push(fn);
|
|
1142
|
+
window.postMessage(messageName, "*");
|
|
1143
|
+
};
|
|
1144
|
+
var handleMessage = function(event) {
|
|
1145
|
+
if (event.source == window && event.data == messageName) {
|
|
1146
|
+
event.stopPropagation();
|
|
1147
|
+
if (timeouts.length === 0) { return; }
|
|
1148
|
+
var fn = timeouts.shift();
|
|
1149
|
+
fn();
|
|
1150
|
+
}
|
|
1151
|
+
};
|
|
1152
|
+
window.addEventListener("message", handleMessage, true);
|
|
1153
|
+
return setZeroTimeout;
|
|
1115
1154
|
};
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1155
|
+
}
|
|
1156
|
+
var makePromiseAsap = function() {
|
|
1157
|
+
// An efficient task-scheduler based on a pre-existing Promise
|
|
1158
|
+
// implementation, which we can use even if we override the
|
|
1159
|
+
// global Promise below (in order to workaround bugs)
|
|
1160
|
+
// https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671
|
|
1161
|
+
var P = globals.Promise;
|
|
1162
|
+
return P && P.resolve && function(task) {
|
|
1163
|
+
return P.resolve().then(task);
|
|
1123
1164
|
};
|
|
1124
|
-
window.addEventListener("message", handleMessage, true);
|
|
1125
|
-
return setZeroTimeout;
|
|
1126
1165
|
};
|
|
1127
1166
|
var enqueue = ES.IsCallable(globals.setImmediate) ?
|
|
1128
1167
|
globals.setImmediate.bind(globals) :
|
|
1129
1168
|
typeof process === 'object' && process.nextTick ? process.nextTick :
|
|
1130
|
-
|
|
1131
|
-
|
|
1169
|
+
makePromiseAsap() ||
|
|
1170
|
+
(ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() :
|
|
1171
|
+
function(task) { setTimeout(task, 0); }); // fallback
|
|
1132
1172
|
|
|
1133
1173
|
var triggerPromiseReactions = function(reactions, x) {
|
|
1134
1174
|
reactions.forEach(function(reaction) {
|
|
@@ -1239,7 +1279,7 @@
|
|
|
1239
1279
|
// The `obj` parameter is a hack we use for es5
|
|
1240
1280
|
// compatibility.
|
|
1241
1281
|
var prototype = constructor.prototype || Promise$prototype;
|
|
1242
|
-
obj = obj ||
|
|
1282
|
+
obj = obj || create(prototype);
|
|
1243
1283
|
defineProperties(obj, {
|
|
1244
1284
|
_status: undefined,
|
|
1245
1285
|
_result: undefined,
|
|
@@ -1392,9 +1432,18 @@
|
|
|
1392
1432
|
// In Chrome 33 (and thereabouts) Promise is defined, but the
|
|
1393
1433
|
// implementation is buggy in a number of ways. Let's check subclassing
|
|
1394
1434
|
// support to see if we have a buggy implementation.
|
|
1395
|
-
|
|
1435
|
+
var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function(S) {
|
|
1396
1436
|
return S.resolve(42) instanceof S;
|
|
1397
|
-
})
|
|
1437
|
+
});
|
|
1438
|
+
var promiseIgnoresNonFunctionThenCallbacks = (function () {
|
|
1439
|
+
try {
|
|
1440
|
+
globals.Promise.reject(42).then(null, 5).then(null, function () {});
|
|
1441
|
+
return true;
|
|
1442
|
+
} catch (ex) {
|
|
1443
|
+
return false;
|
|
1444
|
+
}
|
|
1445
|
+
}());
|
|
1446
|
+
if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks) {
|
|
1398
1447
|
globals.Promise = PromiseShim;
|
|
1399
1448
|
}
|
|
1400
1449
|
|
|
@@ -1471,7 +1520,7 @@
|
|
|
1471
1520
|
};
|
|
1472
1521
|
addIterator(MapIterator.prototype);
|
|
1473
1522
|
|
|
1474
|
-
function Map() {
|
|
1523
|
+
function Map(iterable) {
|
|
1475
1524
|
var map = this;
|
|
1476
1525
|
map = emulateES6construct(map);
|
|
1477
1526
|
if (!map._es6map) {
|
|
@@ -1489,7 +1538,6 @@
|
|
|
1489
1538
|
});
|
|
1490
1539
|
|
|
1491
1540
|
// Optionally initialize map from iterable
|
|
1492
|
-
var iterable = arguments[0];
|
|
1493
1541
|
if (iterable !== undefined && iterable !== null) {
|
|
1494
1542
|
var it = ES.GetIterator(iterable);
|
|
1495
1543
|
var adder = map.set;
|
|
@@ -1511,7 +1559,7 @@
|
|
|
1511
1559
|
'@@create': function(obj) {
|
|
1512
1560
|
var constructor = this;
|
|
1513
1561
|
var prototype = constructor.prototype || Map$prototype;
|
|
1514
|
-
obj = obj ||
|
|
1562
|
+
obj = obj || create(prototype);
|
|
1515
1563
|
defineProperties(obj, { _es6map: true });
|
|
1516
1564
|
return obj;
|
|
1517
1565
|
}
|
|
@@ -1657,7 +1705,7 @@
|
|
|
1657
1705
|
// Sets containing only string or numeric keys, we use an object
|
|
1658
1706
|
// as backing storage and lazily create a full Map only when
|
|
1659
1707
|
// required.
|
|
1660
|
-
var SetShim = function Set() {
|
|
1708
|
+
var SetShim = function Set(iterable) {
|
|
1661
1709
|
var set = this;
|
|
1662
1710
|
set = emulateES6construct(set);
|
|
1663
1711
|
if (!set._es6set) {
|
|
@@ -1670,7 +1718,6 @@
|
|
|
1670
1718
|
});
|
|
1671
1719
|
|
|
1672
1720
|
// Optionally initialize map from iterable
|
|
1673
|
-
var iterable = arguments[0];
|
|
1674
1721
|
if (iterable !== undefined && iterable !== null) {
|
|
1675
1722
|
var it = ES.GetIterator(iterable);
|
|
1676
1723
|
var adder = set.add;
|
|
@@ -1689,7 +1736,7 @@
|
|
|
1689
1736
|
'@@create': function(obj) {
|
|
1690
1737
|
var constructor = this;
|
|
1691
1738
|
var prototype = constructor.prototype || Set$prototype;
|
|
1692
|
-
obj = obj ||
|
|
1739
|
+
obj = obj || create(prototype);
|
|
1693
1740
|
defineProperties(obj, { _es6set: true });
|
|
1694
1741
|
return obj;
|
|
1695
1742
|
}
|
|
@@ -1702,7 +1749,7 @@
|
|
|
1702
1749
|
Object.keys(set._storage).forEach(function(k) {
|
|
1703
1750
|
// fast check for leading '$'
|
|
1704
1751
|
if (k.charCodeAt(0) === 36) {
|
|
1705
|
-
k = k.
|
|
1752
|
+
k = k.slice(1);
|
|
1706
1753
|
} else {
|
|
1707
1754
|
k = +k;
|
|
1708
1755
|
}
|
|
@@ -1806,6 +1853,7 @@
|
|
|
1806
1853
|
typeof globals.Map.prototype.clear !== 'function' ||
|
|
1807
1854
|
new globals.Set().size !== 0 ||
|
|
1808
1855
|
new globals.Map().size !== 0 ||
|
|
1856
|
+
typeof globals.Map.prototype.keys !== 'function' ||
|
|
1809
1857
|
typeof globals.Set.prototype.keys !== 'function' ||
|
|
1810
1858
|
typeof globals.Map.prototype.forEach !== 'function' ||
|
|
1811
1859
|
typeof globals.Set.prototype.forEach !== 'function' ||
|
|
@@ -1825,9 +1873,10 @@
|
|
|
1825
1873
|
}
|
|
1826
1874
|
};
|
|
1827
1875
|
|
|
1828
|
-
if (typeof define === 'function' &&
|
|
1876
|
+
if (typeof define === 'function' && define.amd) {
|
|
1829
1877
|
define(main); // RequireJS
|
|
1830
1878
|
} else {
|
|
1831
1879
|
main(); // CommonJS and <script>
|
|
1832
1880
|
}
|
|
1833
1881
|
})();
|
|
1882
|
+
|