loco-rails 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/loco/js_assets_structure/js_assets_structure_generator.rb +1 -1
  3. data/lib/loco/version.rb +1 -1
  4. data/test/dummy/bower.json +3 -3
  5. data/test/dummy/db/test.sqlite3 +0 -0
  6. data/test/dummy/log/development.log +914 -0
  7. data/test/dummy/log/test.log +14364 -0
  8. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1-WO2UjmfLs4SpjVZdSJGGMzBEsVGyxycwsDwVEQj1k.cache +0 -0
  9. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1lwmN4qs8MJAzC_yfG97s_SBsqDZ7S3tjAhKpSGRoPk.cache +0 -0
  10. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2W9ni6toILqWfZF81i5tLooI3KkJgLMV2Um69h4tACE.cache +0 -0
  11. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/888aULOiH1o8nErYVbar7so8TSiHMnVRkCJVrsFow-8.cache +1 -0
  12. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/C2zMBdauRoyKtP5-Hbx-3FKU63Wir8HxxhnsEQjnye4.cache +1 -0
  13. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KmN1A2cbnIa89JVXdNUnbxekW6XoG37uQ7TOrUmla6M.cache +1 -0
  14. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/N2LaSeSkH9O3-nDAwbgQ3fvF1RyzULzIdW9tRkCFdiE.cache +1 -0
  15. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NMX4CbiSfseLfHWah6QjF3ka-_q8iZ35lDHxpx5HZBc.cache +1 -0
  16. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/O97vuogdZekuQD9891VkdZtj2Ah9a6j_9SdFgHpRZPk.cache +3 -0
  17. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RgNfOjSuRN575tirFTi553UywDtiZquNSKAUN4t_37E.cache +2 -0
  18. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/URfsWTq0WfX5JFf50HidIK1kGXYILlI3krzHQOlpGFw.cache +2 -0
  19. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UqKz2K55R9dWSo9wYoLdN5lxNUXJFqA_7eipeyHMqQc.cache +1 -0
  20. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WspjnlaWGkNP36-eIBusMx-VcvbF81RZ3L495DxSNNg.cache +1 -0
  21. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XUYO10EzvYAECtPUgdBF8rPWs9x6tndCxSwdhYWmDpQ.cache +1 -0
  22. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ckF-gg5mdNyYLK2tDms9BdsP1vFw5VYxZ11u7l8vzfc.cache +0 -0
  23. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cxoptH0sPRJzPLP351ISNHPjig_W2A_-5fLVnK3tFu0.cache +1 -0
  24. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/k5GkEt2yH5INFBgLUTsGEmzjRr5Ngh6FiXYfmbqh-Tg.cache +1 -0
  25. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zIWnum7SG2OPux4uomf0kHpIZ5Nl1NfTAoHCdkHwZIY.cache +0 -0
  26. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zgdP9EhEWd05XIYSWZx4uQKkuRklpRj6KiShg6HqIRo.cache +0 -0
  27. data/test/dummy/vendor/assets/bower_components/jquery/AUTHORS.txt +53 -24
  28. data/test/dummy/vendor/assets/bower_components/jquery/dist/core.js +481 -0
  29. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.js +2706 -3647
  30. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -5
  31. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -1
  32. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.js +533 -444
  33. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.js +4 -4
  34. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.map +1 -1
  35. data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/LICENSE.txt +0 -0
  36. data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/dist/sizzle.js +154 -80
  37. data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  38. data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  39. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +5 -3
  40. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/load.js +3 -11
  41. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +9 -10
  42. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/script.js +26 -44
  43. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/location.js +2 -0
  44. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +2 -0
  45. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +2 -0
  46. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/xhr.js +138 -198
  47. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax.js +104 -91
  48. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/attr.js +23 -167
  49. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/classes.js +18 -13
  50. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/prop.js +9 -37
  51. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/support.js +12 -49
  52. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/val.js +21 -28
  53. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes.js +4 -2
  54. data/test/dummy/vendor/assets/bower_components/jquery/src/callbacks.js +5 -3
  55. data/test/dummy/vendor/assets/bower_components/jquery/src/core/DOMEval.js +2 -0
  56. data/test/dummy/vendor/assets/bower_components/jquery/src/core/access.js +8 -6
  57. data/test/dummy/vendor/assets/bower_components/jquery/src/core/init.js +13 -26
  58. data/test/dummy/vendor/assets/bower_components/jquery/src/core/parseHTML.js +32 -8
  59. data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready-no-deferred.js +111 -0
  60. data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready.js +32 -100
  61. data/test/dummy/vendor/assets/bower_components/jquery/src/core/readyException.js +13 -0
  62. data/test/dummy/vendor/assets/bower_components/jquery/src/core/support.js +3 -1
  63. data/test/dummy/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +2 -1
  64. data/test/dummy/vendor/assets/bower_components/jquery/src/core.js +71 -119
  65. data/test/dummy/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +2 -0
  66. data/test/dummy/vendor/assets/bower_components/jquery/src/css/adjustCSS.js +8 -2
  67. data/test/dummy/vendor/assets/bower_components/jquery/src/css/curCSS.js +34 -112
  68. data/test/dummy/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +7 -28
  69. data/test/dummy/vendor/assets/bower_components/jquery/src/css/showHide.js +69 -9
  70. data/test/dummy/vendor/assets/bower_components/jquery/src/css/support.js +48 -142
  71. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +2 -0
  72. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +3 -1
  73. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  74. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +2 -0
  75. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +2 -0
  76. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/swap.js +2 -0
  77. data/test/dummy/vendor/assets/bower_components/jquery/src/css.js +71 -223
  78. data/test/dummy/vendor/assets/bower_components/jquery/src/data/Data.js +24 -63
  79. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/acceptData.js +11 -12
  80. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataPriv.js +2 -0
  81. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataUser.js +2 -0
  82. data/test/dummy/vendor/assets/bower_components/jquery/src/data.js +66 -247
  83. data/test/dummy/vendor/assets/bower_components/jquery/src/deferred/exceptionHook.js +4 -2
  84. data/test/dummy/vendor/assets/bower_components/jquery/src/deferred.js +290 -60
  85. data/test/dummy/vendor/assets/bower_components/jquery/src/deprecated.js +4 -8
  86. data/test/dummy/vendor/assets/bower_components/jquery/src/dimensions.js +9 -9
  87. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/Tween.js +11 -9
  88. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +3 -1
  89. data/test/dummy/vendor/assets/bower_components/jquery/src/effects.js +183 -135
  90. data/test/dummy/vendor/assets/bower_components/jquery/src/event/ajax.js +2 -0
  91. data/test/dummy/vendor/assets/bower_components/jquery/src/event/alias.js +7 -3
  92. data/test/dummy/vendor/assets/bower_components/jquery/src/event/focusin.js +5 -3
  93. data/test/dummy/vendor/assets/bower_components/jquery/src/event/support.js +3 -20
  94. data/test/dummy/vendor/assets/bower_components/jquery/src/event/trigger.js +4 -18
  95. data/test/dummy/vendor/assets/bower_components/jquery/src/event.js +145 -553
  96. data/test/dummy/vendor/assets/bower_components/jquery/src/exports/amd.js +2 -0
  97. data/test/dummy/vendor/assets/bower_components/jquery/src/exports/global.js +10 -2
  98. data/test/dummy/vendor/assets/bower_components/jquery/src/jquery.js +4 -1
  99. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +2 -0
  100. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/buildFragment.js +22 -75
  101. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/getAll.js +9 -19
  102. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/setGlobalEval.js +11 -8
  103. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/support.js +13 -50
  104. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +2 -0
  105. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rscriptType.js +2 -0
  106. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rtagName.js +3 -1
  107. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/wrapMap.js +11 -12
  108. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation.js +104 -203
  109. data/test/dummy/vendor/assets/bower_components/jquery/src/offset.js +64 -51
  110. data/test/dummy/vendor/assets/bower_components/jquery/src/queue/delay.js +3 -1
  111. data/test/dummy/vendor/assets/bower_components/jquery/src/queue.js +12 -11
  112. data/test/dummy/vendor/assets/bower_components/jquery/src/selector-native.js +29 -3
  113. data/test/dummy/vendor/assets/bower_components/jquery/src/selector-sizzle.js +5 -0
  114. data/test/dummy/vendor/assets/bower_components/jquery/src/selector.js +3 -1
  115. data/test/dummy/vendor/assets/bower_components/jquery/src/serialize.js +13 -12
  116. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +9 -10
  117. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/dir.js +2 -0
  118. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +2 -0
  119. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/siblings.js +2 -0
  120. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing.js +36 -37
  121. data/test/dummy/vendor/assets/bower_components/jquery/src/var/ObjectFunctionString.js +7 -0
  122. data/test/dummy/vendor/assets/bower_components/jquery/src/var/arr.js +2 -0
  123. data/test/dummy/vendor/assets/bower_components/jquery/src/var/class2type.js +1 -0
  124. data/test/dummy/vendor/assets/bower_components/jquery/src/var/concat.js +5 -3
  125. data/test/dummy/vendor/assets/bower_components/jquery/src/var/document.js +2 -0
  126. data/test/dummy/vendor/assets/bower_components/jquery/src/var/documentElement.js +2 -0
  127. data/test/dummy/vendor/assets/bower_components/jquery/src/var/fnToString.js +7 -0
  128. data/test/dummy/vendor/assets/bower_components/jquery/src/var/getProto.js +5 -0
  129. data/test/dummy/vendor/assets/bower_components/jquery/src/var/hasOwn.js +2 -0
  130. data/test/dummy/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -3
  131. data/test/dummy/vendor/assets/bower_components/jquery/src/var/pnum.js +2 -0
  132. data/test/dummy/vendor/assets/bower_components/jquery/src/var/push.js +5 -3
  133. data/test/dummy/vendor/assets/bower_components/jquery/src/var/rcssNum.js +2 -0
  134. data/test/dummy/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +2 -0
  135. data/test/dummy/vendor/assets/bower_components/jquery/src/var/slice.js +5 -3
  136. data/test/dummy/vendor/assets/bower_components/jquery/src/var/support.js +1 -0
  137. data/test/dummy/vendor/assets/bower_components/jquery/src/var/toString.js +2 -0
  138. data/test/dummy/vendor/assets/bower_components/jquery/src/wrap.js +14 -14
  139. data/test/dummy/vendor/assets/bower_components/lie/bower.json +1 -1
  140. data/test/dummy/vendor/assets/bower_components/lie/component.json +1 -1
  141. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.js +80 -80
  142. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.min.js +1 -1
  143. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.js +9 -9
  144. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.min.js +1 -1
  145. data/test/dummy/vendor/assets/bower_components/lie/lib/browser.js +253 -0
  146. data/test/dummy/vendor/assets/bower_components/lie/lib/index.js +5 -5
  147. data/test/dummy/vendor/assets/bower_components/lie/package.json +28 -19
  148. data/test/dummy/vendor/assets/bower_components/lie/src/index.js +278 -0
  149. metadata +62 -36
  150. data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.js +0 -3
  151. data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.map +0 -1
  152. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +0 -53
  153. data/test/dummy/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +0 -72
  154. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +0 -16
  155. data/test/dummy/vendor/assets/bower_components/jquery/src/data/accepts.js +0 -20
  156. data/test/dummy/vendor/assets/bower_components/jquery/src/data/support.js +0 -23
  157. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/support.js +0 -58
  158. data/test/dummy/vendor/assets/bower_components/jquery/src/intro.js +0 -44
  159. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/createSafeFragment.js +0 -20
  160. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/nodeNames.js +0 -5
  161. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js +0 -3
  162. data/test/dummy/vendor/assets/bower_components/jquery/src/outro.js +0 -2
  163. data/test/dummy/vendor/assets/bower_components/jquery/src/support.js +0 -63
  164. data/test/dummy/vendor/assets/bower_components/jquery/src/var/deletedIds.js +0 -3
