'use strict';

angular
	.module('qsServices')
	.provider('qs', qsProvider);

function qsProvider() {

	// defaults to ampersand, W3C recommends support for semicolons
	var internals = {
		delimiter: '&'
	};

	this.delimiter = function (value) {
		if (value !== '&' || value !== ';') {
			console.warn('WC3 recommends the use of ampersands or semicolons ONLY!');
		}
		internals.delimiter = value;
	};

	// internal angular provider function
	this.$get = ['$exceptionHandler', '$httpParamSerializer', function qs($exceptionHandler, $httpParamSerializer) {

		return {
			parse: function parseQS(queryString) {

				var opts = {};
				var qsArgs;

				if (!queryString || typeof queryString !== 'string') {
          $exceptionHandler('qs.parse requires a string');
				} else {
					qsArgs = decodeURIComponent(queryString);
				}

				angular.forEach(qsArgs.substr(1).split(internals.delimiter), function (item) {
					var a = item.split('=');
					opts[a[0]] = a[1];
				});
				return opts;
			},
			stringify: function stringifyQS(queryParams) {

				if (!queryParams || typeof queryParams !== 'object') {
					$exceptionHandler('qs.stringify requires an object');
				}

				return '?' + $httpParamSerializer(queryParams);
			}
		};
	}];
}

@@ -708,16 +708,23 @@
         
+return 
 $excepti
@@ -828,21 +828,22 @@
 g);%0A%09%09%09%09
-%7D
 %0A%0A%09%09
+  
 %09%09angula
@@ -918,16 +918,18 @@
 m) %7B%0A%09%09%09
+  
 %09%09var a 
@@ -951,16 +951,18 @@
 ');%0A%09%09%09%09
+  
 %09opts%5Ba%5B
@@ -981,16 +981,18 @@
 %09%09%09%09
+  
 %7D);%0A%09%09%09%09
 retu
@@ -983,24 +983,26 @@
 %09%09  %7D);%0A%09%09%09%09
+  
 return opts;
@@ -1009,10 +1009,21 @@
 %0A%09%09%09
-%7D,
+  %7D%0A%09%09%09%7D,%0A%09%09%09
 %0A%09%09%09

Update qs.js