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
@@ -7,23 +7,24 @@ define( [
7
7
  "./ajax/var/rquery",
8
8
 
9
9
  "./core/init",
10
- "./ajax/parseJSON",
11
10
  "./ajax/parseXML",
12
- "./deferred"
11
+ "./event/trigger",
12
+ "./deferred",
13
+ "./serialize" // jQuery.param
13
14
  ], function( jQuery, document, rnotwhite, location, nonce, rquery ) {
14
15
 
16
+ "use strict";
17
+
15
18
  var
19
+ r20 = /%20/g,
16
20
  rhash = /#.*$/,
17
21
  rts = /([?&])_=[^&]*/,
18
-
19
- // IE leaves an \r character at EOL
20
- rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
22
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
21
23
 
22
24
  // #7653, #8125, #8152: local protocol detection
23
25
  rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
24
26
  rnoContent = /^(?:GET|HEAD)$/,
25
27
  rprotocol = /^\/\//,
26
- rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
27
28
 
28
29
  /* Prefilters
29
30
  * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
@@ -46,11 +47,9 @@ var
46
47
  // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
47
48
  allTypes = "*/".concat( "*" ),
48
49
 
49
- // Document location
50
- ajaxLocation = location.href,
51
-
52
- // Segment location into parts
53
- ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
50
+ // Anchor tag for parsing the document origin
51
+ originAnchor = document.createElement( "a" );
52
+ originAnchor.href = location.href;
54
53
 
55
54
  // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
56
55
  function addToPrefiltersOrTransports( structure ) {
@@ -73,7 +72,7 @@ function addToPrefiltersOrTransports( structure ) {
73
72
  while ( ( dataType = dataTypes[ i++ ] ) ) {
74
73
 
75
74
  // Prepend if requested
76
- if ( dataType.charAt( 0 ) === "+" ) {
75
+ if ( dataType[ 0 ] === "+" ) {
77
76
  dataType = dataType.slice( 1 ) || "*";
78
77
  ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
79
78
 
@@ -117,7 +116,7 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
117
116
  // that takes "flat" options (not to be deep extended)
118
117
  // Fixes #9887
119
118
  function ajaxExtend( target, src ) {
120
- var deep, key,
119
+ var key, deep,
121
120
  flatOptions = jQuery.ajaxSettings.flatOptions || {};
122
121
 
123
122
  for ( key in src ) {
@@ -137,7 +136,8 @@ function ajaxExtend( target, src ) {
137
136
  * - returns the corresponding response
138
137
  */
139
138
  function ajaxHandleResponses( s, jqXHR, responses ) {
140
- var firstDataType, ct, finalDataType, type,
139
+
140
+ var ct, type, finalDataType, firstDataType,
141
141
  contents = s.contents,
142
142
  dataTypes = s.dataTypes;
143
143
 
@@ -269,7 +269,7 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
269
269
  if ( conv !== true ) {
270
270
 
271
271
  // Unless errors are allowed to bubble, catch and return them
272
- if ( conv && s[ "throws" ] ) { // jscs:ignore requireDotNotation
272
+ if ( conv && s.throws ) {
273
273
  response = conv( response );
274
274
  } else {
275
275
  try {
@@ -299,13 +299,14 @@ jQuery.extend( {
299
299
  etag: {},
300
300
 
301
301
  ajaxSettings: {
302
- url: ajaxLocation,
302
+ url: location.href,
303
303
  type: "GET",
304
- isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
304
+ isLocal: rlocalProtocol.test( location.protocol ),
305
305
  global: true,
306
306
  processData: true,
307
307
  async: true,
308
308
  contentType: "application/x-www-form-urlencoded; charset=UTF-8",
309
+
309
310
  /*
310
311
  timeout: 0,
311
312
  data: null,
@@ -349,7 +350,7 @@ jQuery.extend( {
349
350
  "text html": true,
350
351
 
351
352
  // Evaluate text as a json expression
352
- "text json": jQuery.parseJSON,
353
+ "text json": JSON.parse,
353
354
 
354
355
  // Parse text as xml
355
356
  "text xml": jQuery.parseXML
@@ -393,30 +394,32 @@ jQuery.extend( {
393
394
  // Force options to be an object
394
395
  options = options || {};
395
396
 
396
- var
397
-
398
- // Cross-domain detection vars
399
- parts,
400
-
401
- // Loop variable
402
- i,
397
+ var transport,
403
398
 
404
399
  // URL without anti-cache param
405
400
  cacheURL,
406
401
 
407
- // Response headers as string
402
+ // Response headers
408
403
  responseHeadersString,
404
+ responseHeaders,
409
405
 
410
406
  // timeout handle
411
407
  timeoutTimer,
412
408
 
409
+ // Url cleanup var
410
+ urlAnchor,
411
+
412
+ // Request state (becomes false upon send and true upon completion)
413
+ completed,
414
+
413
415
  // To know if global events are to be dispatched
414
416
  fireGlobals,
415
417
 
416
- transport,
418
+ // Loop variable
419
+ i,
417
420
 
418
- // Response headers
419
- responseHeaders,
421
+ // uncached part of the url
422
+ uncached,
420
423
 
421
424
  // Create the final options object
422
425
  s = jQuery.ajaxSetup( {}, options ),
@@ -441,9 +444,6 @@ jQuery.extend( {
441
444
  requestHeaders = {},
442
445
  requestHeadersNames = {},
443
446
 
444
- // The jqXHR state
445
- state = 0,
446
-
447
447
  // Default abort message
448
448
  strAbort = "canceled",
449
449
 
@@ -454,7 +454,7 @@ jQuery.extend( {
454
454
  // Builds headers hashtable if needed
455
455
  getResponseHeader: function( key ) {
456
456
  var match;
457
- if ( state === 2 ) {
457
+ if ( completed ) {
458
458
  if ( !responseHeaders ) {
459
459
  responseHeaders = {};
460
460
  while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
@@ -468,14 +468,14 @@ jQuery.extend( {
468
468
 
469
469
  // Raw string
470
470
  getAllResponseHeaders: function() {
471
- return state === 2 ? responseHeadersString : null;
471
+ return completed ? responseHeadersString : null;
472
472
  },
473
473
 
474
474
  // Caches the header
475
475
  setRequestHeader: function( name, value ) {
476
- var lname = name.toLowerCase();
477
- if ( !state ) {
478
- name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
476
+ if ( completed == null ) {
477
+ name = requestHeadersNames[ name.toLowerCase() ] =
478
+ requestHeadersNames[ name.toLowerCase() ] || name;
479
479
  requestHeaders[ name ] = value;
480
480
  }
481
481
  return this;
@@ -483,7 +483,7 @@ jQuery.extend( {
483
483
 
484
484
  // Overrides response content-type header
485
485
  overrideMimeType: function( type ) {
486
- if ( !state ) {
486
+ if ( completed == null ) {
487
487
  s.mimeType = type;
488
488
  }
489
489
  return this;
@@ -493,16 +493,16 @@ jQuery.extend( {
493
493
  statusCode: function( map ) {
494
494
  var code;
495
495
  if ( map ) {
496
- if ( state < 2 ) {
497
- for ( code in map ) {
498
-
499
- // Lazy-add the new callback in a way that preserves old ones
500
- statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
501
- }
502
- } else {
496
+ if ( completed ) {
503
497
 
504
498
  // Execute the appropriate callbacks
505
499
  jqXHR.always( map[ jqXHR.status ] );
500
+ } else {
501
+
502
+ // Lazy-add the new callbacks in a way that preserves old ones
503
+ for ( code in map ) {
504
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
505
+ }
506
506
  }
507
507
  }
508
508
  return this;
@@ -520,32 +520,41 @@ jQuery.extend( {
520
520
  };
521
521
 
522
522
  // Attach deferreds
523
- deferred.promise( jqXHR ).complete = completeDeferred.add;
524
- jqXHR.success = jqXHR.done;
525
- jqXHR.error = jqXHR.fail;
523
+ deferred.promise( jqXHR );
526
524
 
527
- // Remove hash character (#7531: and string promotion)
528
- // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
525
+ // Add protocol if not provided (prefilters might expect it)
529
526
  // Handle falsy url in the settings object (#10093: consistency with old signature)
530
527
  // We also use the url parameter if available
531
- s.url = ( ( url || s.url || ajaxLocation ) + "" )
532
- .replace( rhash, "" )
533
- .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
528
+ s.url = ( ( url || s.url || location.href ) + "" )
529
+ .replace( rprotocol, location.protocol + "//" );
534
530
 
535
531
  // Alias method option to type as per ticket #12004
536
532
  s.type = options.method || options.type || s.method || s.type;
537
533
 
538
534
  // Extract dataTypes list
539
- s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
535
+ s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
540
536
 
541
- // A cross-domain request is in order when we have a protocol:host:port mismatch
537
+ // A cross-domain request is in order when the origin doesn't match the current origin.
542
538
  if ( s.crossDomain == null ) {
543
- parts = rurl.exec( s.url.toLowerCase() );
544
- s.crossDomain = !!( parts &&
545
- ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
546
- ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
547
- ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
548
- );
539
+ urlAnchor = document.createElement( "a" );
540
+
541
+ // Support: IE <=8 - 11, Edge 12 - 13
542
+ // IE throws exception on accessing the href property if url is malformed,
543
+ // e.g. http://example.com:80x/
544
+ try {
545
+ urlAnchor.href = s.url;
546
+
547
+ // Support: IE <=8 - 11 only
548
+ // Anchor's host property isn't correctly set when s.url is relative
549
+ urlAnchor.href = urlAnchor.href;
550
+ s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
551
+ urlAnchor.protocol + "//" + urlAnchor.host;
552
+ } catch ( e ) {
553
+
554
+ // If there is an error parsing the URL, assume it is crossDomain,
555
+ // it can be rejected by the transport if it is invalid
556
+ s.crossDomain = true;
557
+ }
549
558
  }
550
559
 
551
560
  // Convert data if not already a string
@@ -557,7 +566,7 @@ jQuery.extend( {
557
566
  inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
558
567
 
559
568
  // If request was aborted inside a prefilter, stop there
560
- if ( state === 2 ) {
569
+ if ( completed ) {
561
570
  return jqXHR;
562
571
  }
563
572
 
@@ -578,29 +587,36 @@ jQuery.extend( {
578
587
 
579
588
  // Save the URL in case we're toying with the If-Modified-Since
580
589
  // and/or If-None-Match header later on
581
- cacheURL = s.url;
590
+ // Remove hash to simplify url manipulation
591
+ cacheURL = s.url.replace( rhash, "" );
582
592
 
583
593
  // More options handling for requests with no content
584
594
  if ( !s.hasContent ) {
585
595
 
596
+ // Remember the hash so we can put it back
597
+ uncached = s.url.slice( cacheURL.length );
598
+
586
599
  // If data is available, append data to url
587
600
  if ( s.data ) {
588
- cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
601
+ cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
589
602
 
590
603
  // #9682: remove data so that it's not used in an eventual retry
591
604
  delete s.data;
592
605
  }
593
606
 
594
- // Add anti-cache in url if needed
607
+ // Add anti-cache in uncached url if needed
595
608
  if ( s.cache === false ) {
596
- s.url = rts.test( cacheURL ) ?
609
+ cacheURL = cacheURL.replace( rts, "" );
610
+ uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
611
+ }
597
612
 
598
- // If there is already a '_' parameter, set its value
599
- cacheURL.replace( rts, "$1_=" + nonce++ ) :
613
+ // Put hash and anti-cache on the URL that will be requested (gh-1732)
614
+ s.url = cacheURL + uncached;
600
615
 
601
- // Otherwise add one to the end
602
- cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
603
- }
616
+ // Change '%20' to '+' if this is encoded form body content (gh-2658)
617
+ } else if ( s.data && s.processData &&
618
+ ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
619
+ s.data = s.data.replace( r20, "+" );
604
620
  }
605
621
 
606
622
  // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
@@ -634,19 +650,19 @@ jQuery.extend( {
634
650
 
635
651
  // Allow custom headers/mimetypes and early abort
636
652
  if ( s.beforeSend &&
637
- ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
653
+ ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
638
654
 
639
655
  // Abort if not done already and return
640
656
  return jqXHR.abort();
641
657
  }
642
658
 
643
- // aborting is no longer a cancellation
659
+ // Aborting is no longer a cancellation
644
660
  strAbort = "abort";
645
661
 
646
662
  // Install callbacks on deferreds
647
- for ( i in { success: 1, error: 1, complete: 1 } ) {
648
- jqXHR[ i ]( s[ i ] );
649
- }
663
+ completeDeferred.add( s.complete );
664
+ jqXHR.done( s.success );
665
+ jqXHR.fail( s.error );
650
666
 
651
667
  // Get transport
652
668
  transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
@@ -663,7 +679,7 @@ jQuery.extend( {
663
679
  }
664
680
 
665
681
  // If request was aborted inside ajaxSend, stop there
666
- if ( state === 2 ) {
682
+ if ( completed ) {
667
683
  return jqXHR;
668
684
  }
669
685
 
@@ -675,18 +691,17 @@ jQuery.extend( {
675
691
  }
676
692
 
677
693
  try {
678
- state = 1;
694
+ completed = false;
679
695
  transport.send( requestHeaders, done );
680
696
  } catch ( e ) {
681
697
 
682
- // Propagate exception as error if not done
683
- if ( state < 2 ) {
684
- done( -1, e );
685
-
686
- // Simply rethrow otherwise
687
- } else {
698
+ // Rethrow post-completion exceptions
699
+ if ( completed ) {
688
700
  throw e;
689
701
  }
702
+
703
+ // Propagate others as results
704
+ done( -1, e );
690
705
  }
691
706
  }
692
707
 
@@ -695,13 +710,12 @@ jQuery.extend( {
695
710
  var isSuccess, success, error, response, modified,
696
711
  statusText = nativeStatusText;
697
712
 
698
- // Called once
699
- if ( state === 2 ) {
713
+ // Ignore repeat invocations
714
+ if ( completed ) {
700
715
  return;
701
716
  }
702
717
 
703
- // State is "done" now
704
- state = 2;
718
+ completed = true;
705
719
 
706
720
  // Clear timeout if it exists
707
721
  if ( timeoutTimer ) {
@@ -761,8 +775,7 @@ jQuery.extend( {
761
775
  }
762
776
  } else {
763
777
 
764
- // We extract error from statusText
765
- // then normalize statusText and status for non-aborts
778
+ // Extract error from statusText and normalize for non-aborts
766
779
  error = statusText;
767
780
  if ( status || !statusText ) {
768
781
  statusText = "error";
@@ -820,7 +833,7 @@ jQuery.extend( {
820
833
  jQuery.each( [ "get", "post" ], function( i, method ) {
821
834
  jQuery[ method ] = function( url, data, callback, type ) {
822
835
 
823
- // shift arguments if data argument was omitted
836
+ // Shift arguments if data argument was omitted
824
837
  if ( jQuery.isFunction( data ) ) {
825
838
  type = type || callback;
826
839
  callback = data;
@@ -3,15 +3,13 @@ define( [
3
3
  "../core/access",
4
4
  "./support",
5
5
  "../var/rnotwhite",
6
- "./val",
7
6
  "../selector"
8
7
  ], function( jQuery, access, support, rnotwhite ) {
9
8
 
10
- var nodeHook, boolHook,
11
- attrHandle = jQuery.expr.attrHandle,
12
- ruseDefault = /^(?:checked|selected)$/i,
13
- getSetAttribute = support.getSetAttribute,
14
- getSetInput = support.input;
9
+ "use strict";
10
+
11
+ var boolHook,
12
+ attrHandle = jQuery.expr.attrHandle;
15
13
 
16
14
  jQuery.fn.extend( {
17
15
  attr: function( name, value ) {
@@ -40,12 +38,11 @@ jQuery.extend( {
40
38
  return jQuery.prop( elem, name, value );
41
39
  }
42
40
 
43
- // All attributes are lowercase
41
+ // Attribute hooks are determined by the lowercase version
44
42
  // Grab necessary hook if one is defined
45
43
  if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
46
- name = name.toLowerCase();
47
- hooks = jQuery.attrHooks[ name ] ||
48
- ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
44
+ hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
45
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
49
46
  }
50
47
 
51
48
  if ( value !== undefined ) {
@@ -78,9 +75,6 @@ jQuery.extend( {
78
75
  set: function( elem, value ) {
79
76
  if ( !support.radioValue && value === "radio" &&
80
77
  jQuery.nodeName( elem, "input" ) ) {
81
-
82
- // Setting the type on a radio button after the value resets the value in IE8-9
83
- // Reset value to default in case type is set after value during creation
84
78
  var val = elem.value;
85
79
  elem.setAttribute( "type", value );
86
80
  if ( val ) {
@@ -93,34 +87,13 @@ jQuery.extend( {
93
87
  },
94
88
 
95
89
  removeAttr: function( elem, value ) {
96
- var name, propName,
90
+ var name,
97
91
  i = 0,
98
92
  attrNames = value && value.match( rnotwhite );
99
93
 
100
94
  if ( attrNames && elem.nodeType === 1 ) {
101
95
  while ( ( name = attrNames[ i++ ] ) ) {
102
- propName = jQuery.propFix[ name ] || name;
103
-
104
- // Boolean attributes get special treatment (#10870)
105
- if ( jQuery.expr.match.bool.test( name ) ) {
106
-
107
- // Set corresponding property to false
108
- if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
109
- elem[ propName ] = false;
110
-
111
- // Support: IE<9
112
- // Also clear defaultChecked/defaultSelected (if appropriate)
113
- } else {
114
- elem[ jQuery.camelCase( "default-" + name ) ] =
115
- elem[ propName ] = false;
116
- }
117
-
118
- // See #9699 for explanation of this approach (setting first, then removal)
119
- } else {
120
- jQuery.attr( elem, name, "" );
121
- }
122
-
123
- elem.removeAttribute( getSetAttribute ? name : propName );
96
+ elem.removeAttribute( name );
124
97
  }
125
98
  }
126
99
  }
@@ -133,16 +106,8 @@ boolHook = {
133
106
 
134
107
  // Remove boolean attributes when set to false
135
108
  jQuery.removeAttr( elem, name );
136
- } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
137
-
138
- // IE<8 needs the *property* name
139
- elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
140
-
141
109
  } else {
142
-
143
- // Support: IE<9
144
- // Use defaultChecked and defaultSelected for oldIE
145
- elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
110
+ elem.setAttribute( name, name );
146
111
  }
147
112
  return name;
148
113
  }
@@ -151,131 +116,22 @@ boolHook = {
151
116
  jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
152
117
  var getter = attrHandle[ name ] || jQuery.find.attr;
153
118
 
154
- if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
155
- attrHandle[ name ] = function( elem, name, isXML ) {
156
- var ret, handle;
157
- if ( !isXML ) {
119
+ attrHandle[ name ] = function( elem, name, isXML ) {
120
+ var ret, handle,
121
+ lowercaseName = name.toLowerCase();
158
122
 
159
- // Avoid an infinite loop by temporarily removing this function from the getter
160
- handle = attrHandle[ name ];
161
- attrHandle[ name ] = ret;
162
- ret = getter( elem, name, isXML ) != null ?
163
- name.toLowerCase() :
164
- null;
165
- attrHandle[ name ] = handle;
166
- }
167
- return ret;
168
- };
169
- } else {
170
- attrHandle[ name ] = function( elem, name, isXML ) {
171
- if ( !isXML ) {
172
- return elem[ jQuery.camelCase( "default-" + name ) ] ?
173
- name.toLowerCase() :
174
- null;
175
- }
176
- };
177
- }
178
- } );
179
-
180
- // fix oldIE attroperties
181
- if ( !getSetInput || !getSetAttribute ) {
182
- jQuery.attrHooks.value = {
183
- set: function( elem, value, name ) {
184
- if ( jQuery.nodeName( elem, "input" ) ) {
123
+ if ( !isXML ) {
185
124
 
186
- // Does not return so that setAttribute is also used
187
- elem.defaultValue = value;
188
- } else {
189
-
190
- // Use nodeHook if defined (#1954); otherwise setAttribute is fine
191
- return nodeHook && nodeHook.set( elem, value, name );
192
- }
125
+ // Avoid an infinite loop by temporarily removing this function from the getter
126
+ handle = attrHandle[ lowercaseName ];
127
+ attrHandle[ lowercaseName ] = ret;
128
+ ret = getter( elem, name, isXML ) != null ?
129
+ lowercaseName :
130
+ null;
131
+ attrHandle[ lowercaseName ] = handle;
193
132
  }
133
+ return ret;
194
134
  };
195
- }
196
-
197
- // IE6/7 do not support getting/setting some attributes with get/setAttribute
198
- if ( !getSetAttribute ) {
199
-
200
- // Use this for any attribute in IE6/7
201
- // This fixes almost every IE6/7 issue
202
- nodeHook = {
203
- set: function( elem, value, name ) {
204
-
205
- // Set the existing or create a new attribute node
206
- var ret = elem.getAttributeNode( name );
207
- if ( !ret ) {
208
- elem.setAttributeNode(
209
- ( ret = elem.ownerDocument.createAttribute( name ) )
210
- );
211
- }
212
-
213
- ret.value = value += "";
214
-
215
- // Break association with cloned elements by also using setAttribute (#9646)
216
- if ( name === "value" || value === elem.getAttribute( name ) ) {
217
- return value;
218
- }
219
- }
220
- };
221
-
222
- // Some attributes are constructed with empty-string values when not defined
223
- attrHandle.id = attrHandle.name = attrHandle.coords =
224
- function( elem, name, isXML ) {
225
- var ret;
226
- if ( !isXML ) {
227
- return ( ret = elem.getAttributeNode( name ) ) && ret.value !== "" ?
228
- ret.value :
229
- null;
230
- }
231
- };
232
-
233
- // Fixing value retrieval on a button requires this module
234
- jQuery.valHooks.button = {
235
- get: function( elem, name ) {
236
- var ret = elem.getAttributeNode( name );
237
- if ( ret && ret.specified ) {
238
- return ret.value;
239
- }
240
- },
241
- set: nodeHook.set
242
- };
243
-
244
- // Set contenteditable to false on removals(#10429)
245
- // Setting to empty string throws an error as an invalid value
246
- jQuery.attrHooks.contenteditable = {
247
- set: function( elem, value, name ) {
248
- nodeHook.set( elem, value === "" ? false : value, name );
249
- }
250
- };
251
-
252
- // Set width and height to auto instead of 0 on empty string( Bug #8150 )
253
- // This is for removals
254
- jQuery.each( [ "width", "height" ], function( i, name ) {
255
- jQuery.attrHooks[ name ] = {
256
- set: function( elem, value ) {
257
- if ( value === "" ) {
258
- elem.setAttribute( name, "auto" );
259
- return value;
260
- }
261
- }
262
- };
263
- } );
264
- }
265
-
266
- if ( !support.style ) {
267
- jQuery.attrHooks.style = {
268
- get: function( elem ) {
269
-
270
- // Return undefined in the case of empty string
271
- // Note: IE uppercases css property names, but if we were to .toLowerCase()
272
- // .cssText, that would destroy case sensitivity in URL's, like in "background"
273
- return elem.style.cssText || undefined;
274
- },
275
- set: function( elem, value ) {
276
- return ( elem.style.cssText = value + "" );
277
- }
278
- };
279
- }
135
+ } );
280
136
 
281
137
  } );