@@ -4,15 +4,60 @@ define( [
4
4
  "./callbacks"
5
5
  ], function( jQuery, slice ) {
6
6
 
7
+ "use strict";
8
+
9
+ function Identity( v ) {
10
+ return v;
11
+ }
12
+ function Thrower( ex ) {
13
+ throw ex;
14
+ }
15
+
16
+ function adoptValue( value, resolve, reject ) {
17
+ var method;
18
+
19
+ try {
20
+
21
+ // Check for promise aspect first to privilege synchronous behavior
22
+ if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
23
+ method.call( value ).done( resolve ).fail( reject );
24
+
25
+ // Other thenables
26
+ } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
27
+ method.call( value, resolve, reject );
28
+
29
+ // Other non-thenables
30
+ } else {
31
+
32
+ // Support: Android 4.0 only
33
+ // Strict mode functions invoked without .call/.apply get global-object context
34
+ resolve.call( undefined, value );
35
+ }
36
+
37
+ // For Promises/A+, convert exceptions into rejections
38
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
39
+ // Deferred#then to conditionally suppress rejection.
40
+ } catch ( value ) {
41
+
42
+ // Support: Android 4.0 only
43
+ // Strict mode functions invoked without .call/.apply get global-object context
44
+ reject.call( undefined, value );
45
+ }
46
+ }
47
+
7
48
  jQuery.extend( {
8
49
 
9
50
  Deferred: function( func ) {
10
51
  var tuples = [
11
52
 
12
- // action, add listener, listener list, final state
13
- [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
14
- [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
15
- [ "notify", "progress", jQuery.Callbacks( "memory" ) ]
53
+ // action, add listener, callbacks,
54
+ // ... .then handlers, argument index, [final state]
55
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
56
+ jQuery.Callbacks( "memory" ), 2 ],
57
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
58
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
59
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
60
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
16
61
  ],
17
62
  state = "pending",
18
63
  promise = {
@@ -23,13 +68,23 @@ jQuery.extend( {
23
68
  deferred.done( arguments ).fail( arguments );
24
69
  return this;
25
70
  },
26
- then: function( /* fnDone, fnFail, fnProgress */ ) {
71
+ "catch": function( fn ) {
72
+ return promise.then( null, fn );
73
+ },
74
+
75
+ // Keep pipe for back-compat
76
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
27
77
  var fns = arguments;
78
+
28
79
  return jQuery.Deferred( function( newDefer ) {
29
80
  jQuery.each( tuples, function( i, tuple ) {
30
- var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
31
81
 
32
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
82
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
83
+ var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
84
+
85
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
86
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
87
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
33
88
  deferred[ tuple[ 1 ] ]( function() {
34
89
  var returned = fn && fn.apply( this, arguments );
35
90
  if ( returned && jQuery.isFunction( returned.promise ) ) {
@@ -39,7 +94,7 @@ jQuery.extend( {
39
94
  .fail( newDefer.reject );
40
95
  } else {
41
96
  newDefer[ tuple[ 0 ] + "With" ](
42
- this === promise ? newDefer.promise() : this,
97
+ this,
43
98
  fn ? [ returned ] : arguments
44
99
  );
45
100
  }
@@ -48,6 +103,170 @@ jQuery.extend( {
48
103
  fns = null;
49
104
  } ).promise();
50
105
  },
106
+ then: function( onFulfilled, onRejected, onProgress ) {
107
+ var maxDepth = 0;
108
+ function resolve( depth, deferred, handler, special ) {
109
+ return function() {
110
+ var that = this,
111
+ args = arguments,
112
+ mightThrow = function() {
113
+ var returned, then;
114
+
115
+ // Support: Promises/A+ section 2.3.3.3.3
116
+ // https://promisesaplus.com/#point-59
117
+ // Ignore double-resolution attempts
118
+ if ( depth < maxDepth ) {
119
+ return;
120
+ }
121
+
122
+ returned = handler.apply( that, args );
123
+
124
+ // Support: Promises/A+ section 2.3.1
125
+ // https://promisesaplus.com/#point-48
126
+ if ( returned === deferred.promise() ) {
127
+ throw new TypeError( "Thenable self-resolution" );
128
+ }
129
+
130
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
131
+ // https://promisesaplus.com/#point-54
132
+ // https://promisesaplus.com/#point-75
133
+ // Retrieve `then` only once
134
+ then = returned &&
135
+
136
+ // Support: Promises/A+ section 2.3.4
137
+ // https://promisesaplus.com/#point-64
138
+ // Only check objects and functions for thenability
139
+ ( typeof returned === "object" ||
140
+ typeof returned === "function" ) &&
141
+ returned.then;
142
+
143
+ // Handle a returned thenable
144
+ if ( jQuery.isFunction( then ) ) {
145
+
146
+ // Special processors (notify) just wait for resolution
147
+ if ( special ) {
148
+ then.call(
149
+ returned,
150
+ resolve( maxDepth, deferred, Identity, special ),
151
+ resolve( maxDepth, deferred, Thrower, special )
152
+ );
153
+
154
+ // Normal processors (resolve) also hook into progress
155
+ } else {
156
+
157
+ // ...and disregard older resolution values
158
+ maxDepth++;
159
+
160
+ then.call(
161
+ returned,
162
+ resolve( maxDepth, deferred, Identity, special ),
163
+ resolve( maxDepth, deferred, Thrower, special ),
164
+ resolve( maxDepth, deferred, Identity,
165
+ deferred.notifyWith )
166
+ );
167
+ }
168
+
169
+ // Handle all other returned values
170
+ } else {
171
+
172
+ // Only substitute handlers pass on context
173
+ // and multiple values (non-spec behavior)
174
+ if ( handler !== Identity ) {
175
+ that = undefined;
176
+ args = [ returned ];
177
+ }
178
+
179
+ // Process the value(s)
180
+ // Default process is resolve
181
+ ( special || deferred.resolveWith )( that, args );
182
+ }
183
+ },
184
+
185
+ // Only normal processors (resolve) catch and reject exceptions
186
+ process = special ?
187
+ mightThrow :
188
+ function() {
189
+ try {
190
+ mightThrow();
191
+ } catch ( e ) {
192
+
193
+ if ( jQuery.Deferred.exceptionHook ) {
194
+ jQuery.Deferred.exceptionHook( e,
195
+ process.stackTrace );
196
+ }
197
+
198
+ // Support: Promises/A+ section 2.3.3.3.4.1
199
+ // https://promisesaplus.com/#point-61
200
+ // Ignore post-resolution exceptions
201
+ if ( depth + 1 >= maxDepth ) {
202
+
203
+ // Only substitute handlers pass on context
204
+ // and multiple values (non-spec behavior)
205
+ if ( handler !== Thrower ) {
206
+ that = undefined;
207
+ args = [ e ];
208
+ }
209
+
210
+ deferred.rejectWith( that, args );
211
+ }
212
+ }
213
+ };
214
+
215
+ // Support: Promises/A+ section 2.3.3.3.1
216
+ // https://promisesaplus.com/#point-57
217
+ // Re-resolve promises immediately to dodge false rejection from
218
+ // subsequent errors
219
+ if ( depth ) {
220
+ process();
221
+ } else {
222
+
223
+ // Call an optional hook to record the stack, in case of exception
224
+ // since it's otherwise lost when execution goes async
225
+ if ( jQuery.Deferred.getStackHook ) {
226
+ process.stackTrace = jQuery.Deferred.getStackHook();
227
+ }
228
+ window.setTimeout( process );
229
+ }
230
+ };
231
+ }
232
+
233
+ return jQuery.Deferred( function( newDefer ) {
234
+
235
+ // progress_handlers.add( ... )
236
+ tuples[ 0 ][ 3 ].add(
237
+ resolve(
238
+ 0,
239
+ newDefer,
240
+ jQuery.isFunction( onProgress ) ?
241
+ onProgress :
242
+ Identity,
243
+ newDefer.notifyWith
244
+ )
245
+ );
246
+
247
+ // fulfilled_handlers.add( ... )
248
+ tuples[ 1 ][ 3 ].add(
249
+ resolve(
250
+ 0,
251
+ newDefer,
252
+ jQuery.isFunction( onFulfilled ) ?
253
+ onFulfilled :
254
+ Identity
255
+ )
256
+ );
257
+
258
+ // rejected_handlers.add( ... )
259
+ tuples[ 2 ][ 3 ].add(
260
+ resolve(
261
+ 0,
262
+ newDefer,
263
+ jQuery.isFunction( onRejected ) ?
264
+ onRejected :
265
+ Thrower
266
+ )
267
+ );
268
+ } ).promise();
269
+ },
51
270
 
52
271
  // Get a promise for this deferred
53
272
  // If obj is provided, the promise aspect is added to the object
@@ -57,33 +276,51 @@ jQuery.extend( {
57
276
  },
58
277
  deferred = {};
59
278
 
60
- // Keep pipe for back-compat
61
- promise.pipe = promise.then;
62
-
63
279
  // Add list-specific methods
64
280
  jQuery.each( tuples, function( i, tuple ) {
65
281
  var list = tuple[ 2 ],
66
- stateString = tuple[ 3 ];
282
+ stateString = tuple[ 5 ];
67
283
 
68
- // promise[ done | fail | progress ] = list.add
284
+ // promise.progress = list.add
285
+ // promise.done = list.add
286
+ // promise.fail = list.add
69
287
  promise[ tuple[ 1 ] ] = list.add;
70
288
 
71
289
  // Handle state
72
290
  if ( stateString ) {
73
- list.add( function() {
291
+ list.add(
292
+ function() {
293
+
294
+ // state = "resolved" (i.e., fulfilled)
295
+ // state = "rejected"
296
+ state = stateString;
297
+ },
74
298
 
75
- // state = [ resolved | rejected ]
76
- state = stateString;
299
+ // rejected_callbacks.disable
300
+ // fulfilled_callbacks.disable
301
+ tuples[ 3 - i ][ 2 ].disable,
77
302
 
78
- // [ reject_list | resolve_list ].disable; progress_list.lock
79
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
303
+ // progress_callbacks.lock
304
+ tuples[ 0 ][ 2 ].lock
305
+ );
80
306
  }
81
307
 
82
- // deferred[ resolve | reject | notify ]
308
+ // progress_handlers.fire
309
+ // fulfilled_handlers.fire
310
+ // rejected_handlers.fire
311
+ list.add( tuple[ 3 ].fire );
312
+
313
+ // deferred.notify = function() { deferred.notifyWith(...) }
314
+ // deferred.resolve = function() { deferred.resolveWith(...) }
315
+ // deferred.reject = function() { deferred.rejectWith(...) }
83
316
  deferred[ tuple[ 0 ] ] = function() {
84
- deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
317
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
85
318
  return this;
86
319
  };
320
+
321
+ // deferred.notifyWith = list.fireWith
322
+ // deferred.resolveWith = list.fireWith
323
+ // deferred.rejectWith = list.fireWith
87
324
  deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
88
325
  } );
89
326
 
@@ -100,58 +337,51 @@ jQuery.extend( {
100
337
  },
101
338
 
102
339
  // Deferred helper
103
- when: function( subordinate /* , ..., subordinateN */ ) {
104
- var i = 0,
105
- resolveValues = slice.call( arguments ),
106
- length = resolveValues.length,
340
+ when: function( singleValue ) {
341
+ var
107
342
 
108
- // the count of uncompleted subordinates
109
- remaining = length !== 1 ||
110
- ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
343
+ // count of uncompleted subordinates
344
+ remaining = arguments.length,
111
345
 
112
- // the master Deferred.
113
- // If resolveValues consist of only a single Deferred, just use that.
114
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
346
+ // count of unprocessed arguments
347
+ i = remaining,
115
348
 
116
- // Update function for both resolve and progress values
117
- updateFunc = function( i, contexts, values ) {
118
- return function( value ) {
119
- contexts[ i ] = this;
120
- values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
121
- if ( values === progressValues ) {
122
- deferred.notifyWith( contexts, values );
349
+ // subordinate fulfillment data
350
+ resolveContexts = Array( i ),
351
+ resolveValues = slice.call( arguments ),
123
352
 
124
- } else if ( !( --remaining ) ) {
125
- deferred.resolveWith( contexts, values );
353
+ // the master Deferred
354
+ master = jQuery.Deferred(),
355
+
356
+ // subordinate callback factory
357
+ updateFunc = function( i ) {
358
+ return function( value ) {
359
+ resolveContexts[ i ] = this;
360
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
361
+ if ( !( --remaining ) ) {
362
+ master.resolveWith( resolveContexts, resolveValues );
126
363
  }
127
364
  };
128
- },
365
+ };
129
366
 
130
- progressValues, progressContexts, resolveContexts;
131
-
132
- // add listeners to Deferred subordinates; treat others as resolved
133
- if ( length > 1 ) {
134
- progressValues = new Array( length );
135
- progressContexts = new Array( length );
136
- resolveContexts = new Array( length );
137
- for ( ; i < length; i++ ) {
138
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
139
- resolveValues[ i ].promise()
140
- .progress( updateFunc( i, progressContexts, progressValues ) )
141
- .done( updateFunc( i, resolveContexts, resolveValues ) )
142
- .fail( deferred.reject );
143
- } else {
144
- --remaining;
145
- }
367
+ // Single- and empty arguments are adopted like Promise.resolve
368
+ if ( remaining <= 1 ) {
369
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );
370
+
371
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
372
+ if ( master.state() === "pending" ||
373
+ jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
374
+
375
+ return master.then();
146
376
  }
147
377
  }
148
378
 
149
- // if we're not waiting on anything, resolve the master
150
- if ( !remaining ) {
151
- deferred.resolveWith( resolveContexts, resolveValues );
379
+ // Multiple arguments are aggregated like Promise.all array elements
380
+ while ( i-- ) {
381
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
152
382
  }
153
383
 
154
- return deferred.promise();
384
+ return master.promise();
155
385
  }
156
386
  } );
157
387
 
@@ -1,8 +1,9 @@
1
1
  define( [
2
- "./core",
3
- "./traversing"
2
+ "./core"
4
3
  ], function( jQuery ) {
5
4
 
5
+ "use strict";
6
+
6
7
  jQuery.fn.extend( {
7
8
 
8
9
  bind: function( types, data, fn ) {
@@ -24,11 +25,6 @@ jQuery.fn.extend( {
24
25
  }
25
26
  } );
26
27
 
27
- // The number of elements contained in the matched element set
28
- jQuery.fn.size = function() {
29
- return this.length;
30
- };
31
-
32
- jQuery.fn.andSelf = jQuery.fn.addBack;
28
+ jQuery.parseJSON = JSON.parse;
33
29
 
34
30
  } );
@@ -4,12 +4,14 @@ define( [
4
4
  "./css"
5
5
  ], function( jQuery, access ) {
6
6
 
7
+ "use strict";
8
+
7
9
  // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
8
10
  jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
9
11
  jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
10
- function( defaultExtra, funcName ) {
12
+ function( defaultExtra, funcName ) {
11
13
 
12
- // margin is only for outerHeight, outerWidth
14
+ // Margin is only for outerHeight, outerWidth
13
15
  jQuery.fn[ funcName ] = function( margin, value ) {
14
16
  var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
15
17
  extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
@@ -19,10 +21,10 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
19
21
 
20
22
  if ( jQuery.isWindow( elem ) ) {
21
23
 
22
- // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
23
- // isn't a whole lot we can do. See pull request at this URL for discussion:
24
- // https://github.com/jquery/jquery/pull/764
25
- return elem.document.documentElement[ "client" + name ];
24
+ // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
25
+ return funcName.indexOf( "outer" ) === 0 ?
26
+ elem[ "inner" + name ] :
27
+ elem.document.documentElement[ "client" + name ];
26
28
  }
27
29
 
28
30
  // Get document width or height
@@ -31,8 +33,6 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
31
33
 
32
34
  // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
33
35
  // whichever is greatest
34
- // unfortunately, this causes bug #3838 in IE6/8 only,
35
- // but there is currently no good, small way to fix it.
36
36
  return Math.max(
37
37
  elem.body[ "scroll" + name ], doc[ "scroll" + name ],
38
38
  elem.body[ "offset" + name ], doc[ "offset" + name ],
@@ -47,7 +47,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
47
47
 
48
48
  // Set width or height on the element
49
49
  jQuery.style( elem, type, value, extra );
50
- }, type, chainable ? margin : undefined, chainable, null );
50
+ }, type, chainable ? margin : undefined, chainable );
51
51
  };
52
52
  } );
53
53
  } );
@@ -3,6 +3,8 @@ define( [
3
3
  "../css"
4
4
  ], function( jQuery ) {
5
5
 
6
+ "use strict";
7
+
6
8
  function Tween( elem, options, prop, end, easing ) {
7
9
  return new Tween.prototype.init( elem, options, prop, end, easing );
8
10
  }
@@ -66,10 +68,10 @@ Tween.propHooks = {
66
68
  return tween.elem[ tween.prop ];
67
69
  }
68
70
 
69
- // passing an empty string as a 3rd parameter to .css will automatically
70
- // attempt a parseFloat and fallback to a string if the parse fails
71
- // so, simple values such as "10px" are parsed to Float.
72
- // complex values such as "rotate(1rad)" are returned as is.
71
+ // Passing an empty string as a 3rd parameter to .css will automatically
72
+ // attempt a parseFloat and fallback to a string if the parse fails.
73
+ // Simple values such as "10px" are parsed to Float;
74
+ // complex values such as "rotate(1rad)" are returned as-is.
73
75
  result = jQuery.css( tween.elem, tween.prop, "" );
74
76
 
75
77
  // Empty strings, null, undefined and "auto" are converted to 0.
@@ -77,8 +79,9 @@ Tween.propHooks = {
77
79
  },
78
80
  set: function( tween ) {
79
81
 
80
- // use step hook for back compat - use cssHook if its there - use .style if its
81
- // available and use plain properties where available
82
+ // Use step hook for back compat.
83
+ // Use cssHook if its there.
84
+ // Use .style if available and use plain properties where available.
82
85
  if ( jQuery.fx.step[ tween.prop ] ) {
83
86
  jQuery.fx.step[ tween.prop ]( tween );
84
87
  } else if ( tween.elem.nodeType === 1 &&
@@ -92,9 +95,8 @@ Tween.propHooks = {
92
95
  }
93
96
  };
94
97
 
95
- // Support: IE <=9
98
+ // Support: IE <=9 only
96
99
  // Panic based approach to setting things on disconnected nodes
97
-
98
100
  Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
99
101
  set: function( tween ) {
100
102
  if ( tween.elem.nodeType && tween.elem.parentNode ) {
@@ -115,7 +117,7 @@ jQuery.easing = {
115
117
 
116
118
  jQuery.fx = Tween.prototype.init;
117
119
 
118
- // Back Compat <1.8 extension point
120
+ // Back compat <1.8 extension point
119
121
  jQuery.fx.step = {};
120
122
 
121
123
  } );
@@ -4,7 +4,9 @@ define( [
4
4
  "../effects"
5
5
  ], function( jQuery ) {
6
6
 
7
- jQuery.expr.filters.animated = function( elem ) {
7
+ "use strict";
8
+
9
+ jQuery.expr.pseudos.animated = function( elem ) {
8
10
  return jQuery.grep( jQuery.timers, function( fn ) {
9
11
  return elem === fn.elem;
10
12
  } ).length